Descarga inmediata tras la compraPDF sin DRM: léelo en cualquier dispositivoGarantía de Calidad y Atención 24/7Pago cifrado y 100% seguroEbooks gratis para probar antes de comprarDescarga inmediata tras la compraPDF sin DRM: léelo en cualquier dispositivoGarantía de Calidad y Atención 24/7Pago cifrado y 100% seguroEbooks gratis para probar antes de comprar

Clase principal

Por qué todo hacker necesita programar sus propias herramientas

  • 3 min de lectura
  • Gratis
Vídeo de esta pieza: en producción. Mientras tanto, todo el contenido está aquí en texto.
Para empezar

Un escáner comercial te delata antes de empezar; un script propio pasa desapercibido y hace exactamente lo que tú necesitas.

Dato clave

La diferencia real

Más del ochenta por ciento de las herramientas de seguridad avanzadas y scripts de automatización en pentesting están escritos a medida. Las herramientas públicas tienen firmas conocidas por todos los antivirus y sistemas de detección del mercado actual.

Concepto

¿Qué es el Scripting?

El scripting consiste en escribir programas ligeros orientados a automatizar tareas que de otro modo requerirían cientos de pasos manuales repetitivos en la terminal. Es la habilidad clave para interactuar rápidamente con redes, ficheros y servicios.

Paso a paso

Por qué Python domina

Python se ha convertido en el lenguaje estándar de la ciberseguridad gracias a su sintaxis limpia, su rapidez de desarrollo y la enorme cantidad de librerías especializadas disponibles para manipular redes y protocolos de forma sencilla.

Marca cada paso al entenderlo · 0/4

Practica

Tu primer script socket

Vamos a ver un ejemplo muy básico en Python para comprobar si un puerto específico está abierto en una máquina de nuestro laboratorio local, utilizando la librería estándar de sockets.

terminal
$ python3 -c 'import socket; s=socket.socket(); s.connect(("127.0.0.1", 80)); print("Puerto abierto")'
Puerto abierto
Concepto

Variables y Tipos de Datos

Para construir herramientas eficaces, debes dominar cómo almacenar y transformar la información. Las cadenas de texto, los enteros, las listas y los diccionarios son las estructuras fundamentales para parsear datos obtenidos de un objetivo.

Paso a paso

Estructuras de Control

Los bucles y las sentencias condicionales permiten que tu código tome decisiones en tiempo de ejecución, algo vital cuando estás realizando fuerza bruta o enumerando directorios web de manera automatizada.

Marca cada paso al entenderlo · 0/4

Cuidado

Cuidado con los bloqueos

Cuando escribes scripts que lanzan peticiones masivas, puedes saturar el servicio objetivo o provocar una denegación de servicio accidental. Asegúrate siempre de controlar los tiempos de espera y los hilos en tus laboratorios privados.

Concepto

Funciones y Modularidad

Una función es un bloque de código reutilizable que realiza una tarea concreta. Dividir tus herramientas de hacking en funciones limpias facilita la depuración de errores y permite escalar el proyecto añadiendo nuevas funcionalidades.

Practica

Automatizando con Bash

No todo es Python; el scripting en Bash es insustituible para encadenar herramientas nativas de Linux rápidamente en una misma auditoría sin salir de la shell.

terminal
$ for ip in 192.168.1.{1..10}; do ping -c 1 $ip | grep "bytes from"; done
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.2 ms
64 bytes from 192.168.1.5: icmp_seq=1 ttl=64 time=2.4 ms
Dato clave

Velocidad de ejecución

Un script bien optimizado puede realizar miles de verificaciones de seguridad en el tiempo que un operador humano tardaría en comprobar manualmente tres o cuatro formularios web.

Paso a paso

Manejo de Ficheros

Tus scripts de ciberseguridad necesitarán constantemente leer listas de palabras, guardar resultados de escaneos o cargar configuraciones complejas directamente desde el almacenamiento local.

Marca cada paso al entenderlo · 0/4

Concepto

Librerías de Terceros

Pip es el gestor de paquetes que te permite instalar librerías externas avanzadas como Requests para HTTP, Paramiko para SSH o Scapy para manipulación de paquetes de red a bajo nivel.

Practica

Peticiones HTTP avanzadas

Aquí vemos cómo utilizar la librería Requests en Python para analizar el encabezado de un servidor web y comprobar si expone información sensible sobre su tecnología.

terminal
$ python3 -c 'import requests; r = requests.get("http://localhost"); print(r.headers["Server"])'
Apache/2.4.41 (Ubuntu)
Cuidado

Entornos Virtuales

Nunca instales librerías globales directamente en el sistema operativo principal sin control. Utiliza siempre entornos virtuales de Python para mantener limpias tus dependencias y evitar conflictos entre diferentes herramientas.

Paso a paso

Buenas prácticas de código

El código que escribes para auditorías debe ser limpio y estar documentado, incluso si es para uso personal, para evitar errores críticos en momentos decisivos de un test de intrusión.

Marca cada paso al entenderlo · 0/4

Concepto

El poder del Scripting

Programar tus propias herramientas te otorga una ventaja táctica absoluta frente a los sistemas defensivos modernos, permitiéndote adaptar la lógica ofensiva a cualquier escenario imprevisto que encuentres en tus auditorías.

Repaso rápido

¿Te acuerdas? Toca para comprobarlo

Atajos: ← → para cambiar de pieza · / para buscar