Guía y hoja de trucos para Wireshark

Incluso un conocimiento superficial del programa Wireshark y sus filtros ahorrará un tiempo de magnitud al resolver problemas de nivel de red o aplicación. Wireshark es útil para muchas tareas en el trabajo de un ingeniero de redes, especialista en seguridad o administrador de sistemas. Aquí hay algunos ejemplos de uso:

Solución de problemas de conectividad de red


  • Visualización visual de la pérdida de paquetes.
  • Análisis de retransmisión TCP
  • Gráfico de paquete retrasado largo

Explorar sesiones de nivel de aplicación (incluso cuando se encripta con SSL / TLS, ver más abajo)


  • Vista completa de las sesiones HTTP, incluidos todos los encabezados y datos para solicitudes y respuestas
  • Ver sesiones de Telnet, ver contraseñas, comandos ingresados ​​y respuestas
  • Ver el tráfico SMTP y POP3, leer correos electrónicos

Solucionar problemas de DHCP con datos a nivel de paquete


  • Explorando las traducciones de difusión de DHCP
  • El segundo paso del intercambio de DHCP (oferta de DHCP) con la dirección y los parámetros
  • Solicitud del cliente en la dirección propuesta
  • Ack del servidor que confirma la solicitud

Extraer archivos de sesiones HTTP


  • Exportar objetos desde HTTP, como JavaScript, imágenes o incluso ejecutables

Extraer archivos de sesiones SMB


  • Similar a la opción de exportación HTTP, pero extrayendo archivos transferidos a través de SMB, el protocolo de intercambio de archivos en Windows

Detección y escaneo de malware


  • Detección de comportamiento anormal que puede indicar malware
  • Busque dominios inusuales o IP finales
  • Gráficos de E / S para detectar conexiones persistentes (balizas) con servidores de administración
  • Filtrar datos "normales" y detectar inusuales
  • Recupere respuestas DNS grandes y otras anomalías que pueden indicar malware

Verificación de exploraciones de puertos y otros tipos de exploración en busca de vulnerabilidades


  • Comprender qué tráfico de red proviene de los escáneres
  • Análisis de los procedimientos de verificación de vulnerabilidad para distinguir entre falso positivo y falso negativo

Estos ejemplos son solo la punta del iceberg. En la guía, le diremos cómo usar una herramienta tan poderosa.

Instalar Wireshark


Wireshark se ejecuta en varios sistemas operativos y es fácil de instalar. Mencione solo Ubuntu Linux, Centos y Windows.

Instalar en Ubuntu o Debian


#apt-get update #apt-get install wireshark tshark 

Instalar en Fedora o CentOS


 #yum install wireshark-gnome 

Instalación de Windows


La página de descarga contiene el archivo ejecutable para la instalación. El controlador de captura de paquetes también es bastante simple de instalar, con la ayuda de la cual la tarjeta de red entra en modo "inaudible" (el modo promiscuo le permite recibir todos los paquetes independientemente de a quién se dirijan).

Comenzando con los filtros


Con la primera intercepción, verá una plantilla estándar y detalles del paquete en la interfaz de Wireshark.

Una vez que haya capturado una sesión HTTP, deje de grabar y juegue con los filtros básicos y la configuración de Analizar | Seguir | HTTP Stream .

Los nombres de los filtros hablan por sí mismos. Simplemente ingrese las expresiones apropiadas en la línea de filtro (o en la línea de comando si usa tshark). La principal ventaja de los filtros es la eliminación de ruido (tráfico que no nos interesa). Puede filtrar el tráfico por dirección MAC, dirección IP, subred o protocolo. El filtro más fácil es ingresar http , por lo que solo se mostrará el tráfico HTTP (tcp puerto 80) .

Ejemplos de filtros de IP


 ip.addr == 192.168.0.5 !(ip.addr == 192.168.0.0/24) 

Ejemplos de filtros de protocolo


 tcp udp tcp.port == 80 || udp.port == 80 http not arp and not (udp.port == 53) 

Pruebe una combinación de filtros que muestre todo el tráfico saliente, excepto HTTP y HTTPS, que se enruta fuera de la red local . Esta es una buena manera de detectar software (incluso malware) que interactúa con Internet a través de protocolos inusuales.

