Tutoriales

Una herramienta para probar solicitudes de contrabando / desincronización de HTTP

Contrabandista es una herramienta escrita en Python 3 para probar el contrabando / desincronización de solicitudes HTTP

instalación

  • clon de git https://github.com/defparam/smuggler.git
  • Contrabandista de CD
  • python3 smuggler.py -h

Ejemplo de aplicacion

Anfitrión único:

python3 smuggler.py -u

Lista de hosts:

cat list_of_hosts.txt | python3 smuggler.py

Opciones

Uso: smuggler.py [-h] [-u URL] [-v VHOST] [-x] [-m METHOD] [-l LOG] [-q][-t TIMEOUT] [–no-color] [-c CONFIGFILE]argumentos opcionales:
-h, –help Mostrar y salir de este mensaje de ayuda
-u url, -url url URL de destino con punto final
-v VHOST, -vhost VHOST
Especificar un host virtual
-x, –exit_early Finaliza el escaneo en el primer hallazgo
-m MÉTODO, -método MÉTODO
Método HTTP que se utilizará (p. Ej., GET, POST) Estándar: POST
-l LOG, –log LOG Especifica un archivo de registro
-q, –quiet El modo silencioso solo registra los problemas que se encuentran
-t TIMEOUT, -timeout TIMEOUT
Valor de tiempo de espera del conector Estándar: 5
–Sin color suprime códigos de color
-c CONFIGFILE, -configfile CONFIGFILE
Ruta de archivo al archivo de configuración de cargas útiles

Smuggler requiere al menos una URL a través del argumento -u / –url o una lista de URL pasadas al script a través de stdin. Si la URL especifica https:// luego Smuggler se conecta al puerto host a través de SSL / TLS. Si la URL especifica http:// entonces no se utiliza SSL / TLS en absoluto. Si solo se especifica el host, el script se establecerá por defecto en https://

Utilice -v / –vhost para especificar un encabezado de host que no sea la dirección del servidor

Utilice -x / –exit_early para dejar de escanear un servidor específico cuando se encuentre un problema potencial. En modo canalizado, el contrabandista simplemente va al siguiente host de la lista.

Utilice -m / –method para especificar un verbo HTTP diferente a POST (es decir, GET / PUT / PATCH / OPTIONS / CONNECT / TRACE / DELETE / HEAD / etc …)

Utilice -l / –log para escribir la salida tanto en un archivo como en una salida estándar

Use -q / –quiet para reducir la verbosidad y solo encontrar problemas de protocolo

Utilice -t / –timeout para especificar el tiempo de espera del socket. El valor debe ser lo suficientemente alto como para concluir que el conector está colgando, pero lo suficientemente bajo como para acelerar la prueba (predeterminado: 5)

Utilice –no-color para suprimir los códigos de color de salida impresos en la salida estándar (los registros no contienen códigos de color de forma predeterminada)

Utilice -c / –configfile para especificar su archivo de configuración de mutación de contrabandista (predeterminado: default.py)

Archivos de configuración

Los archivos de configuración son archivos de Python que están disponibles en el directorio ./config del contrabandista. Estos archivos describen el contenido de las solicitudes HTTP y las mutaciones de codificación de transmisión que se probarán.

Aquí hay contenido de muestra de default.py:

def render_template (gadget):
RN = » r n»
p = carga útil ()
p.header = «METHOD ENDPOINT? cb = RANDOM HTTP / 1.1» + RN
# p.header + = «Codificación de transferencia: fragmentado» + RN
p.header + = gadget + RN
p.header + = «Host: HOST» + RN
p.header + = «User-Agent: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 78.0.3904.87 Safari / 537.36» + RN
p.header + = «Tipo de contenido: aplicación / x-www-form-urlencoded; Juego de caracteres = UTF-8 ”+ RN
p.header + = «Longitud del contenido: REPLACE_CL» + RN
volver p
Mutaciones[“nameprefix1″] = render_template («Codificación de transferencia: fragmentado»)
Mutaciones[“tabprefix1”] = render_template («Codificación de transferencia: tchunked»)
Mutaciones[“tabprefix2”] = render_template («Codificación de transferencia t: tchunked»)
Mutaciones[“space1”] = render_template («Codificación de transferencia: fragmentado»)
porque soy [0x1,0x4,0x8,0x9,0xa,0xb,0xc,0xd,0x1F,0x20,0x7f,0xA0,0xFF]:
Mutaciones[“midspace-%02x”%i] = render_template («Codificación de transferencia:% cchunked»% (i))
Mutaciones[“postspace-%02x”%i] = render_template («Codificación de transferencia% c: fragmentado»% (i))
Mutaciones[“prespace-%02x”%i] = render_template («% cTransfer-Encoding: fragmentado»% (i))
Mutaciones[“endspace-%02x”%i] = render_template («Codificación de transferencia: fragmentado% c»% (i))
Mutaciones[“xprespace-%02x”%i] = render_template («X: X% cTransfer-Encoding: fragmentado»% (i))
Mutaciones[“endspacex-%02x”%i] = render_template («Codificación de transferencia: fragmentado% cX: X»% (i))
Mutaciones[“rxprespace-%02x”%i] = render_template («X: X r% cTransfer-Encoding: fragmentado»% (i))
Mutaciones[“xnprespace-%02x”%i] = render_template («X: X% c nTransfer-Encoding: fragmentado»% (i))
Mutaciones[“endspacerx-%02x”%i] = render_template («Codificación de transferencia: fragmentado r% cX: X»% (i))
Mutaciones[“endspacexn-%02x”%i] = render_template («Codificación de transferencia: fragmentado% c nX: X»% (i))

Todavía no hay argumentos de entrada para especificar sus propios encabezados de cliente y agentes de usuario. Se recomienda crear su propio archivo de configuración basado en default.py y cambiarlo de acuerdo con sus requisitos.

Smuggler viene con 3 archivos de configuración: default.py (rápido), doubles.py (nicho, lento), Comprehensive.py (muy lento) default.py es el más rápido ya que contiene menos mutaciones.

Especifique los archivos de configuración con la opción de línea de comandos -c / –configfile a

Directorio de carga útil

El directorio de cargas útiles se encuentra en el directorio de contrabandistas. Cuando Smuggler encuentra un problema potencial de desincronización CLTE o TECL, un archivo .txt binario de la carga útil problemática se coloca automáticamente en el directorio de carga útil. Todos los nombres de archivo de la carga útil se anotan con el nombre de host, el tipo de desincronización y el tipo de mutación. Utilice estas cargas útiles para transferir Netcat directamente al servidor o para importarlo a otras herramientas de análisis.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba