1. Manuales
  2. Hacking y Forensic - Desarrolle sus propias herramientas en Python

Hacking y Forensic Desarrolle sus propias herramientas en Python

  • Disponible
  • Expedido en 24 horas
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año
  • Acceso gratuito a todos nuestros libros online durante 1 hora por toda compra
  • Consulta inmediata
  • Versión HTML online
  • Acceso ilimitado 24/7
  • Acceso ilimitado 24/7
  • Todos los libros online de ENI
  • Más de 5 novedades todos los meses
  • Novedades disponibles el mismo día de su publicación
  • Acceso 100% online

Presentación

Este libro se dirige a toda persona que desee aprender Python para el Hacking y el análisis forense y formarse en el diseño de herramientas en Python, así como a los profesionales de la seguridad informática y del Análisis Forense. Tiene como objetivo llevar al lector a una comprensión de las librerías específicas de Python para poder luego diseñar sus herramientas personalizadas, adaptadas a situaciones particulares en Hacking y Forensic. Para sacar el máximo provecho posible, es necesario contar con nociones de seguridad informática.

El libro consta de 8 capítulos, cada uno ilustrado por muchos ejemplos y ejercicios con sus correcciones al final del capítulo, para proporcionar al lector una forma de auto-evaluación.

El capítulo 1 permitirá aprender los conceptos del lenguaje Python, y las bases del lenguaje. El capítulo 2 está dedicado a la programación en red. Abordaremos la programación de sockets y luego los diferentes servicios tales como HTTP, FTP, POP, SSL, al igual que las expresiones regulares y el acceso a bases de datos. El capítulo 3 está dedicado a la librería scapy, muy útil en hacking y Forensic; el autor detalla el tratamiento de las tramas, el tunneling, los diferentes tipos de escaneo de red y también aborda el protocolo IPv6. Para el capítulo 4, son indispensables conocimientos básicos de la arquitectura PC y ensamblador, así como el uso de depuradores, para la correcta comprensión de la librería PyDbg empleada. El capítulo 5 está dedicado al Fuzzing ; en la primera parte el autor utiliza librerías ya vistas en capítulos anteriores para luego, en una segunda parte, estudiar una librería específica, llamada Sulley, especializada en el fuzzing. El capítulo 6 examina la librería PIL que va a permitir la gestión de imágenes, su edición, y captura de imágenes desde una webcam para extraer los datos; el autor examinará también un elemento particular de la seguridad en la web, los captcha. El capítulo 7 desarrolla los conceptos vistos en el capítulo 2, a fin de construir en Python herramientas de análisis de seguridad para sitios web. Por último, el capítulo final está dedicado íntegramente al análisis forense (Forensic); el autor efectúa una revisión, no exhaustiva, de las diferentes técnicas, recorriendo la esteganografía, la criptografía, y el acoso por e-mail.

El autor ha querido hacer de este libro un compendio no exhaustivo de las librerías más útiles, explicándolas e ilustrándolas con ejemplos concretos para que el lector pueda dominar su funcionamiento.

Los scripts de cada capítulo pueden descargarse desde el sitio www.ediciones-eni.com.


Los capítulos del libro:
Prólogo – Python: los fundamentos – La red – Red: la librería Scapy – Depuración en Windows – El fuzzing – Tratamiento de imágenes – Un poco más sobre la Web – Análisis forense

Índice

  • Python: Los fundamentos
    • 1. Introducción
    • 2. Historia
    • 3. Características del lenguaje
    • 4. Tipos de datos
      • 4.1 Los números
      • 4.2 Las operaciones aritméticas
      • 4.3 Las cadenas de caracteres
      • 4.4 Las tuplas
      • 4.5 Las listas
      • 4.6 Los diccionarios
      • 4.7 Tipos de datos adicionales
    • 5. Estructuras condicionales y repetitivas
      • 5.1 Test if ... elif ... else
      • 5.2 Bucle while
      • 5.3 Bucle for
      • 5.4 Las listas por comprensión (list comprehension)
    • 6. Funciones, módulos y paquetes
      • 6.1 Definición y llamadas de función
      • 6.2 Espacios de nombres
      • 6.3 Funciones particulares
      • 6.4 Módulos
      • 6.5 Paquetes
      • 6.6 Instrucción yield
    • 7. Las clases
      • 7.1 Declaración de una clase
      • 7.2 Sobrecarga de operadores
      • 7.3 Propiedades, accesores y mutadores
      • 7.4 Herencia
      • 7.5 Polimorfismo
    • 8. Manipulación de archivos
    • 9. Las excepciones
    • 10. Módulos útiles para la continuación del libro
      • 10.1 Módulo sys
      • 10.2 Módulo os
      • 10.3 Módulo re
      • 10.4 Módulos pickle y shelve
      • 10.5 Módulos de bases de datos
        • 10.5.1 MySQLdb
        • 10.5.2 PostgreSQL
      • 10.6 Módulo thread
        • 10.6.1 Principio del módulo
        • 10.6.2 Threading
        • 10.6.3 Clase Lock()
    • 11. Conclusión
  • La red
    • 1. Introducción
    • 2. Los sockets
      • 2.1 Creación de un socket
      • 2.2 Intercambio de datos
      • 2.3 Socket en UDP
      • 2.4 Los errores
      • 2.5 Socket y FTP
    • 3. Creación de un servidor
      • 3.1 Introducción
      • 3.2 Conexión cliente
      • 3.3 Conversación con el cliente
      • 3.4 Creación de un troyano básico
      • 3.5 Creación de un troyano más complejo
    • 4. DNS: Domain Name Server
      • 4.1 Introducción
        • 4.1.1 ¿Qué significa DNS?
        • 4.1.2 Principales registros DNS
      • 4.2 nslookup básico
      • 4.3 Reverse lookup
      • 4.4 La librería DNS
      • 4.5 Consulta a partir de un servidor especificado
      • 4.6 Formato de los resultados obtenidos
    • 5. FTP: File Transfer Protocol
      • 5.1 Introducción
      • 5.2 FTP anónimo
      • 5.3 Descargas de archivos ASCIII
      • 5.4 Descargas de archivos binarios
      • 5.5 Descarga avanzada de archivos binarios
      • 5.6 Envío de datos
      • 5.7 Los errores FTP
      • 5.8 Listar el contenido de las carpetas
      • 5.9 Otros comandos útiles
      • 5.10 Descarga recursiva de datos
    • 6. Las expresiones regulares
      • 6.1 Introducción
      • 6.2 El módulo re
      • 6.3 Los métodos útiles
        • 6.3.1 Método search()
        • 6.3.2 Método match()
        • 6.3.3 Método sub()
        • 6.3.4 Ir más allá con los grupos
      • 6.4 ¿Cómo construir su patrón o expresión?
    • 7. La Web
      • 7.1 Introducción
      • 7.2 Recuperación de una página fuente
      • 7.3 Métodos GET y POST
        • 7.3.1 Método GET
        • 7.3.2 Método POST
      • 7.4 Gestión de errores
        • 7.4.1 Errores de conexión: urllib2.URLErrorv
        • 7.4.2 Error 404
      • 7.5 Autenticación
    • 8. Analizar páginas HTML y XHTML
      • 8.1 Introducción
      • 8.2 Primer enfoque
      • 8.3 Trabajo con páginas "reales"
        • 8.3.1 Ampersand
        • 8.3.2 Caracteres especiales
      • 8.4 BeautifulSoup
        • 8.4.1 Introducción
        • 8.4.2 Recuperar los enlaces
    • 9. El XML
      • 9.1 Introducción
      • 9.2 Representación de un archivo XML
      • 9.3 Python y XML
      • 9.4 Leer un canal RSS
    • 10. Los e-mails
      • 10.1 Introducción
      • 10.2 La librería smtplib
        • 10.2.1 El cuerpo del texto
        • 10.2.2 Mail con archivo adjunto
      • 10.3 Análisis de e-mails
      • 10.4 Analizar las fechas
      • 10.5 Errores y depuración
      • 10.6 Mail y POP
    • 11. SSL y Python
      • 11.1 Introducción
      • 11.2 Utilización de OpenSSL
      • 11.3 Verificar los certificados
    • 12. La utilización de bases de datos
      • 12.1 Introducción
      • 12.2 MySQLdb
        • 12.2.1 Recordatorio
        • 12.2.2 Utilización
      • 12.3 PostgreSQL
        • 12.3.1 Introducción y primera conexión
        • 12.3.2 Ejecutar los comandos
        • 12.3.3 Ocultar los cambios
        • 12.3.4 Repetición de comandos
        • 12.3.5 Recuperar los datos
    • 13. Conclusión
    • 14. Puesta en práctica
      • 14.1 Caso 1: Escaneo de puertos
      • 14.2 Caso 2: Envío de mails
      • 14.3 Caso 3: Fuzzing FTP
      • 14.4 Caso 4: Parsing de página web
      • 14.5 Caso 5: Fuerza bruta MySQL
  • Red: la librería Scapy
    • 1. Introducción
    • 2. Programación de red con Scapy
      • 2.1 Lista de protocolos soportados
      • 2.2 Algunas nociones sobre las redes
        • 2.2.1 Topología de redes
        • 2.2.2 Los diferentes tipos de redes
        • 2.2.3 ¿Qué es un protocolo?
        • 2.2.4 Dirección IP
        • 2.2.5 Las clases de direcciones
        • 2.2.6 La máscara de subred
        • 2.2.7 El modelo OSI
      • 2.3 Operaciones básicas
        • 2.3.1 Comandos básicos
        • 2.3.2 Fabricación de paquetes
        • 2.3.3 Las entradas/salidas
        • 2.3.4 Entramos en detalle
      • 2.4 Utilización avanzada: seguridad de red
        • 2.4.1 traceroute
        • 2.4.2 Sniffing
        • 2.4.3 Scan TCP
        • 2.4.4 Tunneling
      • 2.5 Algunos ejemplos sencillos de "one-liner"
        • 2.5.1 Scan ACK
        • 2.5.2 Scan Xmas
        • 2.5.3 Scan IP
        • 2.5.4 Los distintos ping
        • 2.5.5 Los ataques clásicos
    • 3. Scapy e IPv6
      • 3.1 Nociones de IPv6
        • 3.1.1 Aspectos generales
        • 3.1.2 IPv6: RFC 2373
      • 3.2 Aplicación
        • 3.2.1 Consulta ICMP IPv6
        • 3.2.2 Enrutamiento de paquetes IPv6
        • 3.2.3 Ejemplo de enrutamiento de cabecera
        • 3.2.4 traceroute
        • 3.2.5 IPv6 NA
        • 3.2.6 Aviso de daemon muertos
        • 3.2.7 Ejemplo
    • 4. Otros ejemplos
    • 5. Conclusión
    • 6. Puesta en práctica
      • 6.1 Canal encubierto IP
      • 6.2 Detección de Rogue AP (Access Point)
      • 6.3 IP Spoofing
      • 6.4 Spoofing IPv6 de los vecinos
  • Depuración en Windows
    • 1. Introducción
    • 2. El módulo ctypes de Python
    • 3. Primer enfoque
    • 4. Estado de los registros
      • 4.1 Enumeración de los hilos (threads)
      • 4.2 Recuperar los valores de los registros
    • 5. Los eventos del debugger
    • 6. Los puntos de parada (breakpoints)
      • 6.1 Puntos de parada software
      • 6.2 Puntos de parada hardware
      • 6.3 Punto de parada de memoria
    • 7. La librería PyDbg
      • 7.1 Violación de acceso de las cabeceras (handlers)
      • 7.2 Process snapshot
    • 8. Puesta en práctica: Hooking
  • El fuzzing
    • 1. Introducción
    • 2. Fuzzing FTP
    • 3. Fuzzing con Scapy
    • 4. Fuzzing con PyDbg: Format string
      • 4.1 Introducción
      • 4.2 Fuzzer de archivos
    • 5. Sulley
      • 5.1 Introducción
      • 5.2 Instalación
        • 5.2.1 Instalación normal
        • 5.2.2 Instalación no estándar
      • 5.3 Utilización
        • 5.3.1 Estructura del directorio de Sulley
        • 5.3.2 Representación de datos
        • 5.3.3 Primitivas estáticas y aleatorias
        • 5.3.4 Los enteros
        • 5.3.5 Cadenas de caracteres y delimitadores
        • 5.3.6 Las extensiones Fuzz Library
        • 5.3.7 Blocks
        • 5.3.8 Grupos
        • 5.3.9 Codificador
        • 5.3.10 Dependencias
        • 5.3.11 Block helpers
        • 5.3.12 Legos
    • 6. Puesta en práctica
      • 6.1 Fuzzing 1: HTTP
      • 6.2 Fuzzing 2: FTP
  • Tratamiento de imágenes
    • 1. Introducción
    • 2. Utilización
      • 2.1 La clase Image
      • 2.2 Leer y escribir
      • 2.3 Cortar, pegar y fusionar
      • 2.4 Transformaciones geométricas
      • 2.5 Transformación de los colores
      • 2.6 Mejora de imágenes
        • 2.6.1 Filtros
        • 2.6.2 Operaciones sobre los puntos
        • 2.6.3 Mejoras
    • 3. Ejemplos de uso
      • 3.1 Creación de un captcha
      • 3.2 Captura de Imagen y transformación
      • 3.3 Lectura del captcha
  • Un poco más sobre la Web
    • 1. Introducción
    • 2. Recordemos lo básico
    • 3. Mapping de sitios web
    • 4. Fuerza bruta de carpetas o de ubicación de archivos
    • 5. Fuerza bruta autenticación HTML
    • 6. Selenium
      • 6.1 Introducción
      • 6.2 Instalación
      • 6.3 Primera prueba
      • 6.4 Captura de pantalla con Selenium
    • 7. Conexión a un sitio web y navegación
    • 8. Conclusión
  • Análisis forense
    • 1. Introducción
    • 2. Criptografía y otros
      • 2.1 ROT13
      • 2.2 Base 64
      • 2.3 Hash
    • 3. Extracción de metadatos de los archivos
      • 3.1 Metadatos MP3
      • 3.2 Metadatos de imágenes
      • 3.3 Metadatos PDF
      • 3.4 Metadatos OLE2
      • 3.5 Caso concreto
    • 4. Archivos ZIP
      • 4.1 Leer de un archivo ZIP
      • 4.2 Ataque de fuerza bruta de contraseñas
    • 5. Leer de un archivo OpenOffice o Word
      • 5.1 Recorrer un árbol
      • 5.2 Buscar en un documento OpenOffice
      • 5.3 Buscar en un documento Word
    • 6. E-mail
      • 6.1 Encontrar e-mails en los archivos
      • 6.2 Buscar en el buzón de correo
    • 7. Esteganografía
      • 7.1 Buscar información en una imagen
      • 7.2 Ocultar un mensaje en una imagen
      • 7.3 Lectura del mensaje
    • 8. Volatility
      • 8.1 Información de la imagen
      • 8.2 Proceso y DLL
      • 8.3 Captura de contraseñas hash
      • 8.4 Ejemplo de programa
    • 9. Análisis de puntos de acceso inalámbrico en base al registro
    • 10. Recuperar los elementos eliminados (de la papelera)
    • 11. Puesta en práctica
      • 11.1 Descifrado
      • 11.2 OCR
      • 11.3 ZIP
      • 11.4 Scapy y la geolocalización
      • índice

Autor

Franck EBELMás información

Director de investigación y desarrollo en seguridad informática para la empresa Serval-Concept, Franck Ebel también es responsable de la licencia CDAISI (Cyber Defensa, Anti-intrusión de los sistemas Informáticos) y enseña en el máster CDSI en la universidad de Valenciennes. Posee los certificados CEH v8 (Certifier Ethical Hacking), OSCP (Offensive Security Certified Professionnel). Domina completamente el lenguaje Python, muy utilizado en las actividades relativas a la seguridad de los sistemas de información.

Características

  • Nivel Medio a Experto
  • Número de páginas 474 páginas
  • Publicación junio 2016
    • Encuadernación rústica - 17 x 21 cm
    • ISBN: 978-2-409-00265-6
    • EAN: 9782409002656
    • Ref. ENI: EPT2HAFO
  • Nivel Experto
  • Publicación junio 2016
    • HTML
    • ISBN: 978-2-409-00266-3
    • EAN: 9782409002663
    • Ref. ENI: LNEPT2HAFO

Descargas

Al completar este formulario, acepta recibir información y comunicaciones comerciales sobre nuestros productos y servicios. Puede darse de baja de nuestra newsletter en cualquier momento. Si desea conocer más información acerca de nuestra política de protección de datos, pulse aquí.
  • Descargar los ejemplos del libro (7,65 Mo)