cbry-96/threat-analysis-and-remediation
GitHub: cbry-96/threat-analysis-and-remediation
Stars: 0 | Forks: 0
# 🔐 Proyecto Final — Ciberseguridad
### Análisis Forense · Pentesting WordPress · ISO 27001:2022
#### 4Geeks Academy · Bootcamp de Ciberseguridad · Mayo 2026











## 📋 Descripción
Proyecto final del Bootcamp de Ciberseguridad de **4Geeks Academy** donde asumo el rol de analista de ciberseguridad encargado de restaurar y proteger un servidor Debian Linux comprometido, simulando un escenario real de respuesta a incidente empresarial.
| Indicador | Valor |
|-----------|-------|
| 🎯 Sistema objetivo | Debian GNU/Linux 6.1.0-25-amd64 · `192.168.1.131` |
| 💻 Máquina atacante | Parrot OS · `192.168.1.11` |
| 🔴 Vulnerabilidades críticas | 3 (FTP, RCE WordPress, credenciales BD) |
| ✅ Remediación | 100% — todas corregidas y verificadas |
| ⚡ Tiempo hasta RCE | < 20 minutos desde reconocimiento |
| 🛡️ ISO 27001 | 6/9 controles implementados (67%) |
| 📅 Fecha | 22 de mayo de 2026 |
## 🗂️ Estructura del Repositorio
📁 análisis y remediación de amenazas/
│
├── 📄 README.md ← Este archivo
│
├── 📁 docs/
│ ├── 📁 fase1/ ← Análisis forense
│ │ ├── 📄 Informe_Incidente_Seguridad_Fase1.docx
| | | 📄 Informe_Incidente_Seguridad_Fase1.pdf
│ │ └── 📄 README.md
│ │
│ ├── 📁 fase2/ ← Pentesting WordPress
│ │ ├── 📄 Informe_Pentesting_WordPress_Fase2.docx
| | | 📄 Informe_Pentesting_WordPress_Fase2.pdf
│ │ └── 📄 README.md
│ │
│ ├── 📁 fase3/ ← NIST + ISO 27001
│ │ ├── 📄 Plan_Respuesta_SGSI_ISO27001_Fase3.docx
│ │ ├── 📄 Plan_Respuesta_SGSI_ISO27001_Fase3.pdf
│ │ └── 📄 README.md
│ │
│ └── 📁 presentacion/ ← Presentación ejecutiva
│ ├── 📄 Presentacion_Ejecutiva_Gerencia.pptx
│ └── 📄 README.md
│
├── 📁 red/ ← Diagramas de red
│ ├── 📄 diagrama-red.md
│ ├── 📄 diagrama-red-packet.pkt
│ ├── 📄 diagrama-red-packet.pdf
│ └── 📄 README.md
│
├── 📁 scripts/ ← Scripts implementados
│ ├── 📄 backup-4geeks.sh
│ └── 📄 README.md
│
└── 📄 .gitignore
## ⚔️ Fase 1 — Análisis Forense del Servidor Comprometido
### Hallazgos identificados
| # | Hallazgo | Severidad | Servicio |
|---|----------|-----------|----------|
| 1 | FTP transmitiendo credenciales en texto plano | 🔴 CRÍTICO | Puerto 21 · vsftpd |
| 2 | Apache HTTP sin cifrado ni hardening | 🟠 ALTO | Puerto 80 · Apache 2.4.67 |
| 3 | SSH sin restricciones de seguridad | 🟡 MEDIO | Puerto 22 · OpenSSH 9.2p1 |
| 4 | CUPS activo innecesariamente | 🟡 MEDIO | Puerto 631 · cupsd |
| 5 | Logs con evidencia maliciosa desde julio 2024 | 🟠 ALTO | journalctl / auth.log |
### Comandos de remediación ejecutados
# FTP deshabilitado
systemctl stop vsftpd && systemctl disable vsftpd
ss -tulnp | grep :21 # → Sin salida ✅
# CUPS deshabilitado
systemctl stop cups && systemctl disable cups
# SSH hardening
# /etc/ssh/sshd_config:
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 30
systemctl restart sshd
# Sistema actualizado
apt update && apt upgrade -y
# Contraseña cambiada
passwd debian
## 🕵️ Fase 2 — Pentesting WordPress
### Cadena de ataque (5 pasos)
[Parrot OS 192.168.1.11]
│
├─ nmap -sV -sC -O -p- 192.168.1.131
│ → Puerto 80: WordPress 6.9.4 + /wp-admin/ en robots.txt
│
├─ wpscan → Usuario: wordpress-user (WP JSON API)
│ XML-RPC habilitado
│
├─ cat /var/www/html/wp-config.php | grep DB_PASSWORD
│ → DB_PASSWORD = '123456' ← CRÍTICO
│
├─ mysql → UPDATE wp_users SET user_pass=MD5('hacked123')
│ → Acceso a http://192.168.1.131/wp-admin/ ✅
│
└─ Plugin malicioso shell.php subido e instalado
curl ".../shell.php?cmd=whoami" → www-data ← RCE ✅
### Vulnerabilidades explotadas
| CWE | Descripción | Severidad |
|-----|-------------|-----------|
| CWE-200 | API REST expone usuarios sin autenticación | 🔴 CRÍTICO |
| CWE-256 | `DB_PASSWORD='123456'` en texto plano | 🔴 CRÍTICO |
| CWE-434 | Editor de plugins → RCE | 🔴 CRÍTICO |
| CWE-749 | XML-RPC expuesto | 🟠 ALTO |
| CWE-16 | `siteurl='localhost'` misconfiguration | 🟠 ALTO |
## 🛡️ Fase 3 — Plan de Respuesta + SGSI ISO 27001
### Ciclo NIST SP 800-61
| Fase | Estado | Actividades |
|------|--------|-------------|
| 🔵 Preparación | ✅ | Inventario, herramientas, controles técnicos implementados |
| 🟡 Detección | ✅ | IoCs identificados, logs analizados, WPScan, Nmap |
| 🟠 Contención | ✅ | Servicios detenidos, plugin eliminado, credenciales revocadas |
| 🟢 Recuperación | ✅ | Sistema actualizado, hardening, verificación |
### ISO 27001:2022 — Estado de Controles (22/05/2026)
| Control | Descripción | Estado |
|---------|-------------|--------|
| A.5.1 | Políticas de seguridad | ✅ Implementado |
| A.5.29 | Gestión de incidentes | ✅ Implementado |
| A.8.3 | Accesos privilegiados | ✅ Implementado |
| A.8.13 | Backup automatizado | ✅ Implementado — 22/05/2026 |
| A.8.15 | Retención logs 90 días | ✅ Implementado — 22/05/2026 |
| A.8.20 | Firewall UFW | ✅ Implementado — 22/05/2026 |
| A.8.24 | HTTPS + HSTS | ✅ Implementado — 22/05/2026 |
| A.8.5 | Autenticación segura | 🔄 Parcial |
| A.8.8 | Gestión vulnerabilidades | 🔄 Parcial |
| A.8.32 | Gestión de cambios | ⏳ Pendiente |
## 🔧 Controles Técnicos Implementados (22/05/2026)
### A.8.20 — Firewall UFW
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp
ufw enable
# → Status: active ✅
### A.8.24 — HTTPS con certificado SSL
a2enmod ssl headers
# Certificado RSA 2048-bit — CN: 192.168.1.131 — Org: 4Geeks Academy
# HSTS: Strict-Transport-Security: max-age=31536000
curl -k https://192.168.1.131 → HTTP/1.1 200 OK ✅
### A.8.13 — Backup automatizado
# /backup/scripts/backup.sh
# mysqldump + tar.gz → /backup/data/
# Cron: 0 2 * * * root /backup/scripts/backup.sh
# Retención: find -mtime +90 -delete
# Evidencia: db_*.sql.gz (796KB) + web_*.tar.gz (32MB) ✅
### A.8.15 — Retención de logs 90 días
# /etc/systemd/journald.conf:
MaxRetentionSec=90day
SystemMaxUse=500M
# logrotate Apache: rotate 90 + daily + compress ✅
## 🌐 Topología de Red
ANTES (comprometida) DESPUÉS (segura)
───────────────────── ─────────────────────
Internet Internet
│ │
[Switch] [Firewall UFW]
/ \ 22 / 80 / 443
[Parrot] [Debian] │
:11 :131 [Switch segmentado]
21·22·80·631 / \
[Parrot] [Debian]
VLAN lab 22·443 only
## 🎤 Presentación Ejecutiva
10 slides para gerencia no técnica:
1. Portada
2. Resumen ejecutivo (KPIs: 5 vulns, 3 críticas, 100% remediadas, 4h)
3. Hallazgos Fase 1 — forense
4. Cadena de ataque WordPress — Fase 2
5. Impacto en triada CIA
6. Acciones correctivas ejecutadas (9 acciones)
7. Plan NIST + controles ISO 27001
8. Recomendaciones (3 horizontes temporales)
9. **Controles ISO implementados 22/05/2026** ← nueva
10. Conclusión
## 🛠️ Herramientas Utilizadas
| Herramienta | Versión | Propósito |
|-------------|---------|-----------|
| Nmap | 7.95 | Reconocimiento y escaneo de puertos |
| WPScan | 3.8.28 | Enumeración y auditoría WordPress |
| Parrot OS | Latest | Sistema operativo atacante |
| Debian GNU/Linux | 12 Bookworm | Sistema objetivo |
| MariaDB | 10.11 | Base de datos WordPress |
| Apache | 2.4.67 | Servidor web |
| UFW | — | Firewall implementado |
| OpenSSL | — | Certificado SSL RSA 2048 |
| Packet Tracer | 8.x | Diagramas de red |
## 📚 Metodologías y Marcos
- **[NIST SP 800-61 Rev. 2](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-61r2.pdf)** — Computer Security Incident Handling Guide
- **[ISO/IEC 27001:2022](https://www.iso.org/standard/82875.html)** — Information Security Management Systems
- **[PTES](http://www.pentest-standard.org/)** — Penetration Testing Execution Standard
- **[OWASP Top 10:2021](https://owasp.org/Top10/)** — Web Application Security Risks
- **[CIS Controls v8](https://www.cisecurity.org/controls/)** — Center for Internet Security
- **[ENS](https://www.boe.es/eli/es/rd/2022/05/03/311)** — Esquema Nacional de Seguridad (España)
## 👤 Autor
**Bryan Calderón Herrera**
Ingeniero en Redes y Telecomunicaciones
Bootcamp de Ciberseguridad — 4Geeks Academy · 2026
[](https://linkedin.com/in/tu-perfil)
[](https://github.com/tu-usuario)
*Proyecto desarrollado con fines educativos en entorno de laboratorio controlado.*
*Todo el pentesting se realizó en sistemas propios con autorización explícita.*
**4Geeks Academy · Bootcamp de Ciberseguridad · 22 de mayo de 2026**