Aprenderas a crear un generador de PAYLOADS en Termux para usar en diferentes aplicaciones de inyeccion VPN. En este tutorial, utilizaremos el interprete de shell bash para desarrollar el script siguiendo unos pasos sencillos.
Que es un Payload o carga util?#
En informatica y telecomunicaciones, la carga util (payload en ingles) se refiere al conjunto de datos transmitidos que constituye el mensaje real. La carga util excluye las cabeceras o metadatos, los cuales se envian unicamente para facilitar la entrega del mensaje.
Generador Online#
Puedes probar un generador de payloads online en el siguiente enlace:
Como crear un generador de Payloads#
Antes de comenzar con el tutorial, es importante asegurarse de tener instalada la aplicacion de Termux en tu dispositivo Android sin errores. Si estas utilizando otro sistema operativo, tambien puedes seguir este tutorial utilizando emuladores o maquinas virtuales para realizar las pruebas necesarias.
Aplicaciones compatibles#
- HTTP Injector / Lite
- HTTP Custom
- Anonytum
- E-proxy
- KPN Tunnel
- TLS Tunnel
- SocksHttp
- Otras aplicaciones VPN
Paso 1: Crear el archivo del script#
Inicia la aplicacion de Termux y ejecuta los siguientes comandos para crear el archivo que contendra el codigo del generador de carga util.
Descargar Termux sin errores: termux
apt updatepkg install nano -ynano genpay.shPaso 2: Estructura basica del script#
Dentro del archivo genpay.sh, agregaremos algunas lineas de comandos en shell para permitir un dialogo entre el usuario y la maquina utilizando el comando read.
#!/bin/bashclearecho -e "\e[1;36m"echo "GENERADOR DE PAYLOAD V1"echo ""echo -ne "\e[1;33mHOST: \e[1;32m"read hostecho ""Explicacion del codigo:
#!/bin/bash: Invoca el interprete de comandos Bash.clear: Limpia la pantalla de la terminal para una mejor visualizacion.echo -e "\e[1;36m": Cambia el color del texto a cian.echo "GENERADOR DE PAYLOAD V1": Muestra el titulo del programa.echo -ne "\e[1;33mHOST: \e[1;32m": Muestra el mensaje “HOST:” en color amarillo y espera entrada en verde.read host: Captura el dominio ingresado por el usuario y lo almacena en la variable$host.
Paso 3: Agregar los payloads#
Continuamos anadiendo mas funciones y ahora incluiremos una extensa lista de payloads ya configurados para poder reemplazar $host con el dominio (Host) valido que te proporciona acceso a Internet.
echo "GET http://$host/ HTTP/1.1[crlf]Host: $host[crlf] Access-Control-Allow-Credentials: true, true[lf] Access-Control-Allow-Headers: X-Requested-With,Content-Type, X-Requested-With,Content-Type[lf] Access-Control-Allow-Methods: GET,PUT,OPTIONS,POST,DELETE, GET,PUT,OPTIONS,POST,DELETE[lf] Age: 8, 8[lf] Cache-Control: max-age=86400[lf] public[lf] Connection: keep-alive[lf] Content-Type: text/html; charset=UTF-8[crlf]Content-Length: 9999999999999[crlf]UseDNS: Yes[crlf]Vary: Accept-Encoding[crlf][raw][crlf][crlf][crlf]"echo ""echo "CONNECT [host_port][protocol][crlf]Host: $host [crlf][crlf]"echo "CONNECT free.facebook.com;$host;internet.org;c.whatsapp.net@[host_port] [protocol][crlf][delay_split]GET http://free.facebook.com;$host;internet.org;c.whatsapp.net/ HTTP/1.1[crlf]Host: free.facebook.com;$host;internet.org;c.whatsapp.net[crlf]X-Online-Host: free.facebook.com;$host;internet.org;c.whatsapp.net[crlf]X-Forward-Host: free.facebook.com;$host;internet.org;c.whatsapp.net[crlf]X-Forwarded-For: free.facebook.com;$host;internet.org;c.whatsapp.net[crlf]Connection: Keep-Alive[crlf][crlf]"echo ""Explicacion de los payloads#
Payload 1 - GET basico:
GET http://$host/ HTTP/1.1[crlf]Host: $host[crlf]...Este es un payload GET estandar que envia una solicitud HTTP al host especificado.
Payload 2 - CONNECT:
CONNECT [host_port][protocol][crlf]Host: $host [crlf][crlf]Utiliza el metodo CONNECT para establecer un tunel a traves del host.
Payload 3 - CONNECT con multiples hosts:
CONNECT free.facebook.com;$host;internet.org;c.whatsapp.net@[host_port]...Utiliza multiples dominios para saltar restricciones y redirigir el trafico.
Paso 4: Guardar y ejecutar#
Ahora solo nos falta guardar los cambios en Nano utilizando las teclas:
CTRL + Xpara salirYpara confirmarENTERpara guardar
Despues de guardar los cambios, puedes ejecutar el script utilizando el comando:
bash genpay.shDar permisos de ejecucion#
chmod +x genpay.sh./genpay.shCodigo completo del generador de payloads#
#!/bin/bash
# ============================================# Generador de Payloads para VPN# Version: 2.0# Autor: RealStrategy# Descripcion: Genera payloads para aplicaciones VPN# ============================================
# ColoresRED='\033[01;31m'GREEN='\033[01;32m'YELLOW='\033[01;33m'CYAN='\033[01;36m'WHITE='\033[01;37m'BLUE='\033[01;34m'MAGENTA='\033[01;35m'RESET='\033[0m'
# Limpiar pantallaclear
# Mostrar bannerecho -e "${CYAN}════════════════════════════════════════════════════════${RESET}"echo -e "${GREEN} GENERADOR DE PAYLOADS V2.0${RESET}"echo -e "${CYAN}════════════════════════════════════════════════════════${RESET}"echo ""
# Solicitar hostecho -e "${YELLOW}Ingresa el HOST (dominio) para el payload:${RESET}"echo -ne "${GREEN}> ${RESET}"read host
# Validar que el host no este vacioif [ -z "$host" ]; then echo -e "${RED}Error: No ingresaste un host valido.${RESET}" exit 1fi
# Limpiar pantallaclear
# Mostrar resultadosecho -e "${CYAN}════════════════════════════════════════════════════════${RESET}"echo -e "${GREEN} PAYLOADS GENERADOS${RESET}"echo -e "${CYAN}════════════════════════════════════════════════════════${RESET}"echo ""
# Payload 1: GET basicoecho -e "${YELLOW}[PAYLOAD 1] GET BASICO${RESET}"echo -e "${WHITE}GET http://$host/ HTTP/1.1[crlf]Host: $host[crlf]Connection: keep-alive[crlf][crlf]${RESET}"echo ""
# Payload 2: GET con headers extendidosecho -e "${YELLOW}[PAYLOAD 2] GET EXTENDIDO${RESET}"echo -e "${WHITE}GET http://$host/ HTTP/1.1[crlf]Host: $host[crlf]Access-Control-Allow-Credentials: true, true[lf]Access-Control-Allow-Headers: X-Requested-With,Content-Type, X-Requested-With,Content-Type[lf]Access-Control-Allow-Methods: GET,PUT,OPTIONS,POST,DELETE, GET,PUT,OPTIONS,POST,DELETE[lf]Age: 8, 8[lf]Cache-Control: max-age=86400[lf]public[lf]Connection: keep-alive[lf]Content-Type: text/html; charset=UTF-8[crlf]Content-Length: 9999999999999[crlf]UseDNS: Yes[crlf]Vary: Accept-Encoding[crlf][raw][crlf][crlf][crlf]${RESET}"echo ""
# Payload 3: CONNECT simpleecho -e "${YELLOW}[PAYLOAD 3] CONNECT SIMPLE${RESET}"echo -e "${WHITE}CONNECT [host_port][protocol][crlf]Host: $host [crlf][crlf]${RESET}"echo ""
# Payload 4: CONNECT con multiples dominiosecho -e "${YELLOW}[PAYLOAD 4] CONNECT MULTIPLE${RESET}"echo -e "${WHITE}CONNECT free.facebook.com;$host;internet.org;c.whatsapp.net@[host_port] [protocol][crlf][delay_split]GET http://free.facebook.com;$host;internet.org;c.whatsapp.net/ HTTP/1.1[crlf]Host: free.facebook.com;$host;internet.org;c.whatsapp.net[crlf]X-Online-Host: free.facebook.com;$host;internet.org;c.whatsapp.net[crlf]X-Forward-Host: free.facebook.com;$host;internet.org;c.whatsapp.net[crlf]X-Forwarded-For: free.facebook.com;$host;internet.org;c.whatsapp.net[crlf]Connection: Keep-Alive[crlf][crlf]${RESET}"echo ""
# Payload 5: GET con User-Agentecho -e "${YELLOW}[PAYLOAD 5] GET CON USER-AGENT${RESET}"echo -e "${WHITE}GET http://$host/ HTTP/1.1[crlf]Host: $host[crlf]User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36[crlf]Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8[crlf]Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3[crlf]Accept-Encoding: gzip, deflate[crlf]Connection: keep-alive[crlf][crlf]${RESET}"echo ""
# Payload 6: WebSocketecho -e "${YELLOW}[PAYLOAD 6] WEBSOCKET${RESET}"echo -e "${WHITE}GET / HTTP/1.1[crlf]Host: $host[crlf]Upgrade: websocket[crlf]Connection: Upgrade[crlf]Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==[crlf]Sec-WebSocket-Version: 13[crlf][crlf]${RESET}"echo ""
# Payload 7: CONNECT con proxyecho -e "${YELLOW}[PAYLOAD 7] CONNECT CON PROXY${RESET}"echo -e "${WHITE}CONNECT $host:443 HTTP/1.1[crlf]Host: $host[crlf]Proxy-Connection: keep-alive[crlf]Connection: keep-alive[crlf][crlf]${RESET}"echo ""
# Payload 8: GET con Cache-Controlecho -e "${YELLOW}[PAYLOAD 8] GET CON CACHE${RESET}"echo -e "${WHITE}GET http://$host/ HTTP/1.1[crlf]Host: $host[crlf]Cache-Control: no-cache[crlf]Pragma: no-cache[crlf]Connection: keep-alive[crlf][crlf]${RESET}"echo ""
echo -e "${CYAN}════════════════════════════════════════════════════════${RESET}"echo -e "${GREEN}Generacion completada. Copia el payload que necesites.${RESET}"echo -e "${CYAN}════════════════════════════════════════════════════════${RESET}"Instalacion rapida desde GitHub#
Si deseas ahorrarte tiempo y evitar la tarea de copiar y pegar manualmente, puedes seguir esta guia para utilizar el generador de payloads de manera mas rapida.
Pasos#
-
Instalar Git (si no lo tienes instalado):
Terminal window pkg install git -y -
Clonar el repositorio:
Terminal window git clone https://github.com/RealStrategy/GeneradorPayloads.git -
Acceder a la carpeta:
Terminal window cd GeneradorPayloads -
Dar permisos de ejecucion:
Terminal window chmod +x genpay.sh -
Ejecutar el script:
Terminal window bash genpay.sh
Explicacion de los payloads generados#
Payload 1: GET Basico#
GET http://dominio.com/ HTTP/1.1[crlf]Host: dominio.com[crlf]Connection: keep-alive[crlf][crlf]Uso: Metodo GET estandar, compatible con la mayoria de aplicaciones.
Payload 2: GET Extendido#
GET http://dominio.com/ HTTP/1.1[crlf]Host: dominio.com[crlf]Access-Control-Allow-Credentials: true, true[lf]...Uso: Incluye headers extendidos para saltar restricciones adicionales.
Payload 3: CONNECT Simple#
CONNECT [host_port][protocol][crlf]Host: dominio.com [crlf][crlf]Uso: Establece un tunel CONNECT a traves del host.
Payload 4: CONNECT Multiple#
CONNECT free.facebook.com;dominio.com;internet.org;c.whatsapp.net@[host_port]...Uso: Utiliza multiples dominios para redirigir el trafico y evitar bloqueos.
Payload 5: GET con User-Agent#
GET http://dominio.com/ HTTP/1.1[crlf]Host: dominio.com[crlf]User-Agent: Mozilla/5.0...Uso: Simula un navegador real para evitar deteccion.
Payload 6: WebSocket#
GET / HTTP/1.1[crlf]Host: dominio.com[crlf]Upgrade: websocket[crlf]Connection: Upgrade...Uso: Para conexiones WebSocket, util en aplicaciones modernas.
Payload 7: CONNECT con Proxy#
CONNECT dominio.com:443 HTTP/1.1[crlf]Host: dominio.com[crlf]Proxy-Connection: keep-alive...Uso: Conexion a traves de proxy para mayor anonimato.
Payload 8: GET con Cache#
GET http://dominio.com/ HTTP/1.1[crlf]Host: dominio.com[crlf]Cache-Control: no-cache...Uso: Evita el cache para obtener respuestas frescas del servidor.
Glosario de terminos#
| Termino | Significado |
|---|---|
[crlf] | Carriage Return Line Feed (retorno de carro y salto de linea) |
[lf] | Line Feed (salto de linea) |
[host_port] | Reemplazar por el host y puerto |
[protocol] | Protocolo a utilizar (ej: HTTP/1.1) |
[delay_split] | Separador de delay para algunos metodos |
[raw] | Datos en bruto sin procesar |
Host | Dominio o direccion IP del servidor |
Posibles problemas y soluciones#
Error: “Permission denied”#
Solucion:
chmod +x genpay.shError: “No such file or directory”#
Solucion: Verifica que estes en el directorio correcto:
ls -lacd /ruta/correctaEl script no muestra colores#
Solucion: Verifica que tu terminal soporte colores ANSI.
No se puede ejecutar el script#
Solucion: Asegurate de tener Bash instalado:
pkg install bashVideo tutorial#
Puedes ver un video tutorial en el siguiente enlace:
Conclusion#
El generador de payloads en Termux es una herramienta util para crear carga util para aplicaciones VPN. Con este script en Bash, puedes generar multiples tipos de payloads para diferentes aplicaciones de inyeccion.
Recomendaciones finales#
- Experimenta con diferentes hosts: Prueba distintos dominios para encontrar el que funcione mejor.
- Combina payloads: Usa diferentes payloads segun la aplicacion y el metodo.
- Mantén el script actualizado: Agrega nuevos payloads a medida que aparezcan.
- Comparte tus creaciones: Comparte tus payloads con la comunidad.
Reflexion final#
La automatizacion de la generacion de payloads ahorra tiempo y facilita el proceso de configuracion de aplicaciones VPN. Con este script, tienes una herramienta flexible y personalizable.
Nota: Esta herramienta es para fines educativos. Usala con responsabilidad y respeta los terminos de servicio de las aplicaciones.
