Eğitim Danışmanlık

CTF: VulnHub- Mr. Robot Makine Çözümü

4 Kasım 20224 dakika okumaEğitim DanışmanlıkSiber Güvenlik

Bir sızma testi uzmanı Mr.Robot makinesini çözmeden sektörde sızma testi uzmanı sayılmıyor :)
Şaka bir yana bu işe başlamamdaki ilk taşı kafama Mr. Robot dizisi atmıştır. O zaman bu özenle hazırlanmış makineyi gelin hep beraber çözelim.

Makine Hakkında Bilgiler

Bu makinenin çözümü için önerilen platform VirtualBox‘ dır.

Makinenin amacı makineye saldırarak 3 adet bayrağı ele geçirmek

Makinenin VulnHub sayfasındaki linki: https://www.vulnhub.com/entry/mr-robot-1,151/

O zaman hadi makineyi çözmeye başlayalım


Makinenin Çözüm Adımları

1. İlk olarak saldırı yapacağımız yani kendi sanal makinemizin ip adresini öğreniyoruz.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
ifconfig komutu ile ip adresimizi öğreniyoruz. 10.0.2.6 olduğunu tespit ettik.

2. Şimdi de saldırı yapacağımız hedefi tespit etmemiz lazım. Bunun için netdiscover kullanacağım.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
netdiscover -r 10.0.2.0/24 komutu yardımıyla hedefin 10.0.2.19 ip adresine sahip olduğunu keşfettik.

3. Şimdi makine hakkında bilgiler elde etmek adına nmap komutunu çalıştıracağım.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
nmap -n -Pn -A -sV -sC -p- 10.0.2.19 komutunu çalıştırıyorum.
Buradaki parametreleri incelersek;
-n: DNS çözümlemesi yapma demek.
-Pn: Pingleri devre dışı bırakma.
-A: Agresif tarama yap.
-sV: Açık portta çalışan servisin ne olduğunu bulmaya çalışır.-sC ile birlikte kullanılırsa işe yarar.
-sC: -sV ile versiyon tespiti yaparken nmap scriptlerini kullanır.
-p-: 65535 portun hepsini tarar.
En sonda da hedef sistemin ip adresi yani 10.0.2.19

22 SSH, 80 HTTP, 443 ssl/http portlarının açık olduğunu tespit ediyorum.

4. İlk olarak tarayıcıma 10.0.2.19 yazarak gidiyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Bizi makinenin adına yaraşır güzel videolar ve arayüzler ile bir site karşılıyor. Sayfayı ve kaynak kodunu inceleyince makineyi çözmek için herhangi bir ip ucu bulamıyorum.

5. O zaman bir de alt dizin taraması yapalım. Bunun için de gobuster kullanalım.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Bunun gibi çok fazla alt dizin tespit etti. İlk olarak robots.txt varsa her zaman oraya bakmak gerektiği için oraya gideceğim.

6. robots.txt dizinine gidiyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Burada bir txt olduğunu söylüyor. Bunu okumak için curl kullanacağım.

7. curl http://10.0.2.19/key-1-of-3.txt kodu ile txt dosyasını okuyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
İlk bayrağıma ulaşıyorum.
İlk bayrağım: 073403c8a58a1f80d943455fb30724b9

8. Burada ayrıca fsocity.dic dosyası var bunu da kalime indiriyorum.

Tarayıcıya http://10.0.2.19/fsocity.dic yazınca bir wordlist indirdi.

Bu wordlist' i düzenleyelim. Belki içinde tekrar eden şeyler vardır.

cat fsocity.dic | sort | uniq > yeniliste.txt yaptığım zaman 6.9 mb olan dosyanın boyutu 94.5 kb 'da düşüyor.

9. Şimdi wp-login alt dizinine gidince wordpress giriş paneli ile karşılaşıyorum. Elimde password için bir liste var anca kullanıcı adı için bir liste yok. Bunun için hydra' nın özel bir kullanımını deneyeceğiz

hydra -t 64 -L yeniliste.txt -p test 10.0.2.19 http-form-post "/wp-login.php:log=^USER^&pwd=^PASS^:Invalid"

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
3 tane kullanıcı ismi buldu bana. ELLIOT, Elliot, elliot. Diziyi izleyenler bilir ki Elliot kardeşimiz tam bir fıttır zeka hacker' dır :)

10. Artık elimde hem kullanıcı adı hem de password list olduğuna göre wpscan ile kullanıcı adı ve şifre tespiti yapabilirim.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
wpscan --url 10.0.2.19/wp-login.php --usernames ELLIOT,Elliot,elliot --passwords /root/Downloads/yeniliste.txt kodumu yazarak kullanıcı adı ve şifreyi bulmuş olduk.

11. O zaman artık web sayfasına giriş yapabiliriz.

Sitemde gezerken aklımda tek şey reverse shell ile shell alabilmek.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Burada 404.php sayfasının içeriğini değiştirerek natcat dinlememi başlatıp shell almaya çalışacağım.
Buranın içeriğine:
php reverse shell kodumu yapıştırıyorum.

12. O zaman natcat ile dinlememi başlatıyorum nc -lvnp 1234

http://10.0.2.19/wp-content/themes/twentyfourteen/404.php uzantısını alıp tarayıcıma yapıştırıyorum. Bu shell kodumu yazdığım sayfanın uzantısıdır.

13. Artık shell' i aldık.

Kararlı interaktif shell için python kodumu yazıyorum

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
python3 -c "import pty;pty.spawn('/bin/bash')" kodunu kullanarak kararlı shell' i elde ediyorum.

14. O zaman 2. bayrağı aramaya başlayalım.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
home dizininin altında robot kullanıcısının içine gidiyorum ve password.raw-md5 diye bir dosyanın içini okuduğum zaman şifreli olarak robotun şifresini içeriyor.

15. Google' a hashcrack diye aratıyorum ve bu hash' li şifremi bulduğum siteye yapıştırıyorum.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Burada kullandığım site: https://crackstation.net/
Ve şifrem de abcdefghijklmnopqrstuvwxyz

16. Artık robot kullanıcısı yetkisine çıkalım

Bunun için su robot diyorum ve şifre olarak da abcdefghijklmnopqrstuvwxyz giriyorum.

17. Artık 2.bayrağımı da alabilirim.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
İkinci bayrağımız da 822c73956184f694993bede3eb39f959

18. Şimdi root olmak için izinlerime bakayım.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
https://gtfobins.github.io/ sitesinden faydalanarak yetki yükseltme kodlarını deneyeceğim.

19. Burada nmap' in kodlarına bakınca

İlk olarak: nmap --interactive

Daha sonra da: !sh

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
Kodlarını yazınca root oluyorum.

20. Artık root dizinine gidip son bayrağımızı alabiliriz.

Ekran görüntüsüBu adımın terminal çıktısı arşivden aktarılmayı bekliyor. Yazının metni adımların tamamını anlatır.
04787ddef27c3dee1ee161b21670b4e4 root bayrağımızı da almış olduk.
Siz de Mr. Robot' u çözdüyseniz artık kendinize sızma testi uzmanı diyebilirsiniz :)

Sızma testi alanında eğitimler alarak kendinizi ya da kurum personellerinizi geliştirmek istiyorsanız bizimle iletişime geçebilirsiniz.

Diğer CTF çözümlerinde görüşmek üzere. Bizi takip etmeye devam edin…

Bu konuda destek

Yazdıklarımız iş yaparken üretilmiş notlardır. Kurumunuz için aynı işi yapabiliriz.

Uzmanla görüşün

Başlayalım

Projenizi konuşalım.

İlk görüşme bir keşif toplantısıdır, satış sunumu değil. Kurumunuzun kendi ortamında yapılacak kısa süreli bir pilot çalışma veya kavram doğrulama (PoC) ile yetkinliğimizi doğrudan değerlendirebilirsiniz.

Teklif formunu doldurun

WhatsApp