BotHelper RAT, 라이브 화면 감시를 위한 암호화된 페이로드 제공
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
다단계 Windows 감염 체인은 네이티브 스테이저를 사용하여 암호화된 페이로드를 검색하고 궁극적으로 이전에 문서화되지 않은 .NET 원격 액세스 도구인 BotHelper RAT을 배포합니다. 이 RAT는 실시간 화면 감시, 클립보드 모니터링, 셸 명령 실행 및 추가 플러그인 제공을 지원합니다. 공격은 메모리 내의 복호화 및 합법적인 Microsoft Edge 프로세스로 위장하여 은밀하게 설계되었습니다.
조사
포인트 와일드는 감염 체인을 분석하고 호스트를 프로파일링한 후 지정된 URL에서 암호화된 파일을 다운로드하는 네이티브 x64 스테이저를 식별했습니다. 조사 결과, 스테이저가 TLS 인증서 검증을 비활성화하고 디스크 기반 탐지를 줄이기 위해 다음 단계 페이로드를 메모리에서 완전히 복호화하는 것으로 나타났습니다. BotHelper RAT은 예약된 작업을 통해 지속성을 구축하고 안티멀웨어 스캔 인터페이스(AMSI)를 패치합니다.
완화 방안
완화 방안은 초기 스테이저와 관련된 C2 인프라의 차단을 우선해야 합니다. 보안 제어는 허가되지 않은 예약 작업 생성 및 의심스러운 프로세스 위장을 감지해야 하며, 여기에는 msedge_proxy.exe 가 Temp 디렉터리에서 실행되는 경우를 포함해야 합니다. 조직은 또한 AMSI 패치 시도와 이전에 알려지지 않았거나 신뢰할 수 없는 도메인으로의 비정상적인 아웃바운드 TLS 연결을 모니터링해야 합니다.
반응
BotHelper RAT 활동이 감지되면 추가적인 명령 실행과 데이터 탈취를 중지하기 위해 영향을 받은 엔드포인트를 격리하십시오. 사용자의 임시 디렉터리에서 악성 예약 작업 및 드롭된 파일을 제거하십시오. 메모리 포렌식을 수행하여 추가적인 메모리 내 구성 요소를 식별하고 클립보드 절도, 실시간 화면 모니터링, 캡처된 스크린샷의 증거를 조사하십시오.
공격 흐름
탐지
Schtasks 의심스러운 디렉토리/바이너리/스크립트를 가리킴 (cmdline을 통해)
의심스러운 예약 작업 (감사를 통해)
비정상적인 최상위 도메인(TLD) DNS 요청에 의한 의심스러운 명령 및 제어 (dns를 통해)
탐지할 IOCs (HashSha256): BotHelper RAT: 암호화된 페이로드에서 실시간 화면 감시까지
탐지할 IOCs (SourceIP): BotHelper RAT: 암호화된 페이로드에서 실시간 화면 감시까지
탐지할 IOCs (DestinationIP): BotHelper RAT: 암호화된 페이로드에서 실시간 화면 감시까지
BotHelper RAT 페이로드의 XOR 루프 복호화 탐지 [Windows Sysmon]
BotHelper RAT 지속성을 위한 예약 작업 탐지 [Windows 레지스트리 이벤트]
BotHelper RAT 및 msedge_proxy.exe 실행 탐지 [Windows 프로세스 생성]
시뮬레이션 실행
-
공격 내러티브 및 명령: 공격자는 초기 접근 권한을 얻었고 이제 입지를 유지하려고 합니다. 항상 작동 중인 비콘을 찾는 보안 도구의 탐지를 피하기 위해 그들은
schtasks.exe유틸리티를 사용하여 악성 페이로드를 예약하기로 결정했습니다. BotHelper RAT 패턴을 따르면서, 그들은 작업을 30분마다 트리거되도록 구성합니다. 이는 악성 코드가 대부분 시간을 “잠재” 상태로 유지함으로써 네트워크 트래픽 및 프로세스 모니터링에서 발자국을 줄이고, C2 서버와의 연결을 자주 재수립하도록 보장합니다. -
회귀 테스트 스크립트:
# BotHelper RAT 지속성 메커니즘을 모방하는 시뮬레이션 스크립트 $taskName = "BotHelperUpdater" $payload = "C:WindowsSystem32calc.exe" # RAT 페이로드의 안전한 프록시로 계산기를 사용 Write-Host "[+] BotHelper RAT 지속성을 시뮬레이션 중..." # 이 명령은 탐지 로직과 일치하도록 설계됨: /create, /sc, 그리고 MINUTE=30 schtasks /create /tn "$taskName" /tr "$payload" /sc minute /mo 30 /f if ($LASTEXITCODE -eq 0) { Write-Host "[SUCCESS] 작업이 생성되었습니다. 탐지를 위해 SIEM을 확인하십시오." } else { Write-Host "[FAILURE] 작업 생성에 실패했습니다." } -
정리 명령:
# 시뮬레이션된 지속성 작업 제거 schtasks /delete /tn "BotHelperUpdater" /f Write-Host "[+] 정리 완료. 시뮬레이션된 작업이 제거되었습니다."