Sigue la corriente


Una vez que haya capturado varios paquetes HTTP, puede usar el elemento Analizar | menú en uno de ellos. Seguir | HTTP Stream . Mostrará toda la sesión HTTP. En esta nueva ventana, verá una solicitud HTTP del navegador y una respuesta HTTP del servidor.



Resolución DNS en Wireshark


Por defecto, Wireshark no resuelve las direcciones de red en la consola. Esto se puede cambiar en la configuración.

Editar | Preferencias Resolución de nombre | Habilitar resolución de nombre de red

Al igual que con tcpdump , el procedimiento de resolución ralentizará la visualización de los paquetes. También es importante comprender que cuando captura paquetes en línea, las consultas DNS de su host se convertirán en tráfico adicional que puede ser interceptado.

Tshark para línea de comando


Si aún no ha incursionado en tshark , eche un vistazo a nuestra guía con ejemplos de filtros . Este programa a menudo se ignora, aunque es ideal para capturar sesiones en un sistema remoto. A diferencia de tcpdump , le permite capturar y ver sesiones de nivel de aplicación sobre la marcha: los decodificadores de protocolo Wireshark también están disponibles para tshark.

Hacer reglas de firewall


Aquí hay una forma rápida de crear reglas desde la línea de comandos para que no busque sintaxis específica en Internet Seleccione la regla apropiada y vaya a Herramientas | Reglas de Firewall ACL . Se admiten varios firewalls, como Cisco IOS, ipfilter , ipfw , iptables , pf e incluso firewall de Windows a través de netsh .



Trabajar con geo-base GeoIP


Si Wireshark se compila con el soporte GeoIP y usted tiene bases de datos gratuitas de Maxmind, entonces el programa puede determinar la ubicación de las computadoras por sus direcciones IP. Registrarse Acerca de | Wireshark , que el programa está compilado con la versión que tienes disponible. Si GeoIP está en la lista, verifique la disponibilidad de las bases de datos GeoLite City, Country y ASNum en el disco. Especifique la ubicación de las bases en Editar | Preferencias Resolución de nombre .

Verifique el sistema para detectar un volcado de tráfico seleccionando Estadísticas | Puntos finales | IPv4 . La ubicación y la información de ASN para la dirección IP deben aparecer en las columnas a la derecha.



Otra característica de GeoIP es filtrar el tráfico por ubicación utilizando el filtro ip.geoip . Por ejemplo, de esta manera puede excluir el tráfico de un ASN específico. El siguiente comando excluye los paquetes de la unidad de red ASN 63949 (Linode).

 ip and not ip.geoip.asnum == 63949 

Por supuesto, el mismo filtro se puede aplicar a ciudades y países individuales . Elimine el ruido y deje solo tráfico realmente interesante.

Descifrado de sesiones SSL / TLS


Una forma de descifrar las sesiones SSL / TLS es utilizar la clave privada del servidor al que está conectado el cliente.

Por supuesto, no siempre tiene acceso a la clave privada. Pero hay otra opción para ver simplemente el tráfico SSL / TLS en el sistema local. Si Firefox o Chrome se cargan utilizando una variable de entorno especial, las claves simétricas de las sesiones SSL / TLS individuales se escriben en un archivo que Wireshark puede leer. ¡Con estas claves, Wireshark mostrará una sesión completamente descifrada!

1. Establecer la variable de entorno


Linux / Mac

 export SSLKEYLOGFILE=~/sslkeylogfile.log 

Ventanas

En las propiedades del sistema | Avanzado, haga clic en el botón Variables de entorno y agregue el nombre de la variable (SSLKEYLOGFILE) y la ruta al archivo como valor.

2. Configuración de Wireshark


En el menú emergente, seleccione Editar | Preferencias Protocolos | SSL | (Pre) -Master-Secret Log Filename - Examine especificando el archivo que especificó en la variable de entorno.

Comience a capturar el tráfico en su sistema local.

3. Reiniciar Firefox o Chrome


Después de ir al sitio web HTTPS, el archivo de registro comenzará a crecer en tamaño, ya que escribe claves de sesión simétricas.

