PHPsploit: Post-Explotación en Kali

 

 https://www.onlinetis.com/es/

PHPsploit: Post-Explotación en Kali

PHPsploit es una herramienta de post-explotación diseñada para mantener el control sobre un servidor web después de haber logrado subir un "web shell". A diferencia de un shell simple, PHPsploit crea un túnel de comunicación sigiloso y ofrece una interfaz similar a una terminal de Linux para gestionar el objetivo.

Aquí tienes una guía esencial sobre cómo funciona y cómo usarlo en Kali Linux.


1. Instalación en Kali Linux

PHPsploit no siempre viene preinstalado, pero puedes obtenerlo fácilmente desde su repositorio oficial.

sudo apt install phpsploit


# Ejecutar la herramienta 
phpsploit

2. Funcionamiento de PHPsploit

El flujo de trabajo se divide en dos partes: el Server-Side (el archivo que subes a la víctima) y el Client-Side (tu consola en Kali).

Paso A: Generar el Payload

Para que PHPsploit se conecte, necesitas subir un archivo PHP específico al servidor vulnerable.

  1. Inicia PHPsploit.

  2. Usa el comando show source para ver el código PHP que debes copiar.

  3. Guarda ese código en un archivo (ej. exploit.php) y súbelo al servidor objetivo mediante alguna vulnerabilidad previa (como un formulario de subida de archivos sin filtros).

Paso B: Conexión

Una vez que el archivo está en el servidor, conéctate desde tu terminal de Kali:

Bash
# Configurar el objetivo
set url http://sitio-vulnerable.com/uploads/exploit.php

# Establecer la conexión
exploit

3. Comandos Principales (En Español)

Una vez que la sesión está abierta (session 1 active), puedes interactuar con el servidor:

ComandoDescripción
lsListar archivos en el servidor remoto.
cdCambiar de directorio en el servidor.
downloadDescargar un archivo del servidor a tu máquina Kali.
uploadSubir un archivo desde Kali al servidor.
catLeer el contenido de un archivo remoto.
sysinfoObtener información detallada del sistema operativo del servidor.
helpVer la lista completa de comandos disponibles.

4. Características Clave

  • Sigilo (Stealth): Las comunicaciones entre Kali y el servidor están ofuscadas dentro de las cabeceras HTTP (User-Agent), lo que dificulta su detección por Firewalls o IDSs.

  • Persistencia: Permite automatizar tareas para mantener el acceso aunque el administrador intente parchar el servidor.

  • Entorno Familiar: La interfaz emula una shell de Bash, facilitando la navegación por el sistema de archivos de la víctima.


⚠️ Nota de Seguridad y Ética

Advertencia: El uso de PHPsploit para acceder a sistemas sin autorización es ilegal. Esta información tiene fines exclusivamente educativos y para pruebas de penetración (pentesting) autorizadas. Recuerda siempre trabajar dentro de entornos controlados o bajo contrato legal.

 

Para configurar un túnel con PHPsploit en un entorno de pruebas, el secreto no está solo en la conexión, sino en la ofuscación. El objetivo es que el tráfico de comandos parezca tráfico web legítimo para evadir firewalls básicos.

A continuación, te detallo cómo configurar y personalizar el túnel de comunicación.


1. Personalización del Payload (Server-Side)

Antes de subir el archivo al servidor de pruebas, puedes configurar cómo se comportará. PHPsploit permite que el shell sea "polimórfico" para evitar firmas de antivirus.

  1. Obtener el código:

    Ejecuta show source dentro de la consola de PHPsploit.

  2. Inyectar en un archivo existente:

    En lugar de crear un archivo nuevo llamado exploit.php (que es muy obvio), es mejor añadir el código al final de un archivo legítimo del servidor, como un config.php o un index.php.

  3. Contraseña del túnel:

    Puedes establecer una contraseña para que nadie más pueda usar tu backdoor:

    Bash
    set password mi_clave_secreta
    

2. Configuración del Cliente (Kali Linux)

Para que el túnel sea efectivo, debes ajustar los parámetros de red que PHPsploit enviará en cada petición HTTP.

Ajuste de Cabeceras (Headers)

Por defecto, PHPsploit usa cabeceras aleatorias, pero puedes forzar una para que parezca tráfico de un navegador específico:

Bash
set 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"

Configuración de Proxy (Opcional)

