
Una herramienta de escaneo y explotación de Path Traversal + LFI, evasiva y por fases, en Python.

Ataques de Path Traversal y LFI por Fases
Vailyn 3.0
Desde la v3.0, Vailyn soporta wrappers PHP de LFI en la Fase 1. Use
--lfipara incluirlos en el escaneo.
Vailyn es una herramienta de análisis y explotación de vulnerabilidades en múltiples fases para vulnerabilidades de path traversal e inclusión de archivos. Está diseñada para ser lo más eficiente posible y ofrecer un amplio arsenal de técnicas de evasión de filtros.
Vailyn opera en 2 fases. Primero, comprueba si la vulnerabilidad está presente. Lo hace intentando acceder a /etc/passwd (o un archivo especificado por el usuario), con todos sus payloads evasivos. Analizando la respuesta, los payloads que funcionaron se separan de los demás.
Ahora, el usuario puede elegir libremente qué payloads usar. Solo estos payloads se usarán en la segunda fase.
La segunda fase es la fase de explotación. Ahora intenta filtrar todos los archivos posibles del servidor usando un diccionario de archivos y uno de directorios. La profundidad de búsqueda y el nivel de permutación de directorios se pueden adaptar mediante argumentos. Opcionalmente, puede descargar los archivos encontrados y guardarlos en su carpeta de botín. Alternativamente, intentará obtener una reverse shell en el sistema, permitiendo al atacante obtener control total sobre el servidor.
Actualmente, soporta múltiples vectores de ataque: inyección vía query, path, cookie y datos POST.
La separación en varias fases se realiza para mejorar enormemente el rendimiento de la herramienta. En versiones anteriores, cada combinación archivo-directorio se verificaba con cada payload. Esto resultaba en una gran sobrecarga debido a que los payloads siempre se usaban de nuevo, a pesar de no funcionar para la página actual.
Las versiones de Python recomendadas y probadas son 3.7+, pero debería funcionar bien con Python 3.5 y Python 3.6 también. Para instalar Vailyn, descargue el archivo desde la pestaña de versiones, o ejecute
$ git clone https://github.com/VainlyStrain/Vailyn
Una vez en su sistema, necesitará instalar las dependencias de Python.
En sistemas Unix, es suficiente ejecutar
$ pip install -r requirements.txt # --user
Algunas bibliotecas que Vailyn usa no funcionan bien con Windows, o fallarán al instalarse.
Si usa Windows, use pip para instalar los requisitos listados en Vailyn\·›\requirements-windows.txt.
Si twisted falla al instalarse, hay una versión no oficial disponible aquí, que debería compilarse en Windows. Solo tenga en cuenta que esta es una descarga de terceros, y la integridad no está necesariamente garantizada. Después de que esto se instale correctamente, ejecutar pip nuevamente en requirements-windows.txt debería funcionar.
Si desea usar completamente el módulo de reverse shell, necesitará tener sshpass, ncat y konsole instalados. Los nombres de los paquetes varían según la distribución de Linux. En Windows, necesitará iniciar el listener manualmente de antemano. Si no le gusta konsole, puede especificar un emulador de terminal diferente en core/config.py.
¡Eso es todo! Inicie Vailyn moviéndose a su directorio de instalación y ejecutando
$ python Vailyn -h
Vailyn tiene 3 argumentos obligatorios: -v VIC, -a INT y -p2 TP P1 P2. Sin embargo, dependiendo de -a, pueden requerirse más argumentos.
, \ / ,
':. \. /\. ./ .:'
':;. :\ .,:/ ''. /; ..::'
',':.,.__.'' ' ' `:.__:''.:'
';.. ,;' *
* '., .:'
`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]
obligatorio:
-v VIC, --victim VIC Objetivo a atacar, parte 1 [previo al payload]
-a INT, --attack INT Tipo de ataque (int, 1-5, o A)
A| Araña (todo) 2| Ruta 5| Datos POST, json
P| Araña (parcial) 3| Cookie
1| Parámetro de Query 4| Datos POST, plano
-p2 TP P1 P2, --phase2 TP P1 P2
Ataque en Fase 2, y parámetros necesarios
┌[ Values ]─────────────┬────────────────────┐
│ TP │ P1 │ P2 │
├─────────┼─────────────┼────────────────────┤
│ fuga │ Diccionario │ Diccionario │
│ │ de archivos │ de directorios │
├─────────┼─────────────┼────────────────────┤
│ inyectar│ Dirección IP│ Puerto de escucha │
├─────────┼─────────────┼────────────────────┤
│ implantar│ Archivo │ Destino en el │
│ │ fuente │ servidor │
└─────────┴─────────────┴────────────────────┘
adicional:
-p PAM, --param PAM parámetro de query o datos POST para --attack 1, 4, 5
-i F, --check F Archivo a verificar en Fase 1 (df: etc/passwd)
-Pi VIC2, --vic2 VIC2 Objetivo de ataque, parte 2 [post-payload]
-c C, --cookie C Cookie a agregar (en formato de cabecera)
-l, --loot Descargar los archivos encontrados en la carpeta de botín
-d I J K, --depths I J K
profundidades (I: fase 1, J: fase 2, K: nivel de permutación)
-h, --help muestra este menú de ayuda y sale
-s T, --timeout T Tiempo de espera de solicitud; switch estable para Arjun
-t, --tor Canalizar ataques a través de la red de anonimato Tor
-L, --lfi Usar adicionalmente wrappers PHP para filtrar archivos
-n, --nosploit saltar Fase 2 (no necesita -p2 TP P1 P2)
-P, --precise Usar profundidad exacta en Fase 1 (no un rango)
-A, --app Iniciar la interfaz Qt5 de Vailyn
desarrollo:
--debug Muestra cada ruta intentada, incluso 404s.
--version Imprime la versión del programa y sale.
--notmain Evita el fallo de notify2 en llamadas a subprocesos.
Información:
para filtrar archivos usando rutas absolutas: -d 0 0 0
para obtener una shell usando rutas absolutas: -d 0 X 0
Vailyn soporta actualmente 5 vectores de ataque, y proporciona un rastreador para automatizarlos todos. El ataque realizado se identifica mediante el argumento -a INT.