Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Python para pentesting y hacking

Diego Caceres Solis
Python para pentesting y hacking

¿Python para Hacking? o ¿Python para Pentest?. Dentro del mundo de la Ciberseguridad en el ámbito un poco más técnico, existen varios conceptos, ideas y herramientas que se confunden o utilizan de una manera errónea. Es por este motivo que en las siguientes líneas daremos una breve introducción al Hacking, sus diferencias y similitudes con el Pentesting y finalizaremos explicando uno de los lenguajes de programación más utilizados para realizar aplicaciones que nos ayuden a ejecutar estas tareas.

Qué es Hacking

El termino Hacker se suele asociar generalmente a un Pirata Informático. Pero más que pirata, yo diría que es un Entusiasta o Experto Entusiasta, el cual, a través de mucho estudio y técnicas especiales logran romper de alguna manera la seguridad informática de algún sistema, obteniendo acceso ya sea para fines maliciosos o bondadosos. A todo este procedimiento lo podríamos llamar como Hacking. Si te interesa comenzar en este mundo del Hacking, como una opción bastante interesante podrías seguir este Curso de Hacking Web.

Qué es Pentesting

Cuando utilizamos técnicas de Hacking de manera bondadosa, es decir, tratamos de vulnerar un sistema informático para detectar y prevenir posibles fallos que puedan ser ocupados por un atacante real, estamos realizando un Pentesting. Su nombre lo dice, Pen de Penetration o Penetración y Testing de Pruebas, es decir, Pruebas de Penetración. Estas técnicas también son reconocidas por el nombre de Ethical Hacking y nos llevan a preguntarnos lo siguiente: ¿Qué debo aprender para ser un Ethical Hacker?, pues te recomiendo sigas el Curso de introducción a Ethical Hacking.

También, con esta simple pregunta, puedo indicarte que el Hacking Ético con Herramientas Python es una de las mejores opciones que tienes disponible para comenzar con esta curva de aprendizaje, la cual, en un comienzo descubrirás que usar el Lenguaje de Programación Python para Hacking te va a presentar muchos desafíos que con esfuerzo e interés podrás ir completando etapas para lograr un gran final, comprendiendo de una buena vez la Importancia de hacer Pentesting en tu empresa considerando presupuesto y recursos para la Ciberseguridad.

Pentesting con Python

Como una breve introducción, debo decir que Python es un lenguaje de programación extremadamente flexible, multipropósito, multiplataforma, potente, fácil de aprender y de código abierto, con el que podemos hacer prácticamente cualquier cosa. Este lenguaje se ha convertido en uno de los puntos más relevantes dentro del área de la Seguridad Informática y el Hacking.

Con el paso de los días, es mucho más común ver en distintos foros de Internet Herramientas escritas en Python, gracias a la gran cantidad de Librerías disponibles solo con la instalación del interprete o aplicando uno que otro comando para la ejecución. Debemos recordar también que con el paso de los años se han ido actualizando las versiones de este lenguaje, por lo que, recomiendo, si estas en tus primeros pasos, comenzar a aprender con este Curso de Python 3.

Preparando el entorno de trabajo

Python viene preinstalado en la mayoría de los sistemas operativos, excepto con Windows, por lo que si eres fan de Microsoft debes de tener un poco de conocimiento en el uso de un software de virtualización, como, por ejemplo, Virtualbox. Luego, podrás comenzar a trabajar con Sistemas Operativos Virtualizados, en donde te recomiendo el uso de la Distribución de Linux por excelencia diseñada principalmente para la Auditoria y Seguridad Informática en general, Kali Linux.

Visualizando ya el escritorio de nuestro sistema operativo, ¿dónde nos ponemos a codificar? que es lo interesante de todo este asunto. Tenemos varias opciones, desde comenzar con un archivo de texto hasta ya algo más avanzado que es el uso de un Software IDE, Entorno de Desarrollo Integrado. Recomiendo siempre el tratar de usar software gratuito, y por ello es que para comenzar a programar de una manera ordenada podemos instalar el software llamado Spyder, el cual es un potente entorno de desarrollo interactivo para Python que posee enormes funcionalidades como por ejemplo en la edición, depuración y pruebas interactivas, además de ordenar tu código en base a colores y ofrecer código mientras vas escribiendo.

Ya podemos comenzar a programar, la idea principal es ir identificando desde un comienzo variables, tipos de datos, condicionales, bucles, funciones, clases y herencias, para luego ya importar librerías que dan soporte a otro tipo de código el cual nos ayudara a realizar solicitudes HTTP, identificar vulnerabilidades, escaneos de puertos lógicos, entre otros. En esta fase ya es recomendable conocer o manejar a un nivel básico el área de redes o conexiones a internet dentro de un computador personal.

Imagen 0 en Python para pentesting y hacking

Librerías Python recomendadas para Hacking o Pentesting

Scapy

Cuando hablamos de redes de comunicaciones, tratamos de informar acerca de enviar y recibir paquetes de datos. Con esta librería es posible realizar diversos tipos de manipulaciones de estos paquetes, dando posibilidad a realizar escaneos de red, descubrir los hosts que están circulando y falsificar o decodificar esta información en una variedad de conexiones a través de puertos lógicos. No se para nada difícil de usar, sin embargo, el aprendizaje es bastante intenso.

Requests

Al tratar de ver un sitio web en un browser, uno no se imagina la gran cantidad de cosas que se están realizando tras bambalinas, es decir, ocultamente en una serie de procesos que está ejecutando tu computador personal. Es posible realizar solicitudes HTTP/HTTPS usando requests, herramienta increíble para realizar interacciones con sitios web de todo tipo. Esto es fundamental para el Pentesting, ya que se requiere cierta conexión con servidores remotos objeto verificar usuarios conectados o vulnerabilidades que se puedan subsanar.

Mechanize

Esta librería la podemos ocupar en conjunto con requests, ya que nos ayudara a hacer estas peticiones al igual como si las estuviéramos haciendo a través de un navegador web grafico ocupando 2 controles principales que posee. Browser, que es el que produce la interacción web y Controles, que nos permite interactuar con otros tipos de servicios, como, por ejemplo, alguno que este solamente codificado en HTML.

Beautiful Soup

En este caso su nombre no me dice nada, ¿hermosa sopa?, pues no, esta es una librería de Python que nos permite extraer información de contenido de sitios web ya sea en formato HTML o XML, logrando de esta manera ver cada uno de los elementos de un documento o página web, tal y como si lo estuviéramos haciendo con el Inspector del Browser.

Impacket

Aquí ya podemos introducirnos en el mundo de los protocolos de red, ocupando la colección de clases que posee esta librería. Nos da la posibilidad de una programación de bajo nivel considerando los paquetes de datos. Aquí se producen los escenarios de ataque clave, usando los famosos protocolos TCP, UDP, ARP, etc.

Python-nmap

Los que saben de redes y escaneo de puertos ya me imagino saben para que funciona esta librería, su nombre lo dice, nos ayuda a ocupar el escáner de puertos más famoso en Linux, Nmap. Esta se ocupa para descubrir equipos y servicios disponibles dentro de una red, logrando obtener una enorme cantidad de información, como, por ejemplo, sistema operativo, versión del servicio instalado, hasta la vulnerabilidad que puede presentar dicha versión. Sin duda alguna, una de las mejores librerías de Python.

UrlLib

Si quieres acceder y utilizar recursos de internet a través de su URL, pues esta librería es la que estabas buscando. A través de diferentes funciones y una interfaz bastante simple podemos acceder a direcciones de sitios web con una variedad de protocolos diferentes, en conjunto con algunas situaciones comunes como la autenticación, proxies, cookies, etc.

Argparse

Aquí tenemos otra librería o modulo bastante interesante, ya que nos ayuda a construir argumentos u opciones que puede tener nuestro archivo o aplicación de python, es decir, si te manejas con la CLI de Linux, sabrás que cuando vas a ejecutar un archivo .py, es necesario invocar de igual manera a nuestro interprete de Python 3 y a la vez podemos agregar opciones o ayuda con el —help o —h. Todas estas opciones las puedo configurar y agregar más si quisiera con estas increíbles líneas de código que nacen de esta librería.

Criptography

En este caso su nombre lo dice y tiene que ver con cifrar y descifrar un dato, no es la única librería que existe para este tipo de función, sin embargo, por su sencillez se recomienda comenzar a codificar tus primeros programas de cifrado con estos tipos de módulos.

Hacking ético con herramientas Python

Una vez conozcas ya el general de la codificación en este maravilloso lenguaje de programación, y comiences a unificar el uso de alguna de estas librerías, nos vemos en la necesidad de construir aplicaciones, herramientas o programas, los cuales quedaran guardados dentro de un archivo .py, dando lugar a una magnifica ayuda o directorio dentro de tu computador personal, con script’s que pueden funcionar como un snnifer de red, detector de vulnerabilidades web, escaneador de puertos lógicos y muchos otros más en donde la finalidad es ejecutar pruebas de ataques controladas y subsanar las vulnerabilidad encontradas de tus sistemas u organización.

Para finalizar es necesario recordar que existen diversos métodos manuales donde nosotros mismos podemos crear nuestras herramientas, o también métodos automatizados donde desde internet podemos encontrar una variedad inmensa de información y scripts que ejecutan cosas bastante interesantes para un Ethical Hacking. Cuando hablamos de Ciberseguridad, por más que nuestra aplicación se vea “segura”, siempre en algún punto va a existir algún tipo de vulnerabilidad, la cual, con estos ejercicios, logramos identificarlas y tratar de protegerlas.

Para una organización es vital demostrar que se toma la Ciberseguridad en cuenta, ya que demuestra de una manera confiable que los datos que se almacenen estarán con un nivel alto de protección, considerando también que siempre existirán riesgos. También recordar que, si somos parte de una organización bastante grande, es necesario tener un Departamento o consultores en el ámbito de la Auditoria de Seguridad, objeto tener ejemplos en vivo de lo que se está haciendo para proteger nuestros sistemas.

Otra opción recomendable es seguir Estándares Internacionales que den soporte a nuestras políticas, además de demostrar nuevamente ante el resto que nos importa la seguridad de nuestros sistemas, obteniendo así respaldos ante alguna catástrofe, además de confiabilidad en el trabajo de los empleados de nuestra empresa.

Todo esto en conjunto, desde el Pentesting, Ethical Hacking, Python como Herramienta de Ciberseguridad y nuestra organización, nuestros datos y los de nuestros clientes, pasaran a formar una posible buena reputación ante nuestros aliados y competencia.

Más de 300 empresas confían en nosotros

Oesia
Vass
Everis
Ayesa
Altran
Ibermatica
Atmira
GFI
Accenture
GMV
Concatel
Telefonica
Caser
Banco de España
kpmg
Mapfre
Randstad