Herramientas de usuario

Herramientas del sitio


informatica:programacion:cursos:python_avanzado_proyectos_seguridad

¡Esta es una revisión vieja del documento!


Python avanzado para proyectos de seguridad

Notas del curso Python avanzado para proyectos de seguridad del Clúster Tic de Galicia.

  • Horas: 35
  • Fecha Inicio: 11/11/2024
  • Fecha Fin: 13/12/2024

Objetivo general

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.

Objetivos específicos

  • 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

Temario

1. Trabajando con sockets en Python

2. Aplicaciones cliente-servidor con sockets en Python

3. MÓDULOS PARA REALIZAR PETICIONES CON PYTHON

  1. Protocolo HTTP y creación de clientes HTTP en python
  2. Construyendo un cliente HTTP con urllib.request
  3. Crear un cliente HTTP con requests

4. RECOLECCIÓN DE INFORMACIÓN DE SERVIDORES CON PYTHON

  1. Utilizando Shodan para la obtención de información de un servidor
  2. Utilizando Python para realizar búsquedas en Shodan
  3. Utilizando el registro Whois para obtener información de un servidor
  4. Extracción de información de servidores DNS

5. EXTRACCIÓN DE METADATOS CON PYTHON

  1. Obtener información geográfica acerca de la localización de un servidor
  2. Extracción de metadatos en documentos con el módulo PyPDF2
  3. Extracción de metadatos en imágenes

WEBSCRAPING CON PYTHON

  1. Extracción de contenidos web con Python
  2. Extraer contenido y etiquetas con BeautifulSoup
  3. Extracción de imágenes y enlaces con el módulo bs4

7. WEBSCRAPING AVANZADO CON SCRAPY

  1. Arquitectura e instalación de Scrapy
  2. Scrapy como framework de desarrollo de spyders
  3. Proyecto Scrapy para extraer las conferencias europython

8. ESCANEO DE PUERTOS Y REDES CON PYTHON

  1. Nmap como herramienta de escáner de puertos
  2. Escaneo de puertos con Python-nmap
  3. Ejecutar scripts de nmap para detectar servicios y vulnerabilidades
  4. Obtener las máquinas activas de un segmento de red

9. CONEXIONES CON SERVIDORES FTP, SFTP, SSH DESDE PYTHON

  1. Conexiones con servidores FTP utilizando el módulo ftplib
  2. Conexión con servidores SSH utilizando paramiko
  3. Proceso de fuerza bruta contra un servidor SSH

10. ANÁLISIS DE VULNERABILIDADES EN APLICACIONES WEB CON PYTHON

  1. Introducción a la metodología OWASP
  2. Introducción a la herramienta sqlmap para detectar vulnerabilidades del tipo sql injection
  3. Introducción a la herramienta bandit para detectar vulnerabilidades en proyectos de python
  4. Detectar vulnerabilidades en sitios web con herramientas automáticas

Cuestionarios

Prueba inicial de conocimientos

¿Qué es un socket en el contexto de la programación de redes en Python?

  • Un archivo de texto.
  • Un canal de comunicación punto a punto entre un cliente y un servidor. (Correcto)
  • Un servidor web.
  • Una base de datos.

¿Qué módulo de Python es utilizado para automatizar la creación de un servidor HTTP?

  • socket. (Correcto)
  • os.
  • sys.
  • requests.

El método socket.accept() permite aceptar conexiones de un cliente en un servidor.

  • Verdadero. (Correcto)
  • Falso.

El método socket.recv() se utiliza para recibir datos de un cliente en un servidor Python.

  • Verdadero. (Correcto)
  • Falso.

¿Qué método se utiliza en Python para implementar un escáner de puertos?

  • bind().
  • listen().
  • connect_ex(). (Correcto)
  • send().

La familia de sockets AF_INET se utiliza para las direcciones IPv6.

  • Verdadero.
  • Falso.

¿Qué hace el método sendall() en un socket de Python?

  • Envía todos los datos al servidor.
  • Envía todos los datos en el buffer al cliente. (Correcto)
  • Recibe datos del cliente.
  • Cierra la conexión.

El código de estado HTTP 200 indica que la petición fue exitosa.

  • Verdadero. (Correcto)
  • Falso.

¿Cuál es el principal objetivo del módulo requests en Python?

  • Crear servidores web.
  • Realizar peticiones HTTP a sitios web. (Correcto)
  • Enviar correos electrónicos.
  • Manejar excepciones de conexión.

Scrapy permite exportar datos extraídos de un sitio web en formatos JSON, CSV y XML.

  • Verdadero. (Correcto)
  • Falso.

Trabajando con sockets en Python

Los sockets en Python permiten la comunicación entre procesos en la misma máquina o en máquinas diferentes.

  • Verdadero. (Correcto)
  • Falso.

¿Qué método de socket convierte un nombre de host en una dirección IPv4?

  • gethostbyaddr().
  • gethostbyname(). (Correcto)
  • getfqdn().
  • getservbyport().

¿Qué protocolo es utilizado por los sockets de flujo en Python?

  • UDP.
  • ICMP.
  • TCP. (Correcto)
  • HTTP.

¿Qué método en Python se utiliza para resolver un nombre de dominio a partir de una dirección IP?

  • gethostbyname().
  • getfqdn().
  • gethostbyaddr(). (Correcto)
  • connect_ex().

El método socket.getservbyport() permite obtener el nombre de un puerto a partir de su número.

  • Verdadero. (Correcto)
  • Falso.

¿Qué hace la función socket.send() en un servidor HTTP implementado en Python?

  • Recibe datos de un cliente.
  • Conecta el servidor con el cliente.
  • Envía datos al cliente. (Correcto)
  • Cierra la conexión con el cliente.

¿Qué tipo de socket se utiliza para trabajar con UDP en Python?

  • SOCK_DGRAM. (Correcto)
  • SOCK_STREAM.
  • AF_INET.
  • AF_INET6.

¿Qué método se utiliza para escuchar conexiones entrantes en un servidor en Python?

  • bind().
  • listen(). (Correcto)
  • recv().
  • accept().

¿Qué función de socket permite la búsqueda inversa de una dirección IP?

  • gethostbyname().
  • gethostbyaddr(). (Correcto)
  • getfqdn().
  • connect_ex().

¿Qué protocolo utiliza el socket AF_INET en Python?

  • UDP.
  • ICMP.
  • TCP. (Correcto)
  • FTP.
informatica/programacion/cursos/python_avanzado_proyectos_seguridad.1731411452.txt.gz · Última modificación: por tempwin