Hacking ético con herramientas Python
José Manuel Ortega Candel
En los últimos años, Python se ha convertido en un lenguaje muy adoptado por la industria de la seguridad informática, debido a su simpleza, practicidad, además de ser un lenguaje tanto interpretado como de scripting. Su integración con multitud de librerías de terceros hace pensar en Python como un lenguaje con múltiples posibilidades tanto desde el punto de vista ofensivo como defensivo de la seguridad y ha sido utilizado para un gran número de proyectos incluyendo programación Web, herramientas de seguridad, scripting y automatización de tareas.
El objetivo del libro es capacitar a aquellos interesados en la seguridad, a aprender a utilizar Python como lenguaje de programación, no solo para poder construir aplicaciones, sino también para automatizar y especificar muchas de las tareas que se realizan durante un proceso de auditoría de seguridad.
Repasaremos desde los conceptos básicos de programación hasta construir nuestra propia herramienta de análisis y extracción de información. Con el objetivo de extraer información de servidores y servicios que están ejecutando, información como nombres de dominio y banners, conoceremos los módulos que ofrece python para extraer información que los servidores exponen de forma pública y veremos los módulos que permiten extraer metadatos de documentos e imágenes, así como extraer información de geolocalización a partir de direcciones IP y nombres de dominio. También analizaremos conceptos más avanzados, como implementar nuestro propio escáner de puertos con comandos nmap y scapy, además de cómo conectarnos desde python con servidores FTP, SSH, SNMP, Metaspoit y escáneres de vulnerabilidades como nexpose.
- Escritor
- José Manuel Ortega Candel
- Colección
- Seguridad Informática
- Materia
- Seguridad informática
- Idioma
- Castellano
- EAN
- 9788499647319
- ISBN
- 978-84-9964-731-9
- Depósito legal
- M-7085-2018
- Páginas
- 290
- Ancho
- 17 cm
- Alto
- 24 cm
- Peso
- 502 g
- Edición
- 1
- Fecha publicación
- 08-05-2018
Reseñas
Índice de contenido
INTRODUCCIÓN
OBJETIVOS DEL LIBRO
CAPÍTULO 1. INTRODUCCIÓN A LA PROGRAMACIÓN CON PYTHON
¿POR QUÉ ELEGIR PYTHON?
OBJETIVOS DE LA UNIDAD DIDÁCTICA
1.1 PROGRAMACIÓN ORIENTADA A OBJETOS
1.2 INSTALACIÓN DE PYTHON
1.2.1 Multiplataforma
1.2.2 Instalación
1.2.3 Python en Windows
1.2.4 Python en sistema Unix
1.3 TIPOS Y ESTRUCTURAS DE DATOS
1.3.1 Tipos dinámicos
1.3.2 Listas
1.3.3 Iteradores
1.3.4 Tuplas
1.3.5 Diccionarios
1.3.6 Excepciones
1.3.7 Funciones
1.3.8 Ficheros
1.3.9 Módulos
1.3.10 Comando help
1.4 CLASES, HERENCIA, POLIMORFISMO
1.4.1 Clases
1.4.2 El método de inicialización __init__
1.4.3 Encapsulación
1.4.4 Métodos y atributos mágicos
1.4.5 Herencia .
1.5 EJERCICIOS PRÁCTICOS
1.6 RESUMEN
1.7 BIBLIOGRAFÍA
1.8 AUTOEVALUACIÓN UNIDAD 1
1.9 LECTURAS RECOMENDADAS
1.10 GLOSARIO DE TÉRMINOS
CAPÍTULO 2. METODOLOGÍA, HERRAMIENTAS Y ENTORNO DE DESARROLLO
2.1 METODOLOGÍA OSMTD
2.1.1 Paso de parámetros en Python .
2.1.2 Paso de parámetros a un escáner de puertos
2.1.3 Gestionar dependencias en un proyecto de python
2.1.4 Gestionar entorno de ejecución
2.2 MÓDULO STB (SECURITY TOOLS BUILDER)
2.3 HERRAMIENTAS DE SEGURIDAD
2.3.1 Pydbg
2.3.2 Immunity Debugger
2.3.3 W3af
2.3.4 SQLmap
2.3.5 Sparta
2.3.6 The harvester
2.3.7 Otras herramientas
2.4 ENTORNOS DE DESARROLLO
2.4.1 Interactuando con Python
2.4.2 IDEs y software para desarrollar en Python
2.5 EJERCICIOS PRÁCTICOS
2.6 RESUMEN
2.7 BIBLIOGRAFÍA
2.8 AUTOEVALUACIÓN UNIDAD 2
2.9 LECTURAS RECOMENDADAS
2.10 GLOSARIO DE TÉRMINOS
CAPÍTULO 3. LIBRERÍAS Y MÓDULOS PARA REALIZAR PETICIO
3.1 MÓDULO SOCKETS
3.1.1 Resolver dominios y direcciones ips
3.1.2 Socket cliente-servidor
3.2 PROTOCOLO HTTP
3.2.1 Módulo httplib
3.3 MÓDULOS URLLIB, URLLIB2, URLLIB3, HTTPLIB2
3.3.1 Módulo urllib
3.3.2 Módulo urllib2
3.3.3 Módulo urllib3
3.3.4 Módulo httplib2
3.4 LIBRERÍA REQUESTS
3.4.1 Peticiones JSON
3.4.2 Peticiones Post
3.4.3 Peticiones API REST
3.4.4 Usando proxys con requests
3.5 MECANISMOS DE AUTENTICACIÓN CON PYTHON 3.5.1 HTTP Basic .
3.5.2 HTTP Digest
3.6 EJERCICIOS PRÁCTICOS
3.7 RESUMEN
3.8 BIBLIOGRAFÍA
3.9 AUTOEVALUACIÓN UNIDAD 3
3.10 LECTURAS RECOMENDADAS
3.11 GLOSARIO DE TÉRMINOS
CAPÍTULO 4. RECOLECCIÓN DE INFORMACIÓN CON PYTHON
4.1 UTILIZANDO PYTHON PARA EL ACCESO A SERVICIOS DE S
4.1.1 Filtros en shodan
4.1.2 Búsquedas en shodan
4.1.3 Búsqueda de servidores FTP
4.2 UTILIZANDO PYTHON PARA LA OBTENCIÓN DE BANNERS DE SERVIDORES
4.2.1 Módulo Python whois
4.3 OBTENER INFORMACIÓN SOBRE SERVIDORES DNS CON PYTHONDNS
4.3.1 Protocolo DNS
4.3.2 Servidores DNS
4.3.3 Módulo DNSPython
4.4 PROCESOS DE FUZZING CON EL MÓDULO PYWEBFUZZ
4.4.1 Proyecto FuzzDB
4.4.2 Módulo PyWebFuzz
4.5 EJERCICIOS PRÁCTICOS
4.6 RESUMEN
4.7 BIBLIOGRAFÍA
4.8 AUTOEVALUACIÓN UNIDAD 4
4.9 LECTURAS RECOMENDADAS
4.10 GLOSARIO DE TÉRMINOS
CAPÍTULO 5. EXTRACCIÓN DE INFORMACIÓN CON PYTHON.
INTRODUCCIÓN
OBJETIVOS DE LA UNIDAD DIDÁCTICA
5.1 GEOLOCALIZACIÓN CON PYGEOIP Y PYGEOCODER
5.1.1 Pygeoip
5.1.2 Pygeocoder .
5.2 EXTRACCIÓN DE DATOS DE IMÁGENES
5.3 EXTRACCIÓN DE DATOS DE DOCUMENTOS PDF 5.4 IDENTIFICAR LA TECNOLOGÍA USADA POR UN WEBSITE .
5.5 EJERCICIOS PRÁCTICOS .
5.6 RESUMEN
5.7 BIBLIOGRAFÍA .
5.8 AUTOEVALUACIÓN UNIDAD 5
5.9 LECTURAS RECOMENDADAS
5.10 GLOSARIO DE TÉRMINOS
CAPÍTULO 6. WEBSCRAPING CON PYTHON .
INTRODUCCIÓN
OBJETIVOS DE LA UNIDAD DIDÁCTICA
6.1 EXTRACCIÓN DE CONTENIDOS WEB CON PYTHON
6.2 PARSERS XML Y HTML
6.2.1 Parser XML
6.2.2 Parser HTML
6.3 EXTRACCIÓN DE IMÁGENES, DOCUMENTOS Y ENLACES .
6.4 BEAUTIFULSOUP
6.5 SCRAPY
6.6 XSSCRAPY
6.7 MECHANIZE
6.8 EJERCICIOS PRÁCTICOS
6.9 RESUMEN
6.10 BIBLIOGRAFÍA
6.11 AUTOEVALUACIÓN UNIDAD 6
6.12 LECTURAS RECOMENDADAS
6.13 GLOSARIO DE TÉRMINOS
CAPÍTULO 7. ESCANEO DE PUERTOS Y REDES CON PYTHON
INTRODUCCIÓN
OBJETIVOS DEL CURSO
7.1 TIPOS DE ESCANEO CON NMAP
7.2 ESCANEO DE PUERTOS CON PYTHON-NMAP
7.2.1 Escaneo síncrono
7.2.2 Escaneo asíncrono
7.3 EJECUTAR SCRIPTS DE NMAP PARA DETECTAR VULNERABIL
7.4 SCAPY
7.4.1 Comandos de Scapy
7.4.2 Escaneos de puertos con Scapy
7.4.3 Implementar traceroute con Scapy
7.5 DETERMINAR LAS MÁQUINAS ACTIVAS EN UN SEGMENTO DE
7.5.1 Protoco ICMP
7.5.2 Comando ping en Python
7.6 EJERCICIOS PRÁCTICOS
7.7 RESUMEN
7.8 BIBLIOGRAFÍA
7.9 AUTOEVALUACIÓN UNIDAD 7
7.10 LECTURAS RECOMENDADAS
7.11 GLOSARIO DE TÉRMINOS
CAPÍTULO 8. HERRAMIENTAS AVANZADAS
INTRODUCCIÓN
OBJETIVOS DEL CURSO
8.1 CONEXIÓN CON SERVIDORES FTP UTILIZANDO FTPLIB
8.1.1 Protocolo FTP
8.1.2 Módulo FTPLib
8.2 CONEXIÓN CON SERVIDORES SSH UTILIZANDO PARAMIKO
8.3 CONEXIÓN CON SERVIDORES SNMP UTILIZANDO PYSNMP
8.3.1 Protocolo SMNP
8.3.2 Módulo PySNMP
8.4 CONEXIÓN CON METASPLOIT FRAMEWORK
8.4.1 Metasploit Framework
8.4.2 Conexión con metasploit desde Python
8.5 CONEXIÓN CON ESCÁNERES DE VULNERABILIDADES
8.5.1 Conexión con Nexpose
8.6 EJERCICIOS PRÁCTICOS
8.7 RESUMEN
8.8 BIBLIOGRAFÍA
8.9 AUTOEVALUACIÓN UNIDAD 8
8.10 LECTURAS RECOMENDADAS
8.11 GLOSARIO DE TÉRMINOS
EVALUACIÓN FINAL
BIBLIOGRAFÍA COMPLEMENTARIA
GLOSARIO DE TÉRMINOS
Libros relacionados
(IFCT0087) Seguridad digital básica
(IFCT116) Gestión de la seguridad informática en la empresa
(IFCT133PO) Ciberseguridad
Ciberseguridad. Curso Práctico
(IFCT103) Ciberseguridad: Prevención, análisis y respuesta a incidentes
(IFCT124) Respuesta a incidentes de ciberseguridad
(IFCD083PO) Informática forense y ciberseguridad
(FCOI24) Seguridad y Civismo en el Entorno Digital. Nivel Básico
(FCOI26) Seguridad y Civismo en el Entorno Digital. Nivel Avanzado
(IFCD95) Hacking Ético