Materias
Referencia: Código 11144
Junio de 2024 - José Manuel Ortega Candel - Refª 11144
José Manuel Ortega Candel
Junio de 2024 Páginas: 516
Código 11144 ISBN/EAN: 9788426738219
CONTENIDO: Descubra el poder de Python en la seguridad informática y la administración de redes
Si ya posee unos conocimientos previos de programación, principalmente de Python, y quiere ir más allá en la seguridad informática y redes de ordenadores, ha llegado al libro indicado.
A través de una exploración detallada y práctica, Python aplicado a seguridad y redes explora cómo la programación en Python puede transformar y mejorar la gestión de la seguridad y las redes. Gracias a su lectura, aprenderá acerca de la automatización de tareas y de la implementación de herramientas de detección y defensa. También será capaz de:
Asimismo, con este libro disfrutará de proyectos y ejemplos prácticos para consolidar los conceptos aprendidos y fomentar la experimentación. Podrá descargar el material adicional gratuito con el código de la primera página desde www.marcombo.info.
Este libro ha sido diseñado para estudiantes, profesionales de la seguridad informática, administradores de redes e interesados en aprender cómo aplicar Python en el contexto de la seguridad y las comunicaciones en red. Con él, estará equipado para enfrentar los desafíos del mundo digital de hoy y aprovechará la flexibilidad y el poder de Python para proteger y optimizar sus sistemas de redes.
No deje escapar la oportunidad de aprender sobre este tema, de la mano de todo un profesional del ámbito de la programación. Seguro que no le defraudará.
José Manuel Ortega Candel es ingeniero de software e investigador de ciberseguridad. Tiene interés en proyectos de innovación utilizando tecnologías Big Data y lenguajes de programación como Python. Actualmente, trabaja como ingeniero de software en proyectos de investigación relacionados con Big Data, ciberseguridad y Blockchain. Ha impartido docencia a nivel universitario y ha colaborado con el colegio oficial de ingenieros informáticos. También ha sido ponente en varias conferencias orientadas a desarrolladores de nivel nacional e internacional.
INDICE EXTRACTADO:
CAPÍTULO 1 Trabajando con sockets en Python 3 1.1. Introducción a Python para proyectos de seguridad 3 1.2. Introducción a los sockets 4 1.2.1. Sockets de red en Python 4 1.2.2. Módulo socket en Python 6 1.3. Recopilación de información con sockets 8 1.3.1. Obtener información de un servidor y dirección IP 10 1.4. Implementar un escáner de puertos con sockets 13 1.4.1. Escáner de puertos con sockets 13 1.4.2. Escáner de puertos avanzado 16 1.4.3. Escáner de puertos a partir de un dominio 18 1.5. Implementar en Python un servidor HTTP 21 1.5.1. Implementación del servidor 21 1.5.2. Implementación del cliente 23 1.6. Aplicaciones clientes- servidor con sockets en Python 24 1.6.1. Implementación del cliente 25 1.6.2. Administrar excepciones de socket 27 1.6.3. Creando un cliente y un servidor TCP con sockets 29 1.6.4. Método para aceptar conexiones 30 1.6.5. Enviar y recibir datos del socket 31 1.6.6. Implementando el servidor TCP 31 1.6.7. Implementando el cliente TCP 33 1.7. Shell inversa con sockets 35 1.8. Conclusiones 41 CAPÍTULO 2 Módulos para realizar peticiones con Python 43 2.1. Introducción 43 2.2. Protocolo HTTP y creación de clientes HTTP en Python 43 2.2.1. Introducción al protocolo HTTP 43 2.2.2. Módulo http.client 45 2.3. Construyendo un cliente HTTP con urllib.request 47 2.3.1. Usando el método urlopen() 48 2.3.2. Objeto respuesta y códigos de estado 49 2.3.3. Comprobación de cabeceras HTTP con urllib.request 52 2.3.4. Personalización de cabeceras HTTP con urllib.request 55 2.3.5. Obtener correos electrónicos y enlaces de una URL 57 2.3.6. Obtener imágenes de una URL con urllib.request 60 2.4. Construyendo un cliente HTTP con requests 61 2.4.1. Introducción al módulo requests 62 2.4.2. Obtener número de palabras de un fichero 66 2.4.3. Obtener cabeceras con el módulo requests 68 2.4.4. Realizar peticiones GET a una API REST 70 2.4.5. Realizar peticiones POST a una API REST 73 2.4.6. Realizar peticiones mediante un proxy 75 2.4.7. Gestionar excepciones con el módulo requests 76 2.5. Conclusiones 79 CAPÍTULO 3 Recolección de información de servidores con Python 81 3.1. Introducción 81 3.2. Utilizando Shodan para la obtención de información 81 3.2.1. Filtros en Shodan 84 3.3. Utilizando Python para realizar búsquedas en Shodan 85 3.3.1. Acceso a Shodan desde Python 87 3.3.2. Búsquedas de Shodan en Python 90 3.3.3. Obtención de información de un servidor FTP 96 3.4. Utilizando el protocolo WHOIS para obtener información de un servidor 98 3.4.1. Servicio WHOIS 100 3.4.2. Consultas al servicio WHOAPI.com 101 3.4.3. Consultas con el módulo Python-whois 105 3.4.4. Consultas con el módulo ipwhois 108 3.5. Extracción de información de servidores DNS 110 3.5.1. Servidores DNS 112 3.5.2 Módulo DNSPython 112 3.5.3. Otras operaciones con el módulo dnspython 121 3.6. Servicios DNS 123 3.7. Conclusiones 125 CAPÍTULO 4 Extracción de metadatos con Python 127 4.1. Introducción 127 4.2. Obtener información de geolocalización 127 4.3. Módulos de geolocalización en Python 131 4.3.1. Geolocalización con geoip2-python 131 4.3.2. Geolocalización con maxminddb-geolite2 132 4.3.3. Geolocalización con python-geoip-python3 139 4.4. Extracción de metadatos en documentos PDF 140 4.4.1. Obtención de metadatos con PdfReader 142 4.4.2. Extraer texto e imágenes de documentos PDF 143 4.5. Extracción de metadatos en imágenes 146 4.5.1. Extracción de metadatos con el módulo PIL.ExifTags 148 4.6. Conclusiones 153 CAPÍTULO 5 Web Scraping con Python 155 5.1. Introducción 155 5.2. Parsers XML y HTML 156 5.2.1. Extraer etiquetas de un sitio web 159 5.2.2. Extracción de documentos PDF con el módulo lxml 162 5.3. Extraer contenido y etiquetas con BeautifulSoup 165 5.3.1. Extraer nombres de dominio con BeautifulSoup 168 5.3.2. Extracción de contenido mediante expresiones regulares 169 5.3.3. Extracción de imágenes y enlaces con el módulo bs4 170 5.4. Web Scraping con Scrapy 176 5.4.1. Características de Scrapy 176 5.4.2. Arquitectura de Scrapy 177 5.4.3. Instalación y comandos de Scrapy 178 5.4.4. Extrayendo información mediante Scrapy Shell 179 5.4.5. Scrapy como framework de desarrollo de spyders 182 5.4.6. Fichero de configuración settings.py 188 5.4.7. Exportación de resultados en formatos json, csv, xml 190 5.5. Conclusiones 191 CAPÍTULO 6 Escaneo de puertos y redes con Python 193 6.1. Introducción 193 6.2. Nmap como herramienta de escáner de puertos 194 6.2.1. Tipos de escaneo con nmap 194 6.3. Escaneo de puertos con Python-nmap 199 6.3.1. Escaneo síncrono con Python-nmap 204 6.3.2. Guardar el resultado del escaneo en un fichero JSON 206 6.3.3. Usando PortScanner Yield 209 6.3.4. Usando nmap con otros módulos de Python 210 6.3.5. Escaneo asíncrono 212 6.4. Ejecutar scripts de nmap para detectar servicios y vulnerabilidades 217 6.4.1. Ejecutar scripts de nmap 218 6.4.2. Obtener subdominios con script de nmap 224 6.4.3. Analizar el servicio FTP con scripts de nmap 226 6.5. Obtener las máquinas activas de un segmento de red 231 6.6. Scanless 237 6.7. Conclusiones 241 CAPÍTULO 7 Conexión con servidores FTP, SFTP y SSH desde Python 243 7.1. Introducción 243 7.2. Conexiones con servidores FTP utilizando el módulo ftpLib 243 7.2.1. Conexiones con servidores FTP 244 7.2.2. Descarga de ficheros de servidores FTP 249 7.2.3. Comprobar conexión FTP anónima 251 7.2.4. Proceso de fuerza bruta para conectarnos con un servidor FTP 254 7.3. Conexión con servidores SSH utilizando paramiko 261 7.3.1. Ejecutar comandos con paramiko 272 7.3.2. Conexión con la clase Transport 273 7.3.3. Ejecutar comandos con la clase Transport 278 7.3.4. Obtener algoritmos de cifrado 281 7.3.5. Operaciones sobre archivos mediante el cliente SFTP 285 7.3.6. Descarga de ficheros con el cliente SFTP 290 7.4. Conexión con servidores SFTP utilizando PYSFTP 292 7.4.1. Descarga de ficheros utilizando PYSFTP 295 7.5. Conclusiones 296 CAPÍTULO 8 Análisis de vulnerabilidades en aplicaciones web con Python 299 8.1. Introducción 299 8.2. Introducción a la metodología OWASP 299 8.2.1. Inyección de comandos 300 8.2.2. SQL Injection 300 8.2.3. Cross-Site Scripting (XSS) 301 8.3. Scripts en Python para detectar vulnerabilidades en sitios web 303 8.3.1. Script en Python para detectar SQL Injection 304 8.3.2. Script en Python para detectar Cross-Site Scripting XSS 307 8.4. Introducción a la herramienta SQLmap para detectar vulnerabilidades del tipo SQL Injection 311 8.4.1. Ejecutar SQLmap sobre un dominio vulnerable 312 8.4.2. Extracción de tablas y columnas de una base de datos 314 8.4.3. Acceder a información de una tabla 317 8.5. Introducción a la herramienta Bandit para detectar vulnerabilidades en proyectos de Python 318 8.5.1. Instalar y ejecutar Bandit 318 8.5.2. Análisis de vulnerabilidades con Bandit 322 8.5.3. Plug-ins de Bandit para el análisis de código estático 325 8.5.4. Plugin SQL Injection 330 8.6. Otras herramientas de análisis y detección de vulnerabilidades en Python 332 8.6.1. Safety 333 8.6.2. Ejemplo de código para detectar XSS 334 8.6.3. Escáner de vulnerabilidades XSS para Python 336 8.7. Conclusiones 338 CAPÍTULO 9 Análisis del tráfico de red y rastreo de paquetes con scapy 341 9.1. Introducción 341 9.2. Captura e inyección de paquetes con scapy 341 9.3. Envío y recepción de paquetes con scapy 352 9.3.1. Enviar y recibir paquetes con scapy 356 9.4. Descubrimiento de redes con scapy 363 9.4.1. Escaneo de puertos con scapy 366 9.4.2. Comando traceroute con scapy 370 9.5. Lectura de ficheros PCAP con scapy 376 9.6. Rastreo de paquetes con scapy 380 9.7. Conclusiones 391 CAPÍTULO 10 Recopilación de información con herramientas OSINT 393 10.1. Introducción 393 10.2. Introducción a la Inteligencia de Fuentes Abiertas (OSINT) 394 10.2.1. Google Dorks y la base de datos de Google Hacking 395 10.2.2. Maltego 396 10.2.3. Photon 399 10.2.4. The Harvester 400 10.2.5. Censys 400 10.2.6. crt.sh 401 10.2.7. DnsDumpster 402 10.2.8. Web Check 402 10.2.9. WaybackMachine 403 10.2.10. OSINT framework 404 10.2.11. El motor de búsqueda Shodan 405 10.2.12. El motor de búsqueda BinaryEdge 406 10.3. Obtener información con Google Dorks 408 10.3.1. Google Dorks 409 10.3.2. Katana: una herramienta Python para Google Hacking 410 10.3.3. Dorks Hunter 411 10.4. Obtener información con SpiderFoot 414 10.4.1. Módulos de SpiderFoot 419 10.5. Obtener información sobre servidores DNS con DNSPython y DNSRecon 420 10.5.1. Protocolo DNS 420 10.5.2. Módulo DNSPython 421 10.5.3. DNSRecon 427 10.6. Obtención de servidores vulnerables con fuzzing 433 10.6.1. El proceso de fuzzing 433 10.6.2. Web fuzzing 434 10.6.3. Introducción del proyecto FuzzDB 435 10.6.4. Identificación de páginas de inicio de sesión predecibles con el proyecto FuzzDB 440 10.6.5. Identificación de inyección SQL con el proyecto FuzzDB 442 10.7. Conclusiones 445 CAPÍTULO 11 Criptografía y ofuscación de código 447 11.1. Introducción 447 11.2. Introducción a la criptografía 447 11.3. Cifrar y descifrar información con pycryptodome 448 11.3.1. Cifrar y descifrar con el algoritmo DES 452 11.3.2. Cifrar y descifrar con el algoritmo AES 454 11.3.3. Cifrado de archivos con el algoritmo AES 458 11.3.4. Generación de firmas RSA con pycryptodome 463 11.4. Cifrar y descifrar información con cryptography 468 11.4.1. Cifrado simétrico con el paquete fernet 469 11.5. Generación segura de claves con los módulos secrets y hashlib 474 11.5.1. Generar claves de forma segura con el módulo hashlib 477 11.5.2. Comprobar la integridad de un fichero con el módulo hashlib 483 11.6. Herramientas de Python para la ofuscación de código 485 11.6.1. Ofuscación de código con pyarmor 486 11.7. Conclusiones 491 Glosario 493
Fecha de disponibilidad: