Python para hacking
Python es el lenguaje por defecto de la seguridad ofensiva: la mayoría de herramientas (impacket, sqlmap, scapy, muchos exploits) están escritas en él, y cuando una tool no hace exactamente lo que necesitas, un script de Python lo resuelve. Peticiones HTTP, sockets, parseo, automatización de exploits, PoCs: todo cabe en pocas líneas. Es el eje del curso de Python Ofensivo.
Lo esencial del lenguaje
Sección titulada «Lo esencial del lenguaje»# variables y tiposhost = "10.0.0.1"; port = 445; activo = Truelista = [22, 80, 443]; d = {"user": "admin", "pass": "x"}
# control de flujofor p in lista: if p == 443: print("https")while activo: break
# funcionesdef escanear(host, port): return f"{host}:{port}"HTTP con requests (pan de cada día en web)
Sección titulada «HTTP con requests (pan de cada día en web)»import requestsr = requests.get("https://target/api", params={"id": 1}, headers={"User-Agent": "x"}, timeout=5, verify=False)print(r.status_code, len(r.text))r = requests.post("https://target/login", data={"u":"a","p":"b"}, cookies={"session":"..."})# seguir redirecciones, sesiones persistentes:s = requests.Session(); s.get(...)Con esto automatizas fuzzing, fuerza bruta de login, IDOR por ID, etc.
Sockets (servicios que no son HTTP)
Sección titulada «Sockets (servicios que no son HTTP)»import sockets = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.settimeout(2)if s.connect_ex(("10.0.0.1", 22)) == 0: # 0 = abierto print("22 open") print(s.recv(1024)) # banner grabbings.close()Base de un escáner de puertos casero y de interactuar con servicios TCP crudos.
Parsear y automatizar
Sección titulada «Parsear y automatizar»# leer una wordlist / lista de objetivoswith open("users.txt") as f: users = [l.strip() for l in f]
# regex para extraer datos (ver fund-regex)import reemails = re.findall(r"[\w.]+@[\w.]+", texto)
# argumentos de línea de comandosimport argparsep = argparse.ArgumentParser(); p.add_argument("--host"); args = p.parse_args()Librerías que verás en seguridad
Sección titulada «Librerías que verás en seguridad»requests / httpx # HTTPscapy # crear/manipular paquetes a bajo nivelimpacket # protocolos Windows/AD (SMB, Kerberos, MSRPC)pwntools # explotación binaria / CTFbeautifulsoup4 # parsear HTML (scraping)paramiko # SSHEntornos y buenas prácticas
Sección titulada «Entornos y buenas prácticas»python3 -m venv venv && source venv/bin/activate # entorno aisladopip install requests # dependenciasUsa venv por proyecto para no romper dependencias; -I al ejecutar scripts que lean ficheros no confiables.
Por qué importa en seguridad
Sección titulada «Por qué importa en seguridad»Cuando el exploit público no encaja, lo adaptas en Python. Cuando necesitas repetir un ataque con lógica (condiciones, estado, parseo de respuestas), Bash se queda corto y Python brilla. Y para leer/entender herramientas ofensivas —casi todas en Python— tienes que saber Python.
Checklist de dominio
Sección titulada «Checklist de dominio»- Manejo tipos, listas, diccionarios, bucles y funciones
- Hago peticiones GET/POST con requests y manejo sesiones/cookies
- Abro sockets TCP para escanear puertos o hacer banner grabbing
- Leo ficheros (wordlists) y extraigo datos con regex
- Parseo argumentos con argparse
- Conozco requests, scapy, impacket, pwntools y para qué sirven
- Uso venv y entiendo por qué aislar dependencias