레이어 속 은닉: 타겟 이메일 캠페인에서 사용된 로더 드러내기
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
광범위하게 사용 가능한 로더가 여러 위협 행위자에 의해 재활용되어 RAT 및 정보 탈취자를 전송하는 피싱 이메일에 사용하는데, 여기에 무기화된 JavaScript, PowerShell, LNK 및 ZIP 첨부 파일이 포함되어 있습니다. 로더는 은닉, 반사적 로딩, 프로세스 빈 공간 삽입 및 새로운 UAC 우회 메소드를 결합하여 파일리스 실행 및 권한 상승을 가능하게 합니다. 활동은 유럽과 중동 전역의 제조업 및 정부 기관을 대상으로 하는 것으로 관찰되었으며, 산업 데이터 및 자격 증명을 탈취할 명확한 목표를 가지고 있습니다.
조사
Cyble Research and Intelligence Labs는 전달 체인을 분석하고 네 단계의 회피 워크플로를 개요로 설명했습니다. 이는 난독화된 JavaScript 스테이저로 시작하여, PowerShell 스테가노그래픽 로더로 전환하고, 트로이화된 TaskScheduler 라이브러리를 악용하며, RegAsm.exe에 페이로드를 주입하는 것으로 끝납니다. 마지막 단계의 멀웨어는 PureLog Stealer로, 브라우저 자격 증명, 암호화폐 지갑 데이터 및 호스트/시스템 정보를 수집하여 유출합니다.
완화
샌드박스 폭발력 및 이메일로 전달된 콘텐츠로부터 스크립트 실행 차단과 같은 고급 이메일 보호를 사용하고, PowerShell 제한 언어 모드를 시행하며, 정당한 Windows 바이너리의 중공 탐지를 모니터링하십시오. 이미지 파일의 은닉 유무를 탐지하고 이 로더 체인에 관련된 반사적 .NET 어셈블리 로딩 및 UAC 우회 패턴을 드러내기 위해 EDR 규칙을 조정하십시오.
대응
지표가 나타나면 엔드포인트를 격리하고, 의심스러운 PowerShell 및 WMI 활동을 중지하며, 메모리 이미지를 캡쳐하고, 반사적 .NET 아티팩트 및 주입된 RegAsm.exe 프로세스를 추적하십시오. 잠재적으로 노출된 자격 증명을 초기화하고 연관된 악성 도메인 및 IP 주소를 차단하여 재감염 및 횡적 활동을 방지하십시오.
“그래프 TB %% 클래스 정의 classDef action fill:#99ccff %% 노드 정의 act_phishing[“<b>행동</b> – <b>T1566.001 피싱 첨부파일</b><br /><b>설명</b>: Office 취약성을 악용하는 악성 이메일 첨부파일 전송.”] class act_phishing action act_exploit[“<b>행동</b> – <b>T1203 클라이언트 실행을 위한 악용</b> (CVEu20112017u201111882)<br /><b>설명</b>: 코드를 실행하기 위해 Microsoft Office의 취약성을 트리거.”] class act_exploit action act_obfuscate[“<b>행동</b> – <b>T1027 난독화된 파일 또는 정보</b><br /><b>설명</b>: 악의적인 의도를 숨기기 위해 난독화된 JavaScript 또는 PowerShell 로딩.”] class act_obfuscate action act_stego[“<b>행동</b> – <b>T1027.003 은닉 기법</b><br /><b>설명</b>: 탐지를 피하기 위해 PNG 이미지 내부에 페이로드 삽입.”] class act_stego action act_reflective_load[“<b>행동</b> – <b>T1620 반사적 코드 로딩</b><br /><b>설명</b>: 디스크를 건드리지 않고 메모리에서 .NET 어셈블리 로딩.”] class act_reflective_load action act_regasm[“<b>행동</b> – <b>T1218.009 RegAsm 프록시 실행</b><br /><b>설명</b>: RegAsm을 악용하여 임의의 .NET 코드 실행.”] class act_regasm action act_process_hollow[“<b>행동</b> – <b>T1055.012 프로세스 빈 공간 삽입</b><br /><b>설명</b>: 정당한 프로세스 메모리를 악성 코드로 대체.”] class act_process_hollow action act_uac_bypass[“<b>행동</b> – <b>T1548.002 사용자 계정 제어 우회</b><br /><b>설명</b>: 사용자 프롬프트 없이 권한 상승.”] class act_uac_bypass action act_cred_steal[“<b>행동</b> – <b>T1555.003 웹 브라우저에서 자격 증명 획득</b><br /><b>설명</b>: 저장된 브라우저 자격 증명 덤프.”] class act_cred_steal action act_data_collect[“<b>행동</b> – <b>T1119 자동 수집</b><br /><b>설명</b>: 파일 및 시스템 정보 수집.”] class act_data_collect action act_exfil[“<b>행동</b> – <b>T1102 웹 서비스 통한 유출</b> / <b>T1041 C2 채널 통한 유출</b><br /><b>설명</b>: 수집된 데이터를 웹 서비스를 통해 원격 서버에 전송.”] class act_exfil action %% 연결 act_phishing u002du002d>|leads_to| act_exploit act_exploit u002du002d>|leads_to| act_obfuscate act_obfuscate u002du002d>|leads_to| act_stego act_stego u002du002d>|leads_to| act_reflective_load act_reflective_load u002du002d>|leads_to| act_regasm act_regasm u002du002d>|leads_to| act_process_hollow act_process_hollow u002du002d>|leads_to| act_uac_bypass act_uac_bypass u002du002d>|leads_to| act_cred_steal act_cred_steal u002du002d>|leads_to| act_data_collect act_data_collect u002du002d>|leads_to| act_exfil “
공격 흐름
탐지
LOLBAS WScript / CScript (프로세스 생성 경유)
보기
수상한 프로세스로 만든 이미지 파일 (파일 이벤트 경유)
보기
수상한 PowerShell 문자열 (PowerShell 경유)
보기
비정상적인 프로세스로 해결된 가능성 있는 인터넷 아카이브 (DNS 쿼리 경유)
보기
PowerShell에서 수상한 .NET 메서드 호출 (PowerShell 경유)
보기
수상한 파일 다운로드 직접 IP (프록시 경유)
보기
탐지할 IOCs (SourceIP): 타겟팅된 이메일 캠페인에서 사용된 로더를 포착하여 수비
보기
탐지할 IOCs (DestinationIP): 타겟팅된 이메일 캠페인에서 사용된 로더를 포착하여 수비
보기
탐지할 IOCs (HashSha256): 타겟팅된 이메일 캠페인에서 사용된 로더를 포착하여 수비
보기
숨겨진 PowerShell 및 Base64 디코딩 스크립트 탐지 [Windows PowerShell]
보기
WMI 객체 생성 및 프로세스 빈 공간 탐지 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제조건: 원격 진단 데이터 및 기준점 사전 점검이 통과해야 합니다.
근거: 이 섹션에서는 탐지 규칙을 트리거하도록 설계된 적대 기술(TTP)의 정확한 실행을 세부적으로 설명합니다. 명령 및 설명은 확인된 TTP를 직접 반영해야 하며 탐지 논리에서 기대하는 정확한 원격 진단 데이터를 생성하는 것을 목표로 해야 합니다.
-
공격 설명 및 명령:
공격자는 스파이 피싱 이메일에 숨겨진 PowerShell 페이로드가 스테가노그래피적으로 첨부된 JPEG 첨부파일을 보냅니다. 희생자가 첨부파일을 열면, 공격자의 초기 스크립트가 숨겨진 데이터를 추출하고, 이를 Base64로부터 디코딩하여 숨겨진 창에서 두 번째 단계의 PowerShell 로더를 실행합니다. 로더는 그 후 추가 도구를 다운로드하기 위해 C2 서버에 연락합니다. 피해자 호스트에서 생성된 정확한 명령줄은 다음과 같습니다:powershell -WindowStyle Hidden -EncodedCommand <Base64String>공격자는 명시적으로 스크립트에 “Base64″라는 단어를 포함시켰기 때문에 (예: 스크립트의 주석에
-EncodedCommand랩퍼는 주석에 “Base64″를 인쇄합니다), 탐지 규칙의selection_base64_decoded_script조건과 일치하고, 숨겨진 창 플래그는 만족합니다selection_hidden_powershell. -
회귀 테스트 스크립트:
# 숨겨진 PowerShell Base64 로더 시뮬레이션 # ------------------------------------------------- # 단계 1: 더미 PowerShell 스크립트 작성 $script = 'Write-Host "Compromised host: $env:COMPUTERNAME"; Start-Sleep -Seconds 30' # 단계 2: Base64 (유니코드)로 인코딩 $bytes = [System.Text.Encoding]::Unicode.GetBytes($script) $b64 = [Convert]::ToBase64String($bytes) # 단계 3: 인코딩된 페이로드로 숨겨진 PowerShell 실행 Start-Process -FilePath "powershell.exe" ` -ArgumentList "-WindowStyle Hidden -EncodedCommand $b64" ` -WindowStyle Hidden ` -NoNewWindow # 주석에 "Base64" 문자열 존재가 규칙을 만족시킵니다. -
정리 명령:
# 테스트에 의해 시작된 남아 있는 숨겨진 PowerShell 인스턴스 종료 Get-Process -Name "powershell" | Where-Object { $_.StartInfo.Arguments -match "-WindowStyle Hidden" } | Stop-Process -Force # 선택 사항: 임시 파일 제거 (이 스크립트에서는 생성되지 않음)