Kurzfassung: Living off the Land heißt, dass Angreifer signierte Windows-Bordmittel benutzen, um Werkzeuge nachzuladen (ATT&CK T1105) und Code auszuführen, ohne dass eigene Schadsoftware auffällt (T1218): certutil, bitsadmin, mshta, rundll32, regsvr32, msiexec und wmic. Erkennung: Event 4688 oder Sysmon 1 mit Befehlszeile, in der ein Bordmittel eine URL, einen ungewöhnlichen Pfad oder einen untypischen Elternprozess hat, dazu Sysmon 3 und 22 für die Verbindung und Proxy-Logs mit dem User-Agent des Bordmittels. Sigma-Regel, Test und Tuning unten.
LOLBins erkennen, also den Missbrauch von Living-off-the-Land-Binaries, ist die Erkennung, an der Antivirus und Hash-Listen scheitern, weil die ausgeführten Programme von Microsoft signiert sind und auf jedem System liegen. certutil lädt eine Datei aus dem Internet, mshta führt ein Skript von einer URL aus, rundll32 startet Code aus einer DLL im Temp-Verzeichnis: alles legitime Werkzeuge, alles Standardschritte in echten Vorfällen. Dieser Beitrag beschreibt, welche Bordmittel Angreifer bevorzugen, welche Logquellen den Missbrauch zeigen, wie sich legitime von bösartiger Nutzung an der Befehlszeile unterscheiden lässt, eine Sigma-Regel für den häufigsten Fall, den Test und das Tuning.
Was der Angreifer tut
Nach dem ersten Zugang braucht der Angreifer Werkzeuge im Netz, und er will sie holen, ohne dass ein Download-Prozess auffällt. Also nimmt er, was da ist. Das Projekt LOLBAS dokumentiert über 200 Windows-Programme, Skripte und Bibliotheken mit ihren Missbrauchsmöglichkeiten, sortiert nach Funktion: Download, Ausführung, Umgehung der Anwendungssteuerung, Persistenz, Abgreifen von Zugangsdaten. In der Praxis sind es sieben, die in den meisten Vorfällen vorkommen:
| Bordmittel | Legitimer Zweck | Missbrauch | Verdächtige Befehlszeile |
|---|---|---|---|
| certutil.exe | Zertifikatsverwaltung | Datei aus dem Internet laden, Base64 dekodieren | -urlcache -split -f http, -decode auf Dateien außerhalb von Zertifikatspfaden |
| bitsadmin.exe | Hintergrundübertragungen | Download mit Wiederaufnahme, auch als Persistenz über Jobs | /transfer mit URL, /addfile, /SetNotifyCmdLine |
| mshta.exe | HTML-Anwendungen | Skript von URL oder aus Inline-VBScript ausführen | URL als Argument, vbscript: oder javascript: in der Befehlszeile |
| rundll32.exe | DLL-Funktionen aufrufen | Code aus DLLs in Benutzer- oder Temp-Pfaden, Skripte über javascript: | DLL außerhalb von System- und Programmpfaden, keine Argumente, javascript: |
| regsvr32.exe | COM-Komponenten registrieren | Scriptlet von URL laden und ausführen, umgeht Anwendungssteuerung | /i:http, scrobj.dll, /s /u mit URL |
| msiexec.exe | Installationspakete | MSI von URL installieren, DLL laden | /i http, /q mit URL, /y mit DLL-Pfad |
| wmic.exe | WMI-Abfragen | Prozess auf entferntem System starten, XSL von URL ausführen | process call create, /node:, /format:http |
In ATT&CK ist der Download als T1105 (Ingress Tool Transfer) geführt, die Ausführung über signierte Programme als T1218 (System Binary Proxy Execution) mit Sub-Techniken für mshta, rundll32, regsvr32 und msiexec. Die Detection Strategies dazu sagen alle dasselbe: Es gibt kein bösartiges Programm, nur bösartige Argumente und bösartigen Kontext.
Welche Logquellen die Technik zeigen
| Quelle | Ereignis | Was du siehst |
|---|---|---|
| Security-Log | 4688 mit Befehlszeile | Das Bordmittel mit seinen Argumenten und dem Elternprozess. Ohne die Richtlinie für die Befehlszeile ist die Quelle für diese Technik wertlos. |
| Sysmon | 1, Prozess erstellt | Dasselbe mit Hash, Signatur, Elternkette und aktuellem Verzeichnis; zeigt, dass ein signiertes Programm aus einem ungewöhnlichen Kontext läuft. |
| Sysmon | 3, Netzwerkverbindung | certutil oder mshta mit ausgehender Verbindung; diese Programme haben im Normalbetrieb selten Netzwerkverkehr. |
| Sysmon | 22, DNS-Anfrage | Die aufgelöste Domain, dem Prozess zugeordnet. |
| Sysmon | 11, Datei erstellt | Die geladene Datei, ihr Pfad und der schreibende Prozess. |
| Proxy oder Firewall | HTTP-Anfragen | User-Agent-Kennungen wie „Microsoft-CryptoAPI“ für certutil oder „Microsoft BITS“ für bitsadmin, die ein Browser nie sendet. Zeek zeigt dasselbe im http.log. |
Das Muster im Log
Vier Fragen trennen Missbrauch von Verwaltung. Erstens die Argumente: Ein Bordmittel mit einer URL in der Befehlszeile ist in den meisten Umgebungen selten, bei mshta, regsvr32 und rundll32 fast immer verdächtig, bei certutil und bitsadmin nur dann legitim, wenn die Quelle intern ist. Zweitens die Pfade: rundll32 mit einer DLL aus dem Benutzerprofil, dem Temp-Verzeichnis oder einer Netzwerkfreigabe hat keinen legitimen Grund; msiexec mit einem Paket aus dem Download-Ordner hat einen, aber einen prüfbaren. Drittens der Elternprozess: Office, Browser, PDF-Reader und Skript-Hosts starten diese Programme im Normalbetrieb nicht. Viertens das Netz: Ein Prozess, der nie Verbindungen aufbauen sollte, baut eine auf, sichtbar in Sysmon 3, oder ein User-Agent, der kein Browser ist, taucht im Proxy auf. Eine Regel pro Bordmittel mit diesen vier Fragen als Selektion ist tragfähiger als eine Regel auf den Programmnamen; auch hier gilt, wie im Beitrag zum Threat Hunting beschrieben: Was in 30 Tagen auf der Flotte nur dreimal vorkommt, schaut man sich an.
Die Sigma-Regel
Der häufigste Fall zuerst: ein Bordmittel, das eine Datei aus dem Internet lädt. Die Regel deckt certutil, bitsadmin, mshta, regsvr32 und msiexec mit URL in der Befehlszeile ab und nimmt interne Quellen aus.
title: LOLBin Download From External URL
id: 5e8b2c1f-9a3d-4f7e-b6c4-1d0a2e9f8b7c
status: test
description: Signiertes Windows-Bordmittel laedt Inhalte von einer externen URL
oder fuehrt sie aus.
references:
- https://attack.mitre.org/techniques/T1105/
- https://attack.mitre.org/techniques/T1218/
- https://lolbas-project.github.io/
author: Blue Team
date: 2026-09-13
tags:
- attack.command_and_control
- attack.t1105
- attack.defense_evasion
- attack.t1218
logsource:
category: process_creation
product: windows
detection:
selection_certutil:
Image|endswith: '\certutil.exe'
CommandLine|contains|all:
- 'urlcache'
- 'http'
selection_bitsadmin:
Image|endswith: '\bitsadmin.exe'
CommandLine|contains:
- '/transfer'
- '/addfile'
CommandLine|contains: 'http'
selection_mshta:
Image|endswith: '\mshta.exe'
CommandLine|contains:
- 'http'
- 'vbscript:'
- 'javascript:'
selection_regsvr32:
Image|endswith: '\regsvr32.exe'
CommandLine|contains:
- '/i:http'
- 'scrobj'
selection_msiexec:
Image|endswith: '\msiexec.exe'
CommandLine|contains: 'http'
filter_internal:
CommandLine|contains:
- 'http://intranet.'
- 'https://softwareverteilung.'
- 'http://10.'
condition: 1 of selection_* and not filter_internal
falsepositives:
- Softwareverteilung und Installationsskripte mit externen Quellen; nach Quelle und Elternprozess ausnehmen
level: high
Die Bedingung 1 of selection_* macht aus fünf Selektionen eine Regel, die trifft, sobald eine davon passt. Die Community-Sammlung hat für jedes der Bordmittel eigene Regeln mit feinerer Abstufung; wer sie einsetzt, bekommt mehr Treffer und mehr Tuning-Arbeit. Für rundll32 und wmic braucht es eigene Regeln, weil ihr Missbrauch nicht an einer URL hängt, sondern an Pfaden und Argumenten; das Beispiel für rundll32: DLL-Pfad enthält \Users\, \Temp\ oder \\, oder die Befehlszeile enthält javascript:. Wie aus dieser Regel eine Abfrage im eigenen SIEM wird, steht im Beitrag zu Sigma-Regeln.
Der Test
Atomic Red Team hat für T1105 Tests mit certutil, bitsadmin und anderen, für T1218 je einen Satz pro Sub-Technik. Im Homelab genügt für den ersten Durchlauf ein certutil-Aufruf, der eine Textdatei von einer Testadresse lädt, und ein mshta-Aufruf mit einer harmlosen HTA-Datei von derselben Adresse. Erwartet werden 4688 und Sysmon 1 mit der URL in der Befehlszeile, Sysmon 22 mit der aufgelösten Domain, Sysmon 3 mit der Verbindung aus certutil.exe, Sysmon 11 mit der geschriebenen Datei und im Proxy oder http.log der User-Agent Microsoft-CryptoAPI. Wer nur 4688 ohne Befehlszeile sieht, hat die Richtlinie nicht gesetzt, und das ist das Testergebnis. Der zweite Durchlauf startet dieselben Aufrufe aus einem Word-Makro, um den Elternprozess in der Regel zu prüfen. Ergebnis und Datum wandern in den Navigator.
Fehlalarme und Tuning
- Softwareverteilung. Installationsskripte nutzen bitsadmin und msiexec mit URLs, oft externen. Sie kommen aus bekannten Elternprozessen wie dem Client der Verteilungslösung und von bekannten Quellen; beides wird als Filter gepflegt, nicht das Bordmittel als Ganzes.
- certutil mit Zertifikatsquellen. Systeme, die Sperrlisten oder Zwischenzertifikate per certutil abrufen, erzeugen Treffer mit -urlcache auf Zertifikats-URLs. Filter auf die Dateiendungen .crl und .crt und auf die bekannten Zertifikatsanbieter.
- rundll32 ohne Argumente. Windows selbst startet rundll32 in vielen Situationen ohne sichtbare Argumente, etwa für Systemsteuerungselemente. Die Regel auf fehlende Argumente wird auf Elternprozesse außerhalb von explorer.exe und svchost.exe eingeschränkt.
- Administratoren mit Gewohnheiten. Manche laden Werkzeuge per certutil, weil es schneller ist als der Browser. Das ist kein Fehlalarm, sondern eine Verhaltensregel: Wer die Regel aktiviert, sagt der Administration, dass diese Aufrufe ab jetzt einen Alarm erzeugen und einen Rückruf nach sich ziehen.
- Die Gegenmaßnahme, die die Regel entlastet. Anwendungssteuerung, die mshta, regsvr32 mit Scriptlets und wmic für Standardbenutzer blockiert, und die Regeln zur Verringerung der Angriffsfläche in Windows Defender, die Office das Starten von Kindprozessen verbieten. Danach sind die verbleibenden Treffer fast alle echt, und die Regel kann auf Stufe kritisch.
Fazit
Living off the Land ist die Antwort der Angreifer auf Antivirus, und die Antwort der Verteidiger ist die Befehlszeile: Nicht das Programm ist verdächtig, sondern seine Argumente, seine Pfade, sein Elternprozess und sein Netzwerkverkehr. Wer 4688 mit Befehlszeile und Sysmon hat, sieht jeden dieser Aufrufe; wer die vier Fragen als Regeln formuliert und die Verwaltung als Filter pflegt, hat die häufigste Nachlade-Technik abgedeckt. Zusammen mit der PowerShell-Erkennung deckt das den Großteil dessen ab, was nach dem ersten Klick auf einem Client passiert, und es ist der Punkt, an dem ein Blue Team den Angreifer sieht, bevor er sich bewegt.