Power belongs to the people who take it

Vendiendo humo: RUSTSCAN vs NMAP

En este post analizaremos la nueva moda de publicar códigos “vendehumo” de dudosa calidad para ganar unas cuantas interacciones, demostrar que su nivel no es muy alto o que no saben leer la documentación de otras herramientas que ya existen 😉
Por esta moda nos encontramos publicaciones en Twitter, Linkedin o incluso Twitch que pueden llegar a confundir a gente que está empezando en esto o que simplemente no tiene mucho nivel técnico.

Esta semana se hizo bastante viral el siguiente Tweet de @AsensiFj:
https://twitter.com/AsensiFj/status/1285635854032089090

No voy a unirme a los comentarios que ha recibido este Tweet, pero os animo a leerlos.
Hay otros que directamente no se cortan y copian repositorios tal cual y dicen que son suyos:
https://web.archive.org/web/20200724121252/https://github.com/Marduky/Facial_recognitionhttps://github.com/MProx/Facial_recognition

En este post hablaremos de Rustscan, la nueva herramienta “revolucionaria” que promete scanners de puerto mucho más rápidos que Nmap.

Si repasamos el código fuente de la herramienta nos damos cuenta de que el autor no ha leído la documentación de Nmap, una herramienta que él mismo usa en su script. La herramienta sólo intenta conectarse a los 65 mil puertos en baches. Este enfoque provoca mucho más ruido y puede que resultados erróneos.
Pero aun que provocara más tráfico, ¿no está mal si es mucho más rápido no?

Lo gracioso es que puede hacer exactamente lo mismo con NMAP. Los parámetros por defecto en RustScan son 4500 conexiones simultáneas y 1500 ms de rtt timeout. Si buscamos en la documentación de NMAP:

–min-rtt-timeout time, –max-rtt-timeout time, –initial-rtt-timeout time (Adjust probe timeouts): Nmap mantiene un valor de expiración en ejecución para saber cuánto tiempo debe esperar para recibir la respuesta a una sonda o para retransmitir la sonda. Se pueden recortar los tiempos de análisis de forma apreciable […] Sin embargo, no se debería establecer a valores muy agresivos.

–min-rate number; –max-rate number (Controla directamente la tasa de exploración)

Por tanto, una configuración similar a la de Rustscan sería:

nmap --min-rate 4500 --max-rtt-timeout 1500ms -p- IP 

RUSTSCAN vs NMAP

Rustscan

Con Rustscan se encuentran 10 puertos abiertos: 88, 135, 139, 445, 53, 389, 5985, 49155, 49154, 49157 en 21.67 segundos.

NMAP 1

nmap --min-rate 4500 --max-rtt-timeout 1500ms -p- 10.10.10.182

Utilizando la configuración que dijimos anteriormente, se encuentran 15 puertos abiertos: 53, 88, 135, 139, 389, 445, 636, 3268, 3269, 49154, 49155, 49157, 49158 y 49165 en 44.07 segundos.
Por tanto el scan anterior de Rustscan no ha detectado los puertos 636, 3268 y 3269, entre otros, aun que ha tardado la mitad que Nmap.

NMAP 2

Pero puestos a ser rápidos y ruidosos, podemos utilizar otra configuración de Nmap más agresiva:

nmap -sS -n -Pn -p- --max-rtt-timeout 100ms --min-parallelism 1000 10.10.10.182

Como veis esta configuración nos avisa (“Your –min-parallelism option is pretty high! This can hurt reliability.”) y los resultados han sido bastante mejores que Rustscan pues se han encontrado todos los puertos y ha tardado 14.73 segundos.

No debemos fiarnos de twitter :O

¿Me ayudas a compatirlo?

3 comentarios

  1. Un hacker indignado

    Por fin alguien que habla sin pelos en la lengua. Enhorabuena, seguir por esta línea. Desmantelando a los vendehumos. Además me parece una labor importantísima para la sociedad que se cuestiones este tipo de actitudes. Necesitamos más información contrastada y menos clickbait.

  2. d0ct0r

    ZAS en toda la boca!

    Muy buena, apoyo 100% este tipo de publicaciones donde se aporta criterio, código, resultados… que estamos agilipollados con las redes sociales.

    Lo dicho; felicidades por el post y a cuidarse!

  3. Esteban

    Creo que hay una confusión en la comparación.
    Rust busca hacer lo mismo, pero con algunas ventajas de paradigma y desempeño, de hecho la velocidad no es la mejor comparación, pues Nmap no busca velocidad, sino cantidad y calidad de información.
    Nmap está desarrollado en C y algo de La,zenity y Perl.
    Este desarrollo con Rust no me lleve más que una actualización de prácticamente “lo mismo” pero con mejor factibilidad de mantenerla a futuro y con una ligera ventaja de Rust sobre C.
    En fin, es una ventaja muy ligera.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

© 2024 ironHackers

Tema por Anders NorenArriba ↑