Searching...
Español
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Violent Python

Violent Python

por T.J. O'Connor 2012 288 páginas
4.03
549 calificaciones
Escuchar
Try Full Access for 7 Days
Unlock listening & more!
Continue

Puntos clave

1. Python: La Herramienta Esencial de Seguridad

Forjar tus propias armas para resolver tus propios problemas te convierte en un verdadero experto en pruebas de penetración.

El poder de Python. Python se presenta como el lenguaje ideal para profesionales de la seguridad — hackers, analistas forenses, testers de penetración e ingenieros de seguridad — gracias a su simplicidad, eficiencia, amplias bibliotecas y baja barrera de entrada. A menudo ya está instalado en sistemas Linux y Mac, lo que lo hace inmediatamente accesible para crear herramientas personalizadas. Aunque existen muchas herramientas de seguridad, Python empodera a los usuarios para construir soluciones a medida para desafíos únicos o complejos donde las opciones estándar fallan.

Enfoque tipo “recetario”. El libro adopta un estilo de “recetario”, ofreciendo “recetas” prácticas en Python para diversos ámbitos de la seguridad. Estos ejemplos abarcan herramientas ofensivas, análisis web, análisis de redes, análisis forense y explotación de dispositivos inalámbricos. El objetivo es inspirar a los lectores a adaptar y crear sus propios scripts, fomentando una mentalidad de construir soluciones personalizadas en lugar de depender únicamente de las existentes.

Impacto en el mundo real. Anécdotas como la del tester de penetración que comprometió más de mil máquinas con un pequeño script en Python o el investigador forense que resolvió un asesinato de décadas atrás usando metadatos, destacan el impacto tangible que pueden tener las herramientas personalizadas en Python. Estas historias subrayan el valor de poder desarrollar rápidamente scripts para reaccionar ante situaciones dinámicas y resolver problemas específicos en el campo.

2. Fundamentos de Python para Scripting de Seguridad

La verdadera fortaleza del lenguaje Python reside en la amplia variedad de bibliotecas estándar y de terceros.

Conceptos básicos. El capítulo 1 ofrece un curso intensivo en los fundamentos de Python necesarios para scripting de seguridad. Cubre conceptos esenciales como variables, tipos de datos estándar (cadenas, enteros, booleanos) y estructuras de datos complejas como listas y diccionarios, explicando cómo Python maneja automáticamente los tipos. Comprender estos bloques básicos es crucial antes de adentrarse en aplicaciones más avanzadas.

Flujo de control y funciones. Se introducen construcciones esenciales de programación como la selección (if/elif/else) y la iteración (bucles for), que permiten a los scripts tomar decisiones y procesar datos eficientemente. Se enfatiza el uso de funciones como bloques organizados y reutilizables de código, mejorando la legibilidad y modularidad, práctica demostrada con programas simples como crackers de contraseñas. También se aborda el manejo de excepciones (try/except), que permite a los scripts gestionar errores en tiempo de ejecución, como tiempos de espera en la red.

Módulos esenciales. Se destacan módulos incorporados clave para interactuar con el sistema y la red:

  • socket: para establecer conexiones de red (TCP/UDP).
  • os: para interactuar con el sistema operativo (rutas de archivos, permisos).
  • sys: para acceder a objetos específicos del intérprete (argumentos de línea de comandos).
  • _winreg (Windows): para interactuar con el Registro de Windows.
  • sqlite3: para manejar bases de datos SQLite.
    Estos módulos, junto con bibliotecas de terceros, forman la columna vertebral del poder de Python en tareas de seguridad.

3. Creación de Herramientas para Pruebas de Penetración

Un pequeño script en Python le otorgó acceso a más de mil estaciones de trabajo.

Reconocimiento primero. Las pruebas de penetración comienzan con el reconocimiento, que a menudo implica escaneo de puertos para identificar servicios abiertos. El módulo socket de Python permite construir escáneres básicos de conexión TCP, mientras que integrar bibliotecas como python-nmap brinda acceso a técnicas de escaneo más avanzadas y análisis de resultados. Este paso inicial ayuda a descubrir posibles puntos de entrada.

Explotación de servicios comunes. Los scripts en Python pueden automatizar ataques contra protocolos ampliamente usados.

  • SSH: Usando bibliotecas como pexpect o pxssh para ataques de fuerza bruta a contraseñas o explotación de claves privadas débiles, logrando ejecución remota de comandos y construcción de botnets.
  • FTP: Automatizando inicios de sesión anónimos, ataques de fuerza bruta a credenciales e inyección de código malicioso en páginas web alojadas en servidores FTP comprometidos, replicando compromisos masivos reales.
  • SMB: Interactuando con Metasploit mediante scripts de recursos para automatizar la explotación de vulnerabilidades como MS08-067 o realizar ataques de fuerza bruta contra recursos administrativos (psexec).

Potencial para zero-day. Python incluso puede usarse para desarrollar código de prueba de concepto para vulnerabilidades zero-day, como desbordamientos de búfer basados en pila. Al crear paquetes con cargas específicas, desbordar búferes, direcciones de retorno y “NOP sleds” usando bibliotecas como scapy y struct, los atacantes pueden demostrar ejecución remota de código, evidenciando la capacidad de Python en desarrollo avanzado de exploits.

4. Python para la Informática Forense Digital

Una investigación de 31 años que agotó 100,000 horas-hombre terminó con el examen de metadatos realizado por el Sr. Stone (Regan, 2006).

Descubriendo artefactos del sistema. Python es una herramienta poderosa para investigaciones forenses digitales, permitiendo a los analistas extraer información valiosa de artefactos del sistema operativo. Esto incluye analizar el Registro de Windows con _winreg para descubrir redes inalámbricas previamente conectadas y sus direcciones MAC, que luego pueden geolocalizarse usando servicios como Wigle.net a través de bibliotecas como mechanize.

Investigando datos eliminados. Se pueden escribir scripts para examinar la Papelera de reciclaje en distintas versiones de Windows (C:\Recycler, C:\Recycled, C:\$Recycle.Bin) usando el módulo os. Al correlacionar los SID de usuario encontrados en los directorios de la Papelera con los nombres de usuario almacenados en el Registro, los investigadores pueden determinar quién eliminó archivos específicos, ayudando a reconstruir la actividad del usuario.

Extracción de datos de aplicaciones. Muchas aplicaciones modernas almacenan datos en bases SQLite, que Python puede analizar fácilmente con la biblioteca sqlite3. Ejemplos incluyen extraer:

  • Información de perfil, contactos, registros de llamadas y mensajes de Skype desde main.db.
  • Historial de descargas, cookies, historial de navegación e incluso consultas de búsqueda de Google desde bases como downloads.sqlite, cookies.sqlite y places.sqlite.
  • Mensajes de texto y otros datos de copias de seguridad móviles de iTunes identificando y consultando los archivos SQLite relevantes.
    Estas técnicas permiten automatizar la extracción de datos forenses ricos desde aplicaciones de usuario.

5. Análisis de Tráfico de Red con Python

Incluso un software rudimentario de visualización de red podría haber identificado este comportamiento.

Geolocalización del tráfico. Python puede analizar capturas de tráfico de red (PCAP) para entender el origen y destino físico de los paquetes. Usando bibliotecas como dpkt para analizar capas de paquetes (Ethernet, IP, TCP/UDP) y pygeoip con la base GeoLiteCity, los scripts pueden correlacionar direcciones IP con ubicaciones geográficas. Estos datos pueden formatearse en archivos KML para visualización en Google Earth, revelando patrones de tráfico que podrían indicar actividad maliciosa, como se evidenció en las oportunidades perdidas durante la Operación Aurora.

Detección de actividad maliciosa. Los scripts en Python pueden identificar patrones específicos de ataque dentro del tráfico de red.

  • Herramientas DDoS: Analizando solicitudes HTTP para descargas conocidas de toolkits (como LOIC) o tráfico IRC para mensajes de comando y control (!lazor). Detectar altos volúmenes de tráfico desde fuentes específicas también puede indicar un ataque en curso.
  • Escaneos señuelo: Analizando el campo Time-to-Live (TTL) de paquetes IP con scapy y comparando el TTL recibido con el conteo real de saltos (determinado enviando sondas ICMP) se pueden revelar direcciones de origen falsificadas usadas en escaneos de red señuelo, técnica empleada por H.D. Moore para defender el Pentágono.
  • Redes Flux: Examinando tráfico DNS (scapy) para detectar Fast-Flux (múltiples IP para un dominio con TTLs cortos) o Domain-Flux (solicitudes frecuentes a dominios inexistentes), técnicas usadas por botnets como Storm y Conficker para evadir desmantelamientos.

Análisis y manipulación de protocolos. Python permite inspección profunda y creación de paquetes de red. Analizar números de secuencia TCP (scapy) puede revelar patrones predecibles explotables para secuestro de sesión, como demostró Kevin Mitnick. Además, scapy puede usarse para crear paquetes con flags, puertos y cargas específicas para probar sistemas de detección de intrusos (IDS) y potencialmente generar ruido abrumador para ocultar un ataque real.

6. Explotación y Análisis de Redes Inalámbricas y Bluetooth

Capturar conexiones inalámbricas a Internet sin cifrar fue uno de los métodos que usó para acceder a información de tarjetas de crédito.

Captura inalámbrica. Python, combinado con bibliotecas como scapy y un adaptador inalámbrico en modo monitor, puede interceptar pasivamente tráfico inalámbrico. Esto permite capturar información sensible transmitida por redes no cifradas, como:

  • Números de tarjetas de crédito mediante expresiones regulares.
  • Nombres de huéspedes y números de habitación de hoteles desde páginas de inicio de sesión no autenticadas.
  • Consultas de búsqueda de Google en tráfico HTTP sin cifrar.
  • Credenciales FTP (usuarios y contraseñas) enviadas en texto plano.
    Estos ejemplos evidencian los riesgos de usar redes inalámbricas sin cifrar y la facilidad con que se puede capturar información sensible.

Identificación de redes ocultas. Los scripts pueden analizar tramas de gestión 802.11 para descubrir redes inalámbricas. Al escuchar solicitudes de sondeo (Probe Requests), los atacantes pueden identificar redes preferidas almacenadas en dispositivos cliente. Analizar tramas Beacon, incluso aquellas con SSID en blanco, ayuda a detectar redes ocultas. Esperar una respuesta de sondeo (Probe Response) que coincida con la MAC de una red oculta puede revelar su nombre.

Ataques inalámbricos activos. Python permite crear e inyectar tramas 802.11 con fines ofensivos. Demostrar control sobre un vehículo aéreo no tripulado (UAV) al capturar su protocolo de comunicación (UDP), duplicar capas de paquetes (scapy) e inyectar comandos falsificados (como aterrizaje de emergencia) muestra el potencial para tomar control de dispositivos inalámbricos vulnerables. También es posible detectar herramientas como Firesheep identificando la reutilización de cookies de sesión desde diferentes direcciones IP.

Seguridad Bluetooth. Las bibliotecas bluetooth y python-obexftp de Python permiten escanear y explotar dispositivos Bluetooth. Los scripts pueden descubrir dispositivos cercanos, escanear canales RFCOMM abiertos y explorar servicios mediante SDP. Exploits como OBEX Object Push (envío de archivos a impresoras) o BlueBugging (emisión de comandos AT a teléfonos vía canales RFCOMM no autenticados) demuestran cómo Python puede usarse para interactuar y comprometer dispositivos con Bluetooth.

7. Reconocimiento Web y Automatización de Ingeniería Social

Por sofisticado o letal que sea un ciberataque, la presencia de una ingeniería social efectiva siempre aumentará su efectividad.

Navegación anónima. El reconocimiento web a menudo requiere anonimato para evitar detección. La biblioteca mechanize de Python permite navegación web con estado, manejando cookies y formularios. Al extender la clase Browser, los scripts personalizados pueden automatizar técnicas de anonimato como rotación de proxies, falsificación de cadenas user-agent y limpieza de cookies, dificultando que los sitios web rastreen la actividad.

Extracción de datos web. Extraer información de sitios web es crucial para el reconocimiento. Bibliotecas como BeautifulSoup sobresalen en el análisis de HTML y XML, facilitando encontrar elementos específicos como enlaces (<a>) e imágenes (<img>). Los scripts pueden descargar contenido web, analizarlo localmente e incluso replicar imágenes, reduciendo solicitudes repetidas al servidor objetivo.

Aprovechamiento de APIs web. Muchos servicios en línea ofrecen APIs para acceso programático a datos. Python puede interactuar con estas APIs para recopilar información eficientemente.

  • API de Google: Consultar resultados de búsqueda de Google programáticamente para encontrar información sobre empresas o individuos objetivo.
  • API de Twitter: Extraer tweets, retweets e información de perfil de un usuario. Analizar el contenido de tweets con expresiones regulares puede revelar intereses (enlaces, hashtags, usuarios mencionados) y potencialmente ubicaciones (geotags, nombres de ciudades en texto), construyendo un perfil detallado del objetivo.

Ingeniería social automatizada. La información recopilada puede usarse para crear ataques de ingeniería social altamente dirigidos, como correos spear-phishing. La biblioteca smtplib de Python permite enviar correos programáticamente. Al combinar datos recolectados (intereses, ubicación o contactos) con automatización de correo, los atacantes pueden crear mensajes personalizados con mayor probabilidad de ser abiertos y ejecutados, aumentando la tasa de éxito del ataque.

Última actualización:

Reseñas

4.03 de 5
Promedio de 549 calificaciones de Goodreads y Amazon.

Violent Python suscita opiniones encontradas, con una calificación promedio de 4.03 sobre 5. Los lectores valoran su enfoque práctico hacia la ciberseguridad mediante Python, los ejemplos extraídos de situaciones reales y un estilo de escritura accesible. Para algunos, representa una excelente introducción al análisis de penetración y la informática forense, destacando su simplicidad y toque de humor. No obstante, los críticos señalan que su contenido está algo desactualizado, carece de profundidad en ciertos temas y depende en exceso de bibliotecas ya existentes en lugar de ofrecer implementaciones detalladas. En general, se recomienda para principiantes que cuenten con conocimientos básicos de programación y redes, mientras que los profesionales más experimentados podrían considerarlo demasiado elemental.

Your rating:
4.49
7 calificaciones

Sobre el autor

TJ O'Connor es un experto en seguridad de la información del Departamento de Defensa y paracaidista del Ejército de los Estados Unidos. Ha impartido cursos de ciberseguridad en la Academia Militar de EE. UU. y ha entrenado a equipos ganadores en competiciones nacionales de defensa cibernética. O'Connor posee múltiples títulos avanzados en informática y seguridad de la información, y ha publicado investigaciones en diversos foros técnicos. Cuenta con certificaciones de nivel experto en ciberseguridad y es miembro de los equipos Red y Blue de los Guardianes Cibernéticos de SANS. Como mayor activo del Ejército, O'Connor tiene amplia experiencia en ejercicios de defensa cibernética y ha participado como ponente en conferencias de seguridad.

Listen
Now playing
Violent Python
0:00
-0:00
Now playing
Violent Python
0:00
-0:00
Voice
Speed
Dan
Andrew
Michelle
Lauren
1.0×
+
200 words per minute
Queue
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Personalized for you
Ratings: Rate books & see your ratings
100,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jun 15,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Start a 7-Day Free Trial
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...