
Linux-Post-Exploitation-Enumeration zur Rechteausweitung
Enumy ist eine ultraschnelle portable ausführbare Datei, die Sie während eines Pentests oder CTF in der Post-Exploitation-Phase auf das Ziel-Linux-System werfen. Die Ausführung von enumy untersucht die Box auf allgemeine Sicherheitslücken.
Sie können die endgültige Binärdatei aus dem Tab x86 oder x64 des Release herunterladen. Statisch mit musl gelinkt Übertragen Sie die endgültige enumy-Binärdatei auf das Zielsystem.
./enumy
$ ./enumy64 -h
▄█▀─▄▄▄▄▄▄▄─▀█▄ _____
▀█████████████▀ | __|___ _ _ _____ _ _
█▄███▄█ | __| | | | | | |
█████ |_____|_|_|___|_|_|_|_ |
█▀█▀█ |___|
https://github.com/luke-goddard/enumy
Enumy - Wird verwendet, um die Zielumgebung zu enumerieren & nach
allgemeinen Sicherheitslücken und Hotspots zu suchen
----------------------------------------------------------------------
Ausgabe
-o <loc> Ergebnisse an diesen Ort ausgeben (Standard: enumy.json)
Dateisystem durchsuchen
-i <loc> Dateien in diesem Verzeichnis IGNORIEREN (nützlich für Netzwerkfreigaben)
-w <loc> Nur Dateien in diesem Verzeichnis DURCHSUCHEN (nützlich für die Entwicklung)
Scan-Optionen
-f Vollständige Scans ausführen (CPU-intensive Scans aktiviert)
-t <num> THREADS (Standard: 4)
Druckoptionen
-a Alle Sicherheits-AUDIT-Probleme auf dem Bildschirm ausgeben (während eines CTF wahrscheinlich nicht hilfreich)
Probleme werden IMMER in den Ergebnisdateien protokolliert, unabhängig von diesem Flag.
-d <1|2> DEBUG-Modus ausgeben (1 niedrig, 2 hoch), um Fehler auf dem Bildschirm anzuzeigen.
-g <H|M|L> Werte GRÖSSER ALS oder gleich hoch, mittel & niedrig auf dem Bildschirm ausgeben
-p <H|M|L|I> Hoch, mittel, niedrig & Info-Probleme NICHT auf dem Bildschirm AUSGEBEN (siehe unten für ein Beispiel)
-m 1-100 MAXIMALE Anzahl von Problemen mit demselben Namen, die auf dem Bildschirm ausgegeben werden (Standard: unbegrenzt)
Um während der Entwicklung zu kompilieren, werden nur make und die libcap-Bibliothek benötigt.
sudo apt-get install libcap-dev
make
Um die glibc-Abhängigkeit zu entfernen und alle Bibliotheken statisch zu linken/mit musl zu kompilieren, gehen Sie wie folgt vor. Beachten Sie, dass Sie dazu Docker installiert haben müssen, um die Alpine-Build-Umgebung zu erstellen.
./build.sh 64bit
./build.sh 32bit
./build.sh all
cd output

