¿Cómo analiza un protocolo de red desconocido?

6

Por supuesto, Wireshark se puede utilizar para detectar tráfico: puede inspeccionar cada paquete o cadena de paquetes.

¿Pero cómo lo harías más inteligente? ¿Qué herramientas utiliza para identificar comportamientos o para automatizar el proceso?

Mi objetivo es identificar las diferentes funciones, códigos de operación y todo lo que puedo aprender sobre el protocolo y el software (tengo el cliente y el servidor).

    
pregunta YSY 18.07.2012 - 10:07
fuente

1 respuesta

10

No hay forma de automatizar fácilmente esto de ninguna manera útil, porque los protocolos están diseñados por humanos. Como tales, realmente no siguen ningún patrón o regla establecido. Vas a tener que poner el trabajo mental en ti mismo para diseccionarlos.

Sin embargo, hay algunos trucos:

  • Use Wireshark para separar las conversaciones individuales e identificar los patrones de comunicación de alto nivel.
  • Use un editor hex "inteligente" para analizar los paquetes. Hex Workshop es una buena opción (aunque no es gratis) ya que le permite definir estructuras de estilo C en los datos.
  • Use una herramienta de diferencias para identificar cambios entre paquetes.
  • Use IDA (u otra herramienta de análisis estático) para identificar dónde se usan las API de la red (por ejemplo, Winsock) para enviar / recibir datos, y averiguar qué están haciendo.
  • Use ImmunityDebugger, OllyDbg, WinDbg u otro depurador para rastrear la ejecución en un entorno real. Esto es especialmente útil cuando se envían paquetes de prueba a una aplicación cliente o servidor, porque puede ver dónde pasan y fallan las pruebas de validación y por qué. El uso de valores distintivos en estos paquetes le permite ver qué tipos de datos fluyen a diferentes partes del código, lo que le permite identificar su función.

Al final, todavía tienes que ser un ingeniero de ingeniería decente para trabajar con esto. Si nunca ha intentado hacer algo como esto, le sugiero que lo intente con un simple protocolo documentado abiertamente y trabaje al revés. Intente averiguar cómo funciona, luego compare sus observaciones con la documentación.

    
respondido por el Polynomial 18.07.2012 - 10:34
fuente

Lea otras preguntas en las etiquetas