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

Madness CTF

2024.05.05. 22:25 Travis.CG

Akkor közkívánatra jöjjön egy újabb CTF. Ez nem volt kimondottan nehéz, de nagyon megbonyolították.

Először csak egy felületes port scannert futtattam, hogy gyorsan lássam a lényeget. Két port volt csak nyitva, egy ssh és egy web, mindkettő a megszokott helyen.

A web esetén nem voltak könnyen megtalálható könyvtárak, a weboldal is csak az alapértelmezett Apache oldal volt. Vagy mégsem? A bal felső sarokban nem töltődött be a kép! Az URL érvényes volt, könnyedén le is lehetett tölteni, de egyetlen program sem volt képes megnyitni.

A file parancs szerint csak bináris adat volt. Megnéztem hex editorral is. Az első byte-ok szerint PNG kép, de a PicoCTF-ek között rengeteg PNG alapú feladatot oldottam meg, és egyértelmű volt, hogy a fájl további része nem PNG. Ott ugyanis van IHDR, IDAT is, itt meg nem volt.

Itt megakadtam, mert nem ismertem fel a fájlt. Egyetlen furcsa string volt csak benne: *56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz

Jobb híján beírtam a kacsába, mire megmondta, hogy JPG formátum. Ahá! Nos, a JPG-et annyira nem ismerem, ezért a Wikipédia segítségével próbáltam beírni a szükséges bájtokat, hogy érvényes legyen a fejléc. Valamit viszont mindig elrontottam, mert soha nem akart megjelenni a kép.

Végül vettem egy másik JPG fájlt, és átmásoltam az első 15 byte-ot. A kép olvashatóvá vált, egy titkos könyvtár neve volt benne. A könyvtárat megnyitva csak egy minimális HTML volt, ahol arra kértek, hogy találjuk ki a számot, ami 0 és 99 közötti. De nem volt input mező. Akkor hova írjam be a számot?

Akkor biztos GET-es paraméterekkel lehet. A változó bizonyára a secret lesz, mert a kérdés is arra vonatkozott. Tettem pár próbát, és tényleg az volt. Ha próbálgatni kell weboldalakat, akkor a Burp Suit szokott lenni a bevett eszköz, de nekem nem volt kedvem elindítani, inkább egy egysoros shell szkriptet rittyentettem:

for i in `seq 0 99`; do wget -O $i.html 'http://'$IP'/xxxxxx/?secret='$i ; done

Ahol az xxxxx a titkos könyvtár neve. Volt száz html fájlom. A méretük alapján az egyik nagyobb volt, mint a többi, bizonyára, mert abban plusz információ van. A tippem helyes volt. Volt benne egy jelszó. De mihez? Biztos nem az ssh-hoz, mert nem volt felhasználói nevem.

Visszamentem a képhez, és megnéztem, hogy rejtettek-e el valamit benne. A steghide kérte a passphrase-t, beadtam neki a jelszót. Bingó! Egy kis szövegfájlt kaptam. Ebben volt a felhasználó név. Furcsa volt, hogy a felhasználó név nem értelmes szó, de végül is ez a Madness, nem?

Megpróbáltam ssh-zni, de nem ment. Mi lehet rossz, a felhasználó név, vagy a jelszó? A hint azt mondta, hogy a felhasználó neve ROT13-al kódolt. A KiberSzakács segítségével már értelmes lett a felhasználó név, de ssh-zni továbbra sem tudtam. Úgy tűnik van még egy jelszó valahol.

Ehhez viszont nem találtam semmi nyomot a szerveren. Mindent átnéztem tüzetesen, de sehol nem volt. Kénytelen voltam segítséget kérni. Kiderült, hogy tényleg nem a szerveren volt az infó, hanem a THM weboldalán, a feladat kiírása mellett volt egy kép. Na, abban a képben rejtették el az információt. Csakhogy ahhoz is kellett passphrase! És természetesen a korábban megtalált jelszó nem működött.

Ekkor ráeresztettem a stegseek-et, ami végigpróbálgat egy csomó lehetőséget. Az ki tudta csomagolni. Abban volt az ssh jelszó. Utána már könnyedén be tudtam lépni a gépre, és az első flag-et meg is találtam a felhasználó könyvtárában. Már csak a rootolás volt vissza.

Sudo nem volt, crontab üres. Gondoltam keresek valami suid programot.

find / -perm -u=s

A /bin könyvtárban volt egy screen és egy screen.old program. Hmm, a screen normális esetben a /usr/bin-ben lenne. A screen és a screen.old ráadásul ugyan az volt. Biztos ezt kell használni, elég egyértelműen jelezték. Kicsit gyanús is volt, hogy ilyen könnyen rátaláltam.

Próbálgattam, de nem jutottam semmire. Végül megnéztem, van-e ismert exploit rá:

searchsploit screen

Micsoda véletlen, pont ehhez a verzióhoz van egy eszkalációs leírás! A leírás szerint ha log-ot mentünk a screen-ből, akkor az egy root jogosultságú szöveges fájlt kapunk eredményül. Az exploit annyit csinál, hogy felépít egy szkriptet a log-ból, ami root tulajdonságú lesz, majd elindítja. Lefuttattam, és kaptam egy root shell-t. Ezzel megvolt az utolsó flag is.

Szólj hozzá!

Címkék: biztonság

A bejegyzés trackback címe:

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

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