[[hack_roadmap-0|Up]] ====== Python para la Automatización de Tareas de Seguridad ====== Python es un lenguaje de programación muy utilizado en la ciberseguridad debido a su simplicidad, legibilidad y potente conjunto de bibliotecas. A continuación, se describe cómo Python puede ser utilizado para automatizar diversas tareas de seguridad, junto con ejemplos prácticos y recursos útiles. ===== Introducción a Python para Seguridad ===== ==== Conceptos Clave ==== * **Python y Seguridad:** Python es ampliamente utilizado en el campo de la seguridad por su capacidad de automatizar tareas repetitivas y complejas. * **Entornos de Desarrollo:** Instalación y configuración de entornos Python para tareas de seguridad. ==== Tareas Comunes ==== * **Instalación de Python:** # En Debian/Ubuntu sudo apt-get install python3 python3-pip # En RHEL/CentOS sudo yum install python3 python3-pip * **Configuración de Entorno Virtual:** python3 -m venv mi_entorno source mi_entorno/bin/activate ==== Recursos ==== * [[https://www.python.org/|Python Official Website]] * [[https://docs.python.org/3/library/venv.html|Python Virtual Environment Documentation]] ===== Escaneo y Recolección de Información ===== ==== Conceptos Clave ==== * **Escaneo de Puertos:** Detectar puertos abiertos en un sistema objetivo. * **Recolección de Información:** Obtención de datos sobre sistemas y redes. ==== Ejemplos y Tareas Comunes ==== * **Uso de ''socket'' para Escaneo de Puertos:** import socket def escanear_puertos(direccion_ip): for puerto in range(1, 1025): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) resultado = sock.connect_ex((direccion_ip, puerto)) if resultado == 0: print(f"Puerto {puerto}: Abierto") sock.close() escanear_puertos('192.168.1.1') * **Uso de ''scapy'' para Recolección de Información:** from scapy.all import ARP, Ether, srp def escanear_red(rango_ip): arp = ARP(pdst=rango_ip) ether = Ether(dst="ff:ff:ff:ff:ff:ff") paquete = ether/arp resultado = srp(paquete, timeout=2, verbose=0)[0] dispositivos = [] for enviado, recibido in resultado: dispositivos.append({'ip': recibido.psrc, 'mac': recibido.hwsrc}) for dispositivo in dispositivos: print(f"IP: {dispositivo['ip']}, MAC: {dispositivo['mac']}") escanear_red("192.168.1.0/24") ==== Recursos ==== * [[https://docs.python.org/3/library/socket.html|Python Socket Documentation]] * [[https://scapy.readthedocs.io/en/latest/|Scapy Documentation]] ===== Explotación y Pruebas de Penetración ===== ==== Conceptos Clave ==== * **Explotación de Vulnerabilidades:** Uso de scripts y herramientas para explotar vulnerabilidades conocidas. * **Pruebas de Penetración:** Evaluación de la seguridad de un sistema mediante ataques controlados. ==== Ejemplos y Tareas Comunes ==== * **Uso de ''pwntools'' para Explotación de Vulnerabilidades:** from pwn import * contexto(arch='i386', os='linux') sh = remote('victima.com', 1234) payload = b'A' * 32 payload += p32(0xdeadbeef) sh.sendline(payload) sh.interactive() * **Uso de ''requests'' para Pruebas de Penetración:** import requests def probar_sql_inyeccion(url): payload = "' OR '1'='1" response = requests.get(f"{url}?id={payload}") if "Nombre del usuario" in response.text: print("Vulnerable a SQL Injection") else: print("No Vulnerable") probar_sql_inyeccion('http://victima.com/buscar') ==== Recursos ==== * [[https://docs.pwntools.com/en/stable/|Pwntools Documentation]] * [[https://docs.python-requests.org/en/latest/|Requests Documentation]] ===== Análisis de Malware ===== ==== Conceptos Clave ==== * **Análisis Estático y Dinámico:** Evaluación de software malicioso sin ejecutarlo (estático) y durante su ejecución (dinámico). * **Desensamblado y Depuración:** Uso de herramientas para analizar el código binario. ==== Ejemplos y Tareas Comunes ==== * **Análisis Estático con ''yara'':** import yara reglas = yara.compile(filepath='reglas.yara') coincidencias = reglas.match('archivo_malicioso.exe') for coincidencia in coincidencias: print(f"Regla coincidida: {coincidencia.rule}") * **Desensamblado con ''capstone'':** from capstone import * codigo = b"\x55\x48\x8b\x05\xb8\x13\x00\x00" md = Cs(CS_ARCH_X86, CS_MODE_64) for i in md.disasm(codigo, 0x1000): print(f"0x{i.address:x}:\t{i.mnemonic}\t{i.op_str}") ==== Recursos ==== * [[https://yara.readthedocs.io/en/stable/|Yara Documentation]] * [[http://www.capstone-engine.org/documentation.html|Capstone Documentation]] ===== Monitoreo y Detección de Intrusos ===== ==== Conceptos Clave ==== * **SIEM (Security Information and Event Management):** Herramientas y procesos para monitorizar eventos de seguridad. * **IDS/IPS:** Sistemas de detección y prevención de intrusos. ==== Ejemplos y Tareas Comunes ==== * **Monitoreo de Logs con ''watchdog'':** from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class LogHandler(FileSystemEventHandler): def on_modified(self, event): with open(event.src_path, 'r') as archivo: lineas = archivo.readlines() print(f"Nuevas líneas en {event.src_path}:") for linea en lineas[-5:]: print(linea.strip()) observer = Observer() handler = LogHandler() observer.schedule(handler, path='/var/log/', recursive=True) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() * **Detección de Intrusos con ''scapy'':** from scapy.all import sniff def detectar_intrusos(paquete): if paquete.haslayer(TCP) and paquete[TCP].flags == "S": print(f"Posible escaneo de puerto desde {paquete[IP].src}") sniff(filter="tcp", prn=detectar_intrusos) ==== Recursos ==== * [[https://python-watchdog.readthedocs.io/en/latest/|Watchdog Documentation]] * [[https://scapy.readthedocs.io/en/latest/usage.html#sniffing|Scapy Sniffing Documentation]] ===== Conclusión ===== Python es una herramienta poderosa para la automatización de tareas de seguridad, proporcionando capacidades para escaneo de redes, explotación de vulnerabilidades, análisis de malware y monitoreo de sistemas. Utilizando las bibliotecas y técnicas descritas, los profesionales de la seguridad pueden mejorar su eficiencia y eficacia en la protección de sistemas y redes. Los recursos proporcionados ofrecen guías detalladas para profundizar en cada uno de estos aspectos y mejorar tus habilidades en la automatización de tareas de seguridad con Python. ===== Recursos Adicionales ===== * [[https://automatetheboringstuff.com/|Automate the Boring Stuff with Python]] (Al Sweigart) * [[https://securityboulevard.com/2020/09/10-python-scripts-for-security-professionals/|Python for Cybersecurity]] (Security Boulevard)