Reseña del libro "Hacking Etico con Herramientas Python"
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. INTRODUCCIÓNOBJETIVOS DEL LIBROCAPÍTULO 1. INTRODUCCIÓN A LA PROGRAMACIÓN CON PYTHON¿POR QUÉ ELEGIR PYTHON?OBJETIVOS DE LA UNIDAD DIDÁCTICA1.1 PROGRAMACIÓN ORIENTADA A OBJETOS1.2 INSTALACIÓN DE PYTHON1.2.1 Multiplataforma1.2.2 Instalación1.2.3 Python en Windows1.2.4 Python en sistema Unix1.3 TIPOS Y ESTRUCTURAS DE DATOS1.3.1 Tipos dinámicos1.3.2 Listas1.3.3 Iteradores1.3.4 Tuplas1.3.5 Diccionarios1.3.6 Excepciones1.3.7 Funciones1.3.8 Ficheros1.3.9 Módulos1.3.10 Comando help1.4 CLASES, HERENCIA, POLIMORFISMO1.4.1 Clases1.4.2 El método de inicialización __init__1.4.3 Encapsulación1.4.4 Métodos y atributos mágicos1.4.5 Herencia .1.5 EJERCICIOS PRÁCTICOS1.6 RESUMEN1.7 BIBLIOGRAFÍA1.8 AUTOEVALUACIÓN UNIDAD 11.9 LECTURAS RECOMENDADAS1.10 GLOSARIO DE TÉRMINOSCAPÍTULO 2. METODOLOGÍA, HERRAMIENTAS Y ENTORNO DE DESARROLLO2.1 METODOLOGÍA OSMTD2.1.1 Paso de parámetros en Python .2.1.2 Paso de parámetros a un escáner de puertos2.1.3 Gestionar dependencias en un proyecto de python2.1.4 Gestionar entorno de ejecución2.2 MÓDULO STB (SECURITY TOOLS BUILDER)2.3 HERRAMIENTAS DE SEGURIDAD2.3.1 Pydbg2.3.2 Immunity Debugger2.3.3 W3af2.3.4 SQLmap2.3.5 Sparta2.3.6 The harvester2.3.7 Otras herramientas2.4 ENTORNOS DE DESARROLLO2.4.1 Interactuando con Python2.4.2 IDEs y software para desarrollar en Python2.5 EJERCICIOS PRÁCTICOS2.6 RESUMEN2.7 BIBLIOGRAFÍA2.8 AUTOEVALUACIÓN UNIDAD 22.9 LECTURAS RECOMENDADAS2.10 GLOSARIO DE TÉRMINOSCAPÍTULO 3. LIBRERÍAS Y MÓDULOS PARA REALIZAR PETICIO3.1 MÓDULO SOCKETS3.1.1 Resolver dominios y direcciones ips3.1.2 Socket cliente-servidor3.2 PROTOCOLO HTTP3.2.1 Módulo httplib3.3 MÓDULOS URLLIB, URLLIB2, URLLIB3, HTTPLIB23.3.1 Módulo urllib3.3.2 Módulo urllib23.3.3 Módulo urllib33.3.4 Módulo httplib23.4 LIBRERÍA REQUESTS3.4.1 Peticiones JSON3.4.2 Peticiones Post3.4.3 Peticiones API REST3.4.4 Usando proxys con requests3.5 MECANISMOS DE AUTENTICACIÓN CON PYTHON 3.5.1 HTTP Basic .3.5.2 HTTP Digest3.6 EJERCICIOS PRÁCTICOS3.7 RESUMEN3.8 BIBLIOGRAFÍA3.9 AUTOEVALUACIÓN UNIDAD 33.10 LECTURAS RECOMENDADAS3.11 GLOSARIO DE TÉRMINOSCAPÍTULO 4. RECOLECCIÓN DE INFORMACIÓN CON PYTHON4.1 UTILIZANDO PYTHON PARA EL ACCESO A SERVICIOS DE S4.1.1 Filtros en shodan4.1.2 Búsquedas en shodan4.1.3 Búsqueda de servidores FTP4.2 UTILIZANDO PYTHON PARA LA OBTENCIÓN DE BANNERS DE SERVIDORES4.2.1 Módulo Python whois4.3 OBTENER INFORMACIÓN SOBRE SERVIDORES DNS CON PYTHONDNS4.3.1 Protocolo DNS4.3.2 Servidores DNS4.3.3 Módulo DNSPython4.4 PROCESOS DE FUZZING CON EL MÓDULO PYWEBFUZZ4.4.1 Proyecto FuzzDB4.4.2 Módulo PyWebFuzz4.5 EJERCICIOS PRÁCTICOS4.6 RESUMEN4.7 BIBLIOGRAFÍA4.8 AUTOEVALUACIÓN UNIDAD 44.9 LECTURAS RECOMENDADAS4.10 GLOSARIO DE TÉRMINOSCAPÍTULO 5. EXTRACCIÓN DE INFORMACIÓN CON PYTHON.INTRODUCCIÓNOBJETIVOS DE LA UNIDAD DIDÁCTICA5.1 GEOLOCALIZACIÓN CON PYGEOIP Y PYGEOCODER5.1.1 Pygeoip5.1.2 Pygeocoder .5.2 EXTRACCIÓN DE DATOS DE IMÁGENES5.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 RESUMEN5.7 BIBLIOGRAFÍA .5.8 AUTOEVALUACIÓN UNIDAD 55.9 LECTURAS RECOMENDADAS5.10 GLOSARIO DE TÉRMINOSCAPÍTULO 6. WEBSCRAPING CON PYTHON .INTRODUCCIÓNOBJETIVOS DE LA UNIDAD DIDÁCTICA6.1 EXTRACCIÓN DE CONTENIDOS WEB CON PYTHON6.2 PARSERS XML Y HTML6.2.1 Parser XML6.2.2 Parser HTML6.3 EXTRACCIÓN DE IMÁGENES, DOCUMENTOS Y ENLACES .6.4 BEAUTIFULSOUP6.5 SCRAPY6.6 XSSCRAPY6.7 MECHANIZE6.8 EJERCICIOS PRÁCTICOS6.9 RESUMEN6.10 BIBLIOGRAFÍA6.11 AUTOEVALUACIÓN UNIDAD 66.12 LECTURAS RECOMENDADAS6.13 GLOSARIO DE TÉRMINOSCAPÍTULO 7. ESCANEO DE PUERTOS Y REDES CON PYTHONINTRODUCCIÓNOBJETIVOS DEL CURSO7.1 TIPOS DE ESCANEO CON NMAP7.2 ESCANEO DE PUERTOS CON PYTHON-NMAP7.2.1 Escaneo síncrono7.2.2 Escaneo asíncrono7.3 EJECUTAR SCRIPTS DE NMAP PARA DETECTAR VULNERABIL7.4 SCAPY7.4.1 Comandos de Scapy7.4.2 Escaneos de puertos con Scapy7.4.3 Implementar traceroute con Scapy7.5 DETERMINAR LAS MÁQUINAS ACTIVAS EN UN SEGMENTO DE7.5.1 Protoco ICMP7.5.2 Comando ping en Python7.6 EJERCICIOS PRÁCTICOS7.7 RESUMEN7.8 BIBLIOGRAFÍA7.9 AUTOEVALUACIÓN UNIDAD 77.10 LECTURAS RECOMENDADAS7.11 GLOSARIO DE TÉRMINOSCAPÍTULO 8. HERRAMIENTAS AVANZADASINTRODUCCIÓNOBJETIVOS DEL CURSO8.1 CONEXIÓN CON SERVIDORES FTP UTILIZANDO FTPLIB8.1.1 Protocolo FTP8.1.2 Módulo FTPLib8.2 CONEXIÓN CON SERVIDORES SSH UTILIZANDO PARAMIKO8.3 CONEXIÓN CON SERVIDORES SNMP UTILIZANDO PYSNMP8.3.1 Protocolo SMNP8.3.2 Módulo PySNMP8.4 CONEXIÓN CON METASPLOIT FRAMEWORK8.4.1 Metasploit Framework8.4.2 Conexión con metasploit desde Python8.5 CONEXIÓN CON ESCÁNERES DE VULNERABILIDADES8.5.1 Conexión con Nexpose8.6 EJERCICIOS PRÁCTICOS8.7 RESUMEN8.8 BIBLIOGRAFÍA8.9 AUTOEVALUACIÓN UNIDAD 88.10 LECTURAS RECOMENDADAS8.11 GLOSARIO DE TÉRMINOSEVALUACIÓN FINALBIBLIOGRAFÍA COMPLEMENTARIAGLOSARIO DE TÉRMINOS