Recopilación de herramientas Python para pentesters

Si estás involucrado en la investigación de vulnerabilidades, ingeniería inversa o pruebas de intrusión, seguro que ya habrás utilizado Python porque cuenta con un rico conjunto de librerías y herramientas útiles para estos menesteres.

En la página de Dirk Loss podemos encontrar un gran recopilatorio de herramientas escritas en Python para penetration testers, algunas de ellas sólo enlaces a librerías C existentes, es decir, herramientas que hacen las librerías fácilmente utilizables desde programas de Python.

Sin embargo, por la difusa situación jurídica en Alemania no se incluyen algunas de las herramientas más agresivas (frameworks PenTest, smashers bluetooth, escáneres de vulnerabilidades de aplicaciones Web, war-dialers, etc.). Por ello y para tener una lista aún más completa, vamos a ir añadiendo todas las herramientas que vayamos encontrando. No dudes en comentar esta entrada si conoces alguna más y quieres que la añadamos a esta lista:

 

Red


  • Dirtbags py-pcap: lee ficheros pcap sin libpcap
  • DHCPig: script en Python que realiza un ataque de agotamiento DHCP (DHCP Starvation).
  • dpkt: rápida y simple creación de paquetes y análisis, con las definiciones básicas de los protocolos TCP/IP 
  • flowgrep: grep a través de payloads de paquetes utilizando expresiones regulares
  • FuzzAP: script en Python para ofuscar redes inalámbricas.
  • glastopf: honeypot que se basa en un pequeño servidor web que emula cientos de vulnerabilidades.
  • Impacket: modifica y decodifica paquetes de red. Incluye soporte para los protocolos de más alto nivel, tales como NMB y SMB
  • Knock Subdomain Scan:  enumera los subdominios de un dominio de destino a través de una lista de palabras
  • LANs.py: herramienta capaz de falsificar y envenenar la tabla de ARP de un objetivo individual. Es multihilo y asíncrono.
  • libdnet: rutinas de red de bajo nivel, incluyendo la interfaz de búsqueda y transmisión de tramas Ethernet
  • Mallory: proxy man-in-the-middle extensible TCP/UDP, soporta la modificación de protocolos no estandar al vuelo
  • pypcap, Pcapy y pylibpcap: varios enlaces Python para libpcap
  • Pytbull: framework de pruebas de IDS/IPS muy flexible (incluye más de 300 tests)
  • pynids: wrapper de libnids que incluye sniffing, IP defragmentation, reensamblado de streams TCP y detección de escaneos de puertos
  • Responder: un poisoner LLMNR, NBT-NS y MDNS, con servidores de autenticación falsos HTTP/SMB/MSSQL/FTP/LDAP que soportan NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP y autenticación básica HTTP
  • Scapy: envia, rastrea y analiza y crea paquetes de red. Se puede usar de forma interactiva o como una librería
  • Waffit: un conjunto de herramientas para auditar tu WAF.

