
Ein phasenweises, ausweichendes Tool zum Scannen und Ausnutzen von Path Traversal und LFI in Python

Phasenbasierte Path-Traversal- und LFI-Angriffe
Vailyn 3.0
Seit v3.0 unterstützt Vailyn LFI-PHP-Wrapper in Phase 1. Verwende
--lfi, um sie in den Scan einzubeziehen.
Vailyn ist ein mehrphasiges Tool zur Schwachstellenanalyse und -ausnutzung für Path-Traversal- und File-Inclusion-Schwachstellen. Es ist darauf ausgelegt, so leistungsfähig wie möglich zu sein, und bietet ein breites Arsenal an Filterumgehungstechniken.
Vailyn arbeitet in zwei Phasen. Zunächst prüft es, ob die Schwachstelle vorhanden ist. Dies geschieht durch den Versuch, auf /etc/passwd (oder eine benutzerdefinierte Datei) zuzugreifen, mit allen seinen Umgehungs-Payloads. Durch die Analyse der Antwort werden Payloads, die funktioniert haben, von den anderen getrennt.
Jetzt kann der Benutzer frei wählen, welche Payloads verwendet werden sollen. Nur diese Payloads werden in der zweiten Phase verwendet.
Die zweite Phase ist die Ausnutzungsphase. Nun wird versucht, alle möglichen Dateien vom Server mit einem Datei- und einem Verzeichniswörterbuch zu leaken. Die Suchtiefe und das Verzeichnispermutationsniveau können über Argumente angepasst werden. Optional können gefundene Dateien heruntergeladen und im Beuteordner gespeichert werden. Alternativ wird versucht, eine Reverse-Shell auf dem System zu erhalten, sodass der Angreifer die vollständige Kontrolle über den Server erlangt.
Derzeit unterstützt es mehrere Angriffsvektoren: Injection über Query, Pfad, Cookie und POST-Daten.
Die Trennung in mehrere Phasen dient der enormen Leistungssteigerung des Tools. In früheren Versionen wurde jede Datei-Verzeichnis-Kombination mit jedem Payload überprüft. Dies führte zu einem enormen Overhead, da Payloads immer wieder verwendet wurden, obwohl sie für die aktuelle Seite nicht funktionierten.
Empfohlene und getestete Python-Versionen sind 3.7+, aber es sollte auch mit Python 3.5 und Python 3.6 funktionieren. Um Vailyn zu installieren, lade das Archiv aus dem Release-Tab herunter oder führe Folgendes aus:
$ git clone https://github.com/VainlyStrain/Vailyn
Sobald es auf Ihrem System ist, müssen Sie die Python-Abhängigkeiten installieren.
Auf Unix-Systemen reicht es aus, Folgendes auszuführen:
$ pip install -r requirements.txt # --user
Einige Bibliotheken, die Vailyn verwendet, funktionieren unter Windows nicht gut oder können nicht installiert werden.
Wenn Sie Windows verwenden, installieren Sie die in Vailyn\·›\requirements-windows.txt aufgeführten Abhängigkeiten mit pip.
Wenn Twisted nicht installiert werden kann, gibt es eine inoffizielle Version hier, die unter Windows gebaut werden sollte. Beachten Sie jedoch, dass dies ein Download von Drittanbietern ist und die Integrität nicht unbedingt gewährleistet ist. Nach erfolgreicher Installation sollte die erneute Ausführung von pip für requirements-windows.txt funktionieren.
Wenn Sie das Reverse-Shell-Modul vollständig nutzen möchten, müssen Sie sshpass, ncat und konsole installiert haben. Die Paketnamen variieren je nach Linux-Distribution. Unter Windows müssen Sie den Listener vorher manuell starten. Wenn Sie konsole nicht mögen, können Sie in core/config.py einen anderen Terminalemulator angeben.
Das war's! Starten Sie Vailyn, indem Sie in das Installationsverzeichnis wechseln und Folgendes ausführen:
$ python Vailyn -h
Vailyn hat drei obligatorische Argumente: -v VIC, -a INT und -p2 TP P1 P2. Je nach -a können jedoch weitere Argumente erforderlich sein.
, \ / ,
':. \. /\. ./ .:'
':;. :\ .,:/ ''. /; ..::'
',':.,.__.'' ' ' `:.__:''.:'
';.. ,;' *
* '., .:'
`v;. ;v' o
. ' '.. :.' ' .
' ':;, ' '
o ' . :
*
| Vailyn |
[ VainlyStrain ]
Vsynta Vailyn -v VIC -a INT -p2 TP P1 P2
[-p PAM] [-i F] [-Pi VIC2]
[-c C] [-n] [-d I J K]
[-s T] [-t] [-L]
[-l] [-P] [-A]
obligatorisch:
-v VIC, --victim VIC Ziel des Angriffs, Teil 1 [vor Payload]
-a INT, --attack INT Angriffsart (int, 1-5, oder A)
A| Spider (alle) 2| Pfad 5| POST-Daten, json
P| Spider (partiell) 3| Cookie
1| Query-Parameter 4| POST-Daten, plain
-p2 TP P1 P2, --phase2 TP P1 P2
Angriff in Phase 2 und benötigte Parameter
┌[ Werte ]──────────────┬────────────────────┐
│ TP │ P1 │ P2 │
├─────────┼─────────────┼────────────────────┤
│ leak │ File Dict │ Directory Dict │
│ inject │ IP Addr │ Listening Port │
│ implant │ Source File │ Server Destination │
└─────────┴─────────────┴────────────────────┘
zusätzlich:
-p PAM, --param PAM Abfrageparameter oder POST-Daten für --attack 1, 4, 5
-i F, --check F Datei, die in Phase 1 überprüft werden soll (Std.: etc/passwd)
-Pi VIC2, --vic2 VIC2 Angriffsziel, Teil 2 [nach-Payload]
-c C, --cookie C Cookie zum Anhängen (im Header-Format)
-l, --loot Gefundene Dateien in den Beuteordner herunterladen
-d I J K, --depths I J K Tiefen (I: Phase 1, J: Phase 2, K: Permutationsstufe)
-h, --help Dieses Hilfemenü anzeigen und beenden
-s T, --timeout T Anforderungs-Timeout; stabiler Schalter für Arjun
-t, --tor Angriffe durch das Tor-Anonymitätsnetzwerk leiten
-L, --lfi Zusätzlich PHP-Wrapper zum Leaken von Dateien verwenden
-n, --nosploit Phase 2 überspringen (benötigt kein -p2 TP P1 P2)
-P, --precise Exakte Tiefe in Phase 1 verwenden (kein Bereich)
-A, --app Vailyns Qt5-Oberfläche starten
Entwicklung:
--debug Jeden versuchten Pfad anzeigen, auch 404er.
--version Programmversion anzeigen und beenden.
--notmain notify2-Absturz im Unterprozessaufruf vermeiden.
Info:
to leak files using absolute paths: -d 0 0 0
to get a shell using absolute paths: -d 0 X 0
Vailyn unterstützt derzeit 5 Angriffsvektoren und bietet einen Crawler zur Automatisierung aller. Der durchgeführte Angriff wird durch das Argument -a INT identifiziert.
INT Angriff
---- -------
1 abfragebasierter Angriff (https://site.com?file=../../../)
2 pfadbasierter Angriff (https://site.com/../../../)
3 cookie-basierter Angriff (sammelt die Cookies für Sie)
4 normale POST-Daten (ELEM1=VAL1&ELEM2=../../../)
5 JSON-POST-Daten ({"file": "../../../"})
A Spider Alle URLs der Seite mit allen Vektoren abrufen und analysieren
P partieller Spider Alle URLs der Seite nur mit ausgewählten Vektoren abrufen und analysieren