데몬의 늦은 도착: Microsoft Defender DLP 뒤에 숨어 있는 Havoc Stager
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 테마의 유사한 첨부 파일을 차단하도록 이메일 보호를 업데이트해야 합니다.
공격 흐름
탐지
가능한 지속성 지점 [백악관 정책 – Software/NTUSER Hive] (레지스트리 이벤트 통해)
보기
의심스러운 CURL 사용 (명령 줄 통해)
보기
IOCs (HashSha256) 감지: 악마가 나중에 도착합니다: Havoc 스테이저가 Microsoft Defender DLP 뒤에 숨습니다.
보기
IOCs (HashMd5) 감지: 악마가 나중에 도착합니다: Havoc 스테이저가 Microsoft Defender DLP 뒤에 숨습니다.
보기
IOCs (SourceIP) 감지: 악마가 나중에 도착합니다: Havoc 스테이저가 Microsoft Defender DLP 뒤에 숨습니다.
보기
IOCs (DestinationIP) 감지: 악마가 나중에 도착합니다: Havoc 스테이저가 Microsoft Defender DLP 뒤에 숨습니다.
보기
Havoc 스테이저 네트워크 활동 탐지 [Windows 네트워크 연결]
보기
UserInitMprLogonScript 레지스트리 수정 통한 지속성 [Windows 레지스트리 이벤트]
보기
시뮬레이션 실행
전제 조건: 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."