ClickFix 캠페인, 아마존 유인을 사용하여 악성 소프트웨어 배포
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
위협 행위자들이 ‘아마존 비즈니스’에 대한 스폰서된 구글 검색 결과를 악용하여 사용자를 위조된 아마존 로그인 페이지로 리디렉션하고 있습니다. 이 사이트는 ClickFix라는 사회공학 기법을 사용하여 피해자가 Windows 실행 대화 상자를 통해 명령을 실행하도록 속입니다. 그 명령은 구시대적인 finger 유틸리티를 악용하여 Doina, Lumma Stealer, NetSupport RMM을 포함한 다단계 멀웨어 체인을 다운로드하고 실행합니다.
조사
Huntress는 아마존 테마의 ClickFix 캠페인과 관련된 여러 사건들을 조사했습니다. 분석가들은 감염 체인을 역설계하고 finger weaponized .plan 파일을 검색하기 위한 LOLBIN으로 악용된 유틸리티를 확인했습니다. 조사는 IronPython, Doina RAT, 그리고 최종적으로 Node.js 기반 로더를 통한 Lumma Stealer의 배포를 추적했습니다.
완화 방안
주요 방어책은 사용자가 터미널 명령을 실행하도록 지시하는 가짜 CAPTCHA 프롬프트에 대한 인식입니다. 조직은 사용자가 필요하지 않을 경우 관리되는 엔드포인트 보안 제어를 통해 Windows 실행 대화 상자를 비활성화하는 것을 고려해야 합니다. HTTP 포트 79를 통해 비정상적인 트래픽 모니터링 및 웹 로그에서 멀버타이징 지표를 찾으면 조기 탐지에 도움이 됩니다. finger and malvertising indicators in web logs can also support early detection.
대응
이 활동이 감지되면 추가 데이터 유출이나 측면 이동을 방지하기 위해 감염된 엔드포인트를 격리하십시오. 식별된 BBQ 테마의 C2 도메인과 악성 IP 주소를 검토하고 차단하십시오. NetSupport와 같은 비인가 RMM 소프트웨어와 비표준 위치(C:ProgramData)에서 실행되는 의심스러운 Node.js 프로세스를 철저히 검색하십시오. C:ProgramData.
공격 흐름
이 부분은 여전히 업데이트 중입니다.
탐지
파워셸을 통한 .NET 의심 메서드 호출 (powershell 사용)
비정상적인 위치에서 실행되는 NodeJS 바이너리 (cmdline 사용)
LOLBAS Finger (cmdline 사용)
LOLBAS Conhost (cmdline 사용)
의심스러운 CURL 사용 (cmdline 사용)
IOC (HashSha256) 탐지: 아마존 테마의 ClickFix 캠페인이 제공하는 Finger-Licking 멀웨어
IOC (SourceIP) 탐지: 아마존 테마의 ClickFix 캠페인이 제공하는 Finger-Licking 멀웨어
IOC (DestinationIP) 탐지: 아마존 테마의 ClickFix 캠페인이 제공하는 Finger-Licking 멀웨어
포트 79/tcp 탐지 및 NetSupport 클라이언트 통신을 위한 비표준 포트 탐지 [윈도우 네트워크 연결]
멀웨어 스크립트 실행을 위한 Finger 유틸리티 및 IronPython 실행 [윈도우 프로세스 생성]
시뮬레이션 실행
-
공격 내러티브 및 명령어: 공격자는 초기 접근을 획득하고 지속성 및 명령 및 제어 (C2)를 확립하려고 시도하고 있습니다. 일반적인 관리 트래픽과 혼합되고 알려진 프로토콜 취약점을 악용하기 위해 그들은 파이썬 스크립트를 사용하여 포트 79 (Finger 프로토콜)에서 연결을 시작합니다. 동시에, 그들은 도구를 전송하기 위해 NetSupport 클라이언트 인스턴스를 사용하여 포트 725에서 알려진 악성 IP (172.148.201.106)를 대상으로 백도어를 유지하려고 합니다.
-
회귀 테스트 스크립트:
# 탐지 규칙을 트리거하는 시뮬레이션 스크립트 # 요구 사항: 대상에 Python이 설치되어 있어야 함 Write-Host "[+] 시뮬레이션 시작..." # 1. 트리거 선택 하나: 포트 79로의 연결 Write-Host "[+] 포트 79 (Finger) 연결 트리거 중..." python -c "import socket; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect(('127.0.0.1', 79)); s.close()" # 2. 트리거 선택 둘: 포트 725에서 172.148.201.106으로의 연결 Write-Host "[+] NetSupport (IP: 172.148.201.106, 포트: 725) 연결 트리거 중..." python -c "import socket; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect(('172.148.201.106', 725)); s.close()" Write-Host "[+] 시뮬레이션 완료." -
정리 명령:
# 이 스크립트에 의해 생성된 지속적인 아티팩트는 없음; # 그러나 임시 파이썬 프로세스가 종료되었는지 확인하십시오. Stop-Process -Name "python" -ErrorAction SilentlyContinue