{"id":235,"date":"2014-08-22T11:58:57","date_gmt":"2014-08-22T12:04:36","guid":{"rendered":"https:\/\/3b830nmap_matrix.jpg"},"modified":"2015-07-16T17:06:25","modified_gmt":"2015-07-16T23:06:25","slug":"como-hacer-escaneo-de-puertos-con-nmap","status":"publish","type":"post","link":"https:\/\/emanuelpaxtian.com\/blog\/como-hacer-escaneo-de-puertos-con-nmap\/","title":{"rendered":"Como hacer escaneo de puertos con Nmap"},"content":{"rendered":"<p>Hoy hablaremos de nmap a nivel b\u00e1sico, para que sirva de recordatorio a quienes ya lo conoc\u00edan y de introducci\u00f3n a los m\u00e1s nuevos.<\/p>\n<h1>\u00bfQu\u00e9 es nmap?<\/h1>\n<p><strong><a href=\"http:\/\/www.google.com\/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;ved=0CCMQFjAA&amp;url=http%3A%2F%2Fnmap.org%2F&amp;ei=KaVwULHLIYTRhAe8nIFY&amp;usg=AFQjCNHzcN-xitNeKNgtt4WVBN4GtflTEQ\">Nmap<\/a><\/strong>\u00a0es una herramienta para la exploraci\u00f3n de redes y, de forma id\u00f3nea, la realizaci\u00f3n de auditor\u00edas de seguridad. Se trata de un software desarrollado para\u00a0<strong>escanear redes completas<\/strong>, aunque funciona sin problemas contra un servidor concreto. Nmap rastrea los puertos de la m\u00e1quina o m\u00e1quinas en cuesti\u00f3n y establece si un puerto est\u00e1 abierto, cerrado o protegido por un cortafuegos. As\u00ed, es capaz de identificar m\u00e1quinas dentro de una red, determinar qu\u00e9 servicios utiliza dicha m\u00e1quina, definir cu\u00e1l es su sistema operativo e incluso devolver cierta informaci\u00f3n sobre el hardware de la m\u00e1quina.<\/p>\n<h1>\u00bfC\u00f3mo funciona?<\/h1>\n<p>Funciona de dos formas:\u00a0<strong>enviando paquetes<\/strong>\u00a0o\u00a0<strong>realizando una llamada de conexi\u00f3n<\/strong>\u00a0(<em><strong><a href=\"http:\/\/www.mkssoftware.com\/docs\/man3\/connect.3.asp\">connect system call<\/a><\/strong><\/em>). Una vez hecho esto, Nmap es capaz de distinguir entre seis estados diferentes para cada puerto:<\/p>\n<ul>\n<li><strong><em>Abierto (open)<\/em><\/strong>: quiere decir que hay una aplicaci\u00f3n aceptando conexiones TCP,<strong><a href=\"http:\/\/es.wikipedia.org\/wiki\/Datagrama\">datagramas<\/a><\/strong>\u00a0UDP o asociaciones\u00a0<strong><a href=\"http:\/\/es.wikipedia.org\/wiki\/Stream_Control_Transmission_Protocol\">SCTP<\/a><\/strong>\u00a0en el puerto.<\/li>\n<\/ul>\n<ul>\n<li><em><strong>Cerrado (closed)<\/strong><\/em>: el puerto es accesible pero no existe ninguna aplicaci\u00f3n escuchando en \u00e9l.<\/li>\n<\/ul>\n<ul>\n<li><em><strong>Filtrado (filtered)<\/strong><\/em>: el paquete que se ha enviado ha sido filtrado por un firewall, reglas del router, etc y nmap no puede determinar si est\u00e1 abierto o no.<\/li>\n<\/ul>\n<ul>\n<li><em><strong>Sin filtrar (unfiltered)<\/strong><\/em>: quiere decir que el puerto es accesible pero nmap no es capaz de determinar si est\u00e1 abierto o cerrado. Este estado s\u00f3lo lo devuelve el tipo de escaneo ACK (lo veremos m\u00e1s adelante).<\/li>\n<\/ul>\n<ul>\n<li><em><strong>open|filtered \u2013 closed|filtered<\/strong><\/em>: nmap no es capaz de definir si el puerto est\u00e1 abierto\/cerrado o filtrado. Ocurre cuando los puertos abiertos no generan una respuesta.<\/li>\n<\/ul>\n<p>Una sintaxis general simplificada de la orden ser\u00eda:<\/p>\n<pre class=\"euge\"><strong> user@machine:~$<\/strong> <strong>nmap (opciones_escaneo) (m\u00e1quina_a_escanear)<\/strong><\/pre>\n<p>Aunque en funci\u00f3n del tipo de escaneo, es posible que se requieran privilegios de superusuario.<\/p>\n<h1>Tipos de escaneo<\/h1>\n<p>Existen 13 tipos de escaneo, veamos algunos de ellos:<\/p>\n<p><strong>Escaneo TCP SYN<\/strong>: es el predeterminado y probablemente el m\u00e1s utilizado. Tambi\u00e9n el m\u00e1s r\u00e1pido y discreto, ya que no llega a completar una conexi\u00f3n TCP. Su funcionamiento consiste en enviar un paquete SYN y esperar una respuesta por parte del servidor: si se recibe un SYN\/ACK el puerto est\u00e1 abierto (si lo recibe sin el flag ACK tambi\u00e9n lo considera as\u00ed), si se recibe un RST (reset) est\u00e1 cerrado y si no se recibe respuesta tras varios intentos se considera filtrado.<\/p>\n<p>Comando:<\/p>\n<pre class=\"euge\"><strong>root@machine:~#<\/strong> <strong>nmap -sS (m\u00e1quina)<\/strong><\/pre>\n<p><strong>Escaneo TCP connect<\/strong>: el predeterminado cuando no tenemos acceso root y por tanto no podemos enviar paquetes en crudo. Nmap solicita al sistema que establezca una conexi\u00f3n con la m\u00e1quina objetivo a trav\u00e9s del puerto elegido mediante una llamada de tipo connect. Se trata de una opci\u00f3n menos eficiente que TCP SYN, ya que requiere m\u00e1s tiempo y paquetes para obtener la misma informaci\u00f3n.<\/p>\n<p>Comando:<\/p>\n<pre class=\"euge\"><strong>user@machine:~$<\/strong> <strong>nmap -sT (m\u00e1quina)<\/strong><\/pre>\n<p><strong>Escaneo UDP<\/strong>: dado que el escaneo de puertos UDP es m\u00e1s lento y dificultoso que el de TCP, muchas veces se deja de lado su auditor\u00eda. Es un error, ya que tanto DNS (puerto 53), como SNMP (puertos 161\/162) y DHCP (puertos 67\/68) -servidor\/cliente- corren sobre \u00e9ste. El escaneo UDP funciona mediante el env\u00edo de un paquete UDP a los puertos seleccionados, de tal forma que si se devuelve un error \u201cICMP unreachable\u201d el puerto se considera cerrado o filtrado (en funci\u00f3n del c\u00f3digo de error) mientras que si hay respuesta mediante un paquete UDP se considera abierto.<\/p>\n<p>Comando:<\/p>\n<pre class=\"euge\"><strong>root@machine:~#<\/strong> <strong>nmap -sU (m\u00e1quina)<\/strong><\/pre>\n<p><strong>Escaneo SCTP INIT<\/strong>: este tipo de escaneo se establece como alternativa a los TCP y UDP y ser\u00eda el equivalente a un escaneo TCP SYN en el \u00e1mbito\u00a0<strong><a href=\"http:\/\/es.wikipedia.org\/wiki\/Stream_Control_Transmission_Protocol\">SCTP<\/a><\/strong>. Se trata de un tipo de escaneo r\u00e1pido y que distingue bien entre los estados abierto, cerrado y filtrado. Adem\u00e1s, es muy poco intrusivo, ya que no completa la asociaci\u00f3n STCP sino que env\u00eda un paquete INIT como si se pretendiera abrir una conexi\u00f3n y espera la respuesta: si recibe un INIT-ACK, el puerto est\u00e1 abierto, mientras que si recibe un ABORT el puerto est\u00e1 cerrado. En caso de no recibir respuesta tras varios intentos, el puerto se marca como filtrado.<\/p>\n<p>Comando:<\/p>\n<pre class=\"euge\"><strong>root@machine:~#<\/strong> <strong>nmap -sY (m\u00e1quina)<\/strong><\/pre>\n<p><strong>Escaneo TCP personalizado:<\/strong>esta modalidad tiene como finalidad permitir que el usuario defina su an\u00e1lisis a la carta, especificando las TCP flags a utilizar (URG, ACK, PSH, RST, SYN, FIN) y el tipo de escaneo TCP (-sF, -sA).<\/p>\n<p>Comando:<\/p>\n<pre class=\"euge\"><strong>root@machine:~#<\/strong> <strong>nmap -sF\/sA --scanflags URG<\/strong><\/pre>\n<p>(Por ejemplo)<\/p>\n<p>Como no pod\u00eda ser de otra manera, tanto nmap como Zenmap se encuentran en los<strong><a href=\"http:\/\/packages.debian.org\/squeeze\/nmap\">repositorios Debian<\/a><\/strong>, as\u00ed que \u00a1no ten\u00e9is excusa para no probarlo!<\/p>\n<h1>Trabajando en modo gr\u00e1fico: Zenmap<\/h1>\n<p>Aunque no es lo habitual en los usuarios de nmap (normalmente con conocimientos avanzados y m\u00e1s que acostumbrados a trabajar en la terminal), cabe la posibilidad de que por una u otra raz\u00f3n necesiten o prefieran una interfaz gr\u00e1fica para trabajar con nmap. Para esos casos existe\u00a0<a href=\"http:\/\/nmap.org\/zenmap\/\"><strong>Zenmap<\/strong><\/a>\u00a0que recoge toda la potencia de nmap en una GUI muy intuitiva, completa y \u00fatil tanto para an\u00e1lisis sencillos como aquellos m\u00e1s complejos o personalizados.<\/p>\n<p>Aqu\u00ed, un par de capturas de pantalla para que os hag\u00e1is una idea de su aspecto, aunque lo m\u00e1s recomendable es que lo prob\u00e9is vosotros mismos:<\/p>\n<p><a href=\"http:\/\/www.debianhackers.net\/wp-content\/uploads\/2012\/10\/zenmap_1.png\"><img loading=\"lazy\" decoding=\"async\" title=\"zenmap_1\" src=\"http:\/\/www.debianhackers.net\/wp-content\/uploads\/2012\/10\/zenmap_1-277x300.png\" alt=\"\" width=\"277\" height=\"300\" border=\"0\" \/><\/a><a href=\"http:\/\/www.debianhackers.net\/wp-content\/uploads\/2012\/10\/zenmap_2.png\"><img loading=\"lazy\" decoding=\"async\" title=\"zenmap_2\" src=\"http:\/\/www.debianhackers.net\/wp-content\/uploads\/2012\/10\/zenmap_2-277x300.png\" alt=\"\" width=\"277\" height=\"300\" border=\"0\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy hablaremos de nmap a nivel b\u00e1sico, para que sirva de recordatorio a quienes ya lo conoc\u00edan y de introducci\u00f3n a los m\u00e1s nuevos. \u00bfQu\u00e9 es nmap? Nmap\u00a0es una herramienta&hellip;<\/p>\n","protected":false},"author":1,"featured_media":358,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,10],"tags":[],"class_list":["post-235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hacking","category-seguridad"],"_links":{"self":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts\/235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":0,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/media\/358"}],"wp:attachment":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/tags?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}