SOC Prime Bias: 중간

04 Jun 2026 15:13 UTC

데몬의 늦은 도착: Microsoft Defender DLP 뒤에 숨어 있는 Havoc Stager

Author Photo
SOC Prime Team linkedin icon 팔로우
데몬의 늦은 도착: Microsoft Defender DLP 뒤에 숨어 있는 Havoc Stager
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

요약

브라질의 위협 행위자는 위조된 전자 송장을 배포하고 있습니다. NF-e 악성 MSI 설치 프로그램을 전달하는 ZIP 첨부 파일. 이 MSI는 가짜 Microsoft Defender Endpoint DLP DLL을 설치하지만 실제로는 Havoc 스테이저로 작동합니다. 실행되면, 스테이저는 원격 제어 서버에 연결하여 메모리 내 Havoc 페이로드를 가져오고, 로그온 스크립트 레지스트리 값을 통해 지속성을 생성합니다. 말레이시아 등록 도메인에서도 유사한 변종들이 동일한 전달 래퍼를 사용하여 관찰된 바 있습니다.

조사

LevelBlue SpiderLabs는 ZIP 아카이브, VBS 드로퍼, MSI 패키지를 분석하여 서명된 Microsoft 바이너리, mpextms.exe, 서명되지 않은 endpointdlp.dll 스테이저와 쌍을 이루고 있습니다. 이 스테이저에는 명령 및 제어 호스트, URL 경로 및 뮤텍스 문자열을 포함한 명확한 텍스트 구성 값이 포함되어 있었습니다. 네트워크 캡처는 특정 IP 주소로의 GET 및 POST 트래픽과 고유한 사용자 에이전트 값을 드러냈습니다. 연구진은 동일한 버전 메타데이터와 가져오기 해시를 공유하는 9개의 관련 스테이저 변종들을 확인했습니다.

완화

방어자는 Microsoft Defender Endpoint DLP 또는 Dragon Data Protection 구성 요소로 가장하는 서명되지 않은 DLL을 감지하고, HKCUEnvironmentUserInitMprLogonScript에 대한 변경 사항을 모니터링하고 알려진 뮤텍스 값에 대해 경고해야 합니다. 게시된 YARA 규칙을 배포하여 스테이저가 Havoc 페이로드를 로드하기 전에 감지해야 합니다. 보안 팀은 또한 아카이브 내에 제공된 모든 Microsoft 브랜드 바이너리의 Authenticode 서명을 검증해야 합니다.

응답

이 활동이 감지되면 관련 IP 주소와 도메인을 차단하고, MSI 및 DLL 파일을 격리하며, 악성 로그온 스크립트 레지스트리 항목을 제거해야 합니다. 호스트 포렌식을 수행하여 메모리 내 Havoc 페이로드가 활성 상태로 남아 있지 않은지 확인하고 영향을 받은 사용자의 자격 증명을 교체하세요. 관련된 사업 팀에게 통보하고 NF-e 테마의 유사한 첨부 파일을 차단하도록 이메일 보호를 업데이트해야 합니다.

