Hacker Journal

4 4 !

-

gli occhi: è su昀케ciente provare a cliccare due volte sull’icona del昀椀le V D WV W perch si avvii il browser e mostri una pagina praticamen­te priva di qualsiasi contenuto. 2 meglio, che pu apparire tale a un esame sommario: ma osservando­la con la giusta attenzione, possiamo notare l’inconfondi­bile icona mostrata tipicament­e dai browser quando non riescono ad accedere a un’immagine linkata.

Trattandos­i di pagina HTML, disponiamo per fortuna di un metodo immediato per indagare sulle cause di questa strana visualizza­zione: esaminare il codice. Dal browser, clicchiamo con il tasto destro in un punto qualsiasi della pagina e selezionia­mo, dal menu che comparirà, la voce Vie page source. In questo modo possiamo accedere al codice della pagina che, tuttavia, in questo caso non è esattament­e di facile comprensio­ne: piuttosto che basarsi come sarebbe stato lecito aspettarsi su tag

Metasploit­able3 è pensata per un uso addestrati­vo, al 昀椀ne di consentire ai penetratio­n tester in erba di migliorare le proprie skill. A tal riguardo, costituisc­e un importante upgrade rispetto alla sorella maggiore (Metasploit­able2), introducen­do novità di rilievo come il ricorso a:

:indo s,

che consente di ampliare la nostra esperienza (sin qui formatasi esclusivam­ente in ambiente GNU/Linux, essendo Metasploit­able2 una VM basata su una distro Linux) alla trattazion­e di vulnerabil­ità e di problemati­che di sicurezza peculiari di quello che è uno dei sistemi operativi pi di昀昀usi in ambito desktop e server;

appositi 昀椀le utilizzati nei contest T) per simboleggi­are quegli asset aziendali obiettivo tanto degli attaccanti che dei penetratio­n tester (i quali, a dimostrazi­one del lavoro svolto e dell’eventuale esistenza di una o pi vulnerabil­ità in grado di compromett­ere la sicurezza della

lag,

HTML facilmente interpreta­bili, il contenuto della pagina è affidato a del codice - D D6F SW piuttosto oscuro.

M

4uella di affidare parte del contenuto della pagina a funzioni ava6cript adeguatame­nte offuscate, in effetti è una tecnica abbastanza comune. Lo stesso Web offre innumerevo­li esempi di pagine scritte proprio in ava6cript, o

• rete testata, ne marcano / segnalano la presenza nel report昀椀na­le);

Tecniche aggiuntive (come l’o昀昀uscamen­to, l’utilizzo di contenuti embedded nei 昀椀le...) a protezione delle 昀氀ag, per rendere pi realistico l’accesso alle carte, simulando quanto avviene nel mondo reale (in cui le informazio­ni pi importanti sono generalmen­te protette da misure di sicurezza aggiuntive);

Approccio di tipo in cui al pari di quanto avviene in molte piattaform­e per aspiranti pentester la VM ci o昀昀re la possibilit­à di s昀椀dare noi stessi (e magari gli amici) nella ricerca del “mazzo di carte” nascosto al suo interno, che costituisc­e il formato speci昀椀co con cui gli sviluppato­ri di Metasploit­able3 hanno voluto rappresent­are le 昀氀ag da catturare (mettendoci letteralme­nte la faccia, giacch ogni carta è dedicata a uno di loro).

gami昀椀cati­on,

in un qualsiasi linguaggio server side in grado di ricevere in input codice “comprensib­ile” (o quantomeno comprensib­ile dal suo creatore) e restituire in output un insieme di istruzioni ava6cript che pu apparire quasi “magico”, perch pur riuscendo a replicare W W il funzioname­nto del codice di partenza risulta del tutto incomprens­ibile a un qualsiasi lettore umano “sano di mente”.

Per fortuna, è vero anche il contrario: accanto a questi

“offuscator­i”, sono sorti con altrettant­a velocità una serie di siti “deoffuscat­ori”, in grado ( se le cose girano nel verso giusto, ovvero se il codice è stato reso “opaco” attraverso tecniche e pattern riconoscib­ili) di togliere il velo di disordine introdotto per nascondere i meccanismi di funzioname­nto di un codice ben realizzato. Possiamo rendercene conto con una rapida ricerca: se accediamo al nostro motore di ricerca preferito, e inseriamo come chiave di ricerca le parolearol­e “- D D6F SW VFDW VFDW ” oppure “- D D6F SW

limitati a un esame decisament­e superficia­le, affidandoc­i a quella che, purtroppo, si è rivelata un’intuizione errata in merito alle modalità di offuscamen­to del codice.

Apriamo nuovamente la pagina e proviamo a dare un’occhiata pi approfondi­ta utilizzand­o gli strumenti per sviluppato­ri: dal browser, selezionia­mo il pulsante per accedere al menu, scegliamo la voce More tools e, infine, :eb e eloper 7ools. In questo modo avremo accesso a una rappresent­azione della pagina pi “interattiv­a”, da cui è possibile non solo leggere il sorgente della pagina, ma anche individuar­e a quale porzione di codice sia imputabile la visualizza­zione di un certo elemento.

Ma non è tutto: il sorgente non è lo stesso a cui siamo abituati. Il codice ava6cript “illeggibil­e” è stato infatti eseguito all’interno del contesto del browser, e quello che viene visualizza­to nella schermata dei “ S 7 V” è il suo output, ben pi comprensib­ile del codice di partenza. Le tante righe di così difficile interpreta­zione hanno infatti prodotto un “semplice” tag J, ovvero quell’elemento delle pagine HTML pensato per il caricament­o e la visualizza­zione delle immagini: in altre parole, l’esecuzione dello script si limita (o almeno dovrebbe limitarsi) a inserire un’immagine nella pagina, sebbene il browser come ci avvisa mirabilmen­te l’interfacci­a dei tools non riesca a caricarla correttame­nte.

In realtà il link dell’immagine (per intenderci quello che segue l’attributo src del tag img) si presenta in maniera quanto meno singolare: oltre a essere lunghissim­o decisament­e troppo ha un aspetto che a un occhio esperto sembra decisament­e familiare. Prima di scendere a conclusion­i che potrebbero

sembrare affrettate, tuttavia, è opportuna una verifica pi approfondi­ta: provvediam­o quindi a salvare il codice HTML del tag, in modo da poterlo esaminare (e manipolare) con maggiore comodità. Dalla schermata degli strumenti per sviluppato­ri poniamo il mouse sul tag LP , quindi clicchiamo con il tasto destro del mouse e selezionia­mo le voci WHU 7 / . Terminata questa operazione, apriamo un editor di testo (Mousepad la scelta di default di Kali andrà benissimo) e incolliamo il tutto al suo interno (abbiate pazienza, potrebbe volerci un pochino...), quindi salviamo il file con il nome tagBimg.txt.

Diamo un’occhiata alle dimensioni del file appena creato con il comando di shell:

#

ls

-lh

tag_img.txt

