포세이돈 작전: 구글 광고 리디렉션 메커니즘을 악용한 스피어 피싱 공격
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Operation Poseidon은 Konni APT에 기인하는 스피어 피싱 캠페인으로, Google과 네이버 광고 클릭 추적/리디렉션 URL을 이용하여 악성 LNK 바로 가기 파일을 전달합니다. 열릴 때, LNK는 메모리 내에서 주로 EndRAT를 실행하는 AutoIt 로더를 트리거합니다. 이 작업은 페이로드 호스팅과 명령 및 제어(C2) 서비스를 위해 침해된 워드프레스 사이트에 의존합니다.
조사
Genians 보안 센터는 피싱 이메일 유인책, 내장된 추적 비콘 및 LNK 바로가기 실행에서 AutoIt 준비 논리 및 메모리 내 EndRAT 배포에 이르기까지 종단간 실행 흐름을 검토했습니다. 분석가들은 또한 jlrandsons.co.uk 도메인과 빌드 경로 D:3_Attack WeaponAutoitBuild__Poseidon – Attackclient3.3.14.a3x를 포함한 인프라 및 개발 아티팩트 재사용을 관찰했습니다.
완화
ZIP 아카이브 내에 전달된 LNK 파일의 실행을 방지하고, Google/네이버 추적 도메인에서 유래된 광고 클릭 리디렉션 체인을 면밀히 조사합니다. AutoIt 활동 및 의심스러운 프로세스 생성(특히 비정상적인 PowerShell 또는 cmd.exe 실행)을 위해 엄격한 EDR 범위를 적용합니다. 악성 코드 배포 지점으로 사용을 제한하기 위해 워드프레스 인스턴스를 강화하고 정기적으로 패치하여 인프라 남용을 줄입니다.
대응
초기 LNK 실행 이벤트에 대한 경고를 설정하고 사용자 상호 작용에 의해 시작된 AutoIt.exe 실행을 플래그하며, 식별된 C2 도메인 및 IP로의 아웃바운드 연결을 모니터링합니다. 의심되는 엔드포인트를 격리하고, 범위 수립 및 근절 지원을 위해 AutoIt 스크립트, LNK 메타데이터 및 회수된 EndRAT 구성 요소를 포함한 포렌식 아티팩트를 수집합니다.
“graph TB %% Class Definitions classDef action fill:#99ccff %% Node definitions node_phishing[“<b>동작</b> – <b>T1566.001 스피어 피싱 첨부</b><br/><b>설명</b>: 악성 ZIP 파일이 포함된 스피어 피싱 이메일을 보냅니다.”] class node_phishing action node_user_execution[“<b>동작</b> – <b>T1204.001 사용자 실행 악성 링크</b><br/><b>설명</b>: 피해자가 리디렉션 URL(ad.doubleclick.net)을 클릭하여 악성 다운로드로 이어집니다.”] class node_user_execution action node_lnk_smuggling[“<b>동작</b> – <b>T1027.012 LNK 아이콘 은닉</b><br/><b>설명</b>: LNK 바로가기가 benign 아이콘 뒤에 악성 페이로드를 숨기고 AutoIt 스크립트를 실행합니다.”] class node_lnk_smuggling action node_autohotkey_autoit[“<b>동작</b> – <b>T1059.010 명령 및 스크립트 해석기 AutoHotKey 및 AutoIT</b><br/><b>설명</b>: PDF로 가장한 AutoIt 스크립트가 메모리 내에서 EndRAT 페이로드를 직접 로드합니다.”] class node_autohotkey_autoit action node_masquerade[“<b>동작</b> – <b>T1036.008 파일 형식 위장</b><br/><b>설명</b>: 악성 스크립트가 합법적으로 보이도록 .pdf 확장자로 제공됩니다.”] class node_masquerade action node_web_service[“<b>동작</b> – <b>T1102 웹 서비스</b><br/><b>설명</b>: 감염된 워드프레스 사이트가 페이로드를 호스팅하고 명령 및 제어 서버와 통신하는 데 사용됩니다.”] class node_web_service action %% 연결 node_phishing u002du002d>|leads_to| node_user_execution node_user_execution u002du002d>|leads_to| node_lnk_smuggling node_lnk_smuggling u002du002d>|leads_to| node_autohotkey_autoit node_autohotkey_autoit u002du002d>|leads_to| node_masquerade node_autohotkey_autoit u002du002d>|leads_to| node_web_service “
공격 흐름
탐지
Possible Malicious LNK File with Double Extension (via cmdline)
보기
AutoIT 바이너리가 비정상적인 위치에서 실행되었습니다 (via process_creation)
보기
IOC (DestinationIP) 탐지: Google Ads 리디렉션 메커니즘을 악용한 Operation Poseidon: 스피어 피싱 공격
보기
IOC (이메일) 탐지: Google Ads 리디렉션 메커니즘을 악용한 Operation Poseidon: 스피어 피싱 공격
보기
IOC (SourceIP) 탐지: Google Ads 리디렉션 메커니즘을 악용한 Operation Poseidon: 스피어 피싱 공격
보기
IOC (HashMd5) 탐지: Google Ads 리디렉션 메커니즘을 악용한 Operation Poseidon: 스피어 피싱 공격
보기
C2 통신을 위한 PowerShell을 통한 비정상 외부 연결 시도 [Windows PowerShell]
보기
LNK 파일 실행 후 악성 프로세스 실행 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: Telemetry & Baseline Pre-flight Check가 통과되어야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적대적 기술 (TTP)의 정확한 실행을 상세히 설명합니다. 명령 및 내러티브는 식별된 TTP를 직접 반영해야 하며 탐지 논리가 예상하는 정확한 텔레메트리를 생성하는 것을 목표로 해야 합니다.
-
공격 내러티브 & 커맨드:
공격자가 악성 바로가기(
malicious.lnk) 를 제작하여powershell.exe를 가리키며 페이로드를 다운로드하고 실행하는 인코딩된 명령을 포함합니다. 이 바로가기는 스피어 피싱 이메일을 통해 전달됩니다. 더블 클릭 시, Windows 탐색기는.lnk를 호출하여powershell.exe를 LNK 프로세스의 자식으로 생성합니다. 이 정확한 부모-자식 관계는 Sigma 규칙의execution_after_LNK조건을 만족합니다. -
회귀 테스트 스크립트:
# ------------------------------------------------------------- # 인코딩된 명령으로 PowerShell을 실행하는 악성 LNK 생성 # ------------------------------------------------------------- $WshShell = New-Object -ComObject WScript.Shell # LNK가 생성될 경로 (데스크탑) $lnkPath = "$Env:UserProfileDesktopmalicious.lnk" # 대상 실행 파일 $target = "$Env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe" # 예제 인코딩된 명령 (해로운 지표로서 텍스트 파일 생성) $plainCmd = "New-Item -Path $Env:Tempposeidon_test.txt -ItemType File -Force" $bytes = [System.Text.Encoding]::Unicode.GetBytes($plainCmd) $encoded = [Convert]::ToBase64String($bytes) $arguments = "-EncodedCommand $encoded" $shortcut = $WshShell.CreateShortcut($lnkPath) $shortcut.TargetPath = $target $shortcut.Arguments = $arguments $shortcut.Save() Write-Host "LNK가 $lnkPath에 생성되었습니다." # ------------------------------------------------------------- # 탐지 규칙을 트리거하기 위한 LNK 실행 # ------------------------------------------------------------- Start-Process -FilePath $lnkPath # ------------------------------------------------------------- # 선택 사항: SIEM 수집을 허용하기 위한 일시 중지 # ------------------------------------------------------------- Start-Sleep -Seconds 10 # ------------------------------------------------------------- # 정리 (표시자 파일, LNK 및 표시자 제거) # ------------------------------------------------------------- Remove-Item -Path "$Env:Tempposeidon_test.txt" -ErrorAction SilentlyContinue Remove-Item -Path $lnkPath -ErrorAction SilentlyContinue Write-Host "정리가 완료되었습니다." -
정리 명령: (위의 스크립트가 사용되지 않은 경우)
# 테스트 중 생성된 모든 지표 파일 제거 Remove-Item -Path "$Env:Tempposeidon_test.txt" -ErrorAction SilentlyContinue # 악성 바로가기 삭제 $lnkPath = "$Env:UserProfileDesktopmalicious.lnk" Remove-Item -Path $lnkPath -ErrorAction SilentlyContinue Write-Host "테스트 아티팩트가 제거되었습니다."