
Uno strumento di scansione e sfruttamento di Path Traversal + LFI, a fasi e furtivo, in Python

Attacchi di Path Traversal e LFI a fasi
Vailyn 3.0
Dalla v3.0, Vailyn supporta i wrapper PHP LFI nella Fase 1. Usa
--lfiper includerli nella scansione.
Vailyn è uno strumento di analisi e sfruttamento delle vulnerabilità multi-fase per vulnerabilità di path traversal e file inclusion. È costruito per essere il più performante possibile, e per offrire un vasto arsenale di tecniche di elusione dei filtri.
Vailyn opera in 2 fasi. Prima, controlla se la vulnerabilità è presente. Lo fa tentando di accedere a /etc/passwd (o a un file specificato dall'utente), con tutti i suoi payload evasivi. Analizzando la risposta, i payload che hanno funzionato vengono separati dagli altri.
Ora, l'utente può scegliere liberamente quali payload usare. Solo questi payload saranno utilizzati nella seconda fase.
La seconda fase è la fase di sfruttamento. Ora, cerca di divulgare tutti i file possibili dal server usando un dizionario di file e uno di directory. La profondità di ricerca e il livello di permutazione delle directory possono essere adattati tramite argomenti. Opzionalmente, può scaricare i file trovati e salvarli nella cartella loot. In alternativa, cercherà di ottenere una reverse shell sul sistema, permettendo all'attaccante di ottenere il controllo completo del server.
Al momento, supporta molteplici vettori di attacco: iniezione tramite query, path, cookie e dati POST.
La separazione in diverse fasi è fatta per migliorare enormemente le prestazioni dello strumento. Nelle versioni precedenti, ogni combinazione file-directory veniva controllata con ogni payload. Ciò comportava un enorme overhead a causa del riutilizzo continuo dei payload, nonostante non funzionassero per la pagina corrente.
Le versioni Python consigliate e testate sono 3.7+, ma dovrebbe funzionare bene anche con Python 3.5 e Python 3.6. Per installare Vailyn, scarica l'archivio dalla scheda delle release, o esegui
$ git clone https://github.com/VainlyStrain/Vailyn
Una volta sul tuo sistema, dovrai installare le dipendenze Python.
Nei sistemi Unix, è sufficiente eseguire
$ pip install -r requirements.txt # --user
Alcune librerie usate da Vailyn non funzionano bene su Windows, o falliranno nell'installazione.
Se usi Windows, usa pip per installare i requisiti elencati in Vailyn\·›\requirements-windows.txt.
Se twisted fallisce nell'installazione, esiste una versione non ufficiale disponibile qui, che dovrebbe funzionare su Windows. Tieni presente che si tratta di un download di terze parti e l'integrità non è necessariamente garantita. Dopo che questo è stato installato correttamente, eseguire di nuovo pip su requirements-windows.txt dovrebbe funzionare.
Se vuoi utilizzare completamente il modulo di reverse shell, dovrai avere sshpass, ncat e konsole installati. I nomi dei pacchetti variano a seconda della distribuzione Linux. Su Windows, dovrai avviare manualmente il listener in anticipo. Se non ti piace konsole, puoi specificare un emulatore di terminale diverso in core/config.py.
Questo è tutto! Avvia Vailyn spostandoti nella sua directory di installazione ed eseguendo
$ python Vailyn -h
Vailyn ha 3 argomenti obbligatori: -v VIC, -a INT and -p2 TP P1 P2. Tuttavia, a seconda di -a, potrebbero essere necessari più argomenti.
, \ / ,
':. \. /\. ./ .:'
':;. :\ .,:/ ''. /; ..::'
',':.,.__.'' ' ' `:.__:''.:'
';.. ,;' *
* '., .:'
`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]
obbligatorio:
-v VIC, --victim VIC Target da attaccare, parte 1 [pre-payload]
-a INT, --attack INT Tipo di attacco (int, 1-5, o A)
A| Spider (completo) 2| Path 5| Dati POST, json
P| Spider (parziale) 3| Cookie
1| Parametro Query 4| Dati POST, plain
-p2 TP P1 P2, --phase2 TP P1 P2
Attacco nella Fase 2, e parametri necessari
┌[ Valori ]──────────────┬────────────────────┐
│ TP │ P1 │ P2 │
├─────────┼─────────────┼────────────────────┤
│ leak │ Dizionario File │ Dizionario Directory │
│ inject │ Indirizzo IP │ Porta di Ascolto │
│ implant │ File Sorgente │ Destinazione Server │
└─────────┴─────────────┴────────────────────┘
aggiuntivo:
-p PAM, --param PAM parametro di query o dati POST per --attack 1, 4, 5
-i F, --check F File da verificare nella Fase 1 (df: etc/passwd)
-Pi VIC2, --vic2 VIC2 Target di attacco, parte 2 [post-payload]
-c C, --cookie C Cookie da aggiungere (in formato header)
-l, --loot Scarica i file trovati nella cartella loot
-d I J K, --depths I J K
profondità (I: fase 1, J: fase 2, K: livello di permutazione)
-h, --help mostra questo menu di aiuto ed esci
-s T, --timeout T Timeout della richiesta; switch stabile per Arjun
-t, --tor Instrada gli attacchi attraverso la rete di anonimato Tor
-L, --lfi Usa anche wrapper PHP per divulgare file
-n, --nosploit salta la Fase 2 (non necessita di -p2 TP P1 P2)
-P, --precise Usa profondità esatta nella Fase 1 (non un intervallo)
-A, --app Avvia l'interfaccia Qt5 di Vailyn
sviluppo:
--debug Mostra ogni percorso tentato, anche i 404.
--version Stampa la versione del programma ed esci.
--notmain Evita il crash di notify2 in chiamate a sottoprocessi.
Info:
per divulgare file usando percorsi assoluti: -d 0 0 0
per ottenere una shell usando percorsi assoluti: -d 0 X 0
Vailyn attualmente supporta 5 vettori di attacco, e fornisce un crawler per automatizzarli tutti. L'attacco eseguito è identificato dall'argomento -a INT.
INT attacco
---- -------
1 attacco basato su query (https://site.com?file=../../../)
2 attacco basato su path (https://site.com/../../../)
3 attacco basato su cookie (recupererà i cookie per te)
4 dati POST semplici (ELEM1=VAL1&ELEM2=../../../)
5 dati POST JSON ({"file": "../../../"})
A spider recupera + analizza tutti gli URL dal sito usando tutti i vettori
P spider parziale recupera + analizza tutti gli URL dal sito usando solo i vettori selezionati
Devi anche specificare un target da attaccare. Questo viene fatto tramite -v VIC e -Pi VIC2, dove -v è la parte prima del punto di iniezione, e -Pi il resto.