stiamo parlando di quasi 800 KB, una dimensione adatta piuttosto che a un link a un’immagine vera e propria. (saminiamo con maggiore attenzione allora questo link: possiamo esaminarlo nella sua interezza con il comando less:

#

ma l’output, vista la mole di caratteri visualizza­ti, potrebbe apparire decisament­e poco chiaro. (videnziamo­ne, piuttosto, l’inizio e la 昀椀ne (porzioni ampiamente su昀케cienti per i nostri scopi), con i comandi:

#

e#

less

head tail

tag_img.txt

-c -c

300 300

tag_img.txt tag_img.txt

L’output di questi comandi non vi sembra in qualche modo familiare? (saminiamol­o con attenzione: i caratteri utilizzati nel “link” sono esclusivam­ente quelli alfanumeri­ci (ovvero le lettere maiuscole e minuscole, nonch le cifre decimali) con l’aggiunta dei simboli ’ e / ’. ( questa caratteris­tica viene mantenuta anche se estendiamo la nostra analisi a una porzione maggiore del file WDJ J W W (provarerov­are per credere, è sufficient­e ampliare il numero che segue l’opzione F’ dei comandi KHD e/o WDLO). Non pu certo trattarsi di una coincidenz­a: piuttosto, siamo di fronte a una codifica apposita.

6tiamo parlando della celebre codi昀椀ca DVH , de昀椀nita nel documento R) 4648 e che utilizza, per la rappresent­azione dei dati in formato A6 II, proprio il set di caratteri che abbiamo riscontrat­o nel “link”. Per chi non la conoscesse a fondo, è su昀케ciente sapere che si tratta di una codi昀椀ca decisament­e matura, nata per consentire la conservazi­one e il trasferime­nto di dati in ambienti (come ad esempio il World Wide Web, o i sistemi di posta elettronic­a basati su protocollo 6MTP e P2P) in cui questi sono rappresent­ati in formato testuale, piuttosto che binario. Una codi昀椀ca che, tra l’altro, si presta particolar­mente bene anche per integrare (se preferite, rendere “embedded”) un 昀椀le (o un’immagine…) all’interno di una pagina HTML: esattament­e quanto a questo punto della nostra indagine sembrerebb­e essere avvenuto nella pagina V D WV W

M

In altri termini, se la nostra ipotesi dovesse essere corretta, allora quello che sin qui abbiamo considerat­o un semplice link alla carta “sette di cuori” sarebbe, in realtà, la rappresent­azione in Base64 dell’intera immagine: il che ci consentire­bbe di spiegare tra l’altro le dimensioni (quasi 800 KB, ricordate?) del 昀椀le WDJ

J W W al cui interno abbiamo inserito il tag LP .

Non è di昀케cile veri昀椀care la correttezz­a delle nostre congetture: è su昀케ciente ricorrere al comando base64, in grado di e昀昀ettuare la codi昀椀ca e la decodi昀椀ca di un 昀椀le in Base64 e che troviamo già disponibil­e in Kali al pari della stragrande maggioranz­a delle distribuzi­oni GNU/Linux.

L’utilizzo del comando per la decodi昀椀ca richiede l’utilizzo del 昀氀ag ed è decisament­e semplice:

#

cat

tag_img.txt

|

base64

-d

sebbene, al momento, restituisc­a l’errore “D S W”, chiarament­e dovuto alla presenza in aggiunta del codice Base64 del tag LP . Andiamo ora a rimuovere il tag dal file, del comando VH :

# cat tag_img.txt | sed src=”//g’ > link.txt

‘s/

• sostituisc­e l’unica occorrenza del tag LP VUF con una stringa vuota, di fatto rimuovendo­la; salva in OL W W il contenuto del file così modificato.

Possiamo verificare il buon esito dell’operazione andando a esaminare i primi caratteri del nuovo file, mediante ricorso a comando KHD :

#

head

link.txt

-c

100

Prima di invocare il comando DVH , dobbiamo occuparci anche della chiusura del tag. Per la rimozione possiamo ricorrere a VH , con il comando:

# cat link.txt base64.txt

|

sed

‘s/”>//g’

>

il cui risultato viene salvato DV W W ed è quindi veri昀椀cabi­le con la seguente sintassi:

# tail base64.txt -c 100

CC ! C K

A questo punto possiamo procedere con la conversion­e base64:

# cat base64.txt 7dicuori.png

|

base64

-d da >

6e avviamo 7K DU ( il file manager utilizzato da Kali) e clicchiamo sull’immagine LF UL , finalmente potremo avere la soddisfazi­one di osservare la nostra carta: ecco a voi il 7 di cuori in tutto suo splendore il

 ?? ?? li strumenti per sviluppato­ri presenti ormai nella quasi totalit   dei browser moderni consentono di e昀昀ettuare delle analisi appro  ondite delle pagine   eb.
li strumenti per sviluppato­ri presenti ormai nella quasi totalit dei browser moderni consentono di e昀昀ettuare delle analisi appro ondite delle pagine eb.
 ?? ?? a stringa contenuta all’interno dell’attributo src sembra proprio una codi昀椀ca Base64. E l’assenza del padding - tradiziona­lmente costituito dal simbolo ‘=’ - può portare a valutazion­i errate. Bisogna considerar­e che non tutte le versioni di Base64 (tra cui quella de昀椀nita con il documento RFC 4648) ne ritengono mandatorio l’utilizzo.
a stringa contenuta all’interno dell’attributo src sembra proprio una codi昀椀ca Base64. E l’assenza del padding - tradiziona­lmente costituito dal simbolo ‘=’ - può portare a valutazion­i errate. Bisogna considerar­e che non tutte le versioni di Base64 (tra cui quella de昀椀nita con il documento RFC 4648) ne ritengono mandatorio l’utilizzo.
 ?? ?? Perché la decodi昀椀ca con il comando base64 possa operare correttame­nte è necessario che il 昀椀le tag_img.txt non contenga esclusivam­ente la codi昀椀ca in Base64 dell’immagine.
Perché la decodi昀椀ca con il comando base64 possa operare correttame­nte è necessario che il 昀椀le tag_img.txt non contenga esclusivam­ente la codi昀椀ca in Base64 dell’immagine.
 ?? ?? iamo giunti al momento pi   desiderato di questa puntata:昀椀nalmente stiamo decodi昀椀ca­ndo l’immagine...
iamo giunti al momento pi desiderato di questa puntata:昀椀nalmente stiamo decodi昀椀ca­ndo l’immagine...
 ?? ?? 1  7.8:1      4G        4        4.  .1        .    :47.
1 7.8:1 4G 4 4. .1 . :47.

Newspapers in Italian

Newspapers from Italy