Echa un vistazo a la sesión de Wireshark lanzada anteriormente. Debería ver algo similar a la captura de pantalla a continuación con sesiones descifradas. Paquetes descifrados: en la pestaña del panel inferior.



Otra forma de ver una sesión es a través del Análisis | Seguir | Stream | SSL Si la sesión se descifra con éxito, verá una opción para SSL.

Por supuesto, tenga cuidado al escribir estas claves y paquetes. Si un extraño tiene acceso al archivo de registro, allí encontrará fácilmente sus contraseñas y cookies de autenticación.

Otra opción para acceder al tráfico HTTP básico es usar la herramienta Burp Suite con el certificado CA cargado en el navegador. En este caso, el proxy descifra la conexión en el lado del cliente y luego establece una nueva sesión SSL / TLS en el servidor. Hay muchas maneras de llevar a cabo un ataque MiTM de este tipo, estas son dos de las más fáciles.

Extraer archivos de paquetes usando la función de exportación (HTTP o SMB)


Los archivos se extraen fácilmente a través del menú de exportación.

Archivo | Exportar objetos | HTTP

Todos los archivos encontrados se mostrarán en una nueva ventana. Desde aquí, puede guardar archivos individuales o todos a la vez. Se utiliza un método similar para extraer archivos de sesiones SMB. Como ya mencionamos, este es el protocolo Microsoft Server Message Block, que se usa para compartir archivos en Windows.



Barra de estado


La barra de estado en el lado derecho de la ventana le permite ir rápidamente al lugar deseado en el volcado de red haciendo clic en el indicador de color. Por ejemplo, los paquetes con errores están marcados en rojo en la barra de estado.



Muestra PCAP


Cuando empiezas a trabajar con Wireshark, quiero ver algunos volcados interesantes con paquetes. Se pueden encontrar en la página de muestras de Wireshark . Habrá suficientes ejemplos con diferentes protocolos para varios meses de análisis, incluso hay muestras del tráfico de gusanos y exploits.

Entorno


La apariencia de la consola por defecto es altamente personalizable. Puede agregar o eliminar columnas, agregando incluso cosas tan simples como una columna de tiempo UTC, que aumenta inmediatamente el contenido de información de los registros si analiza el historial de paquetes.

Las columnas se configuran en Editar | Preferencias Apariencia | Columnas La plantilla general, la fuente y los colores también se cambian allí.

En el video: consejos útiles para configurar el entorno, incluida la solución de problemas para los números de secuencia TCP.


capinfos


Wireshark viene con una práctica capinfos línea de comando capinfos . Esta utilidad genera estadísticas de volcado por lotes, con tiempo de inicio / finalización de grabación y otros detalles. Con la opción -T , produce texto con pestañas: es adecuado para importar en hojas de cálculo o análisis en la consola.

 test@ubuntu:~$ capinfos test.pcap File name: test.pcap File type: Wireshark/tcpdump/... - pcap File encapsulation: Ethernet File timestamp precision: microseconds (6) Packet size limit: file hdr: 262144 bytes Number of packets: 341 k File size: 449 MB Data size: 444 MB Capture duration: 3673.413779 seconds First packet time: 2018-12-01 11:26:53.521929 Last packet time: 2018-12-01 12:28:06.935708 Data byte rate: 120 kBps Data bit rate: 967 kbps Average packet size: 1300.72 bytes Average packet rate: 93 packets/s SHA256: 989388128d676c329ccdbdec4ed221ab8ecffad81910a16f473ec2c2f54c5d6e RIPEMD160: 0742b6bbc79735e57904008d6064cce7eb95abc9 SHA1: d725b389bea044d6520470c8dab0de1598b01d89 Strict time order: True Number of interfaces in file: 1 

Conclusión


Este artículo se publicó originalmente en 2011 y luego se actualizó seriamente. Si tiene comentarios, mejoras o consejos para la hoja de trucos, escríbame . Wireshark es una de esas herramientas indispensables que muchos usan, pero pocas hablan con fluidez. Aquí puedes ir más y más profundo.

Source: https://habr.com/ru/post/es436226/


All Articles