| name | auto-solver |
| description | CTF challenge otomatik cozum pipeline'i. 6 asama: zip'i ac, siniflandir, coz, flag topla, writeup olustur. /auto-solve komutuyla cagrilir.
|
| tags | ["ctf","auto-solver","pipeline","automation","flag-hunting","triage"] |
| triggers | ["auto solve","/auto-solve","otomatik çöz","challenge'ı çöz","solve this ctf","autosolve","flag bul","capture the flag çözüm","solve challenge"] |
| category | ctf |
| adapted_for | fetih |
CTF Auto-Solver — Otomatik Çözüm Pipeline
CTF challenge zip dosyası veya URL'si verildiğinde 6 aşamalı otomatik çözüm pipeline'ını çalıştırır. /auto-solve slash komutuyla veya manuel olarak çağrılır.
Pipeline Aşamaları
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ STAGE 1 │───▶│ STAGE 2 │───▶│ STAGE 3 │───▶│ STAGE 4 │───▶│ STAGE 5 │───▶│ STAGE 6 │
│ Extract │ │ Classify │ │ Route │ │ Solve │ │ Validate │ │ Report │
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
Stage 1: Extract (Dosyaları Çıkar)
Challenge zip/tar/rar/7z ise içeriğini çıkar:
unzip -o challenge.zip -d ./challenge_extracted/
tar xf challenge.tar -C ./challenge_extracted/
unrar x challenge.rar ./challenge_extracted/
7z x challenge.7z -o./challenge_extracted/
binwalk -e challenge_file
Önemli: Çıkarma işleminden sonra challenge dizinine git:
cd ./challenge_extracted/
ls -laR | head -50
Stage 2: Classify (Kategori Tespiti)
Dosya tiplerine ve içeriğe göre challenge kategorisini belirle:
find . -type f -exec file {} \;
xxd ./challenge_file | head -5
strings ./challenge_file | head -50
xxd ./challenge_file | head -30
Sınıflandırma Kuralları:
| Bulgu | Kategori | Sonraki Adım |
|---|
| URL, HTTP, HTML, JS, form | web | Web analyzer çalıştır |
| ELF, PE, EXE, binary | reverse | Binary analyzer çalıştır |
| .pcap, .pcapng | forensics | Wireshark/tshark ile analiz |
| Şifreli metin, RSA params | crypto | Crypto solver çalıştır |
| .png, .jpg, .wav, .mp3 | stego | Stego analyzer çalıştır |
| netcat, nc host port | pwn | Pwn session başlat |
| .apk, AndroidManifest | mobile | APK analyzer çalıştır |
| Hash (32-128 char hex) | hash | Hash cracker çalıştır |
| eyJ... (JWT token) | jwt | JWT analyzer çalıştır |
| Kişi ismi, lokasyon | osint | OSINT araştırması |
| Zip içinde zip | nested | Recursive extract + classify |
Stage 3: Route (Skill Seçimi)
Kategoriye göre uygun skill'i yükle:
skill_view("ctf-challenge-solver")
skill_view("web-category-tools")
skill_view("crypto-category-tools")
skill_view("rev-category-tools")
skill_view("forensics-category-tools")
Stage 4: Solve (Challenge'ı Çöz)
Web Challenge Çözüm Zinciri
curl -sIv URL → response headers
curl -s URL | grep -i 'flag\|comment\|hidden\|password' → source inspection
curl -s URL/robots.txt → hidden endpoints
gobuster dir -u URL -w wordlist.txt → directory brute force
- SQLi/XSS/SSTI testleri
- Login bypass denemeleri
Crypto Challenge Çözüm Zinciri
- Encoding tespiti: base64 → base32 → hex → ROT13
- Recursive decode (maks 7 katman)
- RSA: factordb.com sorgusu, Wiener attack, close primes
- AES: known-plaintext, padding oracle
- Hash: rockyou wordlist, rainbow tables
Reverse Engineering Çözüm Zinciri
strings binary | grep -i 'flag\|key\|pass'
objdump -d binary | head -100
- Ghidra headless analiz
- angr sembolik execution
- GDB debug + patch
Forensics Çözüm Zinciri
file * → dosya tipi doğrulama
strings * | grep -i 'flag{' → flag pattern tarama
binwalk -e file → gömülü dosyaları çıkar
foremost file → file carving
- PCAP:
tshark -r capture.pcap -Y http → HTTP filtreleme
Stego Çözüm Zinciri
exiftool file → metadata
zsteg -a image.png → LSB tarama
steghide extract -sf image.jpg → şifreli çıkarma
binwalk -e image.png → gömülü dosya
- Ses: spektrogram analizi (sox/audacity)
Stage 5: Validate (Flag Doğrulaması)
Bulunan flag'i doğrula:
echo "bulunan_flag" | grep -P '[A-Za-z0-9_]+\{[^}]+\}'
grep -P '(flag|CTF|HTB|picoCTF|SiberVatan|SIBERVATAN|sibervatan)\{[^}]+\}' <<< "bulunan_flag"
echo "bulunan_flag" >> ./flags.txt
cat ./flags.txt
Flag Formatları (40+): references/flag-formats.md dosyasına bak.
Stage 6: Report (Writeup Oluştur)
Çözüm writeup'ını oluştur:
cat > writeup_$(date +%Y%m%d_%H%M%S).md << 'WRITEUP'
**Category:** [web/crypto/reverse/forensics/stego/pwn/osint]
**Difficulty:** [easy/medium/hard]
**Flag:** `flag{...}`
[Step-by-step solution]
- [Tool 1]
- [Tool 2]
WRITEUP
echo "Writeup: writeup_*.md"
Pivot Stratejisi
3 başarısız flag denemesinde HARD PIVOT uygula:
- Tool değiştir: curl → browser → Burp Suite → custom script
- Vulnerability class değiştir: SQLi → XSS → LFI → RCE → SSTI → SSRF
- Attack vector değiştir: header manipulation → cookie tampering → parameter injection
- Analysis angle değiştir: static → dynamic → side-channel
- Dış kaynaklara başvur: writeup ara, benzer challenge bul
Pivot log'u:
echo "[$(date)] PIVOT: [sebep] — yeni yaklaşım: [yaklaşım]" >> pivot_log.txt
Slash Komutu
/auto-solve <challenge.zip> → Tüm pipeline'ı çalıştır
/auto-solve <url> --category web → Sadece web challenge çöz
/auto-solve --category crypto <ciphertext> → Crypto challenge çöz
/auto-solve --resume → Kaldığı yerden devam et
Önemli Kurallar
- Asla flag'i düz metin olarak log'lama — sadece flags.txt'ye yaz
- Her stage'de ilerlemeyi log'la —
stage_log.txt
- Timeout'ları yönet — her stage için max 5 dakika
- Kaynakları temizle — geçici dosyaları sil, disk doldurma
- Siber Vatan için özel format:
SiberVatan{...}, SIBERVATAN{...}, sibervatan{...}
Referanslar
references/pipeline-stages.md — Her stage için detaylı rehber
references/flag-formats.md — 40+ CTF flag formatı kataloğu
- Siber Vatan CTF Playbook —
skills/red-teaming/siber-vatan-ctf/SKILL.md
- CTF Master Solver —
skills/ctf/SKILL.md