Depuración e ingeniería inversa


  • Androguard: ingeniería inversa y análisis de aplicaciones de Android
  • apk-jet: un wrap de apktool en python para automatizar y hacer más fácil la ingeniería inversa de apks 
  • AsmJit: sencillo wrapper en Python para AsmJit usando SWIG. AsmJit posee clases de generación de código de alto nivel que pueden utilizarse para crear código JIT
  • BeaEnginePython: bindings de BeaEngine en Python de Mario Vilas. 
  • Binwalk: es una herramienta de análisis firmware diseñada para ayudar en el análisis, la extracción y la ingeniería inversa de imágenes del firmware y otros blobs binarios. Es fácil de utilizar, completamente programable y se puede extender fácilmente a través de firmas personalizadas, reglas de extracción y módulos de plugin.
  • bochs-python-instrumentation: Este parche para Bochs proporciona un intérprete de Python en lugar del propio depurador Bochs, proporcionando la funcionalidad del depurador. También permite interactuar con la interfaz de instrumentación bajo demanda, al asociar dinámicamente métodos de Python para manejar eventos de instrumentación.
  • Buggery: wrapper python para DbgEng. 
  • ctypes: módulo de Python que permite crear y manipular tipos de datos de C en Python. Estos luego pueden pasar a funciones C cargadas desde librerías de vínculos dinámicos.
  • Cuckoo: sistema sandbox de análisis de malware automatizado. Tiene un API para personalizar tanto el procesamiento como las etapas de presentación de informes. 
  • Darm: Un ligero y eficiente desensamblador escrito en C para el conjunto de instrucciones ARMv7
  • Deviare: es una API para hooks diseñada para crear productos de usuario final
  • Diabind: Python binding de DIA (Debug Interface Access) SDK
  • Dislib: Librería python para leer ficheros PE+
  • diStorm:  biblioteca de desensamblador para AMD64, bajo licencia BSD
  • IDAPython: plugin de IDA Pro que integra Python, permitiendo ejecutar scripts en IDA Pro
  • Immunity Debugger: GUI programable y debugger en linea de comandos
  • Paimei: framework de ingeniería inversa, incluye PyDBG, PIDA, pGRAPH
  • pefile: permite leer y trabajar con archivos Portable Executable (PE) 
  • pydasm: interfaz en Python para la librería libdasm de desensamblado x86
  • PyDbgEng: wrapper en Python para el motor de depuración de Microsoft Windows 
  • PyEMU: emulador IA-32 completamente programable, útil para análisis de malware
  • python-ptrace:depurador usando ptrace (Linux, BSD y Darwin system call para trazar procesos) escrito en Python
  • mona.py: PyCommand para Immunity Debugger que reemplaza y mejora pvefindaddr
  • uhooker: intercepta llamadas a llamadas a la API dentro de DLLs , así como las direcciones arbitrarias en el archivo ejecutable en la memoria
  • vdb / vtrace: API de depuración de procesos multi-plataforma implementado en python, y vdb es un depurador que lo utiliza

Fuzzing


  • antiparser: fuzz testing y API de inyección de fallos
  • Construct: librería para parsear y construir estructuras de datos (binario o texto).  
  • Forensic Fuzzing Tools: genera ficheros fuzzeados, sistemas de ficheros, y sistemas de ficheros con ficheros fuzzeados para probar la robustez de herramientas forenses y sistemas de análisis 
  • Fusil: librería en Python usada para escribir programas de fuzzing 
  • fuzzer.py (feliam): fuzzer sencillo de Felipe Andres Manzano 
  • Fuzzbox: multi-codec media fuzzer
  • Mistress: genera formatos de archivos al vuelo y protocolos con datos malformados, basados en patrones predefinidos
  • Peach Fuzzing Platform: framework de fuzzing extensible para la generación y la mutación basada en fuzzing (la v2 fue escrita en Python)
  • Powerfuzzer: fuzzer web altamente automatizado y totalmente personalizable (protocolo HTTP basado en fuzzer de aplicación)
  • SMUDGE 
  • Sulley: framework de desarrollo fuzzer y pruebas que consiste en varios componentes extensibles
  • TAOF: (el Arte del Fuzzing) incluye ProxyFuzz, un fuzzer man-in -the-middle de red no determinista
  • untidy: fuzzer XML de propósito general
  • Windows IPC Fuzzing Tools: herramientas para fuzzear aplicaciones que usan mecanimos Windows Interprocess Communication
  • WSBang: ejecuta pruebas automáticas contra servicios web SOAP

Web


  • FunkLoad: medidor de carga web funcional
  • Ghost.py: cliente webkit escrito en Python 
  • HTTPie: cliente http similar a cURL pero más intuitivo. 
  • Liffy: herramienta diseñada para explotar vulnerabilidades LFI usando tres técnicas diferentes que te permitirán obtener un webshell.
  • mitmproxy: proxy HTTP de interceptación con soporte SSL. Permite inspeccionar y editar tráfico al vuelo. 
  • Requests: librería HTTP sencilla y elegante, hecha para seres humanos
  • Twill: navega por Internet mediante un interface en línea de comandos. Soporta web testing automatizado
  • pathod / pathoc: demonio/cliente para saturar clientes y servidores HTTP
  • ProxMon: procesa logs de proxy y crea informes con los resultados
  • python-spidermonkey: binding para el motor JavaScript de Mozilla SpiderMonkey; permite llamar y evaluar scripts y funciones Javascript
  • Selenium: API para escribir pruebas funcionales usando el WebDriver Selenium para acceso a Firefox, Ie, Chrome, Remote etc. 
  • Splinter: herramienta para testear aplicaciones web usando Python que permite automatizar acciones del navegador como visitar URLs e interactuar con sus objetos.
  • spynner: módulo de navegación web programable para Python con soporte Javascript/AJAX
  • WSMap: encuentra servicios web y descubre ficheros
  • Windmill: herramienta de pruebas creada para automatizar y depurar aplicaciones web

Cracking

  • findmyhash:  script en Python para crackear hashes usando servicios online.

Malware


  • MeterSSH: una manera fácil de inyectar código shell nativo en memoria y llevarlo al atacante a través de un túnel SSH. Todo con un único fichero Python que se puede convertir fácilmente en ejecutable usando PyInstaller o py2exe.
  • pyew: una herramienta desde la línea de comandos para analizar malware de forma estática.
  • Noriben: script que funciona en conjunción con Procmon de Sysinternals para analizar malware en sandbox.
  • s7-brute-offline.py: herramienta que que puede realizar ataques off-line de fuerza bruta contra controladores lógicos programables (PLCs) Siemens.
  • The Backdoor Factory: un interesante script en Python para "backdoorizar" ejecutables y librerías de Windows (Win32 PE). 
  • The Backdoor Factory Proxy (BDFProxy): proxy capaz de parchear los binarios "al vuelo" durante la descarga, convirtiendo un MITM en un vector de ataque sumamente peligroso.
  • Tiny SHell: el clásico backdoor de código abierto en Python de Christophe Devine
  • TinySHell bajo SCTP: un backdoor de Unix un poquito más indetectable 
  • Veil: herramienta escrita en Python por Christopher Truncer para crear payloads de Metasploit capaces de evadir la mayoría de los antivirus.
  • virustotal-search.py: script para automatizar desde la línea de comandos el análisis de una muestra de malware a través del conocido servicio de multiAV de Virustotal.

Forense


  • ADEL (Android Data Extractor Lite): script en Python que vuelca todas las bases de datos SQLite de un smartphone Android a disco y analiza los archivos en un workflow forense preciso.
  • aft: Android forensic toolkit
  • Codetective: herramienta de análisis para averiguar el algoritmo de cifrado/codificación utilizado 
  • FBStalker y GeoStalker: herramienta OSINT para Facebook y fuentes de geolocalización - Flickr, Instagram, Twitter, Wigle. Los ID de usuario encontrados son utilizados para encontrar cuentas de redes sociales a través de otras redes como Facebook, Youtube, Instagram, Google+, Linkedin y Google Search
  • Grampus: herramienta multiplataforma de extracción de metadatos y footprinting, algo así como una FOCA en python y de código abierto.
  • LibForensics: librería para desarrollar aplicaciones forenses digitales 
  • Mobius Forensic Toolkit: framework forense escrito en Python/GTK que permite administrar casos y elementos de casos, facilitando un interface abstracto para el desarrollo de extensiones. Las categorías de los casos e items son definidas usando ficheros XML para mejorar la integración con otras herramientas.
  • sqlparse.py: parser para recuperar datos borrados de bases de datos SQLite
  • TrIDLib: identifica los tipos de archivo de sus firmas binarias. Ahora incluye Python binding
  • Volatility: extrae y analiza artefactos digitales de la memoria volátil (RAM) 

Análisis de malware


  • Exefilter: filtra formatos de archivo en mensajes de correo electrónico, páginas web o archivos. Detecta muchos formatos de archivo comunes y puede eliminar contenido.
  • OS X Auditor: herramienta gratuita de análisis forense para Mac OS X.
  • phoneyc: implementacion de honeyclient totalmente escrito en python
  • pyew: editor hexadecimal y desensamblador en línea de comandos, principalmente usado para analizar malware
  • pyClamAV:  añade capacidades de detección de virus para tu software Python
  • pyMal: framework para análisis de malware basada en Pefile, Pydbg y Volatility. 
  • jsunpack-n: unpacker de JavaScript genérico: emula la funcionalidad del navegador para detectar exploits dirigidos a explotar vulnerabilidades en navegadores y plugins
  • yara-python: identifica y clasifica muestras de malware

PDF


  • Didier Stevens' PDF tools: analiza, identifica y crea ficheros PDF (incluye PDFiD, pdf-parser, make-pdf y mPDF)
  • Opaf: Open Framework Analysis PDF . Convierte PDF a un árbol XML que puede ser analizado y modificado.
  • Origapy: wrapper de Python para el módulo de Ruby Origami que desinfecta archivos PDF
  • PDFMiner: extrae texto de ficheros PDF 
  • pyPDF: Python PDF toolkit: extrae info, corta, une, cifra, descifra...
  • python-poppler-qt4: une Python con la librería Poppler PDF, incluyendo soporte Qt4

Misc


  • Exomind: para la creación de gráficos y el desarrollo de módulos de inteligencia de código abierto, centrada en servicios de redes sociales, motores de búsqueda y mensajería instantánea
  • Hachoir: permite ver y editar un stream binario campo por campo
  • InlineEgg: toolbox de clases para escribir pequeños programas en Python
  • OnionShare: comparte de forma anónima y seguro un fichero de cualquier tamaño a través de Tor
  • PyMangle: herramienta de línea de comandos y una biblioteca de Python utilizada para crear listas de palabras para su uso con otras herramientas de pruebas de intrusión
  • RevHosts: enumera los virtual hosts de una dirección IP dada
  • simplejson: JSON encoder/decoder, para por ej. usar Google's AJAX API

Otras herramientas y librerías útiles


  • Beautiful Soup: HTML parser optimizado para screen-scraping
  • IPython: shell Python interactivo y mejorado con algunas características para la introspección de objetos, acceso a una consola del sistema y su propio sistema especial de comandos 
  • lxml: librería más rica en características y fácil de usar para trabajar con XML y HTML
  • M2Crypto: wrapper OpenSSL más completo
  • matplotlib: construye gráficos 2D de matrices
  • Mayavi: 3D de visualización de datos científicos y plotting
  • NetworkX: librería gráfica (bordes, nodos)
  • ODAT (Oracle Database Attacking Tool): comprueba la seguridad de tu base de datos Oracle 
  • Pandas: librería que proporciona mayor rendimiento y mayor facilidad de uso para analizar estructuras de datos de alto rendimiento y herramientas de análisis de datos
  • Pexpect: controla y automatiza otros programas, similar al sistema Don Libes `Expect
  • Pompem: herramienta de código abierto que está diseñada para automatizar la búsqueda de vulnerabilidades en las principales bases de datos.
  • PyQt y PySide: Python bindings para el framework Qt y librería GUI
  • pyparsing: módulo de parsing general
  • RTGraph3D: crea gráficos dinámicos en 3D
  • Sikuli, tecnología visual para buscar y automatizar interfaces gráficas de usuario con capturas de pantalla. Programable en Jython
  • Suds:  cliente SOAP ligero para servicios Web
  • Twisted: motor de creación de redes basada en eventos
  • Whoosh: rápido, con muchas características de indexación de texto completo y búsqueda de librería implementado en Python

Comentarios

  1. Gran sitio señores...lo mejor del habla hispana...saludos desde colombia

    ResponderEliminar
  2. Muchas gracias amigos, durante los próximos días iremos completando el listado con mas herramientas. Saludos!

    ResponderEliminar
  3. web: splinter y selenium

    ResponderEliminar
  4. gracias @anonimo, acabo de añadir las dos tools al listado

    ResponderEliminar
  5. existe un herramienta que es muy buena y no requiere copilar que puede ofuscar el código y luego recuperar el código fuente por medio de contraseña

    https://www.youtube.com/watch?v=VQIMZ2UZZbk

    ResponderEliminar

Publicar un comentario