[Pillola] Controllare quando è stato riavviato Windows

Spesso è utile sapere in che momento è stato riavviato un sistema operativo Windows , che sia un server o un sistema desktop. E’ possibile conoscere l’esatto momento in cui è avvenuto il riavvio guardando tra gli eventi di Windows.

Spesso è utile sapere in che momento è stato riavviato un sistema operativo Windows , che sia un server o un sistema desktop. E’ possibile conoscere l’esatto momento in cui è avvenuto il riavvio guardando tra gli eventi di Windows:

  1. (Windows Vista/7/8) Aprire Administrative Tools -> Event Viewer.
  2. (Windows 10) Cercare Events usando la barra di ricerca di sistema.
  3. Andare alla voce Windows Logs e selezionare System.
  4. Per sapere quando il sistema è stato spento, filtrare gli eventi in base al codice ID 6006. In realtà l’evento indica la chiusura del servizio “event log”, un servizio che viene chiuso poco prima dello shutdown effettivo del sistema.
  5. Per sapere invece quando il sistema è stato avviato, filtrare gli eventi secondo il codice ID 6005 (avvio del servizio “event log”).

Event log

roghan

[News] Computer a rischio in tutto il mondo: infettato CCleaner

L’applicazione CCleaner di Avast, strumento per ottimizzare e ripulire i computer più popolare al mondo, è stato infettato da un malware nelle versioni scaricate o aggiornate tra il 15 agosto e il 12 settembre.

L’applicazione CCleaner di Avast, strumento per ottimizzare e ripulire i computer più popolare al mondo, è stato infettato da un malware nelle versioni scaricate o aggiornate tra il 15 agosto 2017 e il 12 settembre 2017. [continua a leggere]

adnkronos.com

[Articolo] Facciamo un tuffo nel dark-web: cosa c’è oltre il tunnel?

Parliamo oggi di dark-web, quella parte poco conosciuta e usata del web, che spesso viene citata in articoli, trasmissioni televisive e libri, e negli ultimi anni è sempre più in voga. Ne sono esempio serie come Mr. Robot e CSI Cyber, dove si sprecano citazioni e riferimenti più o meno veritieri.

Difficoltà articolo (0->10): 4

Requisiti: conoscenza e utilizzo di Tor.

Parliamo oggi di dark-web, quella parte poco conosciuta e usata del web, che spesso viene citata in articoli, trasmissioni televisive e libri, e negli ultimi anni è sempre più in voga. Ne sono esempio serie come Mr. Robot e CSI Cyber, dove si sprecano citazioni e riferimenti più o meno veritieri.

In questo articolo non prenderemo in analisi come ci possiamo collegare al dark-web, che cos’è Tor, quali sono le configurazioni corrette e cosa è possibile fare, ma piuttosto vedremo cosa c’è oltre questo famoso tunnel oscuro, quali informazioni possiamo trovare e come, e soprattutto se è un luogo veramente oscuro come viene descritto.

Se non siete pratici con il software Tor, rimando ad infiniti articoli presenti in rete, altrimenti ci dilunghiamo troppo ;-), ad esempio potete consultare uno dei seguenti link per approfondire l’argomento:

Detto ciò, passiamo subito all’azione, e colleghiamoci a Tor usando il relativo browser integrato. Bastano pochi secondi per stabilire la connessione, et voilà, siamo già all’interno del tunnel e ci viene dato anche il benvenuto!

Dunque, tutto carino per ora, tutto figo, ok, ma adesso cosa possiamo fare? Che cosa posso trovare davvero nel dark-web e come? Dove andiamo? Queste infatti sono le domande cruciali che tipicamente si pone chi per la prima volta si affaccia a questo nuovo mondo, perché a differenza del web classico, qui le informazioni non sono tipicamente indicizzate e la difficoltà più grande è riuscire a capire come muoversi. Sul web in chiaro, basta aprire la pagina di un motore di ricerca per sbizzarrirsi, e cercare tutto quello che desideriamo, ma qui è ben diverso.

Prima di iniziare ricordo che tutti i siti/servizi all’interno del dark-web riportano l’estensione .onion, a differenza delle canoniche it, com, …, del web classico. Ricordiamoci sempre che questi servizi (.onion appunto) non saranno visibili dal web classico (con qualche eccezione che poi vedremo :-)), mentre al contrario dall’interno di Tor sarà sempre possibile accedere al web classico.

Un buon punto di inizio all’interno della rete Tor sono i seguenti servizi (i link sono tutti attivi nel momento della stesura dell’articolo, ma cercherò di mantenere aggiornata la lista):

Passando alla pratica, prendiamo uno tra i più grandi black market, traderoute, e colleghiamoci al sito dopo esserci registrati. Facciamo attenzione che praticamente ogni black market, così come moltissimi altri servizi su Tor (forum, …), richiede una registrazione, la quale è spesso articolata in più fasi: la scelta di una password e/o di un PIN, captcha, fino ad arrivare alla richiesta di presentazione da parte di uno dei membri già attivi del servizio (in genere per siti contenenti materiale illegale, o forum di hacking). In questo modo, viene concesso l’accesso ad un servizio solo ad un utente realmente interessato a quell’argomento, o che ha dimostrato di avere un amico nella community (appunto forum).

Una volta collegati a traderoute, possiamo vedere la schermata del market, come fossimo tranquillamente su amazon o su ebay, e ogni oggetto in vendita ha associato un relativo venditore con tanto di feedback degli altri acquirenti.

Come possiamo vedere, la maggior parte del materiale è illegale, ad esempio possiamo acquistare account falsi o rubati, che con pochi euro ci restituiscono credenziali di accesso a servizi ben più costosi (es. Netflix):

Sul dark-web ogni forma di acquisto e pagamento viene fatta tramite monete virtuali (bitcoin, etherum, …) che permettono di mantenere la transazione completamente anonima.

Oltre ai black market, possiamo trovare “servizi” professionali di vario tipo, e di dubbia legalità, come ad esempio servizio hacking:

Una nota importante, e da non dimenticarsi mai, è che sul dark-web le frodi sono all’ordine del giorno, e sono molto più frequenti che sul web in chiaro, dunque dobbiamo prestare la massima attenzione a qualunque cosa facciamo. La motivazione è semplice: il grado di anonimità è tale che frodi e inganni di piccola entità resteranno con buona probabilità impuniti, e questo permette il dilagare di piccoli hacker in erba. Il motto “fidarsi è bene, ma non fidarsi è meglio” è più che azzeccato in questo caso :-).

Oltre a quello che abbiamo appena visto, non è troppo difficile reperire materiale che dovrebbe senza ombra di dubbio essere censurato, di tutto e di più. Se sul web classico padroneggia la pornografia, con numeri da capogiro in quanto a guadagni, sul dark-web troviamo la sua controparte del lato oscuro, la pedo-pornografia. A quest’ultima si affiancano siti, foto, e video di violenze, di gruppi estremisti, e tutto ciò che non può trovare posto sul web in chiaro. Cambiate canale prima di finire su pagine che “voi umani non potreste nemmeno immaginare”!

Volete un piccolo assaggio che posso pubblicare qui? Eccolo, un semplice forum Q&A, dove viene chiesto come potersi suicidare, con risposte serie e precise, come se si parlasse di argomenti scientifici e assolutamente normali. Da restare senza parole…

In definitiva cosa offre il dark-web e cosa non offre? Vediamo di trarre le nostre conclusioni:

  • per l’utente alle prime armi: niente, tranne la curiosità iniziale. Se sei in questa categoria, fatti pure un giro nel “tunnel” ma poi chiudi tutto e dimenticati della sua esistenza. Potresti finire in siti veramente pericolosi, o che non avresti voluto vedere. Potresti perdere il sonno per giorni, o potresti molto più facilmente perdere soldi con la speranza di fare qualche affare.
  • per l’utente medio: puoi trovare qualcosa di interessante, ma devi imparare a conoscere bene tutta la rete, come funzionano le criptovalute (Bitcoin, …), e come/dove è possibile fare qualche affare. Serve tempo da dedicarci, e voglia.
  • per l’utente esperto: avrai già voltato pagina e chiuso l’articolo, perché saprai già dove reperire le informazioni, e come muoverti. Sai già cosa cerchi ;-).

In definitiva, non usate Tor, a meno che non vi troviate in nazioni dove la libertà di navigazione è bloccata, e dove il dark-web può costituire non una rete dove reperire materiale illegale, ma una nuova frontiera per poter accedere al web classico, altrimenti bloccato senza l’uso di strumenti come Tor.

Il mio punto di vista…

roghan

[News] Il numero di cellulare è il nuovo obiettivo degli hacker: a rischio soldi e privacy

È boom di attacchi che prendono di mira i numeri di cellulari, sempre più spesso porta di accesso ai nostri dati: foto, account Facebook, conti correnti.

È boom di attacchi che prendono di mira i numeri di cellulari, sempre più spesso porta di accesso ai nostri dati: foto, account Facebook, conti correnti. L’esperto: ecco come avvengono i furti.

repubblica.it

[Articolo] La guida definitiva per verificare se un server Linux è stato violato e metterlo in sicurezza

Sospettiamo che il nostro server Linux sia stato violato? Abbiamo notato processi o attività strane? Vediamo in questo primo articolo come identificare un server Linux che è stato compromesso, e come cercare di ripristinare la situazione e chiudere fuori gli intrusi.

Difficoltà articolo (0->10): 8

Requisiti: conoscenza intermedia della shell di Linux, e hardening di un sistema.

Sospettiamo che il nostro server Linux sia stato violato? Abbiamo notato processi o attività strane? Vediamo in questo primo articolo come identificare un server Linux che è stato compromesso, e come cercare di ripristinare la situazione e chiudere fuori gli intrusi.

Partiamo dal presupposto che ad essere esposti a questo problema sono soprattutto i server che pubblicano servizi e applicazioni all’esterno (server web, ftp, …), e ancora più presi di mira sono i server messi a disposizioni dai principali provider del settore (Aruba, Register, OVH, …). I server di questi provider sono infatti presi di mira in modo massivo, e quotidianamente sono soggetti a tentativi di attacco su tutti i servizi e porte standard (ssh, http, …). Il motivo è semplice: ogni provider ha a disposizione determinati range di IP, dunque per un attaccante, chiunque esso sia (persona fisica o bot) è sufficiente eseguire degli scan e attacchi su questi range selezionati. Ad esempio, questi sono alcuni range che appartengono al noto OVH:

  • 142.4.192.0/19
  • 149.56.0.0/16
  • 158.69.0.0/16

Inoltre, preciso che buona norma per un server compromesso, sarebbe quello di radere tutto al suolo, reinstallato da zero sistema operativo e servizi. Questa pratica non è tuttavia sempre praticabile, poiché spesso sul server sono eseguiti applicativi fondamentali aziendali o per clienti, e la prima soluzione è invece quella di cercare di ripristinare il sistema ad uno stato consistente e sicuro.

Dunque, veniamo in dettaglio ai controlli da effettuare su un server che ipotizziamo essere stato compromesso.


1. Servizi in ascolto e porte aperte

Controlliamo i servizi attivi e le porte sui quali sono in ascolto:

# netstat -tulpn
# ss -nap

Devono indurre sospetto servizi in ascolto su porte non standard e soprattutto porte alte, tipicamente dalla 40000 in su, ad esempio:

# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
[...]
tcp 0 0 100.100.100.100:51553 0.0.0.0:* LISTEN 410/theerhd
[...]

Per controllare che non ci siano eventuali servizi nascosti usare poi il seguente tool:

# unhide-tcp
Unhide-tcp 20121229
Copyright © 2012 Yago Jesus & Patrick Gouin
License GPLv3+ : GNU GPL version 3 or later
http://www.unhide-forensics.info
Used options: use_fuser
[*]Starting TCP checking
[*]Starting UDP checking

Nel caso sopra, l’output è normale, nel senso che non sono stati rilevati servizi nascosti in ascolto, quindi possiamo stare tranquilli.


2. Processi attivi

Controlliamo tutti i processi in esecuzione:

# ps -ef

e l’albero dei processi attivi con relativi pid:

# pstree -pa

Il comando seguente, come nel punto precedente, può rilevare eventuali processi malevoli nascosti:

# unhide proc
# unhide sys
# unhide brute

Devono indurre sospetto eventuali processi con nomi strani (thweih43, lpevntw, 6oetheq, …), processi di cui non riconosciamo l’origine, o processi nascosti, come:

# unhide sys
[...]
Found HIDDEN PID: 256 Wchan: "[34ljyjil]"

3. Scansioni alla ricerca di malware

Installiamo il software rkhunter, per trovare eventuali trojan o malware in esecuzione.

Possiamo trovare una guida completa e ben fatta a questo link, perché la spiegazione di utilizzo del tool richiederebbe un intero articolo…


4. Ultimi accessi al sistema e utenti collegati

Facciamo un controllo sugli ultimi utenti che si sono collegati al sistema:

# last

e quali sono gli utenti attualmente collegati:

# who

Ovviamente, in questo caso dovrebbero far pensare eventuali connessioni di utenti non riconosciuti, oppure connessioni che sappiamo per certo non essere state fatte da noi.


5. Utenti attivi nel sistema

Controlliamo tutti gli utenti definiti all’interno del sistema:

# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
admin:x:1000:1000:,,,:/home/admin/:/bin/bash
[...]

Indice di sospetto dovrebbe essere la presenza di utenti nuovi non noti, o con nomi sospetti (come ad esempio l’utente admin nell’output precedente). Facciamo attenzione però, perché l’output del comando precedente può essere più o meno lungo, e può contenere anche molti utenti che potrebbero destare sospetti ma che in realtà sono utenti di sistema! Tipicamente, gli ultimi utenti ad essere stati creati sono aggiunti alla fine del file, quindi dobbiamo concentrarci su quelli.


6. Ultimi reboot del sistema

Controlliamo da quanto tempo è in esecuzione il server:

# uptime
 15:47:02 up 143 days, 12:07, 1 user, load average: 0,00, 0,00, 0,00

quando è stato fatto l’ultimo reboot:

# who -b
 system boot 2016-12-15 02:40

e il momento esatto di tutti gli ultimi reboot:

# last reboot
reboot system boot 2.6.15.4 Sun Apr 30 15:08 - 16:22 (01:13)
[...]

7. File modificati recentemente

Verifichiamo quali file sono stati modificati negli ultimi giorni (7-10 giorni):

find / -mtime -7

Facciamo attenzione che l’output del comando seguente potrebbe essere lungo e potrebbe impiegare tempo a essere visualizzato interamente. Eventualmente possiamo diminuire il numero di giorni, se si sospetta che l’attacco sia stato fatto da pochi giorni.


8. Analisi dei file di log

Esaminiamo i principali file di log (come sempre importantissimi), e in particolare i messaggi del kernel:

# dmesg

e gli ultimi log di sistema:

# cat /var/log/syslog

Controlliamo gli accessi falliti su SSH, soprattutto nel caso in cui il server sia esposto direttamente su Internet, verificando il file /var/log/auth.log in Debian e derivate, e /var/log/secure in Red Hat e derivate.

(Debian e derivate)
# cat /var/log/auth.log

(Red Hat e derivate)
# cat /var/log/secure

Potrebbe essere importante esaminare anche i log di eventuali servizi in ascolto, qualora presenti, tipo quelli dei server web (/var/log/apache/error.log e /var/log/apache/access.log per Apache, …).


9. Tool di auditing

Lanciamo un tool completo di auditing, come sysdig, seguendo le istruzioni di una delle seguenti guide:


10. Dump della memoria e analisi approfondita del sistema

Qualora nei punti precedenti avessimo rilevato la presenza reale di una minaccia, o di qualche intrusione, è bene approfondire l’analisi con tool specifici, come ad esempio volatility.

Possiamo trovare una guida ben fatta al seguente link:


11. Controllare cron e crontab

E’ importante controllare che non siano presenti script o comandi non noti schedulati all’interno del sistema tramite il servizio crond. Pertanto, è necessario verificare sia il file crontab, per tutti gli utenti di sistema, non solo per root, con il seguente comando:

# crontab -l

Il comando mostrerà eventuali comandi o script schedulati a giorni oppure ore particolari. Prestare dunque attenzione alla presenza di tutto ciò che non abbiamo apertamente configurato.

Analogamente, sarà necessario controllare all’interno di tutti gli altri percorsi usati dal demone crond, tra cui:

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monthly
  • /etc/cron.hourly

roghan

[aggiornamento 16/09/2020]

[Articolo] L’indirizzo IP e la Rete

Ho deciso di scrivere un post che cercherà di spiegare cos’è un indirizzo IP e quale visibilità ha un dispositivo collegato a Internet rispettivamente dietro ad un modem, un router, e un firewall.

Difficoltà articolo (0->10): 3

Requisiti: nessuno in particolare.

Ho deciso di scrivere un post che cercherà di spiegare cos’è un indirizzo IP e quale visibilità ha un computer su Internet, dopo che molte volte mi sono state rivolte domande a riguardo. Buona lettura ;-).

Ogni dispositivo collegato ad Internet (computer, palmare, cellulare, …), e più in generale a qualsiasi rete, è dotato di un proprio indirizzo che lo identifica in modo univoco. Possiamo pensare ai cellulari: ogni cellulare ha un proprio numero univoco, e quindi diverso da tutti gli altri (anche se in realtà il numero viene assegnato alla scheda sim, ma questo è un altro argomento), e questo numero ha una struttura fissa composta da 10 numeri. E’ naturale pensare che non possano esistere due cellulari diversi con lo stesso numero X, altrimenti se entrambi fossero accesi e qualcuno volesse chiamare proprio il numero X cosa succederebbe? La rete telefonica non saprebbe a quale dei due cellulari inoltrare la telefonata! Quello che succede per i cellulari può essere paragonato ai computer e a Internet. Ogni computer, al momento che si collega ad una qualunque rete (sia su Internet che all’interno di una rete locale (LAN)), deve possedere un proprio indirizzo IP, assegnato dal suo Internet Service Provider – ISP (Alice, Tele2, Tiscali, …) ed avente la forma X.X.X.X, dove ogni X può essere un qualsiasi numero da 0 a 255 (con alcune eccezioni). Esempi di indirizzi IP sono 192.168.3.45, oppure 155.123.111.13, ma anche 2.3.4.5 è un indirizzo valido.

indirizzo_ip

Per conoscere il proprio indirizzo è possibile utilizzare un comando specifico da terminale. In caso di windows è necessario aprire il prompt dei comandi e digitare:

ipconfig

e tra i dati visualizzati si potrà vedere proprio l’indirizzo IP. Ovviamente facciamo attenzione a controllare la scheda giusta, se abbiamo più schede di rete all’interno del computer, e solitamente la scheda di rete è identificata come “Ethernet Adapter”, “LAN Adapter”, “Ethernet Wireless Adapter” nel caso di una scheda wireless, ecc. Ecco un esempio (l’indirizzo IP è 192.168.1.2, assegnato appunto alla scheda “Ethernet Adapter”):

ipconfig
ipconfig su Windows

Da notare che aggiungendo l’opzione /all al comando verranno visualizzate tutte le informazioni relative alla rete (server DNS, gateway, …).

Nel caso di Linux invece il comando da digitare all’interno della shell è:

# ifconfig

(per maggiori dettagli vedere l’articolo rete in Linux).

A questo punto, possiamo provare a controllare l’IP visibile da Internet attraverso uno dei tanti siti che si trovano in giro sul web, ad esempio www.ip-adress.com. L’indirizzo visibile sul sito non corrisponde a quello della macchina? Potrebbe essere così, perché c’è il trucco :-). Come ho scritto su, è vero che ogni computer collegato ad Internet riceve un indirizzo univoco, ma solo se questo è collegato direttamente alla Rete. Molto spesso invece un computer si trova dietro ad un router, come nei sistemi casalinghi, o addirittura all’interno di una LAN più o meno complessa e comunque sempre dietro ad un router e/o firewall, come nei sistemi aziendali dove i pc sono molti. Dunque, esistono due tipi di indirizzi IP: pubblici e privati. La figura mostra un esempio tipico di connessione, dove i singoli computer (PC1, PC2, PC2) sono collegati ad Internet attraverso un router. E’ possibile osservare che ogni computer ha assegnato un indirizzo IP privato, e poi tutti sono collegati allo stesso router (passando per un hub/switch) che funge da punto di contatto tra i pc e Internet. A questo punto è naturale pensare che al router venga assegnato un indirizzo IP pubblico, essendo l’unico punto visibile sulla Rete “esterna”.

topologia_rete
Topologia di una rete

Più in generale, ogni computer o dispositivo collegato direttamente ad Internet (come utilizzando un modem, e non un router!) avrà un indirizzo pubblico, altrimenti se è posto dietro ad un router/firewall avrà un IP privato, ossia visibile solo nella rete locale. I motivi per cui viene assegnato un IP diverso ai computer che si trovano dietro ad un router sono molteplici:

  • utilizzando un router è possibile collegare ad Internet un elevato numero di computer o in più in generale dispositivi, altrimenti per ognuno servirebbe un modem diverso. Inoltre il numero di dispositivi collegati ad Internet sta aumentando sempre più, e poiché il numero totale dei possibili indirizzi IP è limitato (ricordiamo la struttura X.X.X.X, con numero massimo 255 per ogni X), un po’ come le targhe delle macchine, ai computer dietro ad un router vengono assegnati degli indirizzi privati, ossia non visibili da Internet. Ciò significa che due computer diversi, che si trovano dietro a router diversi, possono avere lo stesso indirizzo IP privato;
  • i computer collegati ad Internet attraverso un router risultano anche più protetti, in quanto solo il router risulterà visibile sul web, ma non i computer dietro ad esso e con gli indirizzi privati.

Un’altra precisazione, per chi non sapesse la differenza tra modem e router… Il modem (contrazione di modulator-demodulator) è un dispositivo che traduce i dati inviati da un solo computer in modo tale da trasmetterli sulla Rete, quindi un dispositivo un po’ stupido che esegue solamente questo compito. Quindi se avessimo 10 computer da collegare ad Internet avremmo bisogno di 10 modem. Un router invece è una sorta di “mini-computer”, che non solamente trasmette i dati a/da Internet, ma che ha in genere molte altre funzionalità, tipo quella di firewall (per la protezione dalle intrusioni esterne), di access point (per la creazione di una rete wireless), e la possibilità di collegare ad esso più computer. Quindi con un router è possibile collegare ad Internet un numero elevatissimo di dispositivi, ovviamente in base al tipo e qualità del router. Ci possono essere router casalinghi, da poche decine di euro (TP-Link, Netgear, …), o router professionali dal costo di migliaia di euro (Cisco, Juniper, …). Per maggiori approfondimenti (oltre alla consueta wikipedia):

roghan

Nuova pagina Facebook e restyling completo del sito

Sono felice di annunciare il work in progress per un restyling completo del sito, sia per quanto riguarda la grafica, contenuti e target. Ci saranno presto novità, nuove sezioni, nuovi articoli, e… stay tuned!!

Ho creato inoltre una pagina su Facebook per condividere novità e articoli del sito, e per raccogliere news sull’argomento dark web, deep web, curiosità e tips utili e poco diffuse su hacking&company.

A presto…

roghan

[Download] Confronto tra i principali protocolli di routing v2.0

Difficoltà articolo (0->10): 9

Ho aggiornato il file con le caratteristiche a confronto dei principali protocolli di routing dinamici (RIP, RIP2, IGRP, EIGRP, OSPF, IS-IS). Il file può essere scaricato nella sezione download o al seguente link:

download file excel v2.0

roghan

Facciamo qualche esercizio di pen testing su www.hackthissite.org – parte 1

Difficoltà articolo (0->10): 4

Girovagando in rete si possono trovare numerosi siti che permettono di mettere alla prova le proprie capacità e intuito di hacker. Alcuni esempi dei più famosi siti che possiamo trovare sono questi:

Ognuno contiene un certo numero di esercizi pratici di penetration testing, ma non solo, ci sono anche casi simil-reali, articoli, forum, curiosità… Nello specifico, ho scelto uno dei siti sopra elencati per studiarlo più a fondo, e in questo e nei prossimi articoli mostrerò come risolvere alcuni esercizi e casi di pen testing.

hacking

Il sito da me scelto è www.hackthissite.org, ma lo definirei più un portale che un sito web, perché al suo interno è possibile accedere ad una grande quantità di informazioni nonché è possibile parlare sul forum con appassionati dell’argomento.

Solo dopo essersi registrati (fornendo una password di accesso sufficientemente robusta, mi raccomando!!!) ed essersi autenticati, possiamo accedere al portale e a tutte le sue sezioni. Molte sono interessanti, ma non lasciamoci distrarre e concentriamo la nostra attenzione sulla sezione “Challanges”, e quindi “Basic missions”. Queste “missioni” sono semplici casi costruiti ad hoc in cui siamo messi difronte ad una pagina web con un form e contenente una o più vulnerabilità da trovare. Solo dopo aver trovato la vulnerabilità e la password nascosta, è possibile sbloccare il livello successivo.

Esaminiamo insieme i primi 5 livelli e le loro vulnerabilità. ATTENZIONE: di seguito mostrerò come risolvere ogni singolo caso, e dove/come trovare indizi e password per il livello successivo ma non indicherò mai le singole password (se proprio non riuscite ad accedere al livello successivo neanche ora scrivetemi pure in privato ;-)).

 

Livello 1

Descrizione: This level is what we call “The Idiot Test”, if you can’t complete it, don’t give up on learning all you can, but, don’t go begging to someone else for the answer, thats one way to get you hated/made fun of. Enter the password and you can continue.

Requisiti: HTML.

Questo è il livello base, e come indicato tra i requisiti è sufficiente avere una conoscenze davvero minima di HTML. Dunque basta visualizzare i sorgenti della pagina spostandosi al form di richiesta password, et voilà, il commento in verde conterrà la password in chiaro:

Level

Inseriamo perciò la password nel form reale della pagina e proseguiamo al secondo livello.

 

Livello 2

Descrizione: Network Security Sam set up a password protection script. He made it load the real password from an unencrypted text file and compare it to the password the user enters. However, he neglected to upload the password file…

Requisiti: buon senso.

Questo livello direi che è banale, e forse addirittura più semplice del precedente. Leggendo attentamente la descrizione è facile intuire quale sia la password, vedendo che il responsabile Sam si è dimenticato di inserire il file, con la password reale, utilizzato per fare il confronto. Se lo script della pagina dunque effettua il confronto con un file vuoto, la password sarà?!

 

Livello 3

Descrizione: This time Network Security Sam remembered to upload the password file, but there were deeper problems than that.

Requisiti: conoscenze base di HTML.

Ancora un livello molto facile, infatti basta leggere la descrizione per capire che anche questa volta la password è racchiusa in un file che viene utilizzato per fare il confronto nel form. Dunque, analizziamo il codice sorgente della pagina:

level3

Intuitivamente possiamo notare un campo input nascosto del form, che punta ad un file chiamato “password.php”. Puntiamo subito al file, per ottenere ciò che vogliamo e proseguire al livello dopo.

 

Livello 4

Descrizione: This time Sam hardcoded the password into the script. However, the password is long and complex, and Sam is often forgetful. So he wrote a script that would email his password to him automatically in case he forgot.

Requisiti: conoscenze di HTML e un indirizzo mail.

Siamo ancora nella fascia entry level per la difficoltà. Leggendo la descrizione, capiamo che ancora una volta la password è scritta all’interno dello script del sito, ma questa volta è codificata con qualche tipo di algoritmo. Quello che ci interessa è che la dichiarazione ci dice che esiste anche uno script che invia una mail all’amministratore Sam con la password, probabilmente in chiaro, e lo script viene richiamato dal pulsante analogo.

level4.1

Passando al codice sorgente:

level4

Possiamo vedere chiaramente che lo script utilizza un campo del form per l’invio della mail, e difatti il campo value contiene l’indirizzo di Sam a cui viene inviata la password. A questo punto per ottenere la password è sufficiente scaricare la pagina in locale, modificare il campo value con quello della propria mail, ricaricare la pagina locale, e richiedere l’invio della password con il pulsante ;-).

Riceveremo presto la mail con la password per proseguire di livello…

 

Livello 5

Descrizione: Sam has gotten wise to all the people who wrote their own forms to get the password. Rather than actually learn the password, he decided to make his email program a little more secure.

Requisiti: conoscenze di HTML, Javascript, e un indirizzo mail.

Da ora inizia a salire leggermente la difficoltà, perché Sam ha inserito nel proprio codice un controllo ulteriore per il form di richiesta password, similmente al caso precedente.

level5

Il codice sorgente della pagina è questo:

level5.1

In particolare non è sufficiente, come nel livello 4, la modifica dell’indirizzo mail manualmente ma bisogna ricorrere allo scripting lato client, cioè  Javascript. La tecnica che permette questo è chiamata Javascript Injection con la quale è possibile iniettare codice arbitrario lato client in una pagina in modo tale da indurre la pagina stessa a fare quello che desideriamo senza impattare direttamente il codice del server. L’inserimento di codice in una pagina può essere fatto istantaneamente dall’URL del browser.

In questo caso, poiché non possiamo appunto modificare l’indirizzo mail “a mano”, facciamo uso di JS Injection con questo comando:

javascript:void(document.forms[0].to.value="mail_address");

A ritroso, il comando permette di modificare il campo value, del form zero (il primo, appunto zero, è quello che ci interessa), del documento attuale. Dopo aver quindi dato il comando, premiamo il pulsante per la richiesta della password via mail… e abbiamo terminato anche questo livello e la prima parte della guida :-)!

Matteo

Nuovo dominio – Ombre sul Web

Ciao a tutti!! Finalmente dopo tanto tempo sono lieto di annunciare di aver acquistato il dominio per il blog 🙂 e adesso il sito è raggiungibile all’indirizzo ufficiale:

www.ombresulweb.it

Presto arriveranno tanti nuovi contenuti e articoli, spero interessanti per tutti ;-)!

Matteo