Telar 2.0 – Herramienta para pruebas de resistencia HTTP/HTTPS mediante técnicas de socket starvation
Telar 2.0 es una herramienta orientada a pruebas de estrés controladas sobre aplicaciones web. Su diseño modular en Python permite simular condiciones de agotamiento de recursos a nivel de capa de aplicación, explotando debilidades en la gestión de sockets HTTP persistentes.
⚠️ Advertencia ética y legal: Telar debe emplearse únicamente en entornos de prueba controlados, con autorización explícita del responsable del sistema objetivo. El uso inapropiado puede constituir un delito informático.
Objetivo técnico
Telar implementa una técnica conocida como socket starvation, inspirada en el ataque Slowloris. Su objetivo no es saturar ancho de banda ni enviar tráfico masivo, sino agotar los recursos del servidor web manteniendo conexiones abiertas e incompletas durante un periodo prolongado.
Esto genera presión sobre:
- hilos/threads de atención HTTP
- tablas de conexión en el kernel
- buffers de respuesta
- time-outs mal configurados
La herramienta permite evaluar de forma práctica la resiliencia de un servidor ante este tipo de vectores, proporcionando además métricas automáticas de rendimiento y resistencia.
Arquitectura técnica
Telar 2.0 está construido como un sistema modular de 10 componentes principales:
telar/
├── telar.py → Interfaz CLI asistida
├── terlar_shell.py → CLI directa
├── logica.py → Núcleo del ataque (ciclo persistente)
├── red.py → Generación de sockets TCP/SSL
├── utilidades.py → Métodos HTTP sobre sockets
├── metricas.py → Registro estructurado de rendimiento
├── configuracion.py → CLI parser (argparse)
├── configuracion_json.py → Persistencia (carga/guardado)
├── config_tel.json → Configuración en disco
└── README.md → Documentación y licenciamiento
Flujo de ejecución (visión global)
- El usuario lanza Telar en modo interactivo o por CLI.
- Se configuran parámetros clave (host, sockets, HTTPS, proxy, headers).
- Se generan múltiples sockets que simulan peticiones HTTP incompletas.
- Cada conexión envía encabezados de forma fragmentada en intervalos.
- Telar monitorea cuántos sockets siguen activos, cuántos se cierran y cuántos necesita regenerar.
- Se adaptan dinámicamente los tiempos de espera.
- Se registran métricas técnicas en tiempo real y se genera un informe final.
Módulos principales detallados
Menú interactivo CLI – telar.py
Implementa una interfaz en modo texto (tipo TUI) con menús estructurados que permiten:
- Establecer el
host
(IPv4, dominio) - Configurar
puerto
TCP (80, 443, u otro) - Definir cantidad de
sockets
concurrentes - Alternar entre HTTP plano y HTTPS (
SSL over TCP
) - Activar un
proxy SOCKS5
para canalizar el tráfico - Alternar uso de
User-Agent
aleatorios - Modificar el intervalo (
sleeptime
) entre encabezados HTTP
Ideal para: pentesters que desean configurar y lanzar pruebas iterativas sin recordar todos los argumentos CLI.
CLI directa – telar_shell.py
Permite lanzar Telar con parámetros explícitos. Ejemplo:
python terlar_shell.py 192.168.1.50 -p80 -s800 --https -v
Utiliza argparse
para interpretar los parámetros y delega a logica.py
para la ejecución del ataque.
Parser de argumentos – configuracion.py
Gestiona todos los parámetros de entrada del usuario:
Flag | Función técnica |
---|---|
-p , --port | Puerto TCP destino |
-s , --sockets | Número total de sockets concurrentes |
--https | Activa ssl.wrap_socket() |
--useproxy | Activa SOCKS5 vía PySocks |
--randuseragents | Selección aleatoria de headers User-Agent |
--sleeptime | Intervalo entre headers (en segundos) |
configuracion_json.py + config_tel.json
Este módulo permite persistir configuraciones previas en un archivo JSON local para facilitar pruebas repetitivas.
Ejemplo de estructura guardada:
json{
"host": "192.168.56.101",
"port": 443,
"sockets": 500,
"https": true,
"usar_proxy": false
}
Generación y manipulación de sockets – red.py
- Crea objetos
socket.socket(AF_INET, SOCK_STREAM)
para conexiones TCP. - Si está habilitado HTTPS, transforma en
ssl.SSLSocket
mediantewrap_socket()
con hostname deshabilitado. - Permite canalizar el tráfico por un proxy SOCKS5 si está activado.
Además, inyecta dinámicamente funciones como:
socket.socket.enviar_encabezado(...)
Esto permite simular peticiones HTTP sin usar una librería de alto nivel (como requests o http.client), lo cual brinda mayor control de bajo nivel.
Métodos personalizados para headers – utilidades.py
Define dos métodos fundamentales:
def enviar_linea(self, linea):
def enviar_encabezado(self, nombre, valor):
Estos se agregan directamente a las instancias de socket para enviar cabeceras HTTP personalizadas, simulando un cliente web incompleto.
Núcleo de ataque (motor iterativo) – logica.py
Este es el corazón de Telar. Realiza lo siguiente:
- Crea todos los sockets iniciales.
- En cada ciclo, selecciona de 3 a 6 encabezados aleatorios (
X-*
) y los envía con retardos definidos. - Detecta sockets cerrados mediante excepciones (
timed out
,broken pipe
,reset by peer
) y los elimina. - Genera nuevos sockets para reemplazar los desconectados.
- Si el porcentaje de sockets cerrados supera el 30%, reduce el
sleeptime
automáticamente.
Implementa un enfoque de ajuste adaptativo, similar al control de congestión en redes, pero aplicado a tiempos de envío de headers.
Registro estructurado – metricas.py
- Genera un log detallado por iteración en
logs/metricas_tel.log
. - Registra:
- sockets activos
- cerrados
- nuevos creados
- duración en ms de cada ciclo
- Al finalizar, calcula promedios y determina el nivel estimado de resistencia del objetivo:
Alta → > 350 sockets cerrados/iteración
Moderada → > 150
Deprimente → < 150
Esto permite evaluar si un servidor:
- Tiene protecciones WAF activas
- Cuenta con
timeouts
adecuados - Aplica limitación por IP o user-agent
- Emplea reverse proxies con buffering inteligente
Aplicaciones en ciberseguridad ofensiva y defensiva
Telar permite experimentar en escenarios de ciberseguridad realistas sin comprometer redes de terceros. Algunos usos posibles:
- Simulación de ataques de capa 7 (HTTP-level DoS)
- Validación de reglas en firewalls tipo
iptables
oufw
- Evaluación de reverse proxies como
Nginx
,HAProxy
- Pruebas de eficacia de
mod_security
,fail2ban
,Apache TimeOut
, etc. - Comparativas entre stacks de servidor (Apache vs Nginx, PHP-FPM vs Node.js)
Ejecución
Clonar el proyecto desde:
https://github.com/walthercurodelacruz/Telar
git clone https://github.com/walthercurodelacruz/Telar.git
cd Telar
python telar.py

Dependencias de Python para Telar
Telar está escrito en Python puro, sin frameworks ni librerías pesadas. Solo requiere:
pysocks
: para habilitar el soporte de proxy SOCKS5 si se usa la opción--useproxy
.- python 3.8 o superior
Instalación:
pip install pysocks
Nota: Si no usarás proxy SOCKS5, esta dependencia es opcional, pero se recomienda tenerla instalada para evitar errores si el flag se activa por accidente.