Si tu entorno de pruebas requiere pasar por un proxy (como Burp Suite para analizar el tráfico):

Bash
set proxy http://127.0.0.1:8080

3. Estableciendo el Túnel Paso a Paso

  1. Configura la URL del objetivo:

    Bash
    set url http://192.168.1.50/proyecto/archivo_infectado.php
    
  2. Verifica la configuración:

    Usa el comando show options para revisar que la URL, el proxy y el agente de usuario sean correctos.

  3. Lanzar la conexión:

    Bash
    exploit
    

    Si el túnel se establece correctamente, verás un mensaje: Session 1 opened.


4. Post-Explotación sobre el Túnel

Una vez el túnel está activo, el comando más útil para el entorno de pruebas es prober. Este comando analiza el servidor a través del túnel para ver qué restricciones tiene:

  • Comprobar funciones PHP deshabilitadas: prober run php.disabled_functions

  • Verificar permisos de escritura: prober run fs.writable_dirs


¿Cómo verificar si el túnel es "invisible"?

Si estás en un laboratorio, abre Wireshark en tu máquina Kali y filtra por http. Verás que PHPsploit no envía comandos como ls o whoami en texto plano. En su lugar, verás peticiones GET/POST con datos codificados en Base64 o dentro de cookies, lo que confirma que el túnel de PHPsploit está funcionando correctamente.

 

Los problemas de conexión con PHPsploit suelen ser frustrantes, pero generalmente se deben a tres factores: filtros de red (WAF), configuración del servidor PHP o errores en la URL.

Aquí tienes una guía técnica para diagnosticar y solucionar el fallo:


1. Verificación del Payload (Server-Side)

El servidor podría estar bloqueando el código debido a funciones "peligrosas".

  • Funciones Inhabilitadas: Muchos hostings desactivan funciones como eval(), base64_decode() o gzuncompress(). PHPsploit las usa para ofuscar el tráfico.

    • Solución: Crea un archivo PHP simple con <?php phpinfo(); ?> y busca la directiva disable_functions. Si eval está ahí, el payload estándar no funcionará.

  • Permisos de Archivo: Asegúrate de que el archivo subido tenga permisos de lectura y ejecución para el usuario web (normalmente www-data).

    • Comando: chmod 644 exploit.php (si tienes acceso previo).

2. Bloqueos de Seguridad (WAF / IDS)

PHPsploit es sigiloso porque oculta los datos en las cabeceras HTTP, pero los Firewalls de Aplicación Web (WAF) modernos como ModSecurity pueden detectarlo.

  • User-Agent sospechoso: Por defecto, PHPsploit puede usar un User-Agent que el servidor bloquea.

    • Solución: Cámbialo en la consola de PHPsploit antes de conectar:

      Bash
      set http-user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
      
  • Cabeceras Inusuales: Si el WAF inspecciona cabeceras personalizadas, cortará la conexión. Intenta cambiar el método de túnel si la versión lo permite.

3. Errores de Configuración en Kali (Client-Side)

A veces el problema es cómo le decimos a Kali que se conecte.

  • Ruta Absoluta: Asegúrate de que la URL sea exacta, respetando mayúsculas y minúsculas.

    • Prueba: Abre la URL del payload en tu navegador. Deberías ver una página en blanco (esto es normal, significa que el script está esperando datos). Si ves un error 404 o 403, la ruta o los permisos están mal.

  • Proxy/VPN: Si estás usando una VPN o Proxy, PHPsploit podría intentar salir por la interfaz errónea.

    • Solución: Verifica tu configuración de set proxy dentro de la herramienta.

4. Troubleshooting Rápido (Checklist)

Si el comando exploit falla, ejecuta esto en orden:

  1. ¿El servidor responde a PING? (Verifica conectividad básica).

  2. ¿El payload devuelve un error 500? (Probablemente PHP bloqueó el script por sintaxis o funciones prohibidas).

  3. ¿El error es "Connection Refused"? (El firewall del servidor está bloqueando tu IP o el puerto 80/443).


Diagnóstico Pro: Usar Verbose

Para ver exactamente qué está pasando "detrás de cámaras", activa el modo detallado antes de lanzar el exploit:

Bash
set verbose true
exploit

Esto te mostrará los códigos de respuesta HTTP (403 Forbidden, 406 Not Acceptable, etc.), lo que te dirá exactamente si es un problema de permisos o de un firewall. 

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux