En los últimos años, la comunidad de Python ha crecido
exponencialmente y cada vez son más las
personas que deciden utilizar Python para el desarrollo de sus proyectos. Sin
embargo, no solamente los desarrolladores de software valoran muy positivamente
este potente lenguaje de programación, también lo hacen profesionales y
entusiastas de la seguridad informática en todo el mundo. Un claro ejemplo de
este hecho es la cantidad proyectos, herramientas y librerías que se han
desarrollado en Python con un alto nivel de madurez y estabilidad. El objetivo
de este corto artículo, es simplemente listar algunas de las librerías y
herramientas escritas en Python que han tenido un fuerte impacto en la forma en
la que hoy en en día, se desarrollan las herramientas enfocadas a la seguridad
informática.
ENTORNOS WEB
1.
urllib, urllib2, httplib, httplib2,
urllib3 y requests:
Librerías que permiten realizar conexiones a servidores HTTP
utilizando los métodos disponibles en el protocolo. Cuando hablamos de urllib,
urllib2 y httplib, nos encontramos con librerías que han sido
utilizadas ampliamente por una enorme cantidad de proyectos, sin embargo en la
actualidad, la librería requests implementa mejoras sustanciales para
crear clientes HTTP, soportando íntegramente las características que deben
soportar tanto clientes como servidores que implementan el protocolo HTTP1.1.
Ademas, se trata de una librería que es fácil de usar para cualquier
desarrollador, requiere muy pocas lineas de código y es compatible con las
versiones de Python 2 y 3.
httplib2: https://github.com/jcgregorio/httplib2
2.
Mechanize, Selenium Python Binding:
Librerías útiles cuando necesitamos crear un programa que
pueda interactuar con un sitio web del mismo modo que lo hacemos con un
navegador web. Mechanize y Selenium son las principales
librerías para llevar a cabo la
interacción con sitios web ya que permiten activar botones, recuperar datos de
formularios, mantener el estado de las cookies enviadas por el sitio web,
activar enlaces, seguir redirecciones, entre otras cosas.
Mechanize: http://wwwsearch.sourceforge.net/mechanize/
3.
BeautifulSoup:
XML, JSON, HTML y prácticamente todos los contenidos web, son
elementos que siguen un esquema concreto y que deben ser parseados para poder
extraer información útil. BeautifulSoup en una reconocida librería en
Python que permite analizar contenidos web y generar una estructura de datos
fácil de manejar por un desarrollador. Altamente recomendada para realizar
tareas de extracción de datos.
BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/
4.
Scrapy:
Framework que permite realizar labores de web crawling sobre
sitios web y extraer datos estructurados de las páginas analizadas.
Scrapy: http://scrapy.org/
5.
Django:
Django es uno de los frameworks para desarrollo web más
conocidos en el mundo de Python. Cuenta con múltiples herramientas y librerías
que permiten el desarrollo ágil de sitios web robustos y escalables. Muchas de
las utilidades incluidas en este framework, son utilizadas por herramientas
enfocadas a la seguridad informática.
Django: https://www.djangoproject.com/
ENTORNOS DE RED
6.
Dpkt, Scapy
Librerías que permiten la captura y el tratamiento de
paquetes en un segmento de red. Se utilizan en herramientas enfocadas a la
detección de intrusos y maleware, así como también en herramientas que permitan
automatizar ataques contra ordenadores conectados en un segmento de red. Scapy
es probablemente, la librería más utilizada dado que soporta una considerable
cantidad de protocolos de red y cuenta con una API que es fácil de utilizar.
7.
Twisted:
Framework que permite implementar soluciones de red robustas
utilizando Python. Con twisted es posible crear clientes, servidores y
librerías que sigan con los estándares de protocolos de red tales como HTTP,
SMTP, POP, IMAP, FTP, SSL/TLS, entre otros.
Twisted: https://twistedmatrix.com/trac/
8.
FTPLib, SMTPLib, Paramiko:
Protocolos como FTP, SMTP o SSH evidentemente también tienen
cabida en Python. En este caso, las librerías FTPLib (soporte
clientes/servidores FTP), SMTPLib (soporte clientes/servidores SMTP) y Paramiko
(soporte clientes/servidores SSH) implementan todas las características
indicadas en cada uno de los protocolos mencionados.
FUZZING, MALEWARE ANALISYS Y REVERSING
9.
Cuckoo:
Se trata de un sandbox que permite analizar maleware,
exploits y virus en un entorno virtual independiente y separado de otras
máquinas en el segmento de red, con lo cual es posible monitorizar elementos
potencialmente peligrosos de una forma segura.
10.
Sulley Framework:
Framework destinado al desarrollo de casos de prueba (Fuzz
Files) para la detección de vulnerabilidades en Software. Permite la ejecución
de una máquina virtual que funciona como víctima y una máquina que funciona
como atacante. En la máquina de la víctima, permite iniciar monitores de
procesos y red, con el fin de detectar y registrar cualquier tipo de
vulnerabilidad, así como reiniciar el software objetivo de forma automática
para continuar con la ejecución de las pruebas.
11.
PyDBG:
Librería que permite implementar procesos de depuración y
“hooking” de funciones. Es posible utilizar esta librería para detectar de
forma automática, cualquier tipo de violación de acceso o fallo general sobre
el programa analizado. Del mismo modo que cualquier depurador de software (como
por ejemplo, WinDBG o Immunity Debugger) permite establecer puntos de
interrupción ante un evento determinado.
12.
Python API Immunity Debugger.
Immunity Debugger es un potente depurador para sistemas
windows que permite, entre otras cosas, crear scripts en Python que permitan
automatizar muchas de las tareas de depuración que frecuentemente se deben
llevar a cabo de forma manual. Un ejemplo del uso de esta librería es el
conocido script Mona.py desarrollado por el equipo de CoreLan.
Python API
Immunity Debugger: https://www.immunityinc.com/products-immdbg.shtml
13.
PyDASM:
Se trata de un wrapper de la librería LibDasm que permite
desensamblar programas y recuperar los opcodes correspondientes a un programa
de forma automatizada.
14.
PeFile:
Los ficheros ejecutables (.exe y .dll) en sistemas windows,
siguen el formato PE (Portable Executable) que permite la compatibilidad del
ejecutable en cuestión sobre diferentes versiones de Windows. Esta librería
incluye todos los elementos necesarios para extraer información sobre cada una
de las secciones incluidas en un fichero con formato PE.
15.
PaiMei:
Framework para
realizar tareas de ingeniería inversa que esta conformado por varios componentes extensibles (entre los que
se incluye PyDBG) y que permite la detección de vulnerabilidades y el
desarrollo de pruebas de concepto rápidas.
Se trata de una lista no exhaustiva de librerías, frameworks
y herramientas que son ampliamente utilizadas en proyectos de software
enfocados a la seguridad informática. La intención de este articulo ha sido
simplemente enumerar dichas librerías y explicar brevemente en qué consisten y
su importancia.
Estas y muchas otras, las puedes conocer en detalle en la
serie de vídeos sobre Hacking con Python que comienzan desde aquí: http://thehackerway.com/2014/02/04/hacking-con-python-parte-1-banner-grabbing/
Saludos y Happy Hack!
Autor: Adastra
Blog: http://thehackerway.com
Blog: http://thehackerway.com
Definitivamente tengo que aprender python
ResponderEliminarsi definitivamente aprendamos python
Eliminar