Python Avanzado para Proyectos de Seguridad

315,00

Duración: 42 horas ONLINE  |  Ref (3617)
Consulte becas o como hacer el curso sin coste.

ID CURSO:

3617
MODALIDAD:

ONLINE
FAMILIA:

137
HORAS:

42 horas
INICIO:

INMEDIATO
DURACIÓN:

Aprox.
10 semanas
SKU: 3617 Categoría:
 

1 – Trabajando con sockets en Python

 

Trabajando con sockets en Python

Introducción a python para proyectos de seguridad

Introducción a los sockets

Sockets de red en Python

Módulo socket en python

Recopilación de información con sockets

Ejemplo para los métodos de socket

Búsqueda inversa

Implementar en Python un escáner de puertos con sockets

Método connect_ex()

Escáner de puertos con sockets

Explicación función escáner de puertos

Escáner de puertos avanzado

Ejecución escáner de puertos avanzado

Escáner de puertos a partir de un dominio

Función principal escáner de puertos a partir de un dominio

Implementar en Python un servidor HTTP

Métodos de socket del servidor

Implementación del servidor

Probando el servidor creando un cliente HTTP

Resumen

 

2 – Aplicaciones clientes-servidor con sockets en Python

 

Aplicaciones clientes-servidor con sockets en python

Métodos para enviar y recibir datos entre un cliente y un servidor

 Métodos de socket del servidor

Métodos de socket del cliente

Cliente básico con el módulo de socket

Administrar excepciones de socket

Creando un cliente y un servidor TCP con sockets

Métodos para aceptar conexiones

Enviar y recibir datos del socket

Implementando el servidor TCP

Implementando el cliente TCP

Shell inversa con sockets

Resumen

 

3 – Módulos para realizar peticiones con Python

 

Módulos para realizar peticiones con Python

Protocolo HTTP y creación de clientes HTTP en python

Introducción al protocolo HTTP

Módulo http.client

Construyendo un cliente HTTP con urllib.request

Ejemplo con el método urlopen()

Objeto de respuesta

Códigos de estado

Manejo de excepciones con urllib.request

Comprobación de cabeceras HTTP con urllib.request

Ejecución del script

Personalización de cabeceras con urllib

Obtener correos electrónicos de una URL con urllib.request

Obtener enlaces de una URL con urllib.request

Módulo urllib3

Crear un cliente HTTP con requests

Introducción al módulo requests

Comprobar respuesta de una petición

Obtener el fichero robots.txt de un dominio con el módulo requests

Obtener cabeceras con el módulo requests

Ventajas del módulo requests

Realizar peticiones GET a una API REST

Realizar peticiones POST a una API REST

Realizar peticiones mediante un proxy

Gestionar excepciones con el módulo requests

Ejemplo script para tratar excepciones

Resumen

 

4 – Recolección de información de servidores con Python

 

Recolección de información de servidores con Python

Utilizando Shodan para la obtención de información de un servidor

Diferencias entre Shodan y otros buscadores

Extensión de Google Chrome

 Filtros en Shodan

Servicios de Shodan

Registro en Shodan

Utilizando Python para realizar búsquedas en Shodan

Shodan API REST

Acceso a Shodan desde Python

Shodanploit

Búsquedas de Shodan en python

Realizar búsquedas por un host determinado

Ejecución ShodanSearch

Utilizando Shodan para la obtención de información de un servidor FTP

Shodan eye

Consultas sin API Key

Utilizando el registro Whois para obtener información de un servidor

Servicios whois

Obtener información de un dominio con el servicio domaintools

Módulo python-whois

Módulo ipwhois

Extracción de información de servidores DNS

Servidores DNS

Módulo DNSPython

Determinar el destino de un registro MX y su preferencia

Implementar un cliente consulta de registros DNS

Añadiendo tratamiento de excepciones a la consulta de registros DNS

Otras operaciones con el módulo dnspython

Búsqueda inversa

 Servicios DNS

DNSLookup

Resumen

 

5 – Extracción de metadatos con Python

 

Extracción de metadatos con Python

Obtener información geográfica acerca de la localización de un servidor

Servicio de geolocalización freegeoip

Módulos de geolocalización en python

Métodos de Pygeoip

Geolocalización con la base de datos MaxMind

Geolocalización con geoip2-python

Geolocalización con maxminddb-geolite2

Geolocalización con python-geoip-python3

Extracción de metadatos en documentos con el módulo PyPDF2

Obtención de metadatos con PdfFileReader

Extraer información y metadatos XMP de documentos PDF

Extraer imágenes de un documento PDF

Otras herramientas

Extracción de metadatos en imágenes

Extracción de metadatos con el módulo PIL.ExifTags

Obtener los metadatos EXIF de una imagen

Obteniendo geolocalización

Extraer metadatos de imágenes web

Extrayendo metadatos de las imágenes descargadas

Resumen

 

6 – WebScraping con Python

 

Web Scraping con Python

Extracción de contenidos web con Python

Parsers XML y HTML

Submódulo lxml.html

Extraer etiquetas de un sitio web con el módulo lxml

Obtener formularios de un sitio web

Expresiones xpath

Ejemplo de script utilizando expresiones xpath

Extracción de enlaces con el módulo lxml con expresiones xpath

Extracción de documentos pdf con el módulo lxml con expresiones xpath

Extraer contenido y etiquetas con BeautifulSoup

Método find_all() de BeautifulSoup

Extracción de etiquetas meta

Extracción de contenido mediante expresiones regulares

Manejo de excepciones de URL y etiquetas no encontradas

Extracción de imágenes y enlaces con el módulo bs4

Extraer enlaces a partir de una url con BeautifulSoup

Implementar un crawler de enlaces a partir de una url

Resumen

 

7 – WebScraping avanzado con Scrapy

 

Web Scraping avanzado con Scrapy

Arquitectura e instalación de Scrapy

Arquitectura de Scrapy

Instalación de scrapy

Extrayendo información mediante scrapy shell

Uso de selectores

Scrapy como framework de desarrollo de spyders

Creación de un proyecto scrapy

Spyders

Estructura de un Spyder

Creando el esqueleto de nuestro spyder

Extracción de enlaces con scrapy

Fichero BooksSpider.py

Ejecución de BooksSpider

Scrapy pipelines

Fichero configuración de scrapy settings.py

Exportación de resultados en formatos json, csv, xml

Consejos y trucos de ejecución de scrapy

Proyecto Scrapy para extraer las conferencias europython

Creación proyecto europython

Ficheros proyecto scrapy

Spyder europython

Funcionamiento del spyder

Obtener Expresiones XPath

Ejecutando el spyder Europython

Pipelines proyecto europython

Fichero pipelines.py

Settings proyecto europython

Resumen

 

8 – Escaneo de puertos y redes con Python

 

Escaneo de puertos y redes con python

Nmap como herramienta de escáner de puertos

Tipos de escaneo con nmap

Escaneo de puertos con Python-nmap

Método de escaneo

Obtener resultados del escaneo en formato csv

Escaneo síncrono

Ejecución escáner síncrono

Guardar resultado del escaneo en un fichero JSON

Ejecución escáner formato json

Usando PortScannerYield

Usando NMAP con el módulo os(operating system)

Usando NMAP con el módulo subproccess

Escaneo asíncrono

Ejemplo de escáner asíncrono con python-nmap

Ejecución escáner asíncrono 

Ejecutar scripts de nmap para detectar servicios y vulnerabilidades

Ejecución scripts de nmap

Lanzar script categoría discovery

Lanzar script obtener cabeceras

Obtener subdominios con script de nmap

Lanzar scripts para un determinado servicio

Analizar el servicio FTP con scripts de nmap

Obtener las máquinas activas de un segmento de red

Ejecutar comando ping en Python

Ejecución script comand ping 

Resumen

 

9 – Conexiones con servidores FTP, SFTP, SSH desde Python

 

Conexiones con servidores FTP, SFTP, SSH desde Python

Conexiones con servidores FTP utilizando el módulo ftplib

Módulo ftplib

Conexión con un servidor FTP

Métodos de la clase FTP

Descarga de ficheros de servidores FTP(I)

Descarga de ficheros de servidores FTP(II)

Comprobar conexión FTP anónima

Ejecución conexión FTP anónima

Proceso de fuerza bruta para conectarnos con un servidor FTP

Conexión con servidores SSH utilizando paramiko

Ejecutar comandos con paramiko

Conexión con la clase Transport

Ejecutar comandos con la clase Transport

Tratamiento de excepciones

Operaciones sobre archivos mediante el cliente SFTP

Descarga de ficheros con el cliente SFTP

Acceder a un servidor via SFTP utilizando el módulo PySftp

Descarga de un fichero utilizando el módulo PySftp

Proceso de fuerza bruta contra un servidor SSH

Ejecución script fuerza bruta 

Resumen

 

10 – Análisis de vulnerabilidades en aplicaciones web con Python

 

Análisis de vulnerabilidades en aplicaciones web con Python

Introducción a la metodología OWASP

Inyección de comandos

SQL Injection

Cross-Site Scripting (XSS)

OWASP Python Security Project

Scripts en python para detectar vulnerabilidades en sitios web

Script en python para detectar SQL Injection

Script en python para detectar Cross-Site Scripting XSS

Ejecución script Cross-Site Scripting XSS

Introducción a la herramienta sqlmap para detectar vulnerabilidades del tipo sql injection

Ejecutar sqlmap sobre un dominio vulnerable

Extracción de tablas y columnas de una base de datos

Acceder a información de una tabla

Introducción a la herramienta bandit para detectar vulnerabilidades en proyectos de python

Instalar y ejecutar bandit

Análisis de vulnerabilidades con bandit

Plugins de bandit para análisis de código estático

Ejemplo módulo subprocess

Plugin SQL Inyection

Otras herramientas de análisis de código estático en python

Pyup

Safety

LGTM y reglas de seguridad en python

Ejemplo de código para detectar XSS

Detectar vulnerabilidades en sitios web con herramientas automáticas

Escáner de vulnerabilidades XSS para python 3.7

Ejecución pwnxss sobre dominio vulnerable

Escáner de vulnerabilidades en sitios web CMS

Ejecución de cmsmap en python3

Resumen

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:

  1. Aprender a crear scripts en Python con el objetivo de automatizar tareas de pentesting.
  2. Aprender las principales librerías disponibles en Python a la hora de desarrollar herramientas enfocadas a la seguridad.
  3. Aprender una metodología que permita escribir código en Python para realizar un proceso de pentesting.
  4. Aprender a desarrollar mediante programación en Python sus propias herramientas que se utilizan en un proceso de Ethical Hacking.
  5. 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

Descripción

1 – Trabajando con sockets en Python

 

Trabajando con sockets en Python

Introducción a python para proyectos de seguridad

Introducción a los sockets

Sockets de red en Python

Módulo socket en python

Recopilación de información con sockets

Ejemplo para los métodos de socket

Búsqueda inversa

Implementar en Python un escáner de puertos con sockets

Método connect_ex()

Escáner de puertos con sockets

Explicación función escáner de puertos

Escáner de puertos avanzado

Ejecución escáner de puertos avanzado

Escáner de puertos a partir de un dominio

Función principal escáner de puertos a partir de un dominio

Implementar en Python un servidor HTTP

Métodos de socket del servidor

Implementación del servidor

Probando el servidor creando un cliente HTTP

Resumen

 

2 – Aplicaciones clientes-servidor con sockets en Python

 

Aplicaciones clientes-servidor con sockets en python

Métodos para enviar y recibir datos entre un cliente y un servidor

 Métodos de socket del servidor

Métodos de socket del cliente

Cliente básico con el módulo de socket

Administrar excepciones de socket

Creando un cliente y un servidor TCP con sockets

Métodos para aceptar conexiones

Enviar y recibir datos del socket

Implementando el servidor TCP

Implementando el cliente TCP

Shell inversa con sockets

Resumen

 

3 – Módulos para realizar peticiones con Python

 

Módulos para realizar peticiones con Python

Protocolo HTTP y creación de clientes HTTP en python

Introducción al protocolo HTTP

Módulo http.client

Construyendo un cliente HTTP con urllib.request

Ejemplo con el método urlopen()

Objeto de respuesta

Códigos de estado

Manejo de excepciones con urllib.request

Comprobación de cabeceras HTTP con urllib.request

Ejecución del script

Personalización de cabeceras con urllib

Obtener correos electrónicos de una URL con urllib.request

Obtener enlaces de una URL con urllib.request

Módulo urllib3

Crear un cliente HTTP con requests

Introducción al módulo requests

Comprobar respuesta de una petición

Obtener el fichero robots.txt de un dominio con el módulo requests

Obtener cabeceras con el módulo requests

Ventajas del módulo requests

Realizar peticiones GET a una API REST

Realizar peticiones POST a una API REST

Realizar peticiones mediante un proxy

Gestionar excepciones con el módulo requests

Ejemplo script para tratar excepciones

Resumen

 

4 – Recolección de información de servidores con Python

 

Recolección de información de servidores con Python

Utilizando Shodan para la obtención de información de un servidor

Diferencias entre Shodan y otros buscadores

Extensión de Google Chrome

 Filtros en Shodan

Servicios de Shodan

Registro en Shodan

Utilizando Python para realizar búsquedas en Shodan

Shodan API REST

Acceso a Shodan desde Python

Shodanploit

Búsquedas de Shodan en python

Realizar búsquedas por un host determinado

Ejecución ShodanSearch

Utilizando Shodan para la obtención de información de un servidor FTP

Shodan eye

Consultas sin API Key

Utilizando el registro Whois para obtener información de un servidor

Servicios whois

Obtener información de un dominio con el servicio domaintools

Módulo python-whois

Módulo ipwhois

Extracción de información de servidores DNS

Servidores DNS

Módulo DNSPython

Determinar el destino de un registro MX y su preferencia

Implementar un cliente consulta de registros DNS

Añadiendo tratamiento de excepciones a la consulta de registros DNS

Otras operaciones con el módulo dnspython

Búsqueda inversa

 Servicios DNS

DNSLookup

Resumen

 

5 – Extracción de metadatos con Python

 

Extracción de metadatos con Python

Obtener información geográfica acerca de la localización de un servidor

Servicio de geolocalización freegeoip

Módulos de geolocalización en python

Métodos de Pygeoip

Geolocalización con la base de datos MaxMind

Geolocalización con geoip2-python

Geolocalización con maxminddb-geolite2

Geolocalización con python-geoip-python3

Extracción de metadatos en documentos con el módulo PyPDF2

Obtención de metadatos con PdfFileReader

Extraer información y metadatos XMP de documentos PDF

Extraer imágenes de un documento PDF

Otras herramientas

Extracción de metadatos en imágenes

Extracción de metadatos con el módulo PIL.ExifTags

Obtener los metadatos EXIF de una imagen

Obteniendo geolocalización

Extraer metadatos de imágenes web

Extrayendo metadatos de las imágenes descargadas

Resumen

 

6 – WebScraping con Python

 

Web Scraping con Python

Extracción de contenidos web con Python

Parsers XML y HTML

Submódulo lxml.html

Extraer etiquetas de un sitio web con el módulo lxml

Obtener formularios de un sitio web

Expresiones xpath

Ejemplo de script utilizando expresiones xpath

Extracción de enlaces con el módulo lxml con expresiones xpath

Extracción de documentos pdf con el módulo lxml con expresiones xpath

Extraer contenido y etiquetas con BeautifulSoup

Método find_all() de BeautifulSoup

Extracción de etiquetas meta

Extracción de contenido mediante expresiones regulares

Manejo de excepciones de URL y etiquetas no encontradas

Extracción de imágenes y enlaces con el módulo bs4

Extraer enlaces a partir de una url con BeautifulSoup

Implementar un crawler de enlaces a partir de una url

Resumen

 

7 – WebScraping avanzado con Scrapy

 

Web Scraping avanzado con Scrapy

Arquitectura e instalación de Scrapy

Arquitectura de Scrapy

Instalación de scrapy

Extrayendo información mediante scrapy shell

Uso de selectores

Scrapy como framework de desarrollo de spyders

Creación de un proyecto scrapy

Spyders

Estructura de un Spyder

Creando el esqueleto de nuestro spyder

Extracción de enlaces con scrapy

Fichero BooksSpider.py

Ejecución de BooksSpider

Scrapy pipelines

Fichero configuración de scrapy settings.py

Exportación de resultados en formatos json, csv, xml

Consejos y trucos de ejecución de scrapy

Proyecto Scrapy para extraer las conferencias europython

Creación proyecto europython

