VulnHub | Jigsaw Makine Çözümü

Jezeb3L

Yeni üye
18 Eyl 2021
6
6
24
JIGSAW

Level :
Hard to Insane

Hedef makinenin IP adresini netdiscover aracıyla bulalım.Makinenin hint kısmında arp paketlerini kontrol etmemiz gerektiğini söylenmiş.Tcpdumpla bu paketleri kontrol edelim.

tcpdump -i eth0 -A -n 192.168.0.29 and not arp

1*Q9hn8dbkFExARf7esgFG8Q.png

arp paketlerini yakalamayı denediğimde paket yakalayamadı arp olmayan paket trafiğini yakaladığımda UDP paketi yakaladı.

j19s4w was always fascinated with l33t speak,in fact he uses it for a lot if his passwords.
Paket içeriğinde passwordlerde leetspeak kullanılması ipucu olarak verilmiş.leet kelimesinide bu yöntemle yazmış.leetspeak tekniği passwordteki kelimelerin bazı karakterleri değiştirilerek daha güvenli yapılmaya çalışılmasıdır.netcat aracını kullanarak 666 portunda socket açalım.


1*mzdbPRbLnZJrYv1NwRYuTQ.png

Leetspeak ile yazılmış j19s4w kelimesini girdiğimizde bize base64 ile encode edilmiş bir değer verdi.Bunu decode edelim ve içeriğini görelim.

echo “base64 değeri” | base64 -d

1*eI-01Dtblq56S3-gKiLefg.png

İlk flagı bulduk 1.testi geçtiğimiz söyledi ve 5500 6600 7700 değerlerine port knocking işlemi yapmamızı istiyor.Bu değerlere knock işlemi yapalım ve bunun sonucundan port açılacakmı diye kontrol edelim.

1*WfpbEpdYpmHnS_1DX1fWrA.png

1*WfpbEpdYpmHnS_1DX1fWrA.png

nmap -A -T4 -n 192.168.0.29

1*JMvanMPC3Xq8PjjtqhLPrQ.png

Port knocking işlemi sonrasında 80 portu açılmış oldu.Browserda bu porta gittiğimizde jigsaw gifi bizi karşıladı.Bu gifi indirip içerisine data saklanmış mı diye kontrol edelim.curl ile sayfanın kaynak kodlarını çektiğimde yine bir mesaj vardı.


1*YdiaJg5QEK9opHDuI7hrwA.png


1*xjAPyCHikJgO2ytNgYeN9g.png

wget komutuyla gifi indirip steghide aracıyla içerisindeki datayı çıkarmaya çalıştım ama bir şey çıkmadı.


1*Jl1pBGxbaQTpl2LS3Ce7KQ.png

strings komutuyla gifin içerisindeki string ifadeleri bulmayı deneyelim.

strings jigsaw.py

1*65TN_DhAWewLvGLfRrrK7Q.png

Leetspeak tekniğiyle yazılmış wannaplaygame stringini bulduk.Bunun bir dizin olabileceğinden şüphelenmiş bu dizine gitmeyi deneyelim.


1*kGykdT3UeBLhWXhJQcJZ5A.png

Dizine gittiğimizde bir login ekranı karşımıza geldi.Sqlmap ile sqlinjection denedim ama sqlinjection zafiyeti sayfada yok.Curl ile sayfanın kaynak kodunu çekelim.


1*sxhSdkOSkz6Nrlcy5IWV7w.png

Kaynak kodda login form işlemi için kullanılan XMLFunction bulunmaktadır.İsteği Burp ile yakalayıp XXE zafiyeti varmı diye kontrol edelim.


1*U75oBE1naTjigKNgSq2-rw.png


1*cJ2TZIk28PBudq1E9WNHXQ.png

Yazdığımız her parametre için girdiğimiz parametreyi yazdırıp doesn’t exit mesajı dönüyor.XXE zafiyeti XML verilerinin parse edilmesi aşamasında meydana gelir /etc/passwd gibi hassas dosyaların okunmasına olanak vermektedir.


1*khWE5klq0r6ipvoZlg0qcQ.png


1*yA9M-2dUs1yZNAakM2aVQw.png

XXE login atak için payloadımızı gönderdiğimiz zaman /etc/passwd dosyasını çektik.


1*WHfQv7vmSGxeFF0MOtGxMw.png


1*e_ODfdgsxcmALHncts4wFQ.png

Sistemde port knocking işleminin yapıldığını biliyoruz.knockd.conf dosyasını da okuyabiliriz.


1*maNz0qSgxJxeCPElQGxzGg.png

HTTP için port knock işlemi yapmıştık.SSH için knock değerlerini burda görebiliriz.Bu değerler için port knocking yaparak ssh portunu açmayı deneyelim.

./knock 192.168.0.29 7011 8011 9011
1*35Ufzu19jPr22F6MYrgm2g.png

1*35Ufzu19jPr22F6MYrgm2g.png


1*9_w3OouKiVY13jlL1CRqKQ.png

Tekrar bir nmap taraması yaptığımızda 22 ssh portunun açıldığını görüyoruz.ssh bağlantısı yapmayı deneyelim./etc/passwd dosyasını çekmiştik jigsaw kullanıcısı olduğunu biliyoruz.Password için dictionary attack yapılabilir ama ilk başta tcpdump paket yakalama sonucunda passwordle ilgili bize bir ipucu vermişti.Password olarak j19s4w deneyelim.


1*ejOWxZgfeT68-dBClN6Efw.png

SSH bağlantısı sonucunda 2.flag değerimizde bulduk.


1*J6RB0Ua8wQU9KAk4q8GY_w.png

find / -perm -u=s -type f 2>/dev/null
komutuyla sistemde SUID biti ile çalışan programları listeleyelim.


1*Olp_qg4tXTziWuyoyZ3A6w.png


1*Um1b7IfMGCqYgO8ClVEPLw.png

komutuyla dosyanın türünü ve çalıştırılabilir bir dosya olduğunu öğreniyoruz.


1*ruOMBKZDob6Y_RQpjO3SFA.png

Dosyaya string ifadeler gönderip Buffer Overflow zafiyeti olup olmadığını test edelim.


1*iyKHtFTTe6-sC9riKe1glQ.png

/bin/game3 $(python -c ‘print “A”*200’)
python da -c parametresini kullandığımızda kodları doğrudan shellden çalıştırmamızı sağlar.Yukardaki kod ile programa ilk olarak 200 tane A karakteri gönderdiğimizde segmentation fault verdi.Yani programda buffer overflow zafiyeti bulunmakta.Offset değerini bulmak için manuel olarak karakter sayısını değiştirerek bulabiliriz ya da gdb ile pattern oluşturup offset değeri bulunabilir manuel olarak denediğimde offset değerini 76 olarak buldum.Birde gdb ile bulalım.Sistemde gdp olmadığı için local makinemize game3 dosyasını scp ile çekip gdb yi çalıştıralım.

scp [email protected]:/bin/game3 /root/Desktop

1*zQuodVGMbAjhwflAxVb4rw.png


1*xhlixECoH8BxMMIAXjrr9Q.png

Programımızda denemek için 200 karakter içeren bir pattern oluşturduk.


1*EkukFsllw8ljkwyElr1GjQ.png


1*e7haIrRHjaVeEmuV96aXzQ.png


1*K_L0QxxzKu8QQdLzEqR1VA.png

0x41344141 buffer size a karşılık gelen adrestir.EIP değerine baktığımız zaman bu adrese karşılık gelen ve bir sonraki çalışacak olan komutu (AA4A) görebiliriz.

pattern_offset AA4A
offset değerimizi bulalım.


1*UbDTH9w76zEN5mn94FuFuQ.png

Offset değeri 76 olarak bulundu.


1*VoUaf5pd0vm9jocFFKyVlA.png

Payloadını yazıp gdb ile çalıştırdığımızda EIP değerini manipule edebildiğimizi görürüz.Şimdi EIP değerinin üstüne yazabilmek ve shell yükleyebilmek için 3 adrese daha ihtiyacımız var.System adress,exit adress ve /bin/sh adress.

1*C79B_hNai-IVCHVsU4FjKw.png

1*C79B_hNai-IVCHVsU4FjKw.png


1*Qg1u9dyuDLwMgH2T8QB_Xg.png


1*xJCgEGz1v3Buk_q03TEZSA.png

1*jOi3ByMxk31rji7oUunuUg.png

1*jOi3ByMxk31rji7oUunuUg.png


1*_5KhnVdBph5rSHDLCAlxXw.png

Programda ALSA aktif olduğundan base alınan adres sürekli değişmektedir.While loop kullanıp brute force yaparak her değer denendiğinde bu ALSA değerini bypass etmiş olduk.Exploitimizi çalıştırdığımızda root olup 3.flag değerinide okuduk.


1*ZZZbK74SJ_uVGYXZRmaEng.png



İитιкαм ιуι вιя şєу ∂єğιℓ мαтнιℓ∂α.İиαи,υиυтмαк ∂αнα ιуι
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.