Zafiyetli Sistemlerde Exploit Süreci
Karşımızdaki Hedef sistem “Windows 7 x64” versiyonuna sahip, snmp üzerinden bilgi toplayarak hedef sistemi nasıl ele geçirebiliriz bu konuya değinceğiz.
İlk olarak hedef sistemde port taraması yapılır, bunun için nmap yazılımı kullanılır ve şu parametreler ile “nmap –sS (-sS parametresini anlamı, Syn taraması yapılacagı anlamına gelir.)” şeklinde tarama yapılır.
Portlardan görüldüğü gibi 3.parti bir yazılımın servisi görünmüyor bunun için snmp enumeration yöntemini kullanarak hedef sistemdeki çalışan process’ler üzerinden sistemi ele geçirmeye çalışacagız. Bunun için “snmp-check” tools’unu kullanacagız, konsola “snmp-check” yazarak nasıl kullanıldıgı hakkında bilgi alabiliriz.Görüldüğü gibi birçok bilgi elde ettik snmp servisi sayesinde, “Software Compents ve Running Process” kısmına baktıgımız zaman “Achat v0.150” adında bir uygulamanın çalıştıgını görmekteyiz.
Çalışan yazılım hakkında bir zafiyet varmı bunu google üzerinden search edelim.
Görüldüğü gibi exploit-db’de iki tane farklı platformda exploit bulunmaktadır. Birisi metasploite uygun diğer ise konsoldan çalıştırılan python exploitdir. Biz “Achat 0.150 beta7 – Buffer Overflow-Exploit Database“ sekmesine giriş yapıyoruz ve download ediyoruz.
Bir sonraki adımda ise exploitin bulunduğu dizine girilir ve “nano ” şeklinde açılır. Görüldüğü gibi exploitin kaynak kodları burada bulunmaktadır fakat exploit işlemini şuanki hali ile yaparsak bize herhangi bir reverse_shell dönmeyecektir. Şuan üzerinde bulunan shellcode’a göre calc.exe’yi çalıştıracagını ve zzzzz şeklinde chat bölümüne yazdırılacağı belirtiliyor, bunun için shellcode’u değiştireceğiz. “#msfvenom” yazan kısmı full seçiyoruz ve CMD=calc.exe yazan kısmı siliyoruz ve –p paramteresinden sonraki windows_exec payload’ını siliyoruz ve windows/shell_reverse_tcp kendi payload’ımızı tanımlıyoruz, ardından ise LHOST=<Dinleme Yapılacak port> LPORT=<İSTEĞE BAĞLI BİR PORT ATANIR> şeklinde değiştirilir ve yeni bir konsol ekranı açıp kodları çalıştırıyoruz, bunu yapma sebebimiz ise bize reverse_shell ile ilgili shellcode vermesidir.
Görüldüğü gibi yeni bir shellcode üretti “payloadsize : 774 bytes” kısmından itibaren bütün kısmı aşağı doğru seçiyoruz ve kopyalıyoruz. Kopyaladıktan sonra exploitimizi tekrar konsol üzerinden leafpad ile açıyoruz ve shellcode’ları değişitime işlemini gerçekleştiriyoruz ve kayıt ederek çıkış sağlıyoruz.
Şimdi ise netcat ile payload’da belirtmiş olduğumuz portu dinlemeye alıyoruz. Konsol üzerinden “nc –lvp 4444” şeklinde dinleme işlemi başlatılır. Parametreler “-l <dinleme yapılacağı anlamına gelmektedir.> ” “-p<port belirtilir> ”.
Son olarak exploiti nano ile açarak hedef sistemin ıp adresi girilir ve kayt edilir çıkılır ve “python exploit.py” şeklinde çalıştırılır.
Ve dinleme yapılan porta gelen reverse bağlantı, içerideki uygulamanın zafiyetinden faydalanarak bellek taşırma saldırısı yapılarak işletim sistemi ele geçirilmiştir.
Makalemin sonuna geldik, umarım faydalı bir makale olmuştur. Bir sonraki makalemde görüşme dileği ile.