Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Permite crear,
enviar, capturar y analizar paquetes de red de una amplia gama de protocolos. Scapy
es una herramienta poderosa que puede ser utilizada para una variedad de propósitos,
como:
Análisis de redes
Seguridad informática
Desarrollo de software de red
El código que hemos realizado es un script de Python que utiliza Scapy para realizar un
ping a una dirección IP de destino. El código funciona de la siguiente manera:
Importación de bibliotecas
La función ping() es la función principal del script. Esta función es responsable de crear
el paquete ICMP, enviarlo, esperar la respuesta y mostrar la información de la
respuesta.
La tercera línea de la función ping() crea un paquete ICMP (ping) con la dirección IP de
destino como destino.
La cuarta línea de la función ping() guarda el tiempo de inicio en una variable. Este
tiempo se utilizará para calcular el tiempo que tardó en llegar la respuesta.
Espera de la respuesta
La séptima línea de la función ping() calcula el tiempo que tardó en llegar la respuesta.
Para ello, resta el tiempo de inicio del tiempo actual.
import sys
import time
from scapy.all import sr1, IP, ICMP
def ping(destination_ip):
# Crear el paquete ICMP (ping)
packet = IP(dst=destination_ip) / ICMP()
if response:
print(f"Respuesta recibida de {response.src} en {elapsed_time:.6f} segundos")
else:
print("No se recibió respuesta")
if __name__ == "__main__":
# Verificar la cantidad de argumentos
if len(sys.argv) != 2:
print("Uso: python ping.py <dirección_IP>")
sys.exit(1)
Vamos a probar a realizar una prueba contra un servidor Ubuntu de prueba y vemos lo
que saldría:
Importación de bibliotecas
Definición de funciones
import paramiko
import hashlib
def execute_ssh_command(ip):
try:
# Solicitar comando al usuario
command = input("Ingrese el comando a ejecutar en la máquina remota: ")
# Mostrar resultado
print(f"Resultado del comando en {ip}:\n{result}")
except Exception as e:
print(f"Error: {e}")
def generate_md5_hash():
# Solicitar palabra al usuario
word = input("Ingrese la palabra que desea hashear en MD5: ")
# Mostrar el resultado
print(f"Hash MD5 de '{word}': {md5_hash}")
if __name__ == "__main__":
while True:
print("\nMenú:")
print("1. Ejecutar comando a través de SSH contra una máquina remota.")
print("2. Generar un hash MD5.")
print("3. Salir")
if choice == '1':
ip = input("Ingrese la dirección IP de la máquina remota: ")
execute_ssh_command(ip)
elif choice == '2':
generate_md5_hash()
elif choice == '3':
print("Saliendo del programa. ¡Hasta luego!")
break
else:
print("Opción no válida. Por favor, seleccione 1, 2 o 3.")
En esta captura se ve el funcionamiento del script con los resultados obtenidos: