Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Cuando se trata de crear herramientas de hackeo potentes y eficaces, Python es el lenguaje elegido por la mayoría de los analistas de seguridad. En este libro explorarás el lado más oscuro de las capacidades de Python: todo, desde escribir sniffers de red, robar credenciales de correo electrónico y acceder a directorios y carpetas por la fuerza hasta crear fuzzers de mutación, investigar máquinas virtuales y crear troyanos sigilosos. Todo el código de este libro ha sido actualizado a Python 3.x. También encontrarás información nueva sobre desplazamiento de bits, código limpio y análisis forense ofensivo con Volatility Framework, así como explicaciones más extensas de las bibliotecas ctypes, struct, lxml y BeautifulSoup de Python, y estrategias de hackeo ofensivo como la división de bytes, el aprovechamiento de las bibliotecas de visión por ordenador y el scraping de sitios web. Cuando se trata de seguridad ofensiva, hay que ser capaz de crear herramientas potentes sobre la marcha. Aprende cómo con Python Black Hat. Programación para Hackers y Pentesters. 2ª Actualización.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 281
Veröffentlichungsjahr: 2025
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
A mi preciosa esposa, Clare. Te quiero.
—Justin
Tim da las gracias a su mujer, Treva, por su apoyo incondicional. Si no hubiera sido por varios incidentes imprevistos, no habría tenido la oportunidad de trabajar en este libro. Agradece a la AISS de Raleigh, especialmente a Don Elsner y Nathan Kim, por apoyarle y animarle a dar una clase en su barrio utilizando la primera edición de este libro. Impartir esa clase y trabajar con sus alumnos le hizo enamorarse del libro. Y da las gracias a su comunidad local de hackers, en particular a la gente de Oak City Locksport, por sus ánimos, y por servirle de caja de resonancia para sus ideas.
Justin quiere dar las gracias a su familia (su bella esposa, Clare, y sus cinco hijos, Emily, Carter, Cohen, Brady y Mason), por todo el ánimo y la tolerancia mostrada mientras pasaba un año y medio de su vida escribiendo este libro. Los quiere mucho a todos. A todos sus amigos de la comunidad cibernética y OSINT que comparten copas, risas y tweets: gracias por dejarle refunfuñar y quejarse con vosotros a diario.
Otro enorme agradecimiento a Bill Pollock, de No Starch Press, y a nuestra paciente editora, Frances Saux, por ayudarnos a mejorar tanto este libro. Gracias al resto del equipo de No Starch, incluidos Tyler, Serena y Leigh, por todo el esfuerzo que han dedicado a este título y al resto de la colección. Ambos lo apreciamos. También nos gustaría dar las gracias a nuestro revisor técnico, Cliff Janzen, que nos proporcionó un apoyo absolutamente increíble durante todo el proceso. Cualquiera que esté escribiendo un libro sobre seguridad de la información debería contar con él; fue mucho más que increíble.
Justin Seitz es un reputado profesional de la ciberseguridad y la inteligencia de código abierto y es cofundador de Dark River Systems Inc., una empresa canadiense de seguridad e inteligencia. Su trabajo ha aparecido en las revistas Popular Science, Motherboard y Forbes. Justin es autor de dos libros sobre el desarrollo de herramientas de hacking informático. Creó la plataforma de formación AutomatingOSINT.com y Hunchly, una herramienta de recopilación de inteligencia de código abierto para investigadores. Justin es también colaborador del sitio de periodismo ciudadano Bellingcat, es miembro de la Junta de Asesoramiento Técnico del Tribunal Penal Internacional y también del Centro de Estudios Avanzados de Defensa de Washington D.C.
Tim Arnold es actualmente programador profesional de Python y estadístico. Pasó gran parte de sus primeros años de carrera en la Universidad Estatal de Carolina del Norte como respetado conferenciante internacional y como educador. Entre sus logros se puede citar que se ha asegurado de que las herramientas educativas sean accesibles para las comunidades desatendidas de todo el mundo, por ejemplo, dando acceso a personas ciegas a documentación matemática.
Durante los últimos años, Tim ha trabajado en el SAS Institute como desarrollador principal de software, diseñando e implantando un sistema de publicación de documentación técnica y matemática. Ha formado parte de la junta de la AISS de Raleigh y ha sido consultor de la junta del Instituto Estadístico Internacional. Disfruta trabajando como educador independiente, poniendo los conceptos de seguridad de la información y Python al alcance de nuevos usuarios, y ayudando a progresar a aquellos con conocimientos más avanzados. Tim vive en Carolina del Norte con su mujer, Treva, y una malvada cacatúa llamada Sidney. Lo encontrarás en Twitter en @jtimarnold.
Desde los primeros días del Commodore PET y el VIC-20, la tecnología ha sido una compañía constante para Cliff Janzen y, a veces, una obsesión. Cliff pasa la mayor parte de su jornada laboral dirigiendo y tutelando a un gran equipo de profesionales de la seguridad, y se esfuerza por mantener su excelencia técnica abordando todo tipo de tareas, desde revisiones de políticas de seguridad y pruebas de penetración hasta respuesta a incidentes. Se siente afortunado de tener una carrera que es también su pasatiempo favorito y una esposa que lo apoya. Agradece a Justin por incluirle en la primera edición de este maravilloso libro y a Tim por llevarle a dar finalmente el paso a Python 3. Y da especialmente las gracias a la estupenda gente de No Starch Press.
«Si trabajas como profesional de la seguridad informática y quieres programar en Python, este es, sin duda, el libro que no debe faltar en tu estantería».
—Craig Mullins, Data and Technology Today
«Si de verdad tienes mentalidad de hacker, una chispa es todo lo que necesitas para hacerlo tuyo y conseguir algo aún más increíble. Justin Seitz ofrece chispas en abundancia».
—Ethical Hacker
«Ya sea que estés interesado en convertirte en hacker de verdad o en un experto en seguridad informática, o bien sea que solo quieres saber cómo trabajan, este es el libro que tienes que leer. Intenso, técnicamente profundo y muy revelador».
—Sandra Henry-Stocker, IT World
«Sin duda, una lectura recomendada para el profesional de la seguridad técnica con una cierta exposición previa básica a Python».
—Richard Austin, IEEE Cipher
«Otro increíble libro de Python. Con uno o dos pequeños retoques, muchos de estos programas tendrán al menos una vida útil de diez años, y eso es raro tratándose de un libro sobre seguridad».
—Stephen Northcutt, presidente fundador del SANS Technology Institute
«Un estupendo libro que utiliza Python con fines de seguridad ofensiva».
—Andrew Case, desarrollador principal de Volatility y coautor de The Art of Memory Forensics
Agradecimientos
Sobre los autores
Sobre el revisor técnico
Comentarios del libro
Prólogo
Prefacio
1. Configurar el entorno Python
Instalar Kali Linux
Configurar Python 3
Instalar un IDE
Código limpio
2. Herramientas básicas de red
La creación de redes en Python, explicada en un párrafo
Cliente TCP
Cliente UDP
Servidor TCP
Crear un sustituto de Netcat
Evaluando el código
Crear un proxy TCP
Evaluando el código
SSH con Paramiko
Evaluando el código
Túnel SSH
Evaluando el código
3. Escribir un sniffer
Creación de una herramienta de descubrimiento de anfitriones UDP
Interceptación de paquetes en Windows y Linux
Evaluando el código
Decodificación de la capa IP
El módulo ctypes
El módulo struct
Escribiendo el decodificador IP
Evaluando el código
Decodificar ICMP
Evaluando el código
4. Hacerte propietario de la red con Scapy
Robo de credenciales de correo electrónico
Evaluando el código
Envenenamiento de caché ARP con Scapy
Evaluando el código
Procesamiento pcap
Evaluando el código
5. Hackeo web
Utilizar bibliotecas web
La biblioteca urllib2 para Python 2.x
La biblioteca urllib para Python 3.x
La biblioteca requests
Los paquetes lxml y BeautifulSoup
Reconocimiento de instalaciones de aplicaciones web de código abierto
Reconocer la estructura de WordPress
Probando en un objetivo real
Evaluando el código
Forzar directorios y ubicaciones de archivos
Evaluando el código
Forzar la autenticación de formularios HTML
Evaluando el código
6. Usar las extensiones de Burp Proxy
Configuración
Fuzzing con Burp
Evaluando el código
Utilizando Bing para Burp
Evaluando el código
Convertir el contenido web en un tesoro lleno de contraseñas
Evaluando el código
7. Mando y control con Github
Configurar una cuenta de GitHub
Creando módulos
Configurando el troyano
Creando un troyano específico para GitHub
Hackeando la funcionalidad de importación de Python
Evaluando el código
8. Tareas habituales con troyanos en Windows
Registrar pulsaciones de teclas por diversión
Evaluando el código
Haciendo capturas de pantalla
Ejecución del shellcode al estilo Python
Evaluando el código
Detección de entornos de pruebas
9. Diviértete con la exfiltración
Cifrar y descifrar archivos
Exfiltración con el correo electrónico
Exfiltración mediante transferencia de archivos
Exfiltración a través de un servidor web
Montémoslo todo
Evaluando el código
10. Escalada de privilegios en Windows
Instalando los requisitos previos
Creación del servicio BlackHat vulnerable
Creación de un monitor de procesos
Supervisión de procesos con WMI
Evaluando el código
Privilegios de token de Windows
Ganemos la carrera
Evaluando el código
Inyección de código
Evaluando el código
11. Análisis forense ofensivo
Instalación
Reconocimiento general
Reconocimiento de usuario
Reconocimiento de vulnerabilidades
La interfaz volshell
Complementos de Volatility personalizados
Evaluando el código
Sigamos adelante
Créditos
Han pasado seis años desde que escribí el prólogo de la exitosa primera edición de este libro. Mucho ha cambiado en el mundo durante este tiempo, pero una cosa no: sigo escribiendo muchísimo código Python. En el campo de la seguridad informática nos seguimos encontrando con herramientas escritas en lenguajes muy distintos, dependiendo de la tarea. Verás código C escrito para un kernel exploit, código para un fuzzer en JavaScript, o un proxy escrito en un lenguaje más «de moda» como Rust. Pero Python sigue siendo el caballo de batalla en esta industria; en mi opinión, es el lenguaje más fácil con el que empezar y, con el gran número de bibliotecas que ofrece, es el mejor para escribir rápidamente código que permita realizar tareas complejas de una manera sencilla. La mayoría de las herramientas y exploits de seguridad informática siguen estando escritos en Python, desde plataformas de explotación como CANVAS hasta fuzzers clásicos como Sulley.
Antes de la publicación de la primera edición de este título, yo había escrito muchos fuzzers y exploits en Python, incluyendo exploits contra Safari para Mac OS X, teléfonos iPhone y Android, e incluso Second Life (quizá tengas que buscar este último en Google).
En cualquier caso, desde entonces he escrito un exploit bastante especial, con ayuda de Chris Valasek, con el que conseguimos controlar remotamente un Jeep Cherokee de 2014 y otros coches. Por supuesto, este exploit fue escrito en Python, utilizando el módulo dbus-python. Todas las herramientas que escribimos, que finalmente nos permitieron controlar de forma remota la dirección, los frenos y la aceleración del vehículo, también fueron escritas en Python. Se podría decir, en cierto modo, que Python fue responsable de la retirada de 1,4 millones de vehículos Fiat Chrysler.
Si te interesa trastear con tareas de seguridad de la información, Python es un gran lenguaje para aprender debido al gran número de bibliotecas de ingeniería inversa y explotación que pone a tu disposición. Ahora, si los desarrolladores de Metasploit entraran en razón y cambiaran de Ruby a Python, nuestra comunidad estaría unida.
En esta nueva edición de lo que se ha convertido en un clásico muy querido, Justin y Tim han actualizado todo el código a Python 3. Personalmente me considero un dinosaurio que se aferra a Python 2 todo lo que puede, pero a medida que las bibliotecas útiles terminen de migrar a Python 3, incluso yo tendré que aprenderlo pronto. Esta edición habla sobre una amplia gama de temas que le vendrían muy bien para empezar a un joven hacker emprendedor, desde lo más básico, es decir, cómo leer y escribir paquetes de red, hasta todo lo necesario para auditar y atacar aplicaciones web.
En general, Python Black Hat es una lectura entretenida escrita por expertos con años de experiencia, que están dispuestos a compartir secretos aprendidos a lo largo del camino. Aunque probablemente no te convierta de inmediato en un espectacular hacker como yo, sin duda te permitirá empezar por el camino correcto.
Recuerda, la diferencia entre los aprendices de hacker y los hackers profesionales es que los primeros utilizan las herramientas de otras personas.
Los segundos son capaces de escribir las suyas propias.
Charlie Miller
Investigador de seguridad
St. Louis, Missouri
Octubre de 2020
Hacker de Python o programador de Python. Cualquiera de estos términos es correcto para describirnos. Justin ha pasado mucho tiempo haciendo pruebas de penetración, lo que requiere la capacidad de desarrollar rápidamente herramientas Python, estando especialmente enfocado en la entrega de resultados (y no necesariamente en la belleza, optimización, o incluso en la estabilidad de la herramienta). El mantra de Tim es «hazlo funcionar, hazlo comprensible, hazlo rápido... En ese orden». Si tu código es legible, resulta comprensible para aquellos con los que lo compartes, pero también lo es para ti mismo al repasarlo transcurridos unos meses. A lo largo de este libro, aprenderás que así es como codificamos: el hacking es nuestro propósito final, y el código limpio y comprensible es el método que utilizamos para conseguirlo. Esperamos que esta filosofía y estilo de pensamiento te ayuden a ti también.
Desde que apareció la primera edición de este libro, han pasado muchas cosas en el mundo de Python. Python 2 llegó al final de su vida útil en enero de 2020. Python 3 se ha convertido en la plataforma recomendada para la codificación y la enseñanza. De ahí que, en esta segunda edición, el código esté rehecho y adaptado a Python 3, utilizando los últimos paquetes y bibliotecas. También se aprovechan en él los cambios de sintaxis ofrecidos por Python 3.6 y versiones superiores de Python 3, como por ejemplo, las cadenas Unicode, los gestores de contexto y las cadenas f. Por último, hemos actualizado esta edición con explicaciones adicionales de conceptos de codificación y redes, como el uso de gestores de contexto, la sintaxis Berkeley Packet Filter y una comparación de las bibliotecas ctypes y struct.
A medida que avances en el libro, te darás cuenta de que no profundizamos en ninguno de los temas por motivos de diseño. Queremos ofrecerte lo básico, con un pequeño toque, para que adquieras conocimientos fundamentales en el mundo del desarrollo de herramientas de hackeo. Pensando en esto, hemos distribuido explicaciones, ideas y tareas a lo largo del libro para que te inicies a tu manera. Te animamos a que explores estas ideas.
Como ocurre con cualquier libro técnico, los lectores de distintos niveles experimentarán su lectura de formas diferentes. Algunos se limitarán a leer los capítulos que sean pertinentes para su último trabajo de consultoría. Otros lo leerán de principio a fin. Si eres programador de Python principiante o intermedio, te recomendamos que empieces por el principio y leas los capítulos en orden. A lo largo del camino irás aprendiendo buenos elementos básicos.
Para empezar, en el capítulo 2 exponemos los fundamentos de las redes. Luego, poco a poco, nos vamos abriendo camino a través de los sockets sin procesar en el capítulo 3 y vemos el uso de Scapy en el capítulo 4 para crear algunas herramientas de red más interesantes. La siguiente sección del libro trata sobre hackear aplicaciones web, comenzando con tus propias herramientas personalizadas en el capítulo 5 y extendiendo la conocida Burp Suite en el capítulo 6. A partir de ahí, dedicaremos una gran parte de nuestro tiempo a hablar de troyanos, empezando por el uso de GitHub para mando y control en el capítulo 7, hasta el capítulo 10, donde veremos algunos trucos de elevación de privilegios en Windows. El capítulo final trata sobre la biblioteca de análisis forense de memoria Volatility, que te ayuda a entender cómo piensa el lado defensivo y te muestra cómo aprovechar sus herramientas para pasar a la ofensiva.
Intentamos que los ejemplos de código sean breves y concisos, al igual que las explicaciones. Si eres relativamente nuevo en Python, te animamos a que repases todas y cada una de las líneas para mantener en perfecto estado esa memoria de codificación. Todos los ejemplos de código fuente de este libro están disponibles para su descarga en la página web de Anaya Multimedia en https://anayamultimedia.es, en la opción Selecciona complemento que encontrará en la ficha correspondiente a este libro. También puede descargarlos de la página web del libro original en https://nostarch.com/black-hat-python2E/.
Allá vamos.
