> For the complete documentation index, see [llms.txt](https://securitylayer.gitbook.io/securitylayer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://securitylayer.gitbook.io/securitylayer/pentesting-tools/tools/nmap.md).

# Nmap

#### *¿Qué es `nmap`?*

*`nmap` (Network Mapper) es una herramienta de código abierto utilizada para descubrir equipos y servicios en una red. Es ampliamente usada en pentesting, administración de redes y análisis de seguridad.*

#### *¿Para qué sirve?*

* *Descubrir qué hosts están activos en una red.*
* *Detectar qué puertos están abiertos en un equipo.*
* *Identificar qué servicios están corriendo y en qué versiones.*
* *Detectar el sistema operativo de un host.*
* *Ejecutar scripts personalizados para detectar vulnerabilidades o realizar tareas automatizadas (usando el motor de scripts NSE).*

#### *Ejemplos de uso comunes*

* *`nmap 192.168.0.1` → escaneo básico de los 1000 puertos TCP más comunes.*
* *`nmap -sV 192.168.0.1` → detecta versiones de los servicios que corren en los puertos abiertos.*
* *`nmap -O 192.168.0.1` → intenta identificar el sistema operativo del host objetivo.*
* *`nmap -A 192.168.0.1` → escaneo agresivo: incluye servicios, versiones, OS detection, traceroute y scripts NSE.*
* *`nmap --script vuln 192.168.0.1` → usa scripts de vulnerabilidades para detectar fallos conocidos.*
* *`nmap -p- 192.168.0.1` → escanea todos los puertos TCP (de 1 al 65535).*
* *`nmap -Pn 192.168.0.1` → omite el ping inicial, útil cuando ICMP está bloqueado.*
* *`nmap -oN resultado.txt 192.168.0.1` → guarda la salida del escaneo en un archivo de texto plano.*
* *`nmap -T4 192.168.0.1` → acelera el escaneo (modo de velocidad agresivo).*
* *`nmap -sU -p- --min-rate 10000 192.168.0.1` → UDP scan*

#### *Algunos parámetros útiles de `nmap`*

```vim
| Opción | Descripción                                          |
| ------ | ---------------------------------------------------- |
| `-sS`  | Escaneo SYN (rápido y discreto)                      |
| `-sV`  | Detección de versiones de servicios                  |
| `-O`   | Detección de sistema operativo                       |
| `-Pn`  | No realiza ping (útil si el host no responde a ICMP) |
| `-p-`  | Escanea todos los puertos (1 al 65535)               |
| `-T4`  | Aumenta la velocidad del escaneo                     |
| `-oN`  | Guarda el resultado en un archivo en formato normal  |
```

#### *¿Qué son los scripts de `nmap`?*

*`nmap` incluye un motor de scripting llamado **NSE (Nmap Scripting Engine)** que permite ejecutar scripts escritos en **Lua** para automatizar tareas de escaneo avanzadas.*\
*Estos scripts permiten desde detección de servicios específicos hasta pruebas de vulnerabilidades y explotación básica.*

*Los scripts se agrupan en categorías como:*

* *`default` → se ejecutan con `-sC`*
* *`vuln` → scripts de detección de vulnerabilidades*
* *`auth`, `safe`, `intrusive`, `exploit`, entre otros*

*Se encuentran por defecto en: `/usr/share/nmap/scripts/`*

#### *Cómo usarlos*

*`nmap --script <script>` → ejecuta un script específico*\
\&#xNAN;*`nmap --script <categoría>` → ejecuta todos los scripts de una categoría*\
\&#xNAN;*`nmap --script-help <script>` → muestra la descripción y uso del script*

#### *Ejemplos de uso de scripts NSE*

*`nmap --script vuln 192.168.0.1` → ejecuta todos los scripts de la categoría "vuln" para detectar posibles vulnerabilidades conocidas*\
\&#xNAN;*`nmap --script default 192.168.0.1` → ejecuta los scripts por defecto, útiles para reconocimiento general*\
\&#xNAN;*`nmap --script http-title 192.168.0.1` → muestra el título de la página web (útil para identificar aplicaciones web)*\
\&#xNAN;*`nmap --script ftp-anon 192.168.0.1` → detecta si el servidor FTP permite acceso anónimo*\
\&#xNAN;*`nmap --script smb-os-discovery 192.168.0.1` → identifica información de sistemas operativos mediante SMB*\
\&#xNAN;*`nmap --script http-enum 192.168.0.1` → enumera recursos en servidores HTTP*\
\&#xNAN;*`nmap --script ssh-auth-methods 192.168.0.1` → enumera los métodos de autenticación soportados por SSH*\
\&#xNAN;*`nmap --script dns-brute 192.168.0.1` → intenta descubrir subdominios mediante fuerza bruta*\
\&#xNAN;*`nmap --script http-headers 192.168.0.1` → obtiene y muestra los encabezados HTTP de un servidor web*\
\&#xNAN;*`nmap --script mysql-empty-password 192.168.0.1` → prueba si el servicio MySQL permite login con contraseña vacía*

*Para filtrar y buscar todas las categorias disponibles de los scripts de nmap podemos usar el siguiente comando*&#x20;

```vim
┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# locate .nse | xargs grep "categories" | grep -oP '".*?"' | sort -u
"auth"
"broadcast"
"brute"
"default"
"discovery"
"dos"
"exploit"
"external"
"fuzzer"
"info"
"intrusive"
"malware"
"safe"
"version"
"vuln"
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://securitylayer.gitbook.io/securitylayer/pentesting-tools/tools/nmap.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
