Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
psa-2026-00043-recovery — Notas de recuperación para el ID de aviso de proxmox: PSA-2026-00043-1 (CVE-2023-54391) | Kitploit
Herramientas/GitHubGitHub/disqualifier/psa-2026-00043-recovery
Seguridad de Infraestructura en la NubeAnálisis de VulnerabilidadesAnálisis ForenseRecuperación de DatosForensia DigitalRespuesta a Incidentes
GitHubdisqualifier/psa-2026-00043-recovery

psa-2026-00043-recovery

Notas de recuperación para el ID de aviso de proxmox: PSA-2026-00043-1 (CVE-2023-54391)

Ver Repositorio
hace 1 díaAún no revisado

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 →
Compartir

psa-2026-00043-recovery

Recuperación de un wiper que se presentó como ransomware, tras un ataque contra infraestructura Proxmox expuesta a internet (PSA-2026-00043-1 / CVE-2023-54391).

El atacante borró los invitados y dejó los sistemas de archivos dañados. Dos vías de recuperación según el tipo de invitado:

  • invitado de base de datos — extraer documentos BSON de páginas WiredTiger crudas
  • host de aplicación — extraer archivos (nginx, unidades systemd, env, raíces de app) del sistema de archivos dañado

Estas son las herramientas y la metodología, generalizadas para que sean útiles a cualquiera en la misma situación. Solo lectura sobre el origen, CC0. No se incluyen datos reales recuperados; la salida de ejemplo usa marcadores de posición.


Primera hora

El disco dañado es ahora tu única copia de lo que queda. No lo repares. Haz una imagen.

root@kitploit:~
blockdev --setro /dev/<source>                                    # 1. solo lectura, inmediatamente
dd if=/dev/<source> of=/safe/disk.img bs=4M conv=noerror,sync     # 2. imagen a almacenamiento seguro
# 3. NO ejecutes fsck, montes en rw ni "repares"; eso sobrescribe bloques que un carver necesita
# 4. envuelve cada pasada sobre el origen en scripts/source_guard.sh
# 5. recupera solo desde la imagen, nunca desde el original

Los scripts

Disciplina compartida, carvers separados. Ejecuta cualquiera con -h. Python 3.8+ / bash, sin paquetes de terceros. source_guard.sh necesita /proc/diskstats de Linux.

scriptvíaqué hace
scripts/source_guard.shcompartidaEnvuelve un comando de recuperación; demuestra que el origen permaneció en solo lectura mediante un diff del contador de escrituras. Falla ante cualquier escritura en el origen.
scripts/wt_leaf_carve.pybase de datosExtrae BSON de páginas hoja WiredTiger crudas. Tamaño de página por decodificación, no por ajuste; control positivo obligatorio.
scripts/bson_frame.pybase de datosCuenta/valida documentos BSON según el marco en disco. Archivo completo por defecto; una muestra se marca como PISO.
scripts/fs_carve_classify.pysistema de archivosClasifica fragmentos de archivos extraídos por contenido, no por nombre; escribe un manifiesto por archivo; escaneo exhaustivo de secretos.
scripts/sensitivity_scan.pycompartidaClasifica los datos recuperados en ROJO/ÁMBAR/VERDE por exposición de credenciales/PII. Imprime conteos, nunca valores.
scripts/integrity_verify.pycompartidaDemuestra que una copia reorganizada es fiel al origen. Clave por contenido (sobrevive renombrados); lee columnas OK/FAILED, no códigos de salida.
scripts/make_demo.py—Genera fixtures BSON sintéticos (sin datos reales) para ejercitar el kit de herramientas.

Pruébalo

root@kitploit:~
python3 scripts/make_demo.py
python3 scripts/bson_frame.py --total demo/*.bson
python3 scripts/sensitivity_scan.py demo/*.bson
python3 scripts/integrity_verify.py --compare demo/source demo/copy

Metodología

Se ejecutó en este orden. El paso de extracción se ramifica según el invitado; los extremos setro/imagen y la verificación por clave de contenido son iguales en ambos casos.

root@kitploit:~
disco dañado ──setro+imagen──► imagen de solo lectura
                                    │
                base de datos ─────►│◄────────── sistema de archivos
          extraer páginas WT        │            extraer archivos
          contar documentos         │            clasificar por contenido + manifiesto
                                    │
                          clasificar exposición (ROJO/ÁMBAR/VERDE)
                          verificar copia (clave por contenido)
                                    │
                                 recuperar

Modos de fallo

  1. El cero es ambiguo: una región vacía y un decodificador ciego devuelven ambos nada. Haz control positivo de cada cero contra una página que ya tengas.
  2. Elige el tamaño de página por la primera decodificación exitosa, no por el primer ajuste. El ajuste siempre elige 4096 y descarta páginas de múltiples bloques.
  3. Un conteo muestreado es un piso, no un total. Lee el contenedor completo.
  4. Los nombres sobre-marcan (datos usados como claves de mapa), los valores sub-marcan (secretos con formato humano). Exige ambos más contexto.
  5. Cuenta campos poblados, no ocurrencias. Los campos con muchos nulos inflan el número.
  6. Verifica por hash de contenido, no por nombre de archivo; una recuperación renombra todo.
  7. find | sort | xargs sha256sum | sha256sum también hashea rutas y locale. Usa LC_ALL=C, o un manifiesto por archivo.
  8. sha256sum -c sale con 0 mientras imprime FAILED. Lee las columnas, no $?.
  9. Un informe de localización de credenciales no debe contener valores de credenciales. Imprime solo formas y conteos.
  10. Una verificación solo es verdadera cuando se ejecutó. Sella cada lectura; vuelve a comprobar el estado actual.

Notas

Puntos de partida, no soluciones llave en mano. WiredTiger en producción usa compresión de páginas (snappy/zstd) y codificación de celdas que el carver genérico deja sin implementar. Conecta tu propio decodificador robusto para páginas comprimidas. Contrasta cada número contra un control positivo y un segundo instrumento diferente: dos herramientas que comparten una suposición coinciden por la suposición, no porque sea correcta; leer los bytes es lo que detecta eso.

Si tus datos no son los mismos (otra base de datos, app o sistema de archivos), la metodología sigue siendo válida: pon el origen en solo lectura, haz una imagen, extrae desde la copia, haz control positivo antes de creer en un cero, cuenta todo, verifica por contenido. Cambia el carver; mantén la disciplina.

Refuerza la causa raíz: la interfaz web de Proxmox en :8006 no debería ser accesible desde internet. Sigue los avisos de seguridad oficiales de Proxmox: https://forum.proxmox.com/threads/proxmox-virtual-environment-security-advisories.149331/

Un informe más amigable con el consejo general del autor sobre recuperación y refuerzo: https://claude.ai/code/artifact/621495ce-4972-405a-ad90-f7703f7dc2f1

CC0 / dominio público. Ver LICENSE.

Descargar herramienta