Update: questa guida è della vecchia versione dell’OSCP. Può essere seguita ma ci sono alcuni argomenti che mancano, come l’Active Directory. Il syllabus aggiornato lo trovate a questo indirizzo.
Qualche giorno fa ho superato con successo l’esame dell’Offensive Security, riuscendo ad ottenere la certificazione OSCP! Negli scorsi articoli, in cui accennavo al fatto che la stessi preparando, ho ricevuto parecchie mail in cui mi si chiedevano consigli per la preparazione, vediamo di riassumerli nel seguente articolo.
La certificazione OSCP è una delle più riconosciute certificazioni in ambito Penetration Test e consiste in un esame pratico di 24 ore con conseguenti 24 ore per la preparazione di un report del laboratorio effettuato.
Il laboratorio consiste in una serie di macchine da exploitare, senza l’utilizzo di tool automatici come metasploit, sqlmap o Burp Suite Pro, con il fine di ottenere i privilegi di amministrazione sulle stesse (che possono essere Windows o Linux).
Per acquistare la certificazione è obbligatorio comprare anche il laboratorio per la preparazione all’esame e il costo varia in base alla durata del laboratorio (800 dollari per 30 giorni, 1000 per 60 e cosi via).
Per prima cosa, se siete entry level, non sapete cosa sia uno scanning, un’exploit o vi viene difficile exploitare una macchina come Kioptrix, il mio consiglio è di non buttarvi subito sul laboratorio, ma iniziate a studiare in maniera autonoma le varie fasi di un Penetration Test, provate a pwnare qualche macchina di Vulnhub o Hackthebox. Il laboratorio dell’OSCP, poichè consiste in una serie di macchine virtuali da exploitare, rischierebbe di essere inutile e principalmente uno spreco di tempo. Purtroppo le videolezioni e il PDF vengono inviati lo stesso giorno d’inizio del laboratorio, quindi perdereste tempo a studiare quelle, senza mettere le mani in pasta!
Prima dell’esame tenete pronte le Virtual Machine che potrebbero servirvi, come alcune Windows nel caso vogliate testare il Buffer Overflow in locale o alcune linux con kernel diversi per la compilazione di exploit direttamente sulle vostre macchine.
La fase di enumerazione è fondamentale, sia per quanto riguarda la parte di exploitation sia per la post-exploitaton. Il mio consiglio è di crearvi degli script (come Reconnoitre, per esempio), imparare gli script di enumerazione di nmap e usarli in maniera assidua. Ad esempio, uno che avevo trovato era
service=http
port=80
ip=192.168.200.151
script=$(ls /usr/share/nmap/scripts/ | grep $service | grep -v "flood\|brute\|slowloris\|psexec\|dos" | tr '\n' ',' | sed -e "s/,$//")
nmap -sT --script=$script $ip -p$port -oN nmap$ip-$port$service.txt
nel quale, dopo aver impostato una serie di variabili, viene eseguita una scansione nmap utilizzando gli script del servizio prescelto.
Un’altra tecnica che ho trovato utile è stata quella di riassumere tutti i tool che potrebbero essere usati verso una porta durante la fase di enumerazione.
La fase di exploitation è abbastanza classica, per poter esercitarvi al meglio consiglio sempre servizi come Vulnhub o Hackthebox. Del primo ci sono una serie di macchine simili a quelle dell’OSCP (ma non limitatevi a queste):
Se ne cercate altre, potete trovarne qui.
Durante l’esame è possibile che vi capiti una macchina vulnerabile a buffer overflow e dobbiate scrivere un’exploit per pwnare la stessa. Poichè dovrebbe essere abbastanza standard, io ho preferito tenerla come ultima mettendoci circa un paio d’ore per creare lo script completo. Per la preparazione, oltre alle esercitazioni di Offensive Security, un’ottima guida è quella di Corelan. Per la preparazione, consiglio:
Nel caso abbiate bisogno di altri esercizi, basta andare su ExploitDB e cercare applicazioni vulnerabili a buffer overflow, come FreeFloat FTP Server o MiniShare 1.4.1.
È la fase che a mio parere è più critica. Dopo esser riusciti a pwnare una macchina dovete riuscire ad ottenere i privilegi di amministrazione e potreste ritrovarvi ad enumerare decine di applicazioni, connessioni e centinaia di file in giro per il sistema. Per automatizzare il processo di sono moltissimi script online, ad esempio:
Un laboratorio che ho trovato utilissimo è Windows / Linux Local Privilege Escalation Workshop, il quale consiste in una serie di esercizi per effettuare post-exploitation (probabilmente farò un articolo basato su quello).
Il mio consiglio è di procedere per passi, iniziando dagli script automatici, studiarli e successivamente enumerare il sistema in maniera manuale. Anche qui, degli appunti possono salvare ore preziose!
Poichè dopo le 24 ore di laboratorio è obbligatorio scrivere un report professionale per descrivere i vari passi che sono stati messi in atto. Ricordatevi che non avendo più accesso al laboratorio, non potrete più ottenere screenshot per la stesura del report. Quindi durante l’esame scrivetevi tutti i comandi che avete usate e fate screenshot ogni piccolo traguardo ottenuto, altrimenti non potrete provare quello che avete fatto nell’esame. Una cosa che ho trovato molto utile è la registrazione dello schermo durante tutta la durata dell’esame. In questo modo, se per caso vi siete dimenticati qualcosa, basterò riguardare il filmato e fare lo screenshot direttamente da li!
Il primo articolo che ho scritto in questo sito è stato a Marzo 2016, ed è circa il periodo nel quale ho iniziato ad appassionarmi di Sicurezza Informatica. Sono passati tre anni, e l’OSCP è stato sempre un sogno che avevo nel cassetto, sperare di arrivare al livello in cui sono ora, e dopo poco più di un centinaio di articoli, posso dire di avercela finalmente fatta :D
Per chi volesse ho caricato delle note che ho scritto durante la preparazione, potete trovarle a questo indirizzo: https://github.com/mrtouch93/OSCPNotes
Per i più pazienti, la prima risorsa che ovviamente consiglierei è questo sito, seguendo tutte le varie guide ce la potreste sicuramente fare! Per chi preferisce guardare altrove, ecco alcuni siti che mi hanno aiutato negli ultimi mesi:
Happy hacking!