# Activo

## ¿Qué es Reconocimiento Activo?

El reconocimiento activo implica la interacción directa con un sistema o red objetivo para obtener información valiosa sobre su configuración, vulnerabilidades y posibles puntos de entrada para un ataque.

Las siguientes herramientas son parte del reconocimiento activo, entra dentro de cada una de ellas para saber como se utilizan

### Ping

Ping es un comando que envía un paquete de tipo ICMP Echo a un sistema remoto. Si el sistema remoto está en línea y el paquete "ping" fue correctamente enrutado y no bloqueado por ningún cortafuegos, el sistema remoto debería enviar un paquete ICMP Echo Reply en respuesta. De manera similar, la respuesta al "ping" debería llegar al primer sistema si es correctamente enrutada y no es bloqueada por ningún cortafuegos.

```
ping -c 1 <IP target>  # linux
ping -n 1 <IP target> # windows
```

| Parámetro | Descricpión        |
| --------- | ------------------ |
| -c        | Numero de paquetes |
| -n        | Numero de paquetes |

El tamaño de la cabecera de un paquete ICMP es de 8 bytes.

### Web Browser

Podemos utilizar la herramienta Devolper Tools (se abre con F12 o Ctrl + Shift + I) para hacer un reconocimiento de la página web a la que nos estemos enfrentando, viendo como se transimen los datos, las cookies, java script etc.