graph TB %% 클래스 정의 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef operator fill:#ff9900 %% 노드 action_phishing[“<b>행위</b> – <b>T1566.001 피싱: 스피어피싱 첨부파일</b><br/>브라질 NF-e 송장으로 위장한 악성 ZIP 파일 전달”] class action_phishing action action_vbscript[“<b>행위</b> – <b>T1059.005 명령 및 스크립트 인터프리터: Visual Basic</b><br/>숨겨진 VBScript가 은닉된 cmd를 실행하여 MSI 다운로드를 시작함”] class action_vbscript action action_download_msi[“<b>행위</b> – <b>T1218.007 서명된 바이너리 프록시 실행: Msiexec</b><br/>Curl이 호출되어 Google Cloud Storage에서 <i>update.msi</i>를 다운로드함”] class action_download_msi action action_msi_execution[“<b>행위</b> – <b>T1218.007 서명된 바이너리 프록시 실행: Msiexec</b><br/>Msiexec가 MSI를 실행하며, 서명된 <i>mpextms.exe</i>와 악성 <i>endpointdlp.dll</i>을 포함함”] class action_msi_execution action action_dll_sideload[“<b>행위</b> – <b>T1218 DLL 사이드로딩</b> 및 <b>T1036.001 가장</b><br/><i>endpointdlp.dll</i>은 Microsoft Defender DLL을 모방하지만 유효한 서명이 없음”] class action_dll_sideload action action_stager_c2[“<b>행위</b> – <b>T1102.002 애플리케이션 계층 프로토콜: 웹 프로토콜</b><br/>스테이저가 사용자 지정 User-Agent ‘Microsoft-Delivery-Optimization/10.1’을 사용하여 GET /stage/<hex> 요청을 전송함”] class action_stager_c2 action action_download_havoc[“<b>행위</b> – <b>T1219 원격 액세스 도구</b><br/>Havoc 데몬이 HTTP를 통해 다운로드되며 디스크를 거치지 않고 메모리에서 직접 실행됨”] class action_download_havoc action action_persistence[“<b>행위</b> – <b>T1037.001 로그온 스크립트</b><br/>사용자 로그온 시 <i>mpextms.exe</i>를 실행하기 위해 HKCU\\Environment\\UserInitMprLogonScript를 작성함”] class action_persistence action action_telemetry[“<b>행위</b> – <b>T1102.003 애플리케이션 계층 프로토콜: 웹 프로토콜</b><br/>C2 서버로 POST /api/v2/telemetry/diag 요청을 전송함”] class action_telemetry action action_defense_evasion[“<b>행위</b> – <b>T1027.013 난독화된 파일 또는 정보: 내장 페이로드</b>, <b>T1027.010 바이너리 패딩</b>, <b>T1564.003 아티팩트 숨기기</b><br/>페이로드는 암호화되어 있으며, 명령은 난독화되고 숨겨진 창에서 실행됨”] class action_defense_evasion action %% 공격 흐름 연결 action_phishing –>|이어짐| action_vbscript action_vbscript –>|트리거함| action_download_msi action_download_msi –>|호출함| action_msi_execution action_msi_execution –>|설치함| action_dll_sideload action_dll_sideload –>|통신함| action_stager_c2 action_dll_sideload –>|생성함| action_persistence action_stager_c2 –>|다운로드함| action_download_havoc action_stager_c2 –>|전송함| action_telemetry action_download_havoc –>|가능하게_함| action_defense_evasion

공격 흐름

시뮬레이션 실행

전제 조건: Telemetry & Baseline 프리플라이트 체크가 통과해야 합니다.

합리적 이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적대 기술 (TTP)의 정확한 실행을 상세히 설명합니다. 명령어와 설명은 식별된 TTP와 직접 관련되어야 하며, 탐지 논리에서 기대하는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다.

  • 공격 내러티브 및 명령:
    피해자 기기에 초기 접근을 얻은 공격자는 사용자 로그온 간의 지속성을 유지하려고 합니다. 그들은 UserInitMprLogonScript 값을 선택합니다. 그 이유는 사용자의 셸이 시작되기 전에 코드가 실행되기 때문입니다. 공격자는 사용자의 AppData 폴더에 비밀 바이너리를 mpextms.exe (리네임된 rundll32.exe를) 두고 악의적인 DLL을 제작하여 endpointdlp.dll 자격 인증 덤핑을 수행합니다. 레지스트리 값을 "%APPDATA%mpextms.exe" "%APPDATA%endpointdlp.dll"“로 설정하여, 공격자는 매 로그온 시에 DLL이 서명된 rundll32.exe 프록시를 통해 사이드 로딩되도록 함으로써 T1218.007 and T1027.013 을 충족하면서 무분별한 바이너리 화이트리스트를 회피하게 됩니다.

  • 회귀 테스트 스크립트:

    # -------------------------------------------------
    # 1단계: 악성 바이너리 투하(시뮬레이션)
    $payloadDir = "$env:APPDATAMalicious"
    New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null
    
    # 리얼리즘을 위해 reundll32.exe로 리네임된 'mpextms.exe' 시뮬레이션
    $src = "$env:SystemRootSystem32rundll32.exe"
    $dstExe = Join-Path $payloadDir "mpextms.exe"
    Copy-Item -Path $src -Destination $dstExe -Force
    
    # 악성 DLL 시뮬레이션 (테스트 목적상 빈 파일)
    $dllPath = Join-Path $payloadDir "endpointdlp.dll"
    New-Item -ItemType File -Path $dllPath -Force | Out-Null
    
    # 2단계: 지속성 레지스트리 항목 생성
    $regPath = 'HKCU:Environment'
    $regName = 'UserInitMprLogonScript'
    $regValue = "`"$dstExe`" `"$dllPath`""
    Set-ItemProperty -Path $regPath -Name $regName -Value $regValue -Force
    
    Write-Host "Persistence entry created: $regName = $regValue"
    # -------------------------------------------------
  • 정리 명령:

    # 레지스트리 지속성 항목 제거
    Remove-ItemProperty -Path 'HKCU:Environment' -Name 'UserInitMprLogonScript' -ErrorAction SilentlyContinue
    
    # 드롭된 파일 삭제
    $payloadDir = "$env:APPDATAMalicious"
    Remove-Item -Path $payloadDir -Recurse -Force -ErrorAction SilentlyContinue
    
    Write-Host "Cleanup complete."