La herramienta que explicaré es Achilles,(podeis descargarla de
http://packetstormsecurity.nl/web/achilles-0-27.zip).
Al contrario que un Proxy, que normalmente solo permite una conexión bidireccional, el Achilles simula dos conexiones, una entre el cliente y el propio Achilles y otra entre el Achilles y el servidor real, fingiendo así el papel de servidor. Esto nos va a permitir descifrar los datos y verlos por texto plano. Este programita también puede interceptar el protocolo http que ya de por si viaja sin cifrar y aportarnos gran cantidad de información sobre los datos del servidor web. Esto junto con el estudio del codigo fuente de la página, nos proporcionará una buena cantidad de información que nos permitirá buscar agujeros más o menos explotables via CGI o SQL, o en todo caso proporcionará un gran conocimiento sobre las debilidades del sistema estudiado.
Bueno comencemos a explicar el funcionamiento del programa. (No es necesario instalarlo) En la pantalla de presentación podemos ver cómo, por defecto, el Proxy se pone a escuchar por el puerto 5000. También viene con un certificado “de pega” que nos permite interactuar con conexiones SSL. Para que Achilles pueda hacer de “man in the middle” debemos activar las opciones “Intercept mode ON” y las de “Intercept client data” e “Intercept Server data (text)” que indica que mostrará por pantalla el trafico interceptado de ambos lados. Ahora es cuando podemos observar o modificar las peticiones o las respuestas y, una vez realizados los cambios o estudiado el codigo, pulsar el botón “Send” para que la petición pase al destinatario final. Achilles nos va a permitir visualizar cada petición http y modificarla antes de mandarla. Si tenemos a alguien proseado por nuestro “amiguito”, no importa lo que él envíe o lo que le sea devuelto por el servidor, nosotros podremos espiarlo y modificarlo. (La verdad es que a mi me parece un buen entretenimiento jejejeje :P)
Con el “Find/Rep” podremos buscar una palabra en concreto y reemplazarla por otra si fuese necesario en textos largos. También nos permite visualizar el diálogo del cliente y del servidor en distintas ventanas. Para realizar esto hay que pulsar la “C” de cliente y la “S” de servidor en el panel de arriba a la izquierda. Es recomendable aumentar la cantidad que el programa considera “Time Out”, usease, la cantidad de segundos que espera antes de dar por perdída la conexión, ya que si nos paramos a estudiar las peticiones vamos a hacer esperar mucho tiempo a ambos hosts, así que aumentarla considerablemente las dos cifras.
Si marcamos la función de “ignore jpg/gif”, no nos pedirá permiso para enviar las peticiones que descargan las imágenes. Normalmente no será necesario modificar estas peticiones de descarga de imágenes así que podemos ignorarlas. Llegaremos a descubrir que nuestro navegador realiza muchas más peticiones de las que sospechamos, por ejemplo archivos con extensión “JS” que cumplen funciones de “programación” dentro del HTML y las hojas de estilo (archivos .css) para poder ver las páginas con el diseño que esperamos. Cuando hayamos preparado todas las peticiones necesarias podemos pulsar el botón de “reproducir” y en la barra inferior del programa se indicará si está corriendo o no (“Running” o “Stopped”).
Ahora debemos adaptar el navegador para que la conexión pase por Achilles, debemos dirigirnos a “Herramientas “-“Opciones de Internet”-“Conexiones”-“Configuración LAN”, aquí marcamos la casilla “Usar servidor Proxy” y rellenamos la dirección con “localhost” o con 127.0.0.1, que viene a ser lo mismo. Y en el puerto tendremos que poner el mismo que utiliza el Achilles para escuchar, el 5000.
Si ya lo tenemos configurado, podemos empezar a probarlo.
En el navegador escribiremos
www.hotmail.com, y enseguida en la pantalla del Achilles aparecerá un GET, que es la forma de pedir una página del protocolo http. Debeis recordar que debemos pulsar “send” para validar cada una de las petuiciones que nos muestre el Achilles para ir avanzando hasta que la página y las imágenes hayan sido descargadas y sean visibles en el navegador. Con esto ya se podría ir experimentando cambiando algún parámetro (versión, idioma…) para así comprobar las reacciones del servidor. Tenemos que procurar no volver inestable la conexión con valores que no puedan ser entendendidos por el protocolo.
Cuando la página esté descargada, podemos rellenar los campos de la dirección de correo y la contraseña y pulsar el botón de enviar de la página web. Volveremos al achilles para validar los datos antes de que sean enviados al servidor remoto. En este momento el navegador pedirá confirmación ante el certificado “de pega”, podremos aceptar sin problemas. Ahora volvemos a la pantalla del Achilles y observamos que en uno de los pasos ( tras enviar con el botón “send” varios comandos GET) podemos ver perfectamente la contraseña y dirección escrita justo antes de ser enviada. Si quisieramos, en este momento podríamos cambiar la contraseña o la dirección y enviar el dato con el botón “send” de achilles. Así aún habiendo introducido los datos de manera correcta en el navegador, los habríamos cambiado antes de ser enviados realmente al servidor remoto y provocaríamos un fallo de autenticación. Pues en esto consiste un ataque de “hombre en el medio” ahora solo queda que experimenteis con otras webs cifradas o lo que se os pase por la cabeza.
Tengo que añadir que el Achilles añade un servicio de Proxy en el pc, abriendo un puerto y ofreciendo el servicio al que se conecte, por lo que recomiendo que lo desconecteis cuando no sea usado.
Bien pues hasta aquí llega esta explicación del Achilles, espero que se entienda…y sobre todo no seais “muy “malos jejejeje.
Saludos a todos y FELIZ AÑO NUEVOO.
PD: Me hubiese gustado postear esto ayer pero no me fue posible, espero que no sea muy extenso