Unten folgt die ständig wachsende Liste der implementierten Scans.
Hinweis: Um Ergebnisse, die mit ❌ markiert sind, auszugeben, aktivieren Sie den Audit-Modus mit der -a-Flagge.
Dieser Scan überprüft die Kernelversionen, um festzustellen, ob sie mit Kernelversionen übereinstimmen, für die bekannte Exploits existieren.
Die Idee dieses Scans ist es, das System zu durchsuchen und nach SUID/GUID-Binärdateien zu suchen, die abnormal sind oder schwache Berechtigungen haben, die ausgenutzt werden können.
Seit kurzem unterstützt der Linux-Kernel Capabilities, dies ist die bevorzugte Methode, um einer Datei eine Teilmenge der Root-Rechte zu geben, um Risiken zu minimieren. Obwohl dies eine viel sicherere Methode ist, ist es durchaus möglich, dass Sie, wenn Sie das Glück haben, abnormale Capabilities auf einer Datei zu finden, das ausführbare Programm ausnutzen können, um höhere Zugriffe zu erlangen. Enumy überprüft die Capabilities, die auf allen ausführbaren Dateien im System gesetzt sind.
Dies ist ein eher generischer Scan, der versucht, eine Datei basierend auf ihrem Inhalt, ihrer Dateierweiterung und ihrem Dateinamen zu kategorisieren. Enumy sucht nach Dateien wie privaten Schlüsseln, Passwörtern und Backup-Dateien.
Coredump-Dateien sind eine Art ELF-Datei, die den Adressraum eines Prozesses enthält, wenn das Programm unerwartet beendet wird. Stellen Sie sich nun vor, der Speicher dieses Prozesses wäre lesbar und enthielte sensible Informationen. Oder noch aufregender: Dieser Coredump könnte für ein intern entwickeltes Tool sein, das einen Segfault hatte, sodass Sie eine Zero-Day-Schwachstelle entwickeln können.
Einige Dateien sollten niemals das SUID-Bit gesetzt haben. Es ist recht häufig, dass ein fauler Systemadministrator einer Datei wie docker, ionice, hexdump SUID gibt, damit ein Bash-Skript funktioniert oder sein Leben einfacher wird. Dieser Scan versucht, einige bekannte schlechte SUID-Binärdateien zu finden.
Sysctl wird verwendet, um Kernel-Parameter zur Laufzeit zu ändern. Es ist auch möglich, diese Kernel-Parameter abzufragen und zu überprüfen, ob wichtige Sicherheitsmaßnahmen wie ASLR aktiviert sind.
Living off the Land ist eine Technik, bei der Angreifer das nutzen, was bereits auf dem System vorhanden ist. Sie tun dies, um unter anderem unauffällig zu bleiben. Dieser Scan listet die Dateien auf, nach denen ein Angreifer suchen würde.
Dieser Scan analysiert ELF-Dateien auf ihre Abhängigkeiten. Wenn wir Schreibzugriff auf eine dieser Abhängigkeiten oder Schreibzugriff auf DT_RPATH- und DT_RUNPATH-Werte haben, können wir unser eigenes bösartiges Shared Object in diese ausführbare Datei einfügen und möglicherweise das System kompromittieren.
SSH ist einer der häufigsten Dienste, die Sie in der realen Welt finden. Es ist auch recht einfach, ihn falsch zu konfigurieren. Dieser Scan überprüft, ob er in irgendeiner Weise gehärtet werden kann.
Der Current User Scan analysiert einfach /etc/passwd. Mit diesen Informationen finden wir Root-Konten, ungeschützte und fehlende Home-Verzeichnisse usw.
Dieser Scan sucht nach global beschreibbaren Dateien, ungleichmäßigen Berechtigungen und Dateien ohne Besitzer. Siehe hier für Inspiration zu diesem Scan.
Dieser Scan wäre nützlich für Personen, die versuchen, ihr Linux-System zu härten. Er hebt Probleme wie unverschlüsselte Laufwerke und unsichere Mount-Konfigurationen hervor.
| Scan-Typ | Schnellscan | Vollständiger Scan | Implementiert | Auf Bildschirm ausgegeben | Im Log gespeichert |
|---|
| Kernel Exploit Surgestor | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| SUID/GUID Scan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| File Capabilities Scan | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
| Interesting Files Scan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Coredump Scan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Breakout Binary Scan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| SSHD Configuration Scan | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
| Sysctl Scan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Living Off The Land Scan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Current User Scan | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| *.so Injection Scan | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| Permissions Scan | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| File System Scan | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| Docker Scan | ✔️ | ✔️ | ❌ | ✔️ | |
| Environment Scan | ✔️ | ✔️ | ❌ | ✔️ | |
| Privileged Access Scan | ✔️ | ✔️ | ❌ | ✔️ | |
| Networking Scan | ✔️ | ✔️ | ❌ | ✔️ | |
| System Info Scan | ✔️ | ✔️ | ❌ | ✔️ | |
| Version Information Scan | ✔️ | ✔️ | ❌ | ✔️ | |
| Default Weak Credentials Scan | ✔️ | ✔️ | ❌ | ✔️ | |
| Weak Crypto Scan | ❌ | ✔️ | ❌ | ✔️ |