El objetivo del curso es capacitar a aquellos interesados en ampliar los conocimientos sobre python, librerías y módulos que disponemos para realizar tareas relacionadas con peticiones, obtención de información, conexión con servidores o testeo de la seguridad de un sitio web.
Aprenderemos a utilizar Python como lenguaje de programación no solo para poder construir programas sino también para automatizar y especificar muchas de las tareas que se realizan durante un proceso de pentesting.
Los objetivos generales del curso serían:
Aprender a crear scripts en Python con el objetivo de automatizar tareas de pentesting.
Aprender las principales librerías disponibles en Python a la hora de desarrollar herramientas enfocadas a la seguridad.
Aprender una metodología que permita escribir código en Python para realizar un proceso de pentesting.
Aprender a desarrollar mediante programación en Python sus propias herramientas que se utilizan en un proceso de Ethical Hacking.
Aprender a automatizar tareas de análisis y extracción de información de servidores.
Fomentar el interés por la investigación y la seguridad informática.
Desarrolladores con conocimientos básicos en Python.
Es recomendable que el alumno tenga unas bases del lenguaje y unos conocimientos básicos de programación orientada a objetos, estructuras de datos y manejo de ficheros.
Es recomendable que el alumno tenga conocimientos sobre el lenguaje de programación Python y disponga del intérprete con la versión de Python 3.8 instalada en su sistema.
Al finalizar esta unidad, el alumno conocerá el módulo sockets para realizar peticiones de red, resolver un dominio a partir de una dirección ip y viceversa, implementar un escáner de puertos y crear su propio servidor http para atender peticiones.
Al finalizar esta unidad, el alumno conocerá el módulo sockets para implementar una aplicación cliente-servidor para el paso de mensajes y obtener una shell inversa en Python.
Al finalizar esta unidad, el alumno conocerá los principales módulos disponibles tanto en la librería estándar como en forma de módulo para realizar peticiones a un sitio web y una API REST.
Al finalizar esta unidad, el alumno conocerá los principales módulos disponibles en Python con el objetivo de extraer información de servidores y servicios que están ejecutando, así como información como nombres de dominio y banners. Con las herramientas que estudiaremos podemos sacar información que nos puede resultar útil para fases posteriores en nuestro proceso de pentesting o auditoría.
Al finalizar esta unidad, el alumno conocerá los principales módulos disponibles en Python con el objetivo automatizar la extracción de metadatos de documentos e imágenes. El proceso de extracción de información permite recoger metadatos de documentos y en ocasiones también es posible obtener la ubicación geográfica o el autor del documento.
Al finalizar esta unidad, el alumno conocerá los principales módulos disponibles en Python con el objetivo automatizar la extracción de información de un sitio web. Si queremos extraer el contenido de una página web automatizando la extracción de información, muchas veces nos encontramos con que la página web no ofrece ninguna API para obtener los datos que necesitas y es necesario recurrir a técnicas de scraping para recuperar datos de una web de forma automática. Algunas de las herramientas más potentes, las podemos encontrar en Python, entre las que podemos destacar BeautifulSoup y Scrapy.
Al finalizar esta unidad, el alumno conocerá Scrapy como framework para extraer información de sitios web de forma automática mediante la creación de spyders. Scrapy también permite exportar los datos extraídos en diferentes formatos como csv, xml y json con el objetivo de analizar estos datos posteriormente.
Al finalizar esta unidad, el alumno conocerá los principales módulos disponibles en Python con el objetivo automatizar los procesos de escáner de puertos y redes. Algunas de las herramientas que permiten realizar un escáner de puertos y automatizar la detección de servicios y puertos abiertos, las podemos encontrar en Python, entre las que podemos destacar Python-nmap. También usaremos nmap para detectar vulnerabilidades en servicios específicos gracias a los scripts de nmap.
Al finalizar esta unidad, el alumno conocerá los principales módulos disponibles en Python con el objetivo automatizar los procesos de conexión a un servidor FTP, SFTP y SSH. Algunas de las herramientas que permiten conectarnos con estos servidores las podemos encontrar en Python, entre las que podemos destacar FTPLib y Paramiko.
Al finalizar esta unidad, el alumno conocerá las principales herramientas desarrolladas por la comunidad de Python con el objetivo de detectar vulnerabilidades en aplicaciones web como sql injection y cross site scripting utilizando la metodología OWASP. Se estudiarán con detalle las herramientas sqlmap y bandit para detectar vulnerabilidades en sitios web y aplicaciones desarrolladas en Python.
¡Nunca dejes de aprender!