Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
wp2shell-Hestia-Scanner — Escáner de seguridad de WordPress de solo lectura para servidores HestiaCP. Detecta indicadores de compromiso de wp2shell (CVE-2026-63030 / CVE-2026-60137) en todos los sitios alojados — informes por correo electrónico por usuario, diff de archivos principales contra una instalación limpia de WordPress, análisis de PHP/JS/htaccess/imágenes y evaluación opcional de IA mediante la API de Claude. | Kitploit
Herramientas/GitHubGitHub/bytespulse-oe/wp2shell-hestia-scanner
Herramientas DefensivasAnálisis EstáticoEscáneres de VulnerabilidadesAnálisis ForenseRecopilación de InformaciónSeguridad WebAnálisis de MalwareDetección de IntrusionesRespuesta a Incidentes

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Seguridad de IA
GitHubbytespulse-oe/wp2shell-hestia-scanner

wp2shell-Hestia-Scanner

Ver Repositorio
236hace 2 mesesAún no revisado

Acerca de

Escáner de seguridad de WordPress de solo lectura para servidores HestiaCP. Detecta indicadores de compromiso de wp2shell (CVE-2026-63030 / CVE-2026-60137) en todos los sitios alojados — informes por correo electrónico por usuario, diff de archivos principales contra una instalación limpia de WordPress, análisis de PHP/JS/htaccess/imágenes y evaluación opcional de IA mediante la API de Claude.

Compartir
<div align="center">

# 🛡️ wp2shell-Hestia-Scanner

<p>
  <a href="#english">🇬🇧 English</a>
  &nbsp;&nbsp;|&nbsp;&nbsp;
  <a href="#greek">🇬🇷 Ελληνικά</a>
</p>

![Bash](https://img.shields.io/badge/bash-4.0+-green?logo=gnubash)
![Platform](https://img.shields.io/badge/platform-HestiaCP-blue)
![License](https://img.shields.io/badge/license-GPL--3.0-orange)
![CVE](https://img.shields.io/badge/CVE-2026--63030%20%7C%202026--60137-red)

**Escáner de seguridad de WordPress de solo lectura para servidores HestiaCP.**  
Detecta indicadores de compromiso de wp2shell en todos los sitios alojados — con informes por correo por cliente, diff de archivos del núcleo, detección de webshells por SHA256, puntuación de riesgo y evaluación opcional con IA.

> ⚠️ **Versiones seguras:** WordPress **6.8.6 / 6.9.5 / 7.0.2** o posteriores.  
> Estos scripts **nunca modifican nada**: solo lectura en todo momento.

</div>

---

<a name="english"></a>

# 🇬🇧 English

## ¿Qué es wp2shell?

wp2shell es una cadena de ejecución remota de código (RCE) previa a la autenticación en el núcleo de WordPress, revelada el **17 de julio de 2026**. Una única petición HTTP anónima contra una instalación por defecto basta para crear un administrador fraudulento y ejecutar código arbitrario en el servidor.

La cadena combina:
- **CVE-2026-60137** — inyección SQL en el parámetro `author__not_in` de `WP_Query`
- **CVE-2026-63030** — confusión de rutas en el endpoint `/wp-json/batch/v1` de la API REST

Los sitios comprometidos muestran un administrador fraudulento con el prefijo de acceso `wp2_` y el correo `@wp2shell.invalid`.

Más información: <https://wp2shell.com>

---

## Contenido del repositorio

| Archivo | Propósito |
|------|---------|
| `wp2shell-scan.sh` | Escáner IoC rápido para todo el servidor: salida en terminal con códigos de color, puntuación de riesgo por sitio, informe guardado automáticamente en `/root/` |
| `wp2shell-report-per-user.sh` | Escáner completo: informes por correo por usuario de HestiaCP, diff del núcleo, detección de webshells por SHA256, evaluación con IA y puntuación de riesgo |
| `known_shells.sha256` | Base de datos de hashes SHA256 de webshells conocidos: se descarga automáticamente en tiempo de ejecución |

---

## Qué comprueba el escáner

### Comprobaciones de base de datos / usuarios
| Comprobación | Gravedad |
|-------|----------|
| Versión de WordPress frente a versiones seguras | HIGH / OK |
| Cuentas con prefijo `wp2_` o correo `@wp2shell.invalid` | CRITICAL |
| Administradores creados después de la revelación (15/07/2026) | MEDIUM |
| Huecos en la secuencia de ID de usuario (rastros de administrador fraudulento eliminado) | MEDIUM |
| Filas huérfanas de `wp_usermeta` | MEDIUM |
| Filas envenenadas de `oembed_cache` / `customize_changeset` | CRITICAL |
| Opciones de WP alteradas (`upload_path`, `auto_prepend_file`, `siteurl`) | CRITICAL / HIGH |

### Integridad de los archivos del núcleo
| Comprobación | Gravedad |
|-------|----------|
| `wp core verify-checksums` frente a wp.org | HIGH |
| `diff -U5` línea por línea contra el núcleo limpio descargado | CRITICAL / HIGH / OK |
| Archivos adicionales que no existen en el núcleo limpio (se muestra contenido y metadatos) | CRITICAL / HIGH |

### Análisis de archivos
| Comprobación | Gravedad |
|-------|----------|
| PHP en `uploads/` | CRITICAL |
| Extensiones PHP adicionales (`.php7` `.phtml` `.phar` `.php5`) | HIGH |
| **Coincidencia SHA256 con la base de datos de webshells conocidos** (WSO, FilesMan, b374k, p0wny…) | CRITICAL |
| PHP modificado después de `SINCE_DATE` **Y** que coincide con patrones sospechosos, con la línea coincidente mostrada en línea | CRITICAL / HIGH |
| PHP con patrones sospechosos pero NO modificado recientemente | LOW |
| JS/HTML modificados después de `SINCE_DATE` y que coinciden con patrones de ofuscación | MEDIUM |
| **URLs externas de C2/exfiltración** (pastebin, ngrok, Discord webhooks, bit.ly…) | CRITICAL |
| Directivas peligrosas de `.htaccess` (`AddType`, `auto_prepend_file`, `RewriteRule` externa) | HIGH |
| `.htaccess` modificado después de `SINCE_DATE` | MEDIUM |
| Imágenes poliglotas con payload PHP (`<?php` en `.jpg`/`.png`…) | CRITICAL |
| Archivos de copia de seguridad/configuración expuestos (`wp-config.php.bak`, `*.sql`…) | MEDIUM |

### Persistencia
| Comprobación | Gravedad |
|-------|----------|
| Entradas de crontab de usuario con `curl`/`wget`/`php`/`base64` | HIGH |
| Archivos cron del sistema que hacen referencia a la ruta del sitio | MEDIUM |

### Puntuación de riesgo
Cada sitio recibe una **puntuación de riesgo de 0–100** con el desglose de cada hallazgo que contribuye:

```
  +------------------------------------------+
  |  RISK SCORE: 96/100  COMPROMISED         |
  +------------------------------------------+
  +40  wp2shell fingerprint account
  +30  PHP file(s) inside uploads/
  +20  Vulnerable WordPress version
  +6   Core checksum failure
```

| Puntuación | Etiqueta |
|-------|-------|
| 0–20 | Probably Clean |
| 21–40 | Low Risk |
| 41–60 | Medium Risk |
| 61–80 | High Risk |
| 81+ | **COMPROMISED** |

---

## Requisitos

- Servidor Linux con **HestiaCP**
- **bash** 4.0+
- **[WP-CLI](https://wp-cli.org/)** instalado globalmente como `wp`
- Acceso `root`
- `sendmail` (para los informes por correo)
- `python3` (para el manejo de JSON de la evaluación con IA)
- `curl`, `sha256sum`, `file`, `strings`, `unzip`

### Instalar WP-CLI (si falta)
```bash
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && sudo mv wp-cli.phar /usr/local/bin/wp
```

---

## Instalación y ejecución en una sola línea

### Escaneo IoC rápido
```bash
curl -fsSL https://raw.githubusercontent.com/BytesPulse-OE/wp2shell-Hestia-Scanner/main/wp2shell-scan.sh | sudo bash
```

### Escaneo completo con informes por correo por cliente
```bash
curl -fsSL https://raw.githubusercontent.com/BytesPulse-OE/wp2shell-Hestia-Scanner/main/wp2shell-report-per-user.sh \
  -o wp2shell-report-per-user.sh && sudo bash wp2shell-report-per-user.sh
```

> **Nota:** el escáner completo formula preguntas interactivas al inicio (evaluación con IA, guardar informe, umbral de fecha). Descargarlo primero y ejecutarlo después garantiza que las indicaciones funcionen correctamente.

---

## Uso

### wp2shell-scan.sh — escaneo rápido en todo el servidor

```bash
sudo bash wp2shell-scan.sh
```

Busca todas las instalaciones de WordPress bajo `/home/*/web/*/public_html/`, ejecuta todas las comprobaciones, imprime en la terminal una salida con códigos de color y guarda un informe completo en `/root/wp2shell-report-YYYYMMDD-HHMMSS.txt`.

Al inicio pregunta por un umbral de fecha personalizado opcional (por defecto: `2026-07-15`).

### wp2shell-report-per-user.sh — escaneo completo con informes por correo

```bash
sudo bash wp2shell-report-per-user.sh
```

Al inicio, tres preguntas:

```
[AI EVALUATION]   Use AI evaluation for ambiguous files? [y/N]
[SAVE REPORT]     Save a full report file for later review? [y/N]
[DATE THRESHOLD]  Use a different date? Leave blank to keep default [YYYY-MM-DD]:
```

**Empiece siempre con `DRY_RUN=1`** (el valor por defecto): los correos se previsualizan en pantalla y no se envía nada. Cambie a `DRY_RUN=0` solo después de confirmar que la salida es correcta.

---

## Configuración

### wp2shell-scan.sh

| Variable | Valor por defecto | Descripción |
|----------|---------|-------------|
| `WEB_ROOT` | `/home` | Raíz web de HestiaCP |
| `SINCE_DATE` | `2026-07-15` | Umbral de "modificado recientemente" |
| `WP` | `wp` | Ruta a WP-CLI |

### wp2shell-report-per-user.sh

| Variable | Valor por defecto | Descripción |
|----------|---------|-------------|
| `DRY_RUN` | `1` | `1` = solo vista previa, `0` = enviar correos |
| `SEND_ONLY_IF_ISSUES` | `0` | `1` = omitir el correo si el sitio está limpio |
| `SINCE_DATE` | `2026-07-15` | Umbral de "modificado recientemente" |
| `MAIL_FROM` | `security@<hostname>` | Remitente del sobre |
| `CORE_CACHE` | `/root/wp2shell-cores` | Directorio de caché de núcleos limpios |
| `ANTHROPIC_API_KEY` | *(vacío)* | Clave de API de Claude para la evaluación con IA |

---

## Evaluación con IA (opcional)

Para los diffs ambiguos que los patrones por sí solos no pueden clasificar, el escáner envía el diff a la **API de Claude** (`claude-sonnet-4-6`) y devuelve un veredicto: `DANGER`, `SUSPICIOUS`, `REVIEW` u `OK`, con una explicación de una frase. La IA se usa **solo** en la zona gris: los casos claros se clasifican al instante sin ninguna llamada a la API.

Defina su clave en el script o expórtela antes de ejecutarlo:
```bash
export ANTHROPIC_API_KEY='sk-ant-api03-...'
sudo -E bash wp2shell-report-per-user.sh
```

Claves de API: <https://console.anthropic.com> — independientes de las suscripciones de claude.ai.

### ¿Sin clave de API? Use el analizador en el navegador

Pegue la salida de su escaneo en el artefacto **wp2shell Report Analyzer** de Claude.ai — realiza la misma evaluación con IA directamente en el navegador, sin necesidad de su propia clave.

---

## Formato de salida

### Niveles de gravedad

| Etiqueta | Color | Significado |
|-------|-------|---------|
| `[CRITICAL]` | 🔴 Rojo en negrita | Indicador de compromiso activo: actúe de inmediato |
| `[HIGH]` | 🔴 Rojo | Indicador contundente: revíselo con urgencia |
| `[MEDIUM]` | 🟡 Amarillo | Sospechoso: investigue |
| `[LOW]` | 🔵 Azul | Prioridad baja: probable falso positivo |
| `[INFO]` | ⚫ Gris | Informativo |
| `[OK]` | 🟢 Verde | Limpio / esperado |

### Ejemplo de diff del núcleo

```
┌─ MODIFIED: wp-includes/load.php
│  [CRITICAL] Assessment (patterns): executable/obfuscated pattern in added lines
│             +20  Core file modified with dangerous pattern
│
│  ORIGINAL: /root/wp2shell-cores/7.0.2-el/wp-includes/load.php
│  SITE:     /home/user/web/example.gr/public_html/wp-includes/load.php
│  @@ -212,5 +212,6 @@
│  -      $loaded = true;
│  +      $loaded = true;
│  +      eval(base64_decode('aGVsbG8='));
└──────────────────────────────────────
```

---

## Notas

- El escáner **nunca modifica** nada. Se puede ejecutar de forma segura en servidores de producción en vivo.
- Actualizar WordPress a una versión parcheada cierra la vulnerabilidad, pero **no limpia** un sitio ya comprometido. Si se encuentran indicadores, restaure desde una copia de seguridad limpia.
- El directorio `CORE_CACHE` (`/root/wp2shell-cores/`) se reutiliza entre escaneos. Elimínelo para forzar una descarga nueva.
- La base de datos de hashes `known_shells.sha256` se actualiza automáticamente una vez al día.

---

## Licencia

GPL-3.0 — consulte [LICENSE](https://github.com/bytespulse-oe/wp2shell-hestia-scanner/blob/main/LICENSE)

---

## Créditos

Desarrollado por **[BytesPulse](https://bytespulse.gr)** en respuesta a la revelación de wp2shell (julio de 2026).  
Información sobre CVE: <https://wp2shell.com>

---
---

<a name="greek"></a>

# 🇬🇷 Ελληνικά

## ¿Qué es wp2shell?

wp2shell es una cadena de explotación de ejecución remota de código (RCE) en el núcleo de WordPress, revelada el **17 de julio de 2026**. Una única petición HTTP anónima a una instalación por defecto basta para crear un administrador y ejecutar código arbitrario en el servidor.

La cadena combina:
- **CVE-2026-60137** — inyección SQL en el parámetro `author__not_in` de `WP_Query`
- **CVE-2026-63030** — confusión de rutas en la API REST `/wp-json/batch/v1`

Los sitios comprometidos muestran una cuenta de administrador con el prefijo `wp2_` y el correo `@wp2shell.invalid`.

Más información: <https://wp2shell.com>

---

## Contenido

| Archivo | Propósito |
|--------|--------|
| `wp2shell-scan.sh` | Escáner IoC rápido: salida en color en la terminal, puntuación de riesgo por sitio, informe guardado automáticamente en `/root/` |
| `wp2shell-report-per-user.sh` | Escáner completo: informes por correo por usuario de HestiaCP, diff del núcleo, detección de webshells por SHA256, evaluación con IA y puntuación de riesgo |
| `known_shells.sha256` | Base de datos SHA256 de webshells conocidos: se descarga automáticamente durante la ejecución |

---

## Qué comprueba

### Base de datos / Usuarios
| Comprobación | Gravedad |
|---------|-----------|
| Versión de WordPress frente a versiones seguras | HIGH / OK |
| Cuentas con el prefijo `wp2_` o correo `@wp2shell.invalid` | CRITICAL |
| Administradores creados después de la revelación (15/07/2026) | MEDIUM |
| Huecos en la secuencia de ID de usuario (rastros de administrador fraudulento eliminado) | MEDIUM |
| Filas huérfanas de `wp_usermeta` | MEDIUM |
| Filas envenenadas de `oembed_cache` / `customize_changeset` | CRITICAL |
| Opciones de WP alteradas (`upload_path`, `auto_prepend_file`, `siteurl`) | CRITICAL / HIGH |

### Integridad de los archivos del núcleo
| Comprobación | Gravedad |
|---------|-----------|
| `wp core verify-checksums` frente a wp.org | HIGH |
| `diff -U5` línea por línea contra un núcleo limpio | CRITICAL / HIGH / OK |
| Archivos adicionales que no existen en el núcleo limpio | CRITICAL / HIGH |

### Análisis de archivos
| Comprobación | Gravedad |
|---------|-----------|
| Archivos PHP en `uploads/` | CRITICAL |
| Extensiones PHP adicionales (`.php7` `.phtml` `.phar` `.php5`) | HIGH |
| **Coincidencia SHA256 con webshells conocidos** (WSO, FilesMan, b374k, p0wny…) | CRITICAL |
| PHP modificado después de `SINCE_DATE` **Y** que contiene patrones sospechosos, con la línea exacta | CRITICAL / HIGH |
| PHP con patrones sospechosos que NO se modificó recientemente | LOW |
| JS/HTML modificados después de `SINCE_DATE` con patrones de ofuscación | MEDIUM |
| **URLs externas de C2/exfiltración de datos** (pastebin, ngrok, Discord webhooks, bit.ly…) | CRITICAL |
| Directivas peligrosas en `.htaccess` | HIGH |
| `.htaccess` modificado después de `SINCE_DATE` | MEDIUM |
| Imágenes poliglotas con payload PHP | CRITICAL |
| Archivos de copia de seguridad/configuración expuestos | MEDIUM |

### Persistencia
| Comprobación | Gravedad |
|---------|-----------|
| Crontab de usuario con `curl`/`wget`/`php`/`base64` | HIGH |
| Archivos cron del sistema que mencionan la ruta del sitio | MEDIUM |

### Puntuación de riesgo
Cada sitio recibe una **puntuación de 0–100** con el desglose de cada hallazgo:

```
  +------------------------------------------+
  |  RISK SCORE: 96/100  COMPROMISED         |
  +------------------------------------------+
  +40  wp2shell fingerprint account
  +30  PHP file(s) inside uploads/
  +20  Vulnerable WordPress version
  +6   Core checksum failure
```

| Puntuación | Etiqueta |
|-----------|-----------|
| 0–20 | Probably Clean |
| 21–40 | Low Risk |
| 41–60 | Medium Risk |
| 61–80 | High Risk |
| 81+ | **COMPROMISED** |

---

## Requisitos

- Servidor Linux con **HestiaCP**
- **bash** 4.0+
- **[WP-CLI](https://wp-cli.org/)** instalado como `wp`
- Acceso `root`
- `sendmail` (para el envío de correos)
- `python3` (para la evaluación con IA)
- `curl`, `sha256sum`, `file`, `strings`, `unzip`

### Instalación de WP-CLI (si falta)
```bash
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && sudo mv wp-cli.phar /usr/local/bin/wp
```

---

## Instalación con una sola línea

### Escaneo IoC rápido
```bash
curl -fsSL https://raw.githubusercontent.com/BytesPulse-OE/wp2shell-Hestia-Scanner/main/wp2shell-scan.sh | sudo bash
```

### Escaneo completo con informes por correo
```bash
curl -fsSL https://raw.githubusercontent.com/BytesPulse-OE/wp2shell-Hestia-Scanner/main/wp2shell-report-per-user.sh \
  -o wp2shell-report-per-user.sh && sudo bash wp2shell-report-per-user.sh
```

---

## Uso

### wp2shell-scan.sh

```bash
sudo bash wp2shell-scan.sh
```

Busca automáticamente todas las instalaciones de WordPress bajo `/home/*/web/*/public_html/`, ejecuta todas las comprobaciones, imprime una salida en color en la terminal y guarda un informe completo en `/root/`.

### wp2shell-report-per-user.sh

```bash
sudo bash wp2shell-report-per-user.sh
```

Al inicio hace tres preguntas:

```
[AI EVALUATION]   Use AI evaluation for ambiguous files? [y/N]
[SAVE REPORT]     Save a full report file for later review? [y/N]
[DATE THRESHOLD]  Use a different date? Leave blank to keep default [YYYY-MM-DD]:
```

**Empiece siempre con `DRY_RUN=1`** (valor por defecto): los correos se muestran en pantalla, no se envían. Cambie a `DRY_RUN=0` solo después de confirmar que la salida es correcta.

---

## Configuración

### wp2shell-scan.sh

| Variable | Valor por defecto | Descripción |
|-----------|---------|-----------|
| `WEB_ROOT` | `/home` | Carpeta raíz de HestiaCP |
| `SINCE_DATE` | `2026-07-15` | Umbral de "modificados recientemente" |
| `WP` | `wp` | Ruta de WP-CLI |

### wp2shell-report-per-user.sh

| Variable | Valor por defecto | Descripción |
|-----------|---------|-----------|
| `DRY_RUN` | `1` | `1` = solo vista previa, `0` = envío de correos |
| `SEND_ONLY_IF_ISSUES` | `0` | `1` = correo solo si se encuentra algo |
| `SINCE_DATE` | `2026-07-15` | Umbral de "modificados recientemente" |
| `MAIL_FROM` | `security@<hostname>` | Remitente del correo |
| `CORE_CACHE` | `/root/wp2shell-cores` | Caché de núcleos limpios |
| `ANTHROPIC_API_KEY` | *(vacío)* | Clave de API de Claude para la evaluación con IA |

---

## Evaluación con IA (opcional)

Para los diffs dudosos que los patrones no pueden clasificar, el escáner envía el diff a la **API de Claude** (`claude-sonnet-4-6`) y devuelve un veredicto: `DANGER`, `SUSPICIOUS`, `REVIEW` u `OK`, con una explicación de una frase. La IA se usa **solo** en la zona gris.

```bash
export ANTHROPIC_API_KEY='sk-ant-api03-...'
sudo -E bash wp2shell-report-per-user.sh
```

Claves de API: <https://console.anthropic.com> — independientes de la suscripción de claude.ai.

### ¿Sin clave de API? Use el analizador en el navegador

Pegue la salida del escaneo en el artefacto **wp2shell Report Analyzer** de Claude.ai — realiza la misma evaluación con IA directamente en el navegador.

---

## Notas

- El escáner **no modifica nada**. Ejecución segura en servidores de producción en vivo.
- Actualizar WordPress a la versión parcheada cierra la vulnerabilidad, pero **no limpia** un sitio ya comprometido. Si se encuentran indicadores, restaure desde una copia de seguridad limpia.
- La carpeta `CORE_CACHE` (`/root/wp2shell-cores/`) se reutiliza entre escaneos. Elimínela para forzar una nueva descarga.
- La base de datos `known_shells.sha256` se actualiza automáticamente una vez cada 24 horas.

---

## Licencia

GPL-3.0 — consulte [LICENSE](https://github.com/bytespulse-oe/wp2shell-hestia-scanner/blob/main/LICENSE)

---

## Créditos

Desarrollado por **[BytesPulse](https://bytespulse.gr)** en respuesta a la revelación de wp2shell (julio de 2026).  
Información sobre CVE: <https://wp2shell.com>
Descargar herramienta