winenum.py

Sa 02 Januar 2016 by Christoph Bleß Tags Python / windows privilege escalation

winenum ist ein Tool zur Automatisierung einiger Privilege Escalation Aufgaben. Inspieriert durch den Artikel Windows Privilege Escalation Fundamentals wurden einige dieser Kommandos mit Hilfe von winenum automatisiert. Da auf den meisten Windows-Systemen vermutlich kein Python-Interpreter verfügbar ist, kann mit Hilfe von pyinstaller eine exe erstellt werden, die dann auf einem Windows-System lauffähig ist. Ein Kompilieren einer solchen eigenständigen Anwendung mit pyinstaller, kann mit folgendem Befehl erfolgen:

pyinstaller winenum.py --onefile

Da alle Kommandos, die ausgeführt werden sollen, in Listen (default_cmds, wmic_cmds, password_cmds) gespeichert werden, lassen sich neue Kommandos einfach hinzufügen. Hierzu muss lediglich ein neuer Befehl als String in einer dieser Listen gespeichert werden.

# list of default commands which will always be executed
default_cmds = [
    "hostname",
    "systeminfo",
    "set",
    "arp -a",
    "ipconfig /all",
    "ipconfig /displaydns",
    "route print",
    "netstat -ano",
    "net user",
    ...
]

Kommandos in der Liste default_cmds werden immer ausgeführt, Kommandos aus den Listen wmic_cmds und password_cmds hingegen nur wenn der Nutzer dieses per Parameter aktiviert. Zum aktivieren der wmic_cmds können die Parameter -w oder --wmic-cmds und zur Aktivierung der password_cmds die Optionen -p oder --password-cmds genutzt werden. Sollen beide Aktiviert werden, kann dieses auch durch Angabe der Option -a bzw. --all-cmds geschehen. Die Option -f oder --file kann dazu genutzt werden eine Ausgabedatei zu spezifizieren, in der dann die Ausgeführten Kommandos und deren Ausgaben gespeichert werden.

Eine Ausführung des Tools könnte somit mit dem folgenden Kommandos erfolgen:

python winenum.py -a

Falls eine mit pyinstaller vorkompilierte Version der Datei vorliegt kann diese wie folgt gestartet werden.

winenum -a