También podemos utilzar el [Wappalyzer ](https://www.wappalyzer.com/)el cuál nos ayudará a que tecnologías nos estamos enfrentando y versiones.

### Traceroute

Supongamos que queremos trazar la ruta que sigue un paquete desde nuestro equipo local hasta el sitio web de Google. El resultado de la traza podría ser algo así:

```
traceroute google.com
```

```scss
1  192.168.1.1 (192.168.1.1)  1 ms  1 ms  1 ms
2  10.0.0.1 (10.0.0.1)  10 ms  10 ms  10 ms
3  68.86.225.1 (68.86.225.1)  15 ms  15 ms  15 ms
4  68.85.205.173 (68.85.205.173)  20 ms  20 ms  20 ms
5  68.86.90.18 (68.86.90.18)  25 ms  25 ms  25 ms
6  68.86.85.46 (68.86.85.46)  30 ms  30 ms  30 ms
7  68.86.84.13 (68.86.84.13)  35 ms  35 ms  35 ms
8  72.14.209.108 (72.14.209.108)  40 ms  40 ms  40 ms
9  172.253.66.103 (172.253.66.103)  45 ms  45 ms  45 ms
10  216.239.48.44 (216.239.48.44)  50 ms  50 ms  50 ms
11  172.253.50.209 (172.253.50.209)  55 ms  55 ms  55 ms
12  lga34s19-in-f14.1e100.net (172.217.6.14)  60 ms  60 ms  60 ms
```

Cada línea representa un salto o "hop" de la traza, mostrando la dirección IP del router que gestionó ese salto, el tiempo que tardó el paquete en recorrer ese salto y el nombre del servidor si está disponible.

En este ejemplo, la traza muestra que el paquete realizó 12 saltos antes de llegar a su destino final en el sitio web de Google. La dirección IP y el nombre del servidor final aparecen en la última línea de la traza.

### Telnet

El protocolo TELNET (Teletype Network) fue desarrollado en 1969 para comunicarse con un sistema remoto a través de una interfaz de línea de comandos (CLI). Por lo tanto, el comando telnet utiliza el protocolo TELNET para la administración remota. El puerto predeterminado utilizado por telnet es el 23. Desde una perspectiva de seguridad, telnet envía todos los datos, incluyendo nombres de usuario y contraseñas, en texto claro. Enviar en texto claro hace que sea fácil para cualquier persona que tenga acceso al canal de comunicación, robar las credenciales de inicio de sesión. La alternativa segura es el protocolo SSH (Secure SHell).

```
telnet <target> 80
```

### Nc

Netcat o simplemente nc tiene diferentes aplicaciones que pueden ser de gran valor para un pentester. Netcat admite tanto los protocolos TCP como UDP. Puede funcionar como un cliente que se conecta a un puerto en escucha; alternativamente, puede actuar como un servidor que escucha en un puerto de su elección. Por lo tanto, es una herramienta conveniente que puede usar como un cliente o servidor simple sobre TCP o UDP.

#### Ncat como cliente

```
nc <IP target> <puerto>
```

#### Ncat como servidor

```
nc -vnlp 4443
```

| Option | Significado                                                           |
| ------ | --------------------------------------------------------------------- |
| -l     | Modo de escucha                                                       |
| -p     | Especificar el número de puerto                                       |
| -n     | Solo numérico; no resuelve nombres de host a través de DNS            |
| -v     | Salida detallada (opcional, pero útil para descubrir cualquier error) |
| -vv    | Muy detallado (opcional)                                              |
| -k     | Mantener la escucha después de que el cliente se desconecte           |

## Nmap

### Escaneo típico CTF

```
nmap -sSCV -p- --open --min-rate 5000 -n -Pn <IP> -oA scanTarget
nmap -sSCV -p- --open -T<1-5> -n -Pn <IP> -oA scanTarget
nmap -sSCV --top-ports --open --min-rate 5000 -n -Pn <IP> -oA scanTarget
nmap -sU -p- <IP> # si no encuentra nada en el TCP
nmap -sY -p- <IP> # protocolos stcp que son los de telecomunicación, el comando -sV no funcionaria porque necesitas tener un túnel para ver las versiones
```

| Parámetro     | Descripción                                                                       |
| ------------- | --------------------------------------------------------------------------------- |
| `-sS`         | Escaneo TCP SYN, que no hace el 3-way handshake (el escaneo es más rápido)        |
| `-sU`         | Escaneo de puertos UDP                                                            |
| `-sC`         | Serie de scripts de reconocimiento básicos                                        |
| `-sV`         | Serie de scripts para determinar las versiones de los puertos abiertos            |
| `-p-`         | Escaneo de todos los puertos (del 1 al 65535)                                     |
| `--open`      | Muestra solamente los puertos abiertos                                            |
| `--min-rate`  | Define la tasa de paquetes mínima a enviar durante el escaneo                     |
| `-n`          | Deshabilita la resolución DNS de los nombres de host                              |
| `-Pn`         | Deshabilita el reconocimiento de host y asume que todos los hosts son activos     |
| `-oA`         | Exporta los resultados del escaneo en tres formatos diferentes (XML, JSON y Nmap) |
| `--top-ports` | Escanea solamente los puertos más frecuentes                                      |
| `-T<0-5>`     | Define la velocidad del escaneo, desde 0 (sigiloso) hasta 5 (agresivo)            |

### Escaneo descubrimiento de hosts

| Tipo de Escaneo           | Comando de Ejemplo                         |
| ------------------------- | ------------------------------------------ |
| Escaneo ARP               | sudo nmap -PR -sn MACHINE\_IP/24           |
| Escaneo ICMP Echo         | sudo nmap -PE -sn MACHINE\_IP/24           |
| Escaneo ICMP Timestamp    | sudo nmap -PP -sn MACHINE\_IP/24           |
| Escaneo ICMP Address Mask | sudo nmap -PM -sn MACHINE\_IP/24           |
| Escaneo TCP SYN Ping      | sudo nmap -PS22,80,443 -sn MACHINE\_IP/30  |
| Escaneo TCP ACK Ping      | sudo nmap -PA22,80,443 -sn MACHINE\_IP/30  |
| Escaneo UDP Ping          | sudo nmap -PU53,161,162 -sn MACHINE\_IP/30 |

Recuerda agregar la opción -sn si solo estás interesado en descubrir los hosts sin escanear los puertos. Omitir -sn hará que Nmap use la opción de escaneo de puertos para los hosts activos.

| Parámetro | Descripción                                  |
| --------- | -------------------------------------------- |
| -n        | no hacer una búsqueda de DNS                 |
| -R        | búsqueda de DNS inversa para todos los hosts |
| -sn       | solo descubrimiento de hosts                 |

### Escaneo básico

| Tipo de Escaneo de Puertos | Comando de Ejemplo         |
| -------------------------- | -------------------------- |
| Escaneo TCP de Conexión    | nmap -sT 10.10.170.21      |
| Escaneo TCP SYN            | sudo nmap -sS 10.10.170.21 |
| Escaneo UDP                | sudo nmap -sU 10.10.170.21 |

| Parámetro             | Descripción                                                      |
| --------------------- | ---------------------------------------------------------------- |
| -p-                   | Escanear todos los puertos                                       |
| -p1-1023              | Escanear los puertos del 1 al 1023                               |
| -F                    | Escanear los 100 puertos más comunes                             |
| -r                    | Escanear los puertos en orden consecutivo                        |
| -T<0-5>               | Establecer la plantilla de tiempo (0 es el más lento)            |
| --max-rate 50         | Establecer la tasa máxima de envío de paquetes a 50/seg          |
| --min-rate 15         | Establecer la tasa mínima de envío de paquetes a 15/seg          |
| --min-parallelism 100 | Establecer el número mínimo de sondas a enviar en paralelo a 100 |

### Escaneo avanzado

| Tipo de Escaneo           | Comando de Ejemplo                                   |
| ------------------------- | ---------------------------------------------------- |
| Escaneo TCP Null          | sudo nmap -sN 10.10.59.16                            |
| Escaneo TCP FIN           | sudo nmap -sF 10.10.59.16                            |
| Escaneo TCP Xmas          | sudo nmap -sX 10.10.59.16                            |
| Escaneo TCP Maimon        | sudo nmap -sM 10.10.59.16                            |
| Escaneo TCP ACK           | sudo nmap -sA 10.10.59.16                            |
| Escaneo TCP Window        | sudo nmap -sW 10.10.59.16                            |
| Escaneo TCP Personalizado | sudo nmap --scanflags URGACKPSHRSTSYNFIN 10.10.59.16 |
| IP de Origen Falsificado  | sudo nmap -S SPOOFED\_IP 10.10.59.16                 |
| Dirección MAC Falsificada | --spoof-mac SPOOFED\_MAC                             |
| Escaneo de Señuelos       | nmap -D DECOY\_IP,ME 10.10.59.16                     |
| Escaneo Zombie            | sudo nmap -sI ZOMBIE\_IP 10.10.59.16                 |

Estos tipos de escaneo se basan en establecer banderas TCP de manera inesperada para solicitar una respuesta de los puertos. Los escaneos Null, FIN y Xmas provocan una respuesta de los puertos cerrados, mientras que los escaneos Maimon, ACK y Window provocan una respuesta de los puertos abiertos y cerrados.

| Parámetro               | Descripción                                            |
| ----------------------- | ------------------------------------------------------ |
| --source-port PORT\_NUM | especifica el número de puerto de origen               |
| --data-length NUM       | agrega datos aleatorios para alcanzar la longitud dada |

| Parámetro | Descripción                             |
| --------- | --------------------------------------- |
| --reason  | explica cómo Nmap llegó a su conclusión |
| -v        | modo detallado                          |
| -vv       | modo muy detallado                      |
| -d        | depuración                              |
| -dd       | más detalles para la depuración         |

### Escaneo Versiones - OS

| Parámetro              | Descripción                                                             |
| ---------------------- | ----------------------------------------------------------------------- |
| -sV                    | Determina la información de servicio / versión en los puertos abiertos. |
| -sV --version-light    | Intenta las sondas más probables (2).                                   |
| -sV --version-all      | Intenta todas las sondas disponibles (9).                               |
| -O                     | Detecta el sistema operativo.                                           |
| --traceroute           | Ejecuta un traceroute al objetivo.                                      |
| --script=SCRIPTS       | Ejecuta scripts de Nmap.                                                |
| -sC o --script=default | Ejecuta scripts predeterminados.                                        |
| -A                     | Equivalente a -sV -O -sC --traceroute.                                  |
| -oN                    | Guarda la salida en formato normal.                                     |
| -oG                    | Guarda la salida en formato legible por grep.                           |
| -oX                    | Guarda la salida en formato XML.                                        |
| -oA                    | Guarda la salida en formatos normal, XML y legible por grep.            |

### Evasión de firewall

```
nmap -p22 <ip> --mtu 8 | --mtu 16
```

| Parámetro               | Descripción                                                                                                                    |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| -f; --mtu \<valor>      | Fragmentar los paquetes (tiene que ser el valor multiplicable por 8)                                                           |
| -D \<clon1,clon2,clon3> | Ocultar escaneo con señuelos                                                                                                   |
| -S \<IP>                | Cambiar IP de origen falseándola para ocultar nuestra IP original                                                              |
| -e                      | Utilizar IP especifica                                                                                                         |
| -g / --source-port      | Darle el puerto origen por el que se hará el escaneo                                                                           |
| --data-length           | Agregar datos aleatorios a los paquetes que enviamos                                                                           |
| --ip-options            | Enviar paquetes con opciones especificas de la IP                                                                              |
| --ttl                   | Establecer un TTL (Time to Live) especifico                                                                                    |
| --spoof-mac             | Cambiar nuestra MAC, a veces filtran las MAC y cambiándola puede que hagamos bypass al firewall \[Ej: --spoof-mac Dell,Vmware] |
| --badsum                | Envía paquetes con una suma de verificación TCP/UDP/SCTP falsa                                                                 |


---

# Agent Instructions: 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://j4ckie0x17.gitbook.io/notes-pentesting/reconocimiento/activo.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.