Ficheros proyecto scrapy

Spyder europython

Funcionamiento del spyder

Obtener Expresiones XPath

Ejecutando el spyder Europython

Pipelines proyecto europython

Fichero pipelines.py

Settings proyecto europython

Resumen

 

8 – Escaneo de puertos y redes con Python

 

Escaneo de puertos y redes con python

Nmap como herramienta de escáner de puertos

Tipos de escaneo con nmap

Escaneo de puertos con Python-nmap

Método de escaneo

Obtener resultados del escaneo en formato csv

Escaneo síncrono

Ejecución escáner síncrono

Guardar resultado del escaneo en un fichero JSON

Ejecución escáner formato json

Usando PortScannerYield

Usando NMAP con el módulo os(operating system)

Usando NMAP con el módulo subproccess

Escaneo asíncrono

Ejemplo de escáner asíncrono con python-nmap

Ejecución escáner asíncrono 

Ejecutar scripts de nmap para detectar servicios y vulnerabilidades

Ejecución scripts de nmap

Lanzar script categoría discovery

Lanzar script obtener cabeceras

Obtener subdominios con script de nmap

Lanzar scripts para un determinado servicio

Analizar el servicio FTP con scripts de nmap

Obtener las máquinas activas de un segmento de red

Ejecutar comando ping en Python

Ejecución script comand ping 

Resumen

 

9 – Conexiones con servidores FTP, SFTP, SSH desde Python

 

Conexiones con servidores FTP, SFTP, SSH desde Python

Conexiones con servidores FTP utilizando el módulo ftplib

Módulo ftplib

Conexión con un servidor FTP

Métodos de la clase FTP

Descarga de ficheros de servidores FTP(I)

Descarga de ficheros de servidores FTP(II)

Comprobar conexión FTP anónima

Ejecución conexión FTP anónima

Proceso de fuerza bruta para conectarnos con un servidor FTP

Conexión con servidores SSH utilizando paramiko

Ejecutar comandos con paramiko

Conexión con la clase Transport

Ejecutar comandos con la clase Transport

Tratamiento de excepciones

Operaciones sobre archivos mediante el cliente SFTP

Descarga de ficheros con el cliente SFTP

Acceder a un servidor via SFTP utilizando el módulo PySftp

Descarga de un fichero utilizando el módulo PySftp

Proceso de fuerza bruta contra un servidor SSH

Ejecución script fuerza bruta 

Resumen

 

10 – Análisis de vulnerabilidades en aplicaciones web con Python

 

Análisis de vulnerabilidades en aplicaciones web con Python

Introducción a la metodología OWASP

Inyección de comandos

SQL Injection

Cross-Site Scripting (XSS)

OWASP Python Security Project

Scripts en python para detectar vulnerabilidades en sitios web

Script en python para detectar SQL Injection

Script en python para detectar Cross-Site Scripting XSS

Ejecución script Cross-Site Scripting XSS

Introducción a la herramienta sqlmap para detectar vulnerabilidades del tipo sql injection

Ejecutar sqlmap sobre un dominio vulnerable

Extracción de tablas y columnas de una base de datos

Acceder a información de una tabla

Introducción a la herramienta bandit para detectar vulnerabilidades en proyectos de python

Instalar y ejecutar bandit

Análisis de vulnerabilidades con bandit

Plugins de bandit para análisis de código estático

Ejemplo módulo subprocess

Plugin SQL Inyection

Otras herramientas de análisis de código estático en python

Pyup

Safety

LGTM y reglas de seguridad en python

Ejemplo de código para detectar XSS

Detectar vulnerabilidades en sitios web con herramientas automáticas

Escáner de vulnerabilidades XSS para python 3.7

Ejecución pwnxss sobre dominio vulnerable

Escáner de vulnerabilidades en sitios web CMS

Ejecución de cmsmap en python3

Resumen

Información adicional

Modalidad

online

Tipo formación

Curso online

Valoraciones

No hay valoraciones aún.

Sé el primero en valorar “Python Avanzado para Proyectos de Seguridad”

    Para enviarte información sobre este curso, por favor, rellena los siguientes datos:

    Nombre (requerido)

    Teléfono: (requerido)

    Correo electrónico: (requerido)

    Acepto la Política de privacidad