Basic Pentesting: 1 Writeup

İşe zafiyetli makinemizin ip adresini bulmakla başlayalım. Bunun için netdiscover aracını kullanacağız. Ama kullanmadan önce kendi ip adresimi öğrenelim. “ifconfig” komutu ile ip adresimizi ve netmask‘ımızı öğreniyoruz.

ifconfig

netdiscover aracının temel syntax’ı netdiscover -i kullandığınız_interface -r range şeklindedir.
netdiscover -i eth0 -r 192.168.170.0/24 komutu ile ayakta olan cihazları görüntülüyoruz.

netdiscover

Hedef ip adresimiz karşımızda. Makine üzerindeki açık olan servisleri ve versiyonlarını öğrenmek için nmap taraması yapalım.

nmap taraması

nmap -sS -sV -Pn -O -n -p0- 192.168.170.144” buradaki parametreleri anlatacak olursak;
-sS parametresi ile SYN taraması gerçekleştirdik.
-sV parametresi ile servislerin versiyon bilgilerini görüntülemek istedik.
-Pn parametresi ile ping atmadan tarama yapmasını istedik.
-O parametresi ile işletim sistemi hakkında bilgi vermesini istedik.
-n parametresi ile dns çözümlemesi yapmamasını söyledik.
-p0- parametresi ile tüm portları taramasını istedik.
isterseniz -v parametresi ekleyerek daha fazla bilgi görüntüleyebilirsiniz.
Nmap sonucunda 21,22 ve 80. portların açık olduğunu ve versiyon bilgilerini elde etmiş olduk.

searcsploit

21 portta çalışan ftp servisi ile işe başlayalım. İnternette araştırmalarımız sonucunda proftpd 1.3.3c versiyonunda kod çalıştırma zafiyetinin olduğunu görüyoruz. Exploit, metasploitin içinde mevcut. Hemen metasploite geçelim. “search proftpd” komutu ile exploiti arayalım.

proftpd

Aramamız sonucunda “use exploit/unix/ftp/proftpd_133c_backdoor” komutu ile exploitimizi seçmiş olduk. “show options” komutu ile bizden istediği parametrelere bakıyoruz. RHOST ve RPORT parametrelerini istiyor. “set RHOST 192.168.170.144” komutu ile RHOST parametremizi tanımladık. Ftp servisi varsayılan olarak 21 nolu portta çalıştığı için RPORT parametremizi değiştirmiyoruz. Gerekli ayarlamaları yaptıktan sonra “exploit” komutunu çalıştırıyoruz.

exploit proftpd

Resimde görüldüğü üzere shell’e düştük. Hemen “id” komutu ile hangi yetki ile giriş yaptığımıza bakıyoruz. Ve bingo root olarak giriş yapmış durumdayız. Bu kısma bir not düşelim hangi servisi sömürerek erişim elde etmiş isek yetkimiz de exploit ettiğimiz servisin hakları kadardır.
Şimdi ise 80 nolu porta bakalım. nikto ile tarama yapalım. “nikto -h 192.168.170.144” komutu ile taramamızı başlatalım. Çıkan sonuçta “secret” adlı bir dizin olduğunu tespit ettik.

nikto

Tarayıcıyı açıp 192.168.170.144/secret dizinini ziyaret ettiğimizde karşımıza bir wordpress blog sayfası geldi. Aklımıza gelen ilk şey wpscan adlı aracı kullanarak sistemi taramak. Dizinleri listelerken vtcsec’e yönlendiği gördük.
echo “192.168.170.144 vtcsec” >> /etc/hosts
komutu ile hosts dosyamızda ip adresine karşılık vtcsec’i tanımlamış olduk.

wordpress

“wpscan –url 192.168.170.144/secret –enumerate u “ komutu ile daha detaylı bilgilere sahip olmak istiyoruz. Tarama sonucunda bize sitenin kullandığı versiyon sürümü, teması ve bulduğu güvenlik zafiyetlerini bildiriyor. “–enumerate u” komutu ile de kullanıcılar hakkında bilgi edinmek istiyoruz.

wpscan

Sonuçlara baktığımızda “admin” kullanıcı adının kullanıldığını söylüyor. Hemen deneyelim. Bir kullanıcı adı var ve wordpress sitelerinde varsayılan olarak admin giriş paneline wp-admin dizin yolundan giriş yapılıyor.

Username: admin Password: admin deniyoruz 🙂 Panele giriş yapmış olduk böylece.

wp panel

Bu aşamadan sonra siteye shell atıp erişim elde edebiliriz. bu işlemi manuel’de yapabiliriz ya da Metasploit içerisinde var olan bir modül ile de kolaylıkla yapabiliriz.
“use exploit/unix/webapp/wp_admin_shell_upload” komutu ile exploitimizi seçiyoruz.
ardından “show options” komutu ile gerekli ayarları görüntülüyoruz. Bizde PASSWORD, RHOST, USERNAME ve TARGETURI parametrelerini istiyor.
“set PASSWORD admin”
“set USERNAME admin”
“set RHOST 192.168.170.144”
“set TARGETURI secret”
ile gerekli parametreleri verdikten sonra “exploit” komutunu çalıştırıyoruz.

wp exploit

Meterpreter oturumunu elde etmiş olduk. “getuid” ile www-data ile giriş yapmış olduğumuzu gördük. Amacımız root haklarına erişmek. shell’e düşüyoruz. interaktif shell almak için;
python -c ‘import pty;pty.spawn(“/bin/bash”)’ komutunu giriyoruz.

wp config

WordPress sistemlerde config ayarları wp-config.php adlı dosyada tutuluyor. Öncelikle bu dosyamıza bir göz atalım. db_user ve db_password bilgileri elde etmiş olduk. Bu bilgiler ile root kullanıcısına ssh bağlantısı yapmayı deniyoruz fakat erişim sağlayamıyoruz. Bu bilgileri not alıp yolumuza devam edelim.

passwd

passwd’yı okuyalım “cat /etc/passwd” komutu ile okuyoruz. “marlinspike” adlı bir kullanıcı var o kullanıcıya geçmeye çalışalım. “su marlinspike” komutu ile giriş yapmayı deniyoruz. Bizden parola istiyor parolaya’da marlinspike deniyoruz. Giriş yaptık. Ardından “sudo su” komutunu çalıştırıyoruz parolaya marlinspike deniyoruz ve root haklarına erişmiş bulunmaktayız.

meterpreter shell

Aslında Deneme yanılma yöntemiyle, kullanıcının username ile aynı passwordu kullanmasından dolayı root haklarına erişebildik. “sudo su” komutu ile root yetkisi kazanmamızın nedeni ise /etc/sudoers dosyasındaki ayarlamadan dolayıydı.

Aşağıdaki adresten sanal makineyı indirebilirsiniz.

https://www.vulnhub.com/entry/basic-pentesting-1,216/

Bir başka makine çözümünde görüşmek üzere…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir