Capturando tráfico con Wireshark
Wireshark es un analizador de protocolos muy popular. Es software libre y es una herramienta fantástica para investigar qué está pasando en una red y, también, para aprender sobre protocolos de comunicaciones.
Descargamos e instalamos Wireshark para OS X en nuestro caso.
Protocolo inseguro - Telnet
Vamos a analizar una traza ya capturada (telnet-raw.pcap), disponible en el repositorio de capturas en Wireshark.
La abrimos con Wireshark, esta traza contiene tráfico de una sesión de Telnet entre un cliente y un servidor:
Filtramos el tráfico por Telnet:
Identificamos el cliente 192.168.0.2 y el servidor 192.168.0.1, analizando uno a uno los paquetes, podemos ver el envío del nombre de usuario y la contraseña:
Nombre de usuario: fake
Password: user
Después podemos indentificar el sistema operativo donde se ejecuta el servidor Telnet, OpenBSD 2.6-beta en este caso:
Por último vemos que ejecuta varios comandos:
- ls
- ls -a
- /sbin/ping www.yahoo.com
- Control+C para parar el ping
- exit
Con la opción "follow TCP stream" podemos ver lo siguiente:
........... ..!.."..'.....#..%..%........... ..!..".."........P. ....".....b........b.... B. ........................"......'.....#..&..&..$..&..&..$.. .....#.....'........... .9600,9600....#.bam.zing.org:0.0....'..DISPLAY.bam.zing.org:0.0......xterm-color.............!.............."............ OpenBSD/i386 (oof) (ttyp1) login: .."........"ffaakkee . Password:user . Last login: Thu Dec 2 21:32:59 on ttyp1 from bam.zing.org Warning: no Kerberos tickets issued. OpenBSD 2.6-beta (OOF) #4: Tue Oct 12 20:42:32 CDT 1999 Welcome to OpenBSD: The proactively secure Unix-like operating system. Please use the sendbug(1) utility to report bugs in the system. Before reporting a bug, please try to reproduce it with the latest version of the code. With bug reports, please try to ensure that enough information to reproduce the problem is enclosed, and if a known fix for it exists, include that as well. $ llss . $ llss --aa . . .. .cshrc .login .mailrc .profile .rhosts $ //ssbbiinn//ppiinngg wwwwww..yyaahhoooo..ccoomm . PING www.yahoo.com (204.71.200.74): 56 data bytes 64 bytes from 204.71.200.74: icmp_seq=0 ttl=239 time=73.569 ms 64 bytes from 204.71.200.74: icmp_seq=1 ttl=239 time=71.099 ms 64 bytes from 204.71.200.74: icmp_seq=2 ttl=239 time=68.728 ms 64 bytes from 204.71.200.74: icmp_seq=3 ttl=239 time=73.122 ms 64 bytes from 204.71.200.74: icmp_seq=4 ttl=239 time=71.276 ms 64 bytes from 204.71.200.74: icmp_seq=5 ttl=239 time=75.831 ms 64 bytes from 204.71.200.74: icmp_seq=6 ttl=239 time=70.101 ms 64 bytes from 204.71.200.74: icmp_seq=7 ttl=239 time=74.528 ms 64 bytes from 204.71.200.74: icmp_seq=9 ttl=239 time=74.514 ms 64 bytes from 204.71.200.74: icmp_seq=10 ttl=239 time=75.188 ms 64 bytes from 204.71.200.74: icmp_seq=11 ttl=239 time=72.925 ms ...^C .--- www.yahoo.com ping statistics --- 13 packets transmitted, 11 packets received, 15% packet loss round-trip min/avg/max = 68.728/72.807/75.831 ms $ eexxiitt .
SSL
Analizamos ahora tráfico SSL descargando esta traza.
Identificamos la trama donde se transmite el certificado del servidor al cliente, la 2 en este caso:
Los datos del certificado se pueden ver claramente, por ejemplo la autoridad que ha emitido el certificado es RSA Data Security, Inc. :
El certificado asegura la identidad del servidor, confirma que el servidor es quien dice ser, ya que lo certifica un tercero de confianza, RSA Data Security, Inc. en este caso.
SSH
Descargamos esta traza con tráfico SSH y la abrimos con Wireshark.
Analizando las tramas podemos ver que es en el paquete 13 donde comienza el tráfico cifrado:
Los protocolos que van cifrados solo son los que utiliza SSHV2.
No es posible ver información de usuario, como contraseñas de acceso etc.. ya que los paquetes viajan encriptados.