구직 제안 위장: 두 개의 정교한 다단계 공격 체인을 숨기다
Detection stack
- AIDR
- Alert
- ETL
- Query
개요
직업을 주제로 한 소셜 엔지니어링을 사용하여 악성 소프트웨어를 전달하는 두 개의 개별 다단계 공격 체인이 있습니다. 캠페인 1은 ZIP 아카이브를 통해 DLL 사이드 로딩과 여러 지속성 메커니즘을 사용하는 Python 기반 로더로 PureRAT을 배포합니다. 캠페인 2는 LNK 파일을 전달하여 mshta.exe를 실행하여 맞춤형 메모리 내 악성 코드를 가져오고 실행합니다.
조사
조사 결과 캠페인 1이 PXA Stealer 작전에 연계된 베트남 연계 범죄 그룹과 인프라 겹침을 보였음을 밝혔습니다. 캠페인 2는 식별된 공공 겹침이 없는 맞춤형 캠페인으로 보였습니다. 두 공격 체인은 AMSI 및 ETW 패치, 반사적인 코드 로딩을 포함한 고급 회피 기술을 사용합니다.
완화
방어자는 사용자 쓰기 가능 디렉토리에서 서명되지 않은 DLL을 로드하는 서명된 Microsoft 바이너리를 모니터링하고 mshta.exe 원격 URL과 관련된 실행을 감지해야 합니다. 비표준 고 포트에 대한 송신 필터링과 COM 기반 예약 작업 생성에 대한 감사는 이러한 감염 체인을 방해하는 데 도움이 될 수 있습니다. 메모리 무결성 모니터링 강화도 중요합니다.
대응
악성 활동이 탐지될 경우, WMI 구독 및 COM 하이재킹을 포함한 다중 지속성 메커니즘을 고려하여 복구해야 합니다. 단일 파일이나 예약 작업을 제거하는 것만으로는 자기 복구 행동을 가진 캠페인 1을 완전히 제거하지 못할 수 있습니다. 대응자는 준비 디렉토리를 조사하고 식별된 모든 지속성 아티팩트를 포괄적으로 제거해야 합니다.
공격 흐름
이 부분은 여전히 업데이트 중입니다.
탐지
의심스러운 폴더에서의 Python 실행 (cmdline을 통해)
짧은 파일 이름 (cmdline을 통해)
감지된 명령과 관련한 의심스러운 LOLBAS MSHTA 방어 회피 행동 (process_creation을 통해)
의심스러운 CURL 사용 (cmdline을 통해)
비정상적인 최상위 도메인(TLD) DNS 요청에 의한 의심스러운 명령 및 제어 (dns를 통해)
악성 소프트웨어가 확인됐습니다: 두 다단계 공격 체인 내 취업 제안에 숨겨진 ‘귀하의 지원서가 접수되었습니다’ 감지용 IOC (HashSha256)
악성 소프트웨어가 확인됐습니다: 두 다단계 공격 체인 내 취업 제안에 숨겨진 ‘귀하의 지원서가 접수되었습니다’ 감지용 IOC (SourceIP)
악성 소프트웨어가 확인됐습니다: 두 다단계 공격 체인 내 취업 제안에 숨겨진 ‘귀하의 지원서가 접수되었습니다’ 감지용 IOC (DestinationIP)
합법적인 바이너리 이름 변경을 통한 DLL 사이드 로딩 탐지 [Windows 이미지 로드]
비정상적인 TLS 세션 및 잠재적인 C2 통신을 위한 자체 서명 인증서 탐지 [Windows 네트워크 연결]
숨겨진 파일 및 Zone.Identifier 삭제 [Windows 파일 이벤트]
사용자 디렉토리에서 악성 바이너리 실행 탐지 [Windows 프로세스 생성]
시뮬레이션 실행
-
공격 내러티브 및 명령: 공격자는 초기 접근을 얻었고, 평범한 생산성 응용 프로그램으로 위장하여 탐지되지 않고 악성 페이로드를 실행하려고 합니다. 공격자는 합법적인
mshta.exe를System32에서 로컬 폴더로 복사하고WinWord.exe로 이름을 변경합니다. 그런 다음 같은 폴더에 악성 DLL을 배치합니다.WinWord.exe(이름 변경된 MSHTA)이 실행되면 시스템의 이미지 로드 원격 측정은이미지파일 이름이WinWord.exe이지만원본 파일 이름메타데이터가mshta.exe로 나타나는 프로세스를 기록합니다. 이 불일치가 탐지 규칙의 특정 트리거입니다. -
회귀 테스트 스크립트:
# 이름 변경을 통한 DLL 사이드 로딩 시뮬레이션 $workDir = "$env:TEMPSimulation_SideLoad" New-Item -ItemType Directory -Force -Path $workDir Set-Location $workDir # 1. 합법적인 바이너리 복사 Copy-Item "C:WindowsSystem32mshta.exe" -Destination "WinWord.exe" # 2. 프로세스가 실제로 '로딩'할 수 있는 더미/양성 DLL 생성 # (참고: 실제 공격에서는, 이것이 악성 DLL입니다. # 원격 측정을 촉발하기 위해, 우리는 이름 변경된 바이너리가 실행되도록 해야 합니다.) # 3. 이름 변경된 바이너리 실행 # 이 작업은 이름 변경된 파일의 이미지 로드를 위한 Sysmon 이벤트 ID 7을 트리거합니다 Write-Host "[*] 탐지 트리거를 위한 이름 변경 바이너리 실행 중..." Start-Process ".WinWord.exe" -ArgumentList "javascript:alert('Attack Triggered');close();" -Wait Write-Host "[+] 시뮬레이션 완료. 이미지 로드 불일치를 위한 SIEM 확인." -
정리 명령:
# 시뮬레이션 파일 정리 $workDir = "$env:TEMPSimulation_SideLoad" if (Test-Path $workDir) { Remove-Item -Recurse -Force $workDir Write-Host "[+] 정리 성공." } else { Write-Host "[-] 정리 실패: 디렉토리를 찾을 수 없음." }