BITTER, PapRAT를 통해 맬웨어 무기 확장
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
남아시아 사이버 첩보 그룹 BITTER는 PapRAT와 WmRAT라는 맞춤형 원격 액세스 트로이 목마(RAT)를 사용하는 캠페인을 진행하고 있습니다. 공격은 LNK 파일, VHDX 이미지, MSI 설치 프로그램을 통한 다중 감염 체인을 사용하여 지속성을 확립하고 명령을 실행합니다. 이 악성코드는 C++ 구현에서 보다 강력한 Rust 기반 변종으로 진화했습니다.
조사
FortiGuard Labs는 남아시아 전역의 조직을 대상으로 하는 세 가지의 명확한 공격 체인을 분석했습니다. 조사는 ftp.exe 및 curl과 같은 LOLBins 남용과 보안 제어를 회피하기 위해 설계된 다양한 스테이징 기법을 확인했습니다. 악성코드 분석은 XOR로 인코딩된 C2 구성 및 C++ 임플란트에서 새로운 Rust 기반 악성코드로의 전환도 발견했습니다.
완화
조직은 예상치 못한 LNK 파일, URL 단축 정보, 디스크 이미지 및 MSI 패키지를 처리할 때 주의해야 합니다. 보안팀은 의심스러운 실행 체인, 일정한 작업 생성 및 비정상적인 아웃바운드 C2 트래픽을 탐지하는 제어를 구현해야 합니다. 피싱 유인책 및 악성 첨부 파일에 대한 사용자 인식 교육도 필수적입니다.
대응
악의적인 활동이 감지되면 가로 이동 및 추가 명령 실행을 방지하기 위해 손상된 호스트를 격리합니다. 무단 변경을 위해 예약된 작업 및 MSI 설치 로그를 검토하십시오. 다음과 같은 지속적인 아티팩트의 포렌식 분석을 수행합니다. err.log or talk.log 및 식별되거나 의심스러운 C2 도메인에 대한 아웃바운드 네트워크 트래픽을 검사합니다.
공격 흐름
탐지
지속성용 Schtasks 또는 AT 사용 가능성 (cmdline 통해서)
Fsutil 유틸리티의 의심스러운 실행 [영향] (cmdline 통해서)
안티바이러스 또는 방화벽 소프트웨어 열거 가능성 (프로세스 생성 통해서)
의심스러운 디렉토리 / 바이너리 / 스크립트를 가리키는 Schtasks (cmdline 통해서)
캐럿 삽입을 통한 명령줄 난독화 가능성 (cmdline 통해서)
비정상 확장과 함께 FTP 스크립트 실행 가능성 (cmdline 통해서)
쉘 프로세스에 의해 MsiExec 생성됨 (cmdline 통해서)
LOLBAS Conhost (cmdline 통해서)
의심스러운 CURL 사용 (cmdline 통해서)
Virtual Hard Disk 파일이 생성됨 (파일 이벤트 통해서)
탐지를 위한 IOC(해시Sha256): BITTER는 PapRAT로 무기고를 확장합니다
탐지를 위한 IOC(출발지 IP): BITTER는 PapRAT로 무기고를 확장합니다
탐지를 위한 IOC(목적지 IP): BITTER는 PapRAT로 무기고를 확장합니다
지속적 연락을 위한 예약된 작업 생성 탐지 [Windows 시스템]
PapRAT Rust 변종 PowerShell 명령 실행 탐지 [Windows Powershell]
Windows 유틸리티 및 스크립트를 남용한 악성 LNK 실행 [Windows 프로세스 생성]
시뮬레이션 실행
-
공격 서술 및 명령: 공격자는 피해자 머신에 지속성을 확보하여 악성 페이로드가 30분마다 실행되어 Command and Control (C2) 인프라에 지속적으로 연결되도록 하려 합니다. 합법적인 시스템 활동에 녹아들고 간단한 시그니처 기반 탐지를 피하기 위해 공격자는 네이티브 Windows
schtasks.exe유틸리티를 사용합니다. 그들은 기만적인 작업명을 선택하여,MicrosoftUpdatesupdates11678이라는 이름으로 진짜 Windows 업데이트 서비스처럼 보이게 하여 작업 스케줄러 라이브러리에서 숨어 있습니다. -
회귀 시험 스크립트:
# 특정 탐지 규칙을 트리거하는 시뮬레이션 스크립트 # 이 스크립트는 BITTER 그룹의 지속성 메커니즘을 모방합니다. $TaskName = "MicrosoftUpdatesupdates11678" $Command = "cmd.exe /c echo 'C2 Beaconing Simulation'" Write-Host "[+] 예약된 작업 생성 시도 중: $TaskName" -ForegroundColor Cyan # 탐지 논리와 정확히 일치하는 명령 실행 # 논리는 다음을 찾습니다: schtasks.exe + /create + /sc minute + /mo 30 + 작업 이름 schtasks /create /sc minute /mo 30 /tn "$TaskName" /tr "$Command" /f if ($LASTEXITCODE -eq 0) { Write-Host "[!] 성공: 예약된 작업이 생성되었습니다. 경고를 위해 SIEM을 확인하십시오." -ForegroundColor Green } else { Write-Host "[-] 실패: 작업을 생성할 수 없습니다. 관리자 권한으로 실행 중인지 확인하십시오." -ForegroundColor Red } -
정리 명령:
# 시뮬레이션된 지속성을 제거하는 정리 스크립트 $TaskName = "MicrosoftUpdatesupdates11678" Write-Host "[+] 예약된 작업 제거 중: $TaskName" -ForegroundColor Cyan schtasks /delete /tn "$TaskName" /f if ($LASTEXITCODE -eq 0) { Write-Host "[!] 정리 성공적입니다." -ForegroundColor Green } else { Write-Host "[-] 정리 실패: 수동 제거가 필요합니다." -ForegroundColor Red }