Para establecer una conexión simple a un equipo por un puerto determinado lo haríamos de la siguiente forma:
from pwn import *
remote('192.168.0.18', 80)
Y vemos que la conexión es exitosa:
{{pasted_image_20230417132229.png|}}
Incluso se podría probar con un rango de puertos, por ejemplo del 20 al 25:
from pwn import *
for i in range(20, 25):
try:
conn = remote('192.168.0.18', i)
except:
print(f"Conexión por el puerto {i} fallida")
Y vemos el resultado y cómo el 22 está abierto:
{{pasted_image_20230417151230.png|}}
====== COMPROBAR SI UN PUERTO ESTÁ ABIERTO ======
Podemos intentar establecer una conexión con una IP y un puerto para comprobar si se encuentra operativo o no. Por tanto primero creo un servidor web con python desde la máquina de destino:
{{pasted_image_20230417131325.png|}}
Y ahora con pwn compruebo la conectividad con este código:
from pwn import *
direccion_ip = '192.168.0.18'
puerto = 80
try:
remote(direccion_ip, puerto)
print(f'El puerto {puerto} está abierto en la dirección IP {direccion_ip}')
except:
print(f'El puerto {puerto} está cerrado en la dirección IP {direccion_ip}')
Y si lo ejecutamos, vemos que hay conexión:
{{pasted_image_20230417131404.png|}}