{"id":1388,"date":"2024-05-28T10:00:00","date_gmt":"2024-05-28T13:00:00","guid":{"rendered":"https:\/\/www.nerdadas.com\/blog\/?p=1388"},"modified":"2024-05-27T20:07:32","modified_gmt":"2024-05-27T23:07:32","slug":"detectando-escaneos-de-puertos-avanzados","status":"publish","type":"post","link":"https:\/\/www.nerdadas.com\/blog\/detectando-escaneos-de-puertos-avanzados\/","title":{"rendered":"Detectando Escaneos de Puertos Avanzados"},"content":{"rendered":"\n<p>Hace un tiempo hicimos un laboratorio de como detectar y bloquear escaneos de puertos (<a href=\"https:\/\/www.nerdadas.com\/blog\/bloquear-un-escaneo-de-puertos\/\">https:\/\/www.nerdadas.com\/blog\/bloquear-un-escaneo-de-puertos\/<\/a>) <\/p>\n\n\n\n<p>En esa ocaci\u00f3n utilizamos la funci\u00f3n de Mikrotik PSD (Port Scanner Detection) para \u00abagendar\u00bb al atacante y luego bloquear los agendados.<\/p>\n\n\n\n<p>En esta ocaci\u00f3n vamos a intentar detectar escaneos de puertos m\u00e1s avanzados pero tambi\u00e9n, por obvias razones, vamos a aprender a hacer escaneos m\u00e1s especializados con <strong>NMAP<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 es un escaneo de puertos?<\/h2>\n\n\n\n<p><em>Refrescamos. <\/em>B\u00e1sicamente, es una t\u00e9cnica usada para descubrir servicios en una red. Imaginemos que cada puerto en un servidor es como una puerta en una casa. Un escaneo de puertos ser\u00eda como ir puerta por puerta tocando el timbre para ver qui\u00e9n responde. Con esto, los hackers o administradores de red pueden ver qu\u00e9 servicios est\u00e1n corriendo en un servidor.<\/p>\n\n\n\n<p>Pero no siempre es golpear y ver qui\u00e9n atiende, sobre todo si implementamos la t\u00e9cnica antes vista. Es por eso que existen otras maneras de revisar puertos o servicios abiertos tratando de no \u00ablevantar el avispero\u00bb.<\/p>\n\n\n\n<p><strong>SYN Scan (Half-open Scan)<\/strong><\/p>\n\n\n\n<p><strong>C\u00f3mo funciona<\/strong>: Env\u00eda un paquete SYN (como cuando tocas el timbre) y espera una respuesta SYN-ACK (el due\u00f1o de la casa abre la puerta). Pero en lugar de completar la conexi\u00f3n, se manda un RST (reset) y se corta la comunicaci\u00f3n. As\u00ed, el atacante se mantiene \u00abinvisible\u00bb.<\/p>\n\n\n\n<p>Con Nmap podemos usarlo de la siguiente manera: (<a href=\"https:\/\/nmap.org\/\">https:\/\/nmap.org<\/a>)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sS &lt;IP-objetivo><\/code><\/pre>\n\n\n\n<p>En Mikrotik podemos detectarlo y frenarlo con las siguientes l\u00edneas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#Detectamos cierto comportamiento seg\u00fan los flags de TCP\n\/ip firewall filter add chain=input action=add-src-to-address-list address-list=syn-scan address-list-timeout=1d protocol=tcp tcp-flags=syn,!ack,!fin,!rst,!psh,!urg,!ece,!cwr comment=\"Detect SYN Scan\"\n#Bloqueamos todo lo catalogado\n\/ip firewall filter add chain=input action=drop src-address-list=syn-scan comment=\"Drop traffic from SYN Scan IPs\"\n<\/code><\/pre>\n\n\n\n<p><strong>FIN Scan<\/strong><\/p>\n\n\n\n<p><strong>C\u00f3mo funciona<\/strong>: Manda paquetes con el flag FIN activado, lo que es raro porque un paquete FIN normalmente termina una conexi\u00f3n.<\/p>\n\n\n\n<p><strong>C\u00f3mo probarlo con Nmap<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sF &lt;IP-objetivo><\/code><\/pre>\n\n\n\n<p>Y lo frenamos parecido al anterior(todas las dem\u00e1s t\u00e9cnicas son medio parecidas)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/ip firewall filter add chain=input action=add-src-to-address-list address-list=fin-scan address-list-timeout=1d protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!urg,!ack,!ece,!cwr comment=\"Detect FIN Scan\"\n\/ip firewall filter add chain=input action=drop src-address-list=fin-scan comment=\"Drop traffic from FIN Scan IPs\"<\/code><\/pre>\n\n\n\n<p><strong>Xmas Scan<\/strong><\/p>\n\n\n\n<p><strong>C\u00f3mo funciona<\/strong>: Env\u00eda paquetes con los flags FIN, PSH y URG activados, lo que hace que parezca un \u00abarbolito de Navidad\u00bb de bits, de ah\u00ed el nombre.<\/p>\n\n\n\n<p><strong>C\u00f3mo probarlo con Nmap<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sX &lt;IP-objetivo><\/code><\/pre>\n\n\n\n<p><strong>C\u00f3mo detectarlo y bloquearlo en Mikrotik<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/ip firewall filter add chain=input action=add-src-to-address-list address-list=xmas-scan address-list-timeout=1d protocol=tcp tcp-flags=fin,psh,urg comment=\"Detect Xmas Scan\"<br \/>\/ip firewall filter add chain=input action=drop src-address-list=xmas-scan comment=\"Drop traffic from Xmas Scan IPs\"<\/pre>\n\n\n\n<p><strong>NULL Scan<\/strong><\/p>\n\n\n\n<p><strong>C\u00f3mo funciona<\/strong>: No env\u00eda ning\u00fan flag en los paquetes, lo que en teor\u00eda deber\u00eda pasar desapercibido para algunos firewalls.<\/p>\n\n\n\n<p><strong>C\u00f3mo probarlo con Nmap<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sN &lt;IP-objetivo><\/code><\/pre>\n\n\n\n<p><strong>C\u00f3mo detectarlo y bloquearlo en Mikrotik<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/ip firewall filter add chain=input action=add-src-to-address-list address-list=null-scan address-list-timeout=1d protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!urg,!ack,!ece,!cwr comment=\"Detect NULL Scan\"\n\/ip firewall filter add chain=input action=drop src-address-list=null-scan comment=\"Drop traffic from NULL Scan IPs\"<\/code><\/pre>\n\n\n\n<p><strong>Window Scan<\/strong><\/p>\n\n\n\n<p><strong>C\u00f3mo funciona<\/strong>: Similar al ACK scan, pero tambi\u00e9n mide el tama\u00f1o de la ventana del receptor.<\/p>\n\n\n\n<p><strong>C\u00f3mo probarlo con Nmap<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sW &lt;IP-objetivo><\/code><\/pre>\n\n\n\n<p><strong>C\u00f3mo detectarlo y bloquearlo en Mikrotik<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/ip firewall filter add chain=input action=add-src-to-address-list address-list=window-scan address-list-timeout=1d protocol=tcp tcp-flags=ack,!syn,!fin,!rst,!psh,!urg,!ece,!cwr comment=\"Detect Window Scan\"\n\/ip firewall filter add chain=input action=drop src-address-list=window-scan comment=\"Drop traffic from Window Scan IPs\"<\/code><\/pre>\n\n\n\n<p><strong>UDP Scan<\/strong><\/p>\n\n\n\n<p><strong>C\u00f3mo funciona<\/strong>: Manda paquetes UDP a varios puertos para ver si est\u00e1n abiertos, ya que el UDP no necesita establecer una conexi\u00f3n como TCP.<\/p>\n\n\n\n<p><strong>C\u00f3mo probarlo con Nmap<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -sU &lt;IP-objetivo><\/code><\/pre>\n\n\n\n<p>La detecci\u00f3n de este escaneo es un tanto complicada. Podr\u00edamos intentarlo pero nos llenar\u00edamos de falsos positivos!.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n y truco final<\/h2>\n\n\n\n<p>Analizando cada uno de estos tipos de escaneos de puertos y buscando soluciones me encontr\u00e9 detectando una cantidad gigante de falsos positivos. Comportamientos err\u00e1ticos o paquetes da\u00f1ados.<\/p>\n\n\n\n<p>Llegu\u00e9 a la conclusi\u00f3n de que se podr\u00edan frenar muchos de estos ataques filtrando solo paquetes inv\u00e1lidos y si, efectivamente, si ponemos sobre el firewall una regla que dropee los paquetes <strong>inv\u00e1lidos <\/strong>muchos de estos escaneos dejan de funcionar. <\/p>\n\n\n\n<p>Y si, hacer esto es una muy buena pr\u00e1ctica y una recomendada por Mikrotik.<\/p>\n\n\n\n<p>Dejamos pasar los Established, New y Related y solo vamos a dropear los Invalid<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/ip firewall filter\nadd action=drop chain=forward comment=\"Drop invalid\" connection-state=invalid log=yes log-prefix=invalid<\/code><\/pre>\n\n\n\n<p>Les dejo la documentaci\u00f3n oficial:<\/p>\n\n\n\n<p><a href=\"https:\/\/help.mikrotik.com\/docs\/display\/ROS\/Filter\">https:\/\/help.mikrotik.com\/docs\/display\/ROS\/Filter<\/a><\/p>\n\n\n\n<p>Y ya sab\u00e9s, si se te complica o quer\u00e9s charlar un poco m\u00e1s de esto, no dudes en escribirme!.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hace un tiempo hicimos un laboratorio de como detectar y bloquear escaneos de puertos <\/p>\n<p>En esa ocaci\u00f3n utilizamos la funci\u00f3n de Mikrotik PSD (Port Scanner Detection) para \u00abagendar\u00bb al atacante y luego bloquear los agendados.<\/p>\n<p>En esta ocaci\u00f3n vamos a intentar detectar escaneos de puertos m\u00e1s avanzados pero tambi\u00e9n, por obvias razones, vamos a aprender a hacer escaneos m\u00e1s especializados con NMAP.<\/p>\n","protected":false},"author":1,"featured_media":1391,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1241,1243,1223,161,1,17,804],"tags":[1300,1287,1283,18,282,210,10,37,409,1034,569,1036,1282],"class_list":["post-1388","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardening","category-montando-tu-red-corporativa-de-0","category-redes","category-seguridad","category-sin-categoria","category-tecnologia","category-ti","tag-deteccion","tag-detection","tag-escaneo","tag-google","tag-hack","tag-hacker","tag-jeremias-palazzesi","tag-linux","tag-port","tag-puertos","tag-redes","tag-scan","tag-scanning"],"_links":{"self":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/comments?post=1388"}],"version-history":[{"count":3,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1388\/revisions"}],"predecessor-version":[{"id":1392,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1388\/revisions\/1392"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/media\/1391"}],"wp:attachment":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/media?parent=1388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/categories?post=1388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/tags?post=1388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}