Capture the Flag Mobile @ HackInBo 2018 Spring Edition

Platea HackInBo

Per la decima edizione di HackInBo ho realizzato la mia prima Capture the Flag dedicata al pubblico presente in sala e concepita per essere risolta esclusivamente da cellulare senza l’ausilio di alcun tools e/o computer; sfruttando logica e conoscenza. Una CTF decisamente più semplice rispetto a quella realizzata dai ragazzi di Hacktivesecurity per l’accesso ai laboratori del giorno successivo.

Flags

La CTF era composta da 5 flags:

  1. La prima bandiera era nascosta all’interno di un basilare commento HTML della pagina di login del “HackInBo Router”. Decodificata la stringa in base64 si visualizzavano alcune piccole “regole” da rispettare e il target successivo: kevinmitnick.html
  2. Per ottenere la seconda bandiera bisognava dehashare tre hash MD5 inseriti nel tag ALT dell’immagine di Kevin, ottenendo così il nuovo target: linustorvalds.html
  3. Il terzo target conteneva una disequazione da risolvere nascosta tramite uno style ccs. Risolta la disequazione si ottengono due risultati reali (1 e 2), sommati tra loro fornivano il successivo target: three.html
  4. Il quarto target richiede il nome del cantante della canzone “Three is a magic number”, ovvero: bobdorough.html
  5. Nel quinto e ultimo target viene richiesto il nome di una struttura dati in grado di definire le caratteristiche di un dispositivo video, ovvero: edid.html

La quinta e ultima flags è stata la più impegnativa, il protocollo EDID è decisamente poco conosciuto.

Il codice sorgente della CTF è pubblico e disponibile su GitHub.

Hardware

Raspberry CFT

La CTF è stata realizzata creando una rete WiFi aperta con SSID “HackInBo_NotFreeWiFi” tramite un Raspberry Pi collegato ad una antenna Wireless Alfa Networks!

Il Raspberry é stato configurato partendo dalla guida ufficiale e dalla guida di Andrew Michael Smith, ma apportando alcune modifiche ai file di configurazione che riepilogo di seguito:

/etc/dhcpcd.conf (appendo alla fine del file)


interface wlan0
static ip_address=192.168.4.1/24
nohook wpa_supplicant

/etc/dnsmasq.conf (sostituisco integralmente il file)

log-facility=/var/log/dnsmasq.log
address=/#/192.168.4.1
interface=wlan0
dhcp-range=192.168.4.2,192.168.4.254,255.255.255.0,30m
no-resolv
log-queries

/etc/hostapd/hostapd.conf (sostituisco integralmente il file)

interface=wlan0
driver=nl80211
ssid=HackInBo_NotFreeWiFi
channel=6

Per risolvere un problema di conflitto con wpa_supplicant in fase di avvio tramite uno script bash killo tale processo e avviavo il Fake AP.

sleep 30
sudo systemctl stop hostapd
sleep 5
sudo killall wpa_supplicant
sudo systemctl start hostapd 

Vincitori

Alle 13:30 il @JBZTeam ha risolto per primo il CTF, confermandosi ancora una volta un team molto affermato in questo stile di competizioni! Successivamente è arrivata al traguardo anche la squadra di Secure Network!

Marco e Francesco di JBZ hanno così vinto qualche gadget dell’evento e due Yubikey 4! Di spessore sottolineare che i due vincitori hanno 16 anni! ?

Alle 18 quando ho spento il CTF nessun altro ha risolto le cinque flags, con complessivamente 388 Mac Address univoci connessi al Fake AP!

Epicfail

Ho fatto un errore, ho lasciato la directory “.git” esposta. Il CTF era rivolto a dispositivi mobile e da tali dispositivi non è semplice automatizzare una procedura di Dump/Extract di una repository GIT ma con un computer è decisamente facile.

Questo ha permesso al JBZ di risalire al file txt contenente i vincitori, e si sono giustamente divertiti 😉

Avevo previsto una regola nel file .htaccess per proteggere tale directory e avevo scelto Apache anziché NGINX per velocizzare la configurazione del Web Server…ma ho sbagliato comunque qualcosa. Sopratutto a non fare un check-up finale.

Questo episodio mi ricorda ancora una volta il perché i PT andrebbero fatti sugli ambienti di produzione e non di sviluppo…mea culpa!

Conclusioni

Questa CTF è piaciuta nonostante sia stata pensata e sviluppata in meno di una settimana, preparatevi perché con buone probabilità si ripeterà alla prossima edizione! E se avete consigli e/o critiche sono ben accette 😉

0 0 votes
Article Rating
Subscribe
Notificami
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
più votati
più nuovi più vecchi
Inline Feedbacks
View all comments