WalkThrough Challenges HackTheZone

Acum o lună v-am anunțat cu entuziasm ca vom fi prezenți la prima ediție HackTheZone.

Hackout.ro susține acest proiect deoarece este realizat de niște oameni foarte pasionați, care promit atât o conferință menită să dezvăluie tainele unor Ethical Hackers cât și o premieră în România: primul concurs de tip capture the flag jucat live pe străzile Bucureștiului.

Până la deschiderea evenimentului, echipa HackTheZone a realizat două demo-uri, menite să pregătească doritorii și să ofere o mostră a challenge-ului pe care echipa HackTheZone îl va lansa în luna octombrie.

Noi am rezolvat aceste challenge-uri și dorim să explicăm pașii efectuați tuturor pasionaților, sperăm astfel că abordarea și metodele noastre vor ajuta participanții și în cadrul competiției.

Primul challenge

Challenge-ul HackTheZone#1 a început în data de 8 Iunie la ora 09:15, concurenților le-a fost furnizat o arhivă RAR cu ajutorul unei platforme de file sharing.

Conținutul arhivei a fost compus dintr-un fișier .txt și o arhivă RAR parolată.

Fișierul .txt a conținut coordonatele GPS pentru parola arhivei.

Odată ajunși la coordonatele GPS, concurenții au putut  să observe lipit sub un panou publicitar un afiș cu o parole în Braille.

Decodarea parolei din Braille a fost puțin tricky deoarece al 6-lea punct indica faptul că următorul caracter este majusculă, după câteva încercări a rezultat parola HckTheZonBraille

După dezarhivare a rezultat un fișier de tip .DOCX, la prima vedere fișierul nu conține ceva surprinzător.

Pentru a merge mai departe este nevoie de ceva cunoștinte de forensics, fișierele .DOCX sunt de fapt arhive așa ca redenumim extensia fișierului în .RAR, facem ceva browsing în arhivă și reușim să găsim în folderul /media două imagini, ceea ce este puțin curios deoarece în fișierul .DOCX aveam o singură imagine.

Mai departe am extras imaginea a doua și am transferat-o în mașina virtuală pentru analiză.

În prima fază nu am reușit să extragem ceva neobișnuit folosind binwalk.

Bazăndu-ne pe conștințele noastre de forensics știm ca cea mai ușoara metoda pentru a ascunde informații într-o imagine este cu ajutorul steganografiei așa că încercăm și aceasta cale.

Flag-ul se extrage fără parolă dar este în binar așa că trebuie să îl convertim în clear text cu ajutorul unui convertor online și în felul acesta obținem flag-ul.

Al doilea challenge

Challenge-ul HackTheZone#2 a început pe data de 21 Iulie la ora 10:00, concurenților le-a fost furnizat un email cu ajutorul unei platforme de file sharing și regulile flag-ului.

Conținutul email-ului a fost următorul:

La prima vedere email-ul nu furnizează detalii despre o anumită țintă așa că vă trebui să vizualizăm headerele email-ului.

În headerele email-ului putem vedea ceva ce indică faptul că email-ul nu a fost trimis de pe serverul Protonmail ci de pe un alt server, blindspot.club, vom merge mai departe pe acest fir. La accesarea site-ului primim următorul răspuns:

Lansam câteva tool-uri menite sa gaseasca vulnerabilități pentru site:

  • Dirbuster

  • Nikto

Între timp, până ce tool-urile termină scanările vom încerca credențialele default admin/admin și altele până ce vom reuși să ne logam cu blindspot/blindspot. Acest pas este unul mai mult intuitiv decât tehnic.

De aici începem să cautam vulnerabilități pentru platformă. După un search pe net găsim următoarele vulnerabilități ale platformei SeedDMS:

Pentru testarea vulnerabilităților vom face o selecție pe baza scorului astfel încât un scor mai mare ne va oferi  probabilități mai mari de reușită, prima vulnerabilitate încercată este CVE-2019-12744.

Cu puțin succes găsim un blog care ne arată cum să exploatăm vulnerabilitatea:

Pentru exploatare avem nevoie de un Webshell, îl găsim pe Github.

Urcăm Webshell-ul în sistem.

Încercăm să îl executam cu ajutorul instrucțiunilor de pe blog dar primim eroare 404:

Așa că ne întoarcem pe blog și observăm un detaliu foarte important. Trebuie sa cunoaștem path-ul unde platforma încarcă fișierele pentru a putea accesa webshell-ul tocmai încărcat.

Totodată primim și un hint de la staff-ul HTZ pe canalul official de Slack, https://hackthezone.com/slack

De aici tragem concluzia că trebuie să facem fuzzing cu ajutorul unui wordlist format din numere prin aplicația Wfuzz astfel încât să descoperim calea de executare a Webshell-ului.

Din păcate nu reușim să găsim un wordlist format din numere așa că trebuie să generam unul cu ajutorul aplicației Crunch:

Reîncercăm Wfuzz și astfel descoperim directoarele 21 ,23 și 24.

Folosim directorul 24 în URL și reușim să găsim Webshell-ul.

Din indicațiile echipei HTZ, flag-ul poate fi găsit pe home folderul userului din sistem așa că ne punem pe treabă.

Verificăm userii din sistem și identificam userul blindspot:

Încercăm să afișam fișierele din home folder dar nu reușim.

Încercăm și cu parametrul de afișare a fișierelor ascunse și reușim să găsim fișierul flag.txt.

Citim fișierul flag.txt și din descrierea HTZ ne dăm seama că flag-ul este codat în limbajul de programare esoteric Brainfuck.

Căutam un decoder online pentru Brainfuck și reusim să scoatem flag-ul.

Așteptăm cu nerabdare să vedem ce challenge-uri demo vor lansa cei din staff-ul HTZ până în ziua competiției  12-13 Octombrie 2019.