Una herramienta imprescindible a la hora de hacer un CTF, ayudarnos en pruebas de penetración o tareas de seguridad informática en general, es ‘nmap’.

Esta herramienta es un programa de código abierto multiplataforma, que sirve para escanear los puertos de sistemas informáticos. Es un estándar en la industria, rápido y con sus propios scripts (NSE). Viene instalado por defecto en todas las distros de seguridad informática (Kali, Parrot, BlackArch, etc).

Para ver una lista de todos los parámetros que puede tener un comando, se tiene que abrir una terminal e ingresar a continuación:

nmap -h

Esa cantidad de opciones hace que nmap sea un herramienta sumamente versátil y útil a la hora de detectar que servicios y puertos están expuestos en un sistema.
Por ejemplo, si solo queremos saber que puertos abiertos tiene un servidor (en el ejemplo la ip del servidor es 10.0.2.4), simplemente ingresamos lo siguiente:

nmap 10.0.2.4

También podría pasar que no sepamos cual es la ip exacta del servidor, pero que sepamos que está en la subnet 10.0.2.X, en ese caso también podremos ingresar direcciones con la notación CIDR para que nmap revise los 254 posibles hosts de la red. Para esto deberíamos ingresar:

nmap 10.0.2.0/24

Cabe destacar que también podemos indicarle al nmap que escanee un rango de direcciones ip, por ejemplo 10.0.2.1-4 (escaneara desde la dirección 10.0.2.1 hasta la 10.0.2.4).

Si están comenzando a usar nmap, es recomendable que al principio usen el parámetro “-A” junto con el comando. Este parámetro sirve para indicarle al nmap que haga un escaneo de los puertos, que detecte el sistema operativo, y que detalle la información de los servicios en los puertos.

nmap –A 10.0.2.4

Hay que tener en cuenta que ciertas funciones de nmap necesitan correr como administrador o root para funcionar.

Para terminar, una serie de parámetros que usualmente se usa para los CTFs es la siguiente:

nmap –sV –sC –v 10.0.2.4

Las opciones son las siguientes:
-v = es el verbosity (con esto le indicas al nmap que te muestre información mientras se lleva a cabo el escaneo)
-sV = es para indicarle al nmap que detecte las versiones y los servicios que corren en los puertos
-sC = es para indicarle al nmap que ejecute los scripts básicos de reconocimiento de vulnerabilidades


Si bien estas opciones son bastantes generales, hay muchas más que pueden llegar a ser útiles según el caso. Para ver todas las posibles opciones usar el parámetro –h como se mencionó antes.