Mod 1: Program Misuse
Privilege escalation
bho, roba su suid :D !!!!SE QUALCUNO HA VOGLIA DI FARE GLI APPUNTI PER BENE FACCIA PURE!!!!
Materiale aggiuntivo
OBBLIGATORIO: nessuna persona sulla faccia della terra può identificarsi come sistemista UNIX senza aver visto questo video.
Per chiunque non conosca abbastanza bene l’ambiente UNIX, consiglio di partire capendo il funzionamento della shell, cosa come e quando manipola l’input.
(imho di fondamentale importanza è la seconda parte della lezione del 16/03/21, ma anche le altre su BASH non si buttano)
Cyberchef è un tool per manipolare facilmente dati offuscati. Imparatelo ad usare che torna utile in fretta.
Vim è utile. Lo troverete ovunque ed è in generale comodo per manipolare file di testo velocemente. Guardatevi questo talk che spiega il concetto fondamentale, ovvero come vim sia un linguaggio turing completo, e non un semplice editor di testo con una serie di scorciatoie come tutti gli altri.
Challenges
Opinioni generali
Imho queste challenge hanno poco senso, data una conoscenza abbastanza approfondita dei tool standard UNIX e della shell. Alcuni sono simpatici rompicapo, altri troppo facili per valerne la pena. Consiglio di farne un campione tra quelle che non sembrano ovvie, giusto per entrare nell’ottica giusta.
babysuid 1-9
Presente il bit SUID settato (con owner root) per i seguenti binari (che in un modo o nell’altro stampano su stdout il contenuto di un file) I binari utilizzati sono i seguenti:
cat
more
less
tail
head
sort
vim
emacs
nano
babysuid 10-16
Qui verrà stampata la flag in stdout da tool che ne modificano il formato, sempre usando il sed SUID su binari con owner root. La difficoltà aggiuntiva consiste nel ricavare il plaintext dai formati mostrari. I binari utilizzati sono i seguenti:
rev
od
(stampa in ottali)hd
(hexdump)xxd
base32
base64
split
(da man: “split a file into pieces”)
babysuid 17-23
Stessa roba, a sto giro vengono utilizzati binari per creare/estrarre archivi. I binari utilizzati sono i seguenti:
gzip
bzip2
zip
tar
ar
cpio
genisoimage
babysuid 24-32
Qui inizi ad utilizzare binari (sempre con SUID root) non esplicitamente creati per leggere file. I binari utilizzati sono i seguenti:
env
find
make
nice
timeout
stdbuf
setarch
watch
socat
babysuid 33-36
Queste dicono di richiede un po’ di programmazione, si tratta sempre di tool standard unix che riescono a leggere file da disco. I binari utilizzati sono i seguenti:
whiptail
awk
sed
ed
- THE STANDARD UNIX EDITOR
babysuid 37-40
Qui iniziamo ad utilizzare SUID per modificare i permessi del fs, invece di leggere direttamente la flag. I binari utilizzati sono i seguenti:
chown
chmod
cp
mv
babysuid 41-44
SUID su interpreti di lang general purpose. I binari utilizzati sono i seguenti:
perl
python
ruby
bash
babysuid 45-50
Queste riguardano binari non banalmente esploitabili per leggere il contenuto della flag. Richiedono un po’ di fantasia. I binari utilizzati sono i seguenti:
date
dmesg
wc
gcc
as
(portable gnu assembler)wget
ssh-keygen