Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Yerel Ağ Sızma Testi Senaryosunda 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 Metasploit  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 metasploit  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 metasploit 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 metasploit 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 metasploit 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 Metasploit ile use auxiliary/scanner/smb/smb_ms17_010 diyerekde zafiyetin olup olmadığını test edebilirsiniz.

Artık metasploit’i açarak use exploit/windows/smb/ms17_010_eternalblue diyerek MS17-010 zafiyetini metasploit ile sömürebiliriz.

Burada gördüğünüz gibi Exploit  target kısmında sadece x64 desteklenmektedir. Burada Payload olarak windows/x64/meterpreter/reverse_tcp payloadu kullanılmıştır. windows/x64/meterpreter/bind_tcp payloadıda farklı senaryolarda işinize görecektir.

Meterpreter komut satırına düştük buradan sonra meterpreter’in 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.

C:\procdump.exe -accepteula -ma lsass.exe dump.dmp

Oluşturduğumuz lsaass.exe’nin dump.dmp  dosyasını kendi makinamıza indirerek kendi makınamızda mimikatz  ile aşağıdaki komutlar ile inceleyebiliriz.

mimikatz.exe

privilege::debug

sekurlsa::minidump dump.dmp

sekurlsa::logonPasswords

Ayrıca windows üzerinden sam ve system dosyalarını çıkartıp birleştirerek kullanıcı hashlerini elde edebiliriz. samdump2 aracı Kali Linux’ta yüklü olarak gelmektedir.

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.

Metasploit’i açtıktan sonra use exploit/windows/smb/psexec  diyerek  metasploit  ile giriş yapabilmekteyiz. Fakat başta söylediğim gibi bazı durumlarda güvenlik ürünleri tarafından tespit edilip kesilmektedir. Bunun için PsExec’e alternatif olarak Python’ın  impacket modülünde  bulunan  smbexec.py  işimizi görmektedir.

Windows bir makinadan hash ile hedef makinaya bağlanmak için Windows Credentiol Editor (WCE)  ile bağlanılabilir.

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 hash’ine rastlamanız olası. Bu yetkide kullanıcılara ulaşabilirseniz DC makinalarıda artık elinizde demektedir. MS17-010 zafiyeti metasploit 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. Fuzzbunch’i ç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.

Fuzzbunch-Debian Kurulum Komutları:

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. Metasploit 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 fuzzbunch’in 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 DLL’i 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. Empire kurulum ve kullanımı adlı  yazıma buradan ulaşabilirsiniz.

Bir başka yazıda görüşmek üzere.

About Ahmet Gürel

Cyber Security Researcher | Penetration Tester

Follow Me