Bu yazıda TryHackMe platformundaki FowSniff CTF’ini (Vip Abonelere özel) çözeceğiz. Öncelikle nmap taraması gerçekleştiriyoruz:
nmap -sV -sS 10.10.252.155
22,80,110,143 portlarında sırasıyla ssh http pop3 ve imap servislerinin çalıştığını öğrendik. 80 portunun http ile çalıştığını görünce adresi tarayıcıya yazdık.
Çıkan sayfanın kaynak kodunda ilgi çekici bir şey farketmedik ve sıradan bir sayfa olduğunu gördük. Dirb ve benzeri araçlardan da bir şey çıkmadı. Daha sonra sayfaya geri döndüğümüzde bir twitter hesabı farkediyoruz.
Hesapta sabitlenmiş bir pastebin linki bulduk ve açtığımızda şirketin bazı parolalarının ifşa edildiği bir text ile karşılaştık.
Hashlerden birini hash analyzer ile analiz edince md5 ile şifrelendiklerini öğrendik
ve hashcracker ile çözülmüş hallerini bulduk.
ssh ile kullanıcıları bu parolalarla bağlamayı denedik ama hiçbiri bağlanmadı. Daha sonra pop3 ve imap protokollerini ve zafiyetlerini araştırınca metasploit’teki pop3 login tarayıcısı ile diğer seçenek de hydra kullanarak dictionary attack (sözlük saldırısı) yaparak kullanıcı adı ve parolayı öğrenebileceğimizi gördük. Şimdi iki yöntemi de kullanarak giriş bilgilerini elde edeceğiz. Baştan belirteyim bu kısımda hydra kullanmak bizi sonuca daha hızlı götürecektir.
Hydra ile Dictionary Attack
Saldırıya başlamadan önce bulduğumuz kullanıcı adlarını ve parolaları saldırı aşamasında wordlist olarak kullanabilmek için masaüstüne kaydettik.
hydra -L /home/fatih/Desktop/fowsniff_users.txt -P /home/fatih/Desktop/fowsniff_pass.txt pop3://10.10.252.155
-L kullanıcı adı wordlist’ini vermek için kullandığımız parametre
-P parola wordlist’ini vermek için kullandığımız parametre
komutu ile kullanıcı adını “seina” parolayı “scoobydoo2” olarak bulduk.
Metasploit ile Dictionary Attack
msfconsole ile metasploiti çalıştırdıktan sonra
search:name pop3
komutu ile isim taraması yapıyoruz.
use auxiliary/scanner/pop3/pop3_login
komutu ile seçimimizi yaptık ve show options ile vermemiz gereken ayarlara baktık. Gereken ayarlara yine masaüstünde oluşturduğumuz wordlist’leri verdikten sonra run ile çalıştırıyoruz.
Bu yöntemi kullanarak da kullanıcı adını “seina” parolayı “scoobydoo2” bulduk.
Şimdi pop3 mail sunucusuna bağlanmak için bu kullanıcı adını ve parolayı kullanacağız. telnet yardımıyla bu bağlantıyı gerçekleştireceğiz.
telnet 10.10.252.155 110
USER seina ile kullanıcı adını
PASS scoobydoo2 ile parolayı yazarak giriş yaptık
LIST komutu ile mesajları listeledik ve karşımıza 2 mesaj çıktı.
2 mesajı da RETR komutuyla açıyoruz.
“S1ck3nBluff+secureshell” parolasını kullanarak sunucuya ssh bağlantısı yapılabildiği söylenmiş.
hydra aracıyla önceden hazırladığımız kullanıcı adı wordlisti ve bu parolayı kullanarak ssh bağlantısı için dictionary attack (sözlük saldırısı) yaptık.
ve kullanıcı adını “baksteen” olarak bulduk.
Artık ssh bağlantımızı “Baksteen:S1ck3nBluff” kullanarak sağlayabiliriz.
ssh baksteen@10.10.21.160
komutu ve ardından parolayı girerek bağlantıyı yaptık.
Dosyalar arasında gezindik bulduğumuz birkaç txt dosyasını cat ile okuduk ancak ilginç bir şey fark etmedik.
uname komutunu -a parametresi ile kullanarak sistem hakkında bütün bilgileri öğreniyoruz.
yeni bir terminal açıp
searchsploit ile 4.4.0-116 sürümünü aradık ve local privilege escalation (yerel yetki yükseltme?) zafiyeti için c ile yazılmış bir exploit bulduk.
searchsploit 4.4.0-116
gcc komutuyla yüklü olup olmadığını kontrol ettik ve yüklü olmadığını gördük.
Bu yüzden direkt hedef makinede çalıştırmak yerine önce kendi makinemizde çalıştırıp sonra exploiti hedef makineye aktaracağız. Hedef makinede çalıştırabilmek için önce baksteen kullanıcısının olduğu grubu ve grubun erişebildiği dosyaları bulacağız.
Grubumuzu groups komutuyla “users” olarak öğrendik.
find / -group users 2>/dev/null
komutu ile users grubunun erişebildiği/çalıştırabildiği dosyaları aradık ve /opt/cube/cube.sh scripti ile karşılaştık.
cat komutu ile okuduğumuzda ekrana yazı yazan bir script olduğunu gördük.
Bulduğumuz exploiti cube.sh’ı değiştirerek makine içinde kullanacağız. Yeni bir terminal açtıktan sonra
gcc /usr/share/exploitdb/exploits/Linux/local/44298.c -o cube.sh
komutu ile çalıştırıp
ccp cube.sh baksteen@10.10.48.161:/opt/cube
komutu ile hedef makinenin /opt/cube dizinine gönderip erişim sağlayabildiğimiz cube.sh’ın içeriğini çalıştırdığımız exploit ile değiştirdik.
tekrar ssh bağlantısı yaptığımız terminale döndük ve /opt/cube dizinine girdik.
./cube.sh çalıştırıyoruz ve root erişimini elde ediyoruz.
Son olarak /root dizinine gidip bayrağımızı kapıyoruz. Bir sonraki CTF’te görüşmek üzere 🙂