HTML

Az élet kódjai

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

Friss topikok

  • legyen úgy: Szia, Értem és köszönöm a válaszodat! T. (2025.02.24. 18:23) Expose CTF
  • 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

Expose CTF

2025.02.23. 16:44 Travis.CG

Ez egy nagyon megkavart CTF volt, sok csapdával és kerülő utakkal. Először a szokásos felderítést végeztem. Első lépésként csak egy gyors keresés, hogy legyen min gondolkodni, amíg a teljes keresés lefut.

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

Mindkét keresés ugyan azt az eredményt adta.

21/tcp open ftp
22/tcp open ssh
53/tcp open domain
1337/tcp open waste
1883/tcp open mqtt

Mi a fene az a waste? Újabb keresés, hogy részletesebb képet kapjak.

nmap -Sv -A -p 21,22,53,1337,1883 $IP

Oké, a waste egy átverés, Apache fut rajta. Az FTP-be be lehet lépni anoním módon, de nem tartalmaz semmit. A verziószám alapján nincs ismert sebezhetősége. Az 53-as porton Bind fut. Próbálkoztam zone transferrel, de nem volt sikeres. A dig paranccsal játszottam, hátha jön valami információ, de nem kaptam semmi használhatót. Próbálgattam a mosquitto-t, de az is átverésnek tűnt. Marad a webszerver.

Először a könyvtárakat néztem át.

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://$IP:1337/

Két ígéretes könyvtárat kaptam: /admin és /phpmyadmin. Az admin oldalt felkeresve rögtön egy segítséget találtam: "Biztos, hogy jó admin-t nézel?". Rövid próbálgatás után biztos voltam, hogy rossz admint nézek :-) Tehát a phpmyadmin lesz a befutó. A verziószám szerint 4.9.5-ös verzió fut. Habár van egy SQL injection sebezhetőség ebben a verzióban, az a keresésnél használható, nem a bejelentkezésnél. Kézzel próbálgattam default jelszavakat, de egyik sem vezetett eredményre.

Elkezdtem mindent előről, de csak ugyan azokat a megoldási útvonalakat néztem meg sokadszor is. Elakadtam.

Kénytelen voltam megnézni egy leírást. A gobuster-t kellett volna máshogy futtatni. Egy nagyobb fájllal. Ez eszembe juthatott volna.

gobuster dir -u http://$IP:1337/ -w /usr/share/wordlists/dirb/big.txt

Így mindjárt meglett az /admin_101 könyvtár is. Ha BurpSuit-al megnézzük, mit ad vissza a szerver, láthatjuk, hogy a hibaüzenet mellett egy sql lekérdezés részletét is megkapjuk. Valószínűleg SQL Injection-t kell használni. A phpmyadmin-ból pedig tudjuk, hogy MySQL az adatbázis. Nézzük meg, milyen adatbázisok vannak:

sqlmap -r request.txt --level 5 --risk 3 --dbms mysql --dbs

Az egyik nagyon érdekes, mert expose a neve.

sqlmap -r request.txt --level 5 --risk 3 --dbms mysql -D expose --dump

A request.txt a BurpSuit segítségével elmentett fájl. Tartalmazza a POST paramétereket, cookie-kat, mindent. Az adatbázis tartalmaz két URL-t, egy hash-t, és az admin felhasználó jelszavát. A jelszóval nem megyünk semmire, mert az admin oldal csak statikus szöveget tartalmaz némi JavaScript-el megbolondítva.

A második URL-hez (/upload-cv00101011/index.php) nincs az adatbázisban hash, csak egy megjegyzés, hogy a z-vel kezdődő felhasználó nevével érhetjük el. Hmm, ezt majd később tudjuk használni. Az első URL tartalmaz egy MD5 hash-t, amit a hashes.com-on azonnal törhetünk. A jelszó beírása után egy limitált webshell-t kapunk. Szerencsére a HTML forrásállománya tartalmaz némi segítséget. Nevezetesen nézzük meg a file vagy read paramétereket. Rögtön kiderül, hogy fájlokat tudunk megnézni. Nézzük meg az /etc/passwd-t! Rögtön megvan a z-vel kezdődő felhasználó neve!

Mehetünk a második URL-hez. A felhasználói név beírása után egy képfeltöltéshez jutunk, ami PNG-t vag JPG-t tud feltölteni. Igen ám, de az ellenőrzés csak a böngészőben fut. Ez kikerülhető!

BurpSuit segítségével át kell írni a JavaScript-et, hogy mindig fogadja el a feltöltést, kiterjesztéstől függetlenül, majd feltöltöttem egy php reverz shellt. A HTML-be rejtett módon ott van, hol találjuk a feltöltött fájlokat. Indítsuk el a reverz shellt, és máris limitált módon ugyan, de hozzáférünk a géphez.

A z betűs felhasználó könyvtárában csak egyetlen fájlt tudunk elolvasni, ami a beszédes ssh_creds.txt nevet viseli. Nem is kell többet bajlódni a revers shell-el, mert be tudunk lépni ssh-val. Azért ez mégis csak kényelmesebb, ráadásul el tudjuk olvasni a felhasználó flag.txt-jét.

Sajnos a felhasználó nem tud sudo-zni, crontab nem tartalmaz extra bejegyzést. Viszont a nano suid bit be van állítva. Ezzel meg lehet nyitni a /root/root.txt-t. Győzelem!

3 komment

Címkék: biztonság

A bejegyzés trackback címe:

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

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.

legyen úgy 2025.02.23. 20:57:03

Szia,
Köszönöm ezt a CTF leírást is, rendszeresen olvasom őket.
Engem eléggé érdekel a téma, de nem értek hozzá (és már nem vagyok mai darab, h megtanuljam).
A kérdésem az lenne, hogy az ilyen "kihívások" megoldását, véghezvitelét nincs szándékodban esetleg videó formájában megörökíteni?
T.

Travis.CG 2025.02.24. 10:44:48

Szia! Nem gondoltam rá, mert mások sokkal jobb videóka készítenek, mint én. Csak erre a feladatra hatot találtam.

legyen úgy 2025.02.24. 18:23:38

Szia,
Értem és köszönöm a válaszodat!
T.
süti beállítások módosítása