Translated ['generic-methodologies-and-resources/pentesting-network/READ

This commit is contained in:
Translator 2023-11-05 15:12:41 +00:00
parent 340201a2ca
commit 21aa512204

View file

@ -13,7 +13,7 @@
</details>
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Consejo de recompensa por errores**: ¡**regístrate** en **Intigriti**, una plataforma premium de **recompensas por errores creada por hackers, para hackers**! Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy mismo y comienza a ganar recompensas de hasta **$100,000**.
**Consejo de recompensa por errores**: ¡**regístrate** en **Intigriti**, una plataforma premium de **recompensas por errores creada por hackers, para hackers**! ¡Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy mismo y comienza a ganar recompensas de hasta **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
@ -25,12 +25,12 @@ En esta situación, tienes algún **rango de IPs** (incluso varios **rangos**) y
### ICMP
Esta es la forma más **fácil** y **rápida** de descubrir si un host está activo o no.\
Puedes intentar enviar algunos paquetes **ICMP** y **esperar respuestas**. La forma más sencilla es simplemente enviar una **solicitud de eco** y esperar la respuesta. Puedes hacerlo usando un simple `ping` o usando `fping` para **rangos**.\
Puedes intentar enviar algunos paquetes **ICMP** y **esperar respuestas**. La forma más fácil es simplemente enviar una **solicitud de eco** y esperar la respuesta. Puedes hacerlo usando un simple `ping` o usando `fping` para **rangos**.\
También puedes usar **nmap** para enviar otros tipos de paquetes ICMP (esto evitará los filtros de las solicitudes y respuestas de eco ICMP comunes).
```bash
ping -c 1 199.66.11.4 # 1 echo request to a host
fping -g 199.66.11.0/24 # Send echo requests to ranges
nmap -PEPM -sP -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests
nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests
```
### Descubrimiento de puertos TCP
@ -116,12 +116,12 @@ Pero, como estás en la **misma red** que los otros hosts, puedes hacer **más c
* Si haces **ping** a una **dirección de difusión de subred**, el ping debería llegar a **cada host** y ellos podrían **responder** a **ti**: `ping -b 10.10.5.255`
* Al hacer ping a la **dirección de difusión de red**, incluso podrías encontrar hosts dentro de **otras subredes**: `ping -b 255.255.255.255`
* Usa la bandera `-PEPM` de `nmap` para realizar el descubrimiento de hosts enviando solicitudes de **eco ICMPv4**, **marca de tiempo** y **máscara de subred**: `nmap -PEPM -sP vvv -n 10.12.5.0/24`
* Usa las banderas `-PE`, `-PP`, `-PM` de `nmap` para realizar el descubrimiento de hosts enviando respectivamente solicitudes de **eco ICMPv4**, **marca de tiempo** y **máscara de subred**: `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24`
### **Wake On Lan**
Wake On Lan se utiliza para **encender** computadoras a través de un **mensaje de red**. El paquete mágico utilizado para encender la computadora es simplemente un paquete donde se proporciona una **MAC Dst** y luego se repite 16 veces dentro del mismo paquete.\
Estos tipos de paquetes generalmente se envían en un **ethernet 0x0842** o en un **paquete UDP al puerto 9**.\
Estos paquetes suelen enviarse en un **ethernet 0x0842** o en un **paquete UDP al puerto 9**.\
Si no se proporciona una **\[MAC]**, el paquete se envía a **broadcast ethernet** (y la MAC de difusión será la que se repita).
```bash
# Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain)
@ -153,7 +153,7 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000
Existen 2 opciones para escanear un puerto UDP:
* Enviar un **paquete UDP** y verificar la respuesta _**ICMP unreachable**_ si el puerto está **cerrado** (en varios casos, ICMP estará **filtrado** y no recibirás ninguna información si el puerto está cerrado o abierto).
* Enviar un **paquete UDP** y verificar la respuesta _**ICMP unreachable**_ si el puerto está **cerrado** (en varios casos, ICMP estará **filtrado**, por lo que no recibirás ninguna información si el puerto está cerrado o abierto).
* Enviar **datagramas formateados** para obtener una respuesta de un **servicio** (por ejemplo, DNS, DHCP, TFTP y otros, como se indica en _nmap-payloads_). Si recibes una **respuesta**, entonces el puerto está **abierto**.
**Nmap** combinará ambas opciones usando "-sV" (los escaneos UDP son muy lentos), pero ten en cuenta que los escaneos UDP son más lentos que los escaneos TCP:
@ -220,21 +220,33 @@ ssh <USERNAME>@<TARGET IP> tcpdump -i <INTERFACE> -U -s0 -w - 'port not 22' | su
```
### Bettercap
Bettercap es una herramienta de pentesting de red de código abierto que se utiliza para realizar ataques de red y pruebas de penetración. Proporciona una amplia gama de funcionalidades para ayudar a los pentesters a identificar y explotar vulnerabilidades en una red.
Bettercap es una herramienta de hacking de red de código abierto que se utiliza para realizar pruebas de penetración en redes. Proporciona una amplia gama de funcionalidades para realizar ataques y pruebas de seguridad en redes locales y remotas.
Algunas de las características clave de Bettercap incluyen:
#### Características principales
- **Sniffing de red**: Bettercap puede interceptar y analizar el tráfico de red en tiempo real, lo que permite a los pentesters capturar paquetes y analizar la información transmitida en una red.
- **Sniffing de red**: Bettercap permite capturar y analizar el tráfico de red en tiempo real. Puede interceptar paquetes y extraer información sensible, como contraseñas y cookies.
- **Spoofing de red**: Bettercap puede falsificar direcciones MAC y IP, lo que permite a los pentesters realizar ataques de suplantación de identidad y redireccionar el tráfico de red a través de su propia máquina.
- **Ataques de suplantación**: Con Bettercap, puedes realizar ataques de suplantación de identidad, como ARP spoofing y DNS spoofing. Estos ataques te permiten redirigir el tráfico de red a través de tu máquina y realizar ataques de intermediario.
- **Ataques de hombre en el medio**: Bettercap puede realizar ataques de hombre en el medio, lo que significa que puede interceptar y modificar el tráfico de red entre dos partes, lo que le permite leer, modificar o inyectar datos en la comunicación.
- **Inyección de paquetes**: Bettercap te permite inyectar paquetes personalizados en la red. Esto puede ser útil para realizar ataques de denegación de servicio (DoS) o para modificar el tráfico de red en tiempo real.
- **Ataques de phishing**: Bettercap puede ayudar a los pentesters a realizar ataques de phishing, lo que implica engañar a los usuarios para que revelen información confidencial, como contraseñas o información de tarjetas de crédito.
- **Interfaz web**: Bettercap proporciona una interfaz web fácil de usar que te permite controlar y configurar la herramienta de forma remota. Puedes ver estadísticas en tiempo real, configurar ataques y visualizar resultados.
- **Ataques de inyección de código**: Bettercap puede inyectar código malicioso en páginas web y aplicaciones para explotar vulnerabilidades y obtener acceso no autorizado a sistemas o datos sensibles.
- **Modularidad**: Bettercap es altamente modular y extensible. Puedes escribir tus propios módulos para personalizar y ampliar las funcionalidades de la herramienta.
Bettercap es una herramienta muy poderosa y versátil que puede ser utilizada de manera ética por los pentesters para identificar y remediar vulnerabilidades en una red. Sin embargo, es importante tener en cuenta que el uso indebido de esta herramienta puede ser ilegal y está sujeto a sanciones legales.
#### Uso básico
Para utilizar Bettercap, primero debes instalarlo en tu máquina. Puedes encontrar instrucciones de instalación detalladas en la documentación oficial.
Una vez instalado, puedes ejecutar Bettercap desde la línea de comandos utilizando el siguiente comando:
```
bettercap
```
Esto iniciará la herramienta y mostrará la interfaz de línea de comandos de Bettercap. Desde aquí, puedes utilizar los comandos y opciones disponibles para realizar diferentes tipos de ataques y pruebas de seguridad en la red.
Es importante tener en cuenta que el uso de Bettercap para realizar pruebas de penetración en redes sin el consentimiento explícito del propietario de la red es ilegal y puede tener consecuencias legales graves. Siempre asegúrate de obtener el permiso adecuado antes de utilizar esta herramienta.
```bash
net.sniff on
net.sniff stats
@ -291,7 +303,7 @@ arpspoof -t 192.168.1.2 192.168.1.1
```
### MAC Flooding - Desbordamiento de CAM
Desborde la tabla CAM del switch enviando muchos paquetes con diferentes direcciones MAC de origen. Cuando la tabla CAM está llena, el switch comienza a comportarse como un concentrador (transmitiendo todo el tráfico).
Desborde la tabla CAM del switch enviando muchos paquetes con diferentes direcciones MAC de origen. Cuando la tabla CAM esté llena, el switch comenzará a comportarse como un concentrador (transmitiendo todo el tráfico).
```bash
macof -i <interface>
```
@ -326,7 +338,7 @@ sudo python3 DTPHijacking.py --interface eth0
```
Me gustaría señalar que **Access/Desirable (0x03)** indica que el marco DTP es del tipo Deseable, lo cual indica al puerto que cambie a modo Trunk. Y **802.1Q/802.1Q (0xa5)** indica el tipo de encapsulación **802.1Q**.
Al analizar los marcos STP, **aprendemos sobre la existencia de VLAN 30 y VLAN 60**.
Al analizar los marcos STP, **aprendemos sobre la existencia de la VLAN 30 y la VLAN 60**.
<figure><img src="../../.gitbook/assets/image (18) (1).png" alt=""><figcaption></figcaption></figure>
@ -635,32 +647,42 @@ set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
En algunas situaciones de pentesting, puede ser útil configurar su propio servidor DNS para realizar pruebas de resolución de nombres de dominio. Esto se puede lograr utilizando la herramienta dnsmasq, que es un servidor DNS ligero y fácil de configurar.
Dnsmasq se puede instalar en sistemas basados en Linux utilizando el administrador de paquetes de su distribución. Una vez instalado, puede configurar el archivo de configuración `/etc/dnsmasq.conf` para personalizar su servidor DNS.
Dnsmasq se puede instalar en sistemas Linux utilizando el administrador de paquetes de su distribución. Una vez instalado, puede configurar el archivo de configuración `/etc/dnsmasq.conf` para especificar las reglas de resolución de nombres de dominio.
Aquí hay algunos pasos para configurar su propio DNS con dnsmasq:
Aquí hay un ejemplo de configuración básica para dnsmasq:
1. Abra el archivo de configuración `/etc/dnsmasq.conf` en un editor de texto.
2. Busque la sección `#address` y agregue las entradas de resolución de nombres de dominio que desee. Por ejemplo:
```
# Archivo de configuración de dnsmasq
```
address=/example.com/192.168.1.100
```
# Escucha en la interfaz de bucle local
listen-address=127.0.0.1
Esto redirigirá todas las solicitudes de `example.com` a la dirección IP `192.168.1.100`.
# Resuelve los nombres de dominio de ejemplo.com y *.example.com a la dirección IP 192.168.1.10
address=/example.com/192.168.1.10
3. Si desea agregar registros de alias, puede usar la sintaxis `cname`. Por ejemplo:
# Resuelve los nombres de dominio de test.com y *.test.com a la dirección IP 192.168.1.20
address=/test.com/192.168.1.20
```
```
cname=www.example.com,example.com
```
En este ejemplo, dnsmasq está configurado para escuchar en la interfaz de bucle local (127.0.0.1) y resolver los nombres de dominio `example.com` y `test.com` a las direcciones IP especificadas.
Esto creará un alias para `www.example.com` que apunta a `example.com`.
Una vez que haya configurado dnsmasq, puede iniciar el servicio utilizando el siguiente comando:
4. Guarde y cierre el archivo de configuración.
```
sudo systemctl start dnsmasq
```
Una vez que haya configurado su servidor DNS con dnsmasq, puede iniciar el servicio ejecutando el comando `sudo systemctl start dnsmasq`. Asegúrese de que el servicio se esté ejecutando correctamente verificando su estado con el comando `sudo systemctl status dnsmasq`.
Después de iniciar el servicio, puede configurar su sistema para utilizar el servidor DNS local editando el archivo `/etc/resolv.conf` y agregando la siguiente línea:
Ahora puede utilizar su propio servidor DNS para realizar pruebas de resolución de nombres de dominio durante sus actividades de pentesting.
```
nameserver 127.0.0.1
```
Ahora, cuando realice pruebas de resolución de nombres de dominio en su sistema, dnsmasq responderá con las direcciones IP especificadas en su archivo de configuración.
Recuerde que después de realizar las pruebas, debe revertir la configuración para utilizar el servidor DNS predeterminado de su sistema. Puede hacer esto eliminando la línea `nameserver 127.0.0.1` del archivo `/etc/resolv.conf` y reiniciando el servicio dnsmasq.
¡Ahora está listo para configurar su propio servidor DNS con dnsmasq y realizar pruebas de resolución de nombres de dominio en su entorno de pentesting!
```bash
apt-get install dnsmasqecho "addn-hosts=dnsmasq.hosts" > dnsmasq.conf #Create dnsmasq.confecho "127.0.0.1 domain.example.com" > dnsmasq.hosts #Domains in dnsmasq.hosts will be the domains resolved by the Dsudo dnsmasq -C dnsmasq.conf --no-daemon
dig @localhost domain.example.com # Test the configured DNS
@ -789,17 +811,13 @@ Para escuchar el tráfico de red utilizando un certificado, se puede utilizar un
Para comenzar a escuchar el tráfico de red utilizando un certificado en Wireshark, siga los siguientes pasos:
1. Abra Wireshark y seleccione la interfaz de red que desea utilizar para escuchar el tráfico.
2. En la barra de menú, seleccione "Capture" y luego "Options".
3. En la ventana de opciones de captura, seleccione la interfaz de red y haga clic en "Start" para comenzar a capturar el tráfico.
4. Una vez que se haya capturado el tráfico, puede aplicar filtros para analizar solo el tráfico que le interesa.
5. Para utilizar un certificado, vaya a "Edit" en la barra de menú y seleccione "Preferences".
6. En la ventana de preferencias, seleccione "Protocols" y luego "SSL".
7. En la sección "RSA keys list", haga clic en "Edit" para agregar el certificado que desea utilizar.
8. En la ventana "RSA Keys", haga clic en "New" y seleccione el archivo de certificado.
9. Haga clic en "OK" para guardar el certificado y cerrar la ventana.
10. Ahora puede aplicar filtros para analizar el tráfico cifrado utilizando el certificado.
2. Haga clic en "Capture Options" (Opciones de captura) y seleccione la interfaz de red nuevamente.
3. En la sección "Capture Filter" (Filtro de captura), ingrese el filtro "tcp port 443" para capturar solo el tráfico que utiliza el protocolo TCP en el puerto 443, que es el puerto estándar utilizado para HTTPS.
4. Haga clic en "Start" (Iniciar) para comenzar a capturar el tráfico de red.
5. Navegue a un sitio web que utilice HTTPS y observe cómo Wireshark captura el tráfico cifrado.
6. Para ver el contenido del tráfico cifrado, haga clic con el botón derecho en uno de los paquetes capturados y seleccione "Follow" (Seguir) y luego "SSL Stream" (Secuencia SSL).
Escuchar el tráfico de red utilizando un certificado puede ser una técnica útil durante una prueba de penetración, ya que puede revelar información sobre posibles vulnerabilidades en la comunicación cifrada. Sin embargo, es importante tener en cuenta que esta técnica debe utilizarse de manera ética y legal, y solo en sistemas y redes en los que tenga permiso para hacerlo.
Al escuchar el tráfico de red utilizando un certificado, es importante tener en cuenta que esto solo es legal y ético si se realiza en un entorno controlado y con el permiso del propietario de la red.
```
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 -
```
@ -809,11 +827,11 @@ Cuando se realiza una prueba de penetración en una red, es importante poder int
Para lograr esto, se puede utilizar una herramienta como **mitmproxy**. Esta herramienta actúa como un proxy y permite interceptar y modificar el tráfico de red. Para comenzar, se debe generar un certificado SSL autofirmado que será utilizado por mitmproxy para interceptar el tráfico HTTPS.
Una vez que se tiene el certificado, se debe configurar el dispositivo o el navegador para que confíe en el certificado. Esto permitirá que mitmproxy pueda interceptar el tráfico HTTPS sin generar advertencias de seguridad.
Una vez que se tiene el certificado, se debe configurar el dispositivo o el navegador para que confíe en el certificado autofirmado. Esto permitirá que mitmproxy pueda interceptar el tráfico HTTPS sin generar advertencias de seguridad.
Una vez que mitmproxy está configurado y en ejecución, se puede redirigir el tráfico a los hosts deseados. Esto se logra utilizando reglas de redirección que especifican qué solicitudes deben ser redirigidas y a dónde deben ser redirigidas.
Una vez que mitmproxy está configurado y el certificado es confiable, se puede iniciar la escucha del tráfico de red. Mitmproxy mostrará todas las solicitudes y respuestas HTTP/HTTPS que pasen a través de él. Esto incluye información sensible como credenciales de inicio de sesión y datos confidenciales.
Es importante tener en cuenta que el uso de esta técnica puede ser ilegal sin el consentimiento adecuado. Siempre se debe obtener permiso antes de realizar pruebas de penetración en una red.
Es importante tener en cuenta que el uso de esta técnica puede ser ilegal sin el consentimiento adecuado. Siempre se debe obtener permiso por escrito antes de realizar pruebas de penetración en una red.
```
sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 openssl-connect:[SERVER]:[PORT],verify=0
```