Post on 29-Dec-2015
Cómo descubrir contraseñas y e-mails enviados con Wireshark
Si estamos conectados a una red local, sea por cable o vía inalámbrica, podemos vigilar el tráfico HTTP para descubrir el contenido de correos electrónicos o incluso contraseñas de cuentas de usuario en páginas webs o servicios de mensajería instantánea.
Para eso tenemos que usar determinados filtros.
Primero habría que saber la dirección MAC o dirección IP del equipo a través del cual entra y sale la información que queremos obtener. Para eso usaríamos uno de estos dos filtros:
ip.addr == 10.22.21.226
También podríamos indicar si la información entra:
ip.src = 10.22.21.226
O si sale:
ip.dst == 10.22.21.226
Por último para filtrar por dirección mal sería algo así:
eth.src == 00:1d:60:6b:ec:83
1
Ahora que sabemos aplicar ese filtro podemos conjuntarlo con otro que nos muestre solo el tráfico http o las acciones GET y POST en este protocolo, es decir:
http.method.request == "GET" | http.method.request == "POST"
El primer filtro nos indicaría la información que la dirección IP recibe en el tráfico HTTP, y el segundo filtro nos serviría para ver qué información inyecta esa dirección IP en el tráfíco HTTP.
De modo que ambos filtros se podían combinar del siguiente modo:
ip.addr == 10.22.21.226 and http.request.method == "POST"
También podríamos hacer excepciones. Por ejemplo, si ponemos un filtro dentro de un signo de exclamación y unos paréntesis eso omitiría los resultados obtenidos de ese filtro en la salida del Wireshark. Por ejemplo !(http.request.method == "GET" ) omitiría todos los resultados del tráfico correspondientes. También podríamos omitir determinadas direcciones IP o MAC.
Ahora que sabemos esto vamos a crear una cuenta de correo de ejemplo en Gmail, para ver cómo podemos obtener tanto la contraseña como las direcciones de e-mail del emisor, los destinatarios y el contenido de los mensajes enviados desde ahí. También lo registraremos en Windows Live ID para ver cómo podemos descubrir la contraseña una vez esa persona se haya conectado a algún medio de mensajería instantánea on-line como eBuddy.
Ahora que tenemos la cuenta creada (victima.wireshark@gmail.com) y registrada para usarla en la red del Windows Live Messenger vamos al programa y aplicamos el siguiente filtro:
ip.addr == 10.22.21.226 and http.request.method == "POST"
Y probamos a enviar un e-mail a alguien.
2
Le damos al botón enviar y vamos al Wireshark.
Veremos una entrada de tráfico en la que ponga POST /mail/?ui=… en la información del paquete. Hacemos clic con el botón derecho sobre él y escogemos Follow TCP Stream.
3
Nos empezará a filtrar los trazos TCP y nos saldrá una ventana como ésta:
Aquí si bajamos más o menos a la mitad veremos lo siguiente (en color rojo):
4
Veremos cómo donde pone Content-Disposition: form-data; name="from" pone la dirección de e-mail del que envía el correo, así como más abajo aparecen las direcciones de e-mail del o los destinatarios (Content-Disposition: form-data; name="to") el asunto del email (Content-Disposition: form-data; name="subject") y el cuerpo del mensaje (Content-Disposition: form-data; name="msgbody").
Ahora supongamos que esa persona se conecta al Messenger por eBuddy o algún medio similar que no de la protección suficiente. Veríamos lo siguiente:
5
Si debajo en la información desplegáramos la sección Line-based text data veríamos los siguientes parámetros de envío:
En donde se ve perfectamente la contraseña (password=PepePerez), y más a la izquierda el nombre de la cuenta de correo a la que corresponde (&username= victima.wireshark%40 gmail.com…).
6
Por último, también podríamos copiar y pegar el contenido de las cookies. En la sección Hypertext Transfer Protocol si desplegamos donde pone Cookie y le damos a Follow TCP Stream obtenemos la información necesaria. Después en Firefox, con un editor de cookies, podríamos insertar la información de la cookie que hemos capturado y acceder a cualquier sitio como la persona que entró en determinada página web o servicio web.
7