Black-box fuzzing un puerto TCP ejecutando una aplicación desconocida

18

Estoy buscando información sobre cómo probar un servicio que he encontrado funcionando en un servidor de destino. Estoy haciendo una prueba de lápiz de "caja negra" y la compañía es uno de esos tipos de "no quiero decirte nada" para que no nos digan qué servicio se está ejecutando.

NMap seleccionó un puerto abierto y sugirió que era un servicio SIP, sin embargo, después de probar varios ataques / clientes SIP diferentes, es casi seguro que no (el cuadro que estoy probando también debe ser solo un servidor web).

No he tenido mucha experiencia con los puertos TCP de fuzzing antes y, por lo que he encontrado, parece que necesita tener algo sobre el protocolo antes de poder comenzar a fuzzing (una plantilla de tipo). Además, también se requiere un 'diccionario' de diferentes cosas para lanzar en el servicio (que generalmente es relevante para el tipo de aplicación que está probando). ¿Qué puedo hacer si no tengo ninguna de estas cosas?

Como no sé nada sobre la aplicación y lo que se espera, parece que no puedo correr nada en contra de ella. ¿Es eso correcto? ¿Me estoy perdiendo algo obvio que ayude?

Editar : para que quede claro, también hay un servidor web Apache + Tomcat que se ejecuta en 443 y esta es una caja de Linux. Esa parte no es un problema ya que ya la he probado. Es solo este otro puerto 'aleatorio' del que no tengo idea.

    
pregunta NULLZ 06.11.2013 - 07:06
fuente

3 respuestas

11

Usted tiene razón: técnicamente, fuzzing generalmente se considera como el envío de solicitudes / datos no válidos o aleatorios, implica que usted sabe lo que está probando para "romper" la entrada. En alguna terminología (PDF) fuzzing de caja blanca es el primero (anterior entrada generada) y fuzzing de caja negra (entrada aleatoria) es la última.

Lo que estás intentando se describe mejor como simplemente " prueba de caja negra ". El problema general aquí es que si bien algunos protocolos (SMTP, IMAP) ofrecen libremente detalles con pancartas, o algunos (HTTP) son demasiado habladores acerca de las transgresiones de protocolos, hay muchos que necesitan un protocolo de protocolo mágico (LDAP , RPC, y muchos más).

Intente nmap otra vez, pero con la la detección de la versión se incrementó a 11 (en realidad solo a 9, pero no importa):

nmap -sV --version-all --all-ports -p $port $host

nmap -vvv -A --reason --script="+(safe or default) and not broadcast" -p $port $host

Note en el segundo ejemplo el prefijo de script de + , esto significa que se ejecutan scripts aunque no se ejecuten normalmente. Muchos complementos no se ejecutarán de todos modos, tendrá que leer la salida con cuidado. Es de esperar que esto te dé alguna información adicional (asegúrate de usar un nmap reciente, los scripts a menudo se cuelgan en versiones antiguas).

No ha proporcionado el puerto o la razón de nmap, por lo que no puedo explicar por qué concluyó que era SIP, lo mejor es que respondió a una solicitud GET o OPTIONS o es el puerto 5060 o 5061 .

Más consejos generales:

  • debería ser fácil confirmar o negar la existencia de un servidor web público, afinar la tasa nmap con -T1 o -T0 en caso de que un IPS lo bloquee.
  • asegúrese de escanear SSL con una herramienta reciente para que sea compatible con las versiones y opciones contemporáneas de TLS

Finalmente, hay otros escáneres de aplicaciones, amap no es tan completo como nmap , pero vale la pena intentarlo.

    
respondido por el mr.spuratic 06.11.2013 - 14:53
fuente
8

Tal vez active Wireshark y vea si uno de los disectores más populares del protocolo de Wireshark identifica el tráfico mientras usted interroga / prueba el servicio (es decir, use la función "decodificar como" para forzar a Wireshark a decodificar los paquetes como un protocolo particular) .

Lista actual de disectores: enlace

Si se trata de un protocolo privado, entonces la ingeniería inversa puede ser posible - > enlace .

    
respondido por el Tate Hansen 06.11.2013 - 09:02
fuente
0

Si se enfrenta a un puerto con un servicio desconocido, puede probar amap . Además, p0f también podría ayudarlo. Estas herramientas fueron diseñadas exactamente con el propósito de recopilar información, por lo que puede ser su primer intento.

    
respondido por el r0bag 08.06.2017 - 10:30
fuente

Lea otras preguntas en las etiquetas