HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

  • sdani: Sajnos nekem is hasonló érzéseim vannak az R kiszorulásával kapcsolatban. Remélem jobban fogja tar... (2024.04.29. 10:48) R meetup
  • sdani: Nagyon jók ezek a bejegyzések! Feszültséggel teli, fordulatos, mint egy jobb krimi. :D Abba ne hag... (2024.04.29. 10:35) Wgel CTF
  • sdani: @Travis.CG: Egy kis szerencse sosem árt. :D (2024.03.01. 13:19) A bioinformatika helyzete 2024-ben
  • Travis.CG: Szóval az akadémiai szféra mazochistává tett, amit a Pinephone-al élek ki? Hmm, érdekes összefüggé... (2023.10.05. 18:23) Új barátom az Informatikai titkárságról
  • Travis.CG: Túl nagy a hype körülötte, ezért túlzó elvárások vannak vele szembe. Ha a korábbi chatbotokhoz kép... (2023.02.28. 06:28) chatGPT, a bioinformatikus

Hacker vs Hacker CTF

2024.07.28. 11:57 Travis.CG

A hollywood-i filmekből ismerős lehet a következő helyzet: Az éjszaka közepén egy elsötétített szobában napszemüveges csávó hekkel ezerrel, amikor rájön, hogy másvalaki is hekkeli a rendszert. És akkor nagyon nyomogatják a billentyűket, hogy megtudják, ki a jobb.

Ezt a helyzetet igyekszik visszaadni a következő CTF. A sztori szerint egy hekker már bent van a rendszerben, nekünk a hekkelt rendszert kell felhekkelni.

Először tároljuk az IP címet a $IP változóba, majd szokás szerint végignézzük, milyen nyitott portok vannak:

nmap -sS -Pn --top-ports 100 $IP

SSH és web. Semmi rendkívüli. Az oldal alján rögtön van egy fájl feltöltési lehetőség, de bármivel is próbálkoztam, semmit nem lehet feltölteni. Az oldal forráskódja szerint a feltöltött tartalmak a /cvs könyvtárban vannak, de az nem listázható. Végigfuttattam rajta egy könyvtár keresést gobusterrel, de semmit nem találtam.

Az uploads.php-nek kellene végezni a feltöltést, kommentben ott van az eredeti szkript forráskódja, ami még a hekker támadás előtt működött. A forráskód elemzéséből az látszik, hogy a szkript csak azt nézte, hogy a fájlnévben legyen egy .pdf, de azt nem, hogy az a végén legyen. A hekker biztos feltöltött valamit, ami .pdf.php-re végződött, majd módosította a szkriptet, hogy mi már ne tudjunk belépni.

Lehet, hogy a szkript, amit használt még mindig ott van? Kipróbáltam a revshell.pdf.php-t, de az nem működött. de a shell.pdf.php válaszolt! Valami GET-es paraméter kell neki. A legnyilvánvalóbb jelölt a cmd. Kipróbáltam és ez is működött! Most már lehet egyszerű parancsokat futtatni a gépen. A /home könyvtárban meg is lehet nézni a felhasználó user.txt fájlját, mai az első feladat!

Oké, eddig jó, de be kellene lépni. A felhasználó .bash_history fájlját is meg tudjuk nézni, amiben szerencsére benne van, hogy mire módosította a jelszót a hekker. Szuper! Ha belépünk ssh-val, akkor kb. 3 másodperc múlva egy nope üzenet kíséretében kidob. A hekker valami csapdát rejtett el!

Ha még egyszer megnézzük a shell.pdf.php-vel a .bash_history-t, akkor látjuk, hogy még a jelszó változtatás előtt valamit írt az /etc/cron.d/persistence fájlba. A tartalmát is megnézhetjük a php szkript segítségével. Van egy for ciklus, ami 10 másodpercenként kinyírja a /dev/pts-t használó folyamatokat! Tehát nem tudunk pseudoterminált létrehozni!

Azért nincs minden veszve! Az ssh így is tud parancsokat futtatni. Például:

ssh $user@$IP /bin/bash

És máris van egy stabil shell. Nem a legjobb, de legalább nem dob ki minket. Most legalább van idő körülnézni. Bár egy csomó dolgot kipróbáltam, a megoldás végig a szemem előtt volt, már a /etc/cron.d/persistence fájl első megtekintésénél. A legfontosabb, hogy a PATH változóban a felhasználó bin könyvtára van a legelső helyen! Tehát a pseudoterminált kinyíró pkill parancsot ki tudjuk cseréni saját szkriptre, mert ez az egyetlen, amit nem abszolút elérhetőséggel adtak meg! A felhasználó bin könyvtárában lévő pkill root jogokkal fog futni!

Mivel elég limitáltak a fájl szerkesztési feltételek, ezért a saját gépen hoztam létre a fájlt, majd scp-vel felmásoltam. Itt még bénáztam egy sort, mert először nc-vel akartam létrehozni a reverz shellt, csakhogy a gépen lévő verzió egy őskövület volt, ami nem ismert egy csomó kapcsolót, végül a python verziót használtam innen.

De ez még nem elég, mert a pkill csak az utolsó parancs, ami lefut. Ismét kapcsolódni kell ssh-val, de a /bin/bash parancs nélkül, hogy a rendszer eljusson a pkill parancsig. Amikor megpróbálja kinyírni a terminált, helyette elindít egy root shell-t.

Utána már írhatja a képernyőre, hogy nope, ahányszor csak akarja, engem nem zavar. A root.txt olvasható.

Csak, hogy hűek maradjunk a hollywood-i klisékhez, még beírhatjuk:

wall "Mess with the best, die like the rest."

Szólj hozzá!

Címkék: biztonság

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr8518446337

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása