Ultima modifica da un moderatore:
Sembra che molti non abbiano ancora capito bene molte cose. E si leggono domande tipo:
Escludendo l'ultima... sì e no. Ma vediamo di spiegarci meglio:
è completamente inutile che venite in queste sezione a fare queste domande. Se non avete studiato (informatica, programmazione ma anche matematica, ecc.) non ci riuscirete mai! E prima di tutto dovete capire un bel po' di cose.
Intanto esiste sempre Google, Wikipedia e tutto il resto di internet (risorsa che molti utenti sembrano aver dimenticata visto che continuano a chiedere "cos'è un keylogger?", "cos'è un DDoS?".... non vi spezzate un'unghia cercando!).
Vi basta scrivere su Google "Keylogger"; oppure "Denial of Service"; ecc.
Ora, consideriamo la domanda:
La risposta è no. Cioè... allora...che ragionamento avete fatto per arrivare alla domanda? Che dalla mail e dal nome e altri dati si possa ricavare la password?!?!? Ma non vi pare assurda come cosa? non vi pare che se fosse così tutto il web sarebbe totalmente insicuro e chiunque potrebbe entrare negli account degli altri indisturbato?
Praticamente state sostenendo che se una persona ha email e nome di un altra persona, allora la password di Facebook si può trovare. Bhé, a sto punto Facebook poteva tranquillamente evitare di chiedere la password e dare direttamente l'accesso solo con l'email.
Ma vabbè... non è che sia impossibile rubare una password o ottenere l'accesso a facebook (parlo di facebook, ma la stessa cosa vale per altri siti e servizi).
Solitamente le risposte che si leggono sono qualcosa tipo:
Allora, intanto non ci vogliono settimane (umphf... sarebbe bello!). Normalmente ci vogliono... ANNI! Il brute-force è sempre L'ULTIMISSIMA risorsa dell'hacker.
Per chi non lo sapesse, il brute-forcing si tratta semplicemente di utilizzare programmi in grado di provare tutte le password possibili finché non viene trovata quella giusta.
Come aspetti positivi il brute-forcing ha la caratteristica che può essere utilizzato in qualsiasi caso e, prima o poi (appunto, solitamente, molti anni), si ottiene SICURAMENTE la password.
Una password come questa: 8Gd3Sm2B (lettere minuscole e maiuscole + numeri)
In un computer in grado di calcolare 500.000 password al secondo impiegherebbe ben 15 anni!!
Quindi è chiaro che il brute-forcing è totalmente da scartare.
C'è però una variante del brute-forcing che è un po' più utile. Si tratta del dictionary-attack. Questa tecnica si basa sull'uso di un numero limitato di parole (solitamente si prendono i dizionari di alcune lingue del mondo...non dimenticate che spesso gli utenti come password usano delle parole vere ed esistenti in qualche dizionario...perciò magari ci azzecchiamo ) e si fanno provare ad un brute-forcer (il programma che applica l'attacco di brute-force).
Per questo, ci vuole solitamente poco tempo (dipende da quanto è grande il dizionario). Solitamente bastano pochi minuti. Però, se fallisce, non possiamo farci nulla: l'utente non ha utilizzato una password presente nei nostri dizionari.
La maggior parte delle volte fallisce anche questo metodo.
Bene ora, vi chiederete dove potete trovare questi brute-forcer. bhé, se volete fare i lamer usate Google cercando "brute-forcer" oppure "brute-force attacker" o "brute-force facebook", ecc. ne trovate a sfare. Se però volete aver qualcosa di molto più "gestibile" e sopratutto capire veramente come funzionano le cose, dovete programmarvelo.
Non è assolutamente difficile (veramente, programmazione base) però prima di tutto dovete studiarvi un qualche linguaggio di programmazione (sì esatto studiare. Non c'è altro modo. Non pensate di imparare copiando codici come script-kiddies).
Risorse aggiuntive:
Brute-force attack - Wikipedia, the free encyclopedia
Visto che il brute-forcing è sempre l'ultimissima risorsa, vediamo qualche altro metodo:
Altre risposte a quelle domande che spesso leggo sono:
Allora...intanto cos'è il fake-login?
Si tratta di creare una pagina web o un'applicazione che sia in tutto e per tutto identica a quella originale. Ad esempio potete creare una pagina web del tutto identica alla home di facebook però, quando l'utente inserirà username e password, il vostro codice (la pagina ovviamente dovete averla programmata voi!) invierà a voi (ad esempio via email) i dati di login inseriti, e intanto rimanderà l'utente alla vera pagina di facebook facendogli credere che è tutto normale.
Anche per questo, se volete fare i lamer vi basta cercare per "fake-login facebook", ecc. altrimenti (ed è consigliato) dovrete programmarvela: necessariamente avrete bisogno di HTML e PHP per scrivere la pagina (in realtà il PHP non è strettamente necessario se usate le mail, ma è meglio) e poi magari qualche altro linguaggio per web (Javascript ad esempio) non guasta. Sì, ovviamente dovrete studiare.
Questo attacco può essere anche pericoloso (per la vittima ovviamente) però potrebbe accorgersene, ad esempio dal link visualizzato nel browser (che, se è una vostra pagina, non sarà di sicuro facebook.com ma sarà diverso). Può essere utile sapere che, questo dominio (facebook.com in questo caso) è quello che viene chiamato DNS (domain name system) e viene assegnato in sostituzione agli indirizzi IP. Ovvero, quando scrivete facebook.com, è come se voi scrivete l'indirizzo IP di facebook (viene infatti poi tradotto in questo). Infatti se navigate all'IP 173.252.101.16 vi si aprirà la pagina di facebook.
Come possiamo sfruttare ciò a nostro vantaggio?
Bene, consideriamo Windows
(ma questo vale anche per altri OS, cambiano solo i file): in questo OS c'è un file, ovvero C: \Windows\System32\drivers\etc\hosts.
Provate a scrivere in questo file (apritelo col notepad, e dovrete aprirlo come amministratore) questo: 127.0.0.1 facebook.com
Salvate e poi navigate a facebook.com sul vostro browser.... vedrete che la pagina non si apre! Questo perché abbiamo, con quel file, ridefinito il DNS di facebook. Abbiamo praticamente detto "quando l'utente naviga a facebook.com, traduci il DNS con l'IP 127.0.0.1". 127.0.0.1 è il vostro IP...cioè è l'IP universale che identifica sempre se stessi.
Ovvero, tentando di connettervi a facebook, vi siete connessi a voi stessi, ma visto che sulla vostra rete non c'è alcuna web-app installata, il browser non ha aperto nessuna pagina. Ritogliete quella riga dal file hosts per riaccedere a facebook.
Ora pensate se noi riuscissimo in qualche modo (ad esempio con un virus, o andando a casa della vittima come "amici" e usando il suo computer) a inserire nel file hosts una riga come quella, che però invece di contenere 127.0.0.1 come IP contiene l'IP di un nostro web-server con il fake-login... l'utente non si accorgerebbe di nulla!
A volte la risposta è:
Al 99%, a quanto ho visto, l'utente che risponde così poi non ha neanche la minima idea di cosa sia un keylogger...
Allora, qui entriamo in qualcosa di un po' più complesso, ma vedrò di spiegarvelo. Per fare un keylogger, ovviamente, dovete saper programmare in un qualche linguaggio di programmazione (e per questo dovete aver studiato).
Ma comunque io vi spiegherò come funziona un keylogger senza che voi abbiate bisogno di alcuna conoscenza di programmazione.
Allora, un keylogger, detta banalmente, è un programma (un virus) in grado di intercettare tutti i tasti premuti dall'utente sulla tastiera e di inviarli, tramite rete, all'attacker (solitamente il creatore del keylogger).
Allora, come fa un programma ad intercettare la pressione dei tasti?
Prendiamo sempre il caso del sistema operativo Windows (sotto altri OS cambia un po', ma la logica è praticamente sempre la stessa). Windows, quando voi premete un tasto, riceve dall'hardware (dalla tastiera) il messaggio "ehi! il tasto X è stato premuto!".... ok no, entriamo un po' più nel "tecnico": viene inviato dalla tastiera un codice numerico che corrisponde allo scan-code del tasto premuto e Windows lo intercetta e legge lo scan-code. Lo scan-code è un numero che identifica il tasto premuto. In questo modo Windows potrà sapere quale tasto è stato premuto.
Ora che succede? Windows ricevuto e capito qual'è il tasto premuto, guarda qual'è la finestra in primo piano (quella che ha il focus).
Al processo di questa finestra invia una sequenza di messaggi che, semplificando un po', sono sostanzialmente questi e in questo ordine:
1. WM_KEYDOWN
2. WM_CHAR
3. WM_KEYUP
(WM sta per Window Message e marca tutti quei messaggi per le finestre)
La finestra, ricevuto il messaggio WM_KEYDOWN, ne legge anche lo scan-code (che viene trasportato col messaggio) e ne fa ciò che vuole (se vuole farne qualcosa).
Poi arriva il messaggio WM_CHAR. Questo trasporta sempre un numero ma questa volta è il codice carattere ASCII o UNICODE del tasto premuto (ovvero WM_CHAR non trasporta lo scan-code del tasto, ma un codice sempre numerico che identifica la lettera che il tasto rappresenta...attenzione! rappresenta la lettera! non il tasto!).
Questo messaggio è usato solitamente dalla finestra per scrivere sullo schermo la lettera premuta (ecco perché quando premiamo un tasto, la lettera corrispondente a quel tasto ci compare davanti agli occhi).
Alla fine arriva WM_KEYUP. Questo messaggio arriva quando l'utente rilascia il tasto. Trasporta di nuovo lo scan-code e la finestra ne fa ciò che vuole.
Ora un keylogger usa una tecnica chiamata keyboard-hooking (hooking della tastiera). Questa è una tecnica per intercettare i messaggi: ovvero dice al sistema operativo: "quando viene premuto un tasto, prima di inviare il messaggio WM_KEYDOWN alla finestra con il focus, invialo a me e poi alla finestra". E Windows zitto zitto fa quello che il keylogger gli dice di fare: appena viene premuto un tasto, prima avverte il keylogger con "ehi! sto per inviare il messaggio WM_KEYDOWN con questo scan-code associato!" e poi invia il messaggio alla finestra.
Il keylogger in questo modo sa che il tasto con il tale scan-code è stato premuto. Poi fa la stessa cosa con il messaggio WM_KEYUP per sapere quando il tasto viene rilasciato (solitamente WM_CHAR viene ignorato dal keylogger, in quanto non gli interessa di disegnare il carattere del tasto premuto).
Ecco che il keylogger adesso è in grado di leggere tutto ciò che l'utente scrive da tastiera. Adesso non gli basterà che inviare (ad esempio tramite email, o meglio semplicemente tramite una connessione client<->server ad esempio tramite sockets...così diciamo che avrete tutto in tempo reale mentre l'utente digita) i dati raccolti all'attacker.
Chiaramente una volta programmato il keylogger dovrete convincere la vittima ad avviare il vostro programma. Alcuni inventano cose come "nascondere un eseguibile dentro ad un immagine".
Questo è impossibile (almeno sotto Windows) in quando Windows lavora ad estensioni: se voi salvate un eseguibile con estensione ad esempio .jpg questo non partirà più in quando Windows tratterà il file come un immagine e non come un eseguibile. E non c'è modo di farglielo eseguire.
Risorse aggiuntive:
Keystroke logging - Wikipedia, the free encyclopedia
Hooking - Wikipedia, the free encyclopedia
Vediamo una qualche tecnica un po' più... particolare questa che verrò a descrivervi non richiede (neanche per essere applicata) nessuna conoscenza informatica. Si chiama Social Engineering ed è molto semplice: convincere la vittima a fornirci i dati d'accesso Sembra banale, ma è molto potente e un bravo social engineer riesce quasi sempre a ottenere ciò che vuole.
Tra l'altro, con molta facilità, è possibile inviare email false (con indirizzi da voi inventati). Ad esempio potete inviare una mail da [email protected] con il testo che volete. Questo è facilissimo.
Quando inviate una mail utilizzate un particolare protocollo di rete chiamato SMTP (Simple Mail Transfert Protocol).
Tramite un server SMTP con open relay potete inviare mail con qualsiasi indirizzo (anche [email protected]) in quanto questi server non richiedono alcuna autenticazione.
Un esempio di questi server è out.alice.it.
Risorse aggiuntive:
Social engineering (security) - Wikipedia, the free encyclopedia
Phishing - Wikipedia, the free encyclopedia
Simple Mail Transfer Protocol - Wikipedia, the free encyclopedia
What is SMTP relay
Un'altra tecnica diciamo simile al social engineering e che non richiede alcuna conoscenza è il shoulder surfing.
Banalmente, mentre la vittima digita la sua password sulla tastiera, voi, dalle sue spalle, la osservate e leggete cosa digita semplice, no? Potete anche utilizzare particolari lenti, binocoli, telecamere a circuito chiuso, ecc.
Risorse aggiuntive:
Shoulder surfing (computer security) - Wikipedia, the free encyclopedia
Abbiamo poi una tecnica molto interessante. Mmmh... quanto di voi hanno mai sentito nominare nomi di software come "Wireshark" o, più in generale, "Sniffer"... bene, siamo solo io e un ciccione peloso e puzzolente... A parte gli scherzi, questi sniffer (categoria di software di cui fa parte anche il famoso Wireshark) sono programmi che catturano tutto il traffico su una rete LAN/WAN.
Quando voi inviate un messaggio via internet (qualsiasi esso sia, anche la password di facebook quando vi loggate a facebook) questo viene prima di tutto inviato al modem/router al quale siete connessi.
Quando il messaggio è in transito, un qualsiasi altro computer collegato alla stessa rete (ad esempio tramite Wi-Fi) può intercettarlo con uno sniffer e visualizzarlo. è una tecnica molto potente in quanto il 99% delle persone non sarebbero neanche in grado di immaginarsela!
Collegatevi ad esempio alla rete Wi-Fi di un luogo pubblico (la vostra scuola, un ristorante, una spiaggia, ecc.) e attivate uno sniffer... non avete idea di quante password si possono vedere in questo modo in pochissimo tempo Quindi attenti quando vi collegate alle reti Wi-Fi degli amici o della scuola: altri potrebbero vedere e leggere tutto quello che fate, password comprese! eheheh
Vi dirò, facendo dei test per vedere l'intelligenza delle persone, grazie ad uno sniffer nella mia scuola in 5 ore sono riuscito a prendere le password di facebook di ben 21 studenti e 1 professore! e anche la password di un account Google. Più precisamente, non mi sono messo a cercare le password (non mi interessavano). A me bastava vedere di riuscire ad ottenere l'accesso a diversi account web per vedere quanti "furbi" ci sono nella mia scuola
Per far ciò, ho preso i dati di sessione tramite una tecnica che si chiama session-hijacking.
Quando navigate su facebook (uguale per altri siti), in ogni cosa che fate, questo verificherà se avete loggato o meno. Per far ciò vengono inviate dal client un'insieme di informazioni (informazioni di sessione).
Queste informazioni possono essere catturate e, se le inviamo noi a facebook, questo crederà che siamo l'utente vero e proprio (che ha avviato la sessione) e ci darà accesso.
Ad esempio, un programma da lamer totali per fare questo con un Android è Faceniff (che usa proprio il session-hijacking).
Fate connettere i vostri amici alla vostra rete Wi-Fi e con uno sniffer potete prendergli le password. Facilissimo
Risorse aggiuntive:
Sniffing - Wikipedia
Session hijacking - Wikipedia, the free encyclopedia
Il virus ovviamente è un'altra tecnica. Un keylogger è ad esempio un virus. Un virus è un programma indesiderato. Voi potete farlo come volete e se infettate la vittima il virus farà sempre ciò che gli avete detto di fare. Perciò è un metodo che permette molte cose. Basta saperlo programmare.
C'è poi anche il cracking. Potete trovare delle falle nei siti che vi permettono di violarne il database (e quindi trovare tutte le password, anche se probabilmente criptate in MD5).
Però queste sono falle praticamente introvabili in colossi come Facebook, semmai le trovate nei siti di qualche ragazzino.
Ma per queste cose più specifiche, vi rimando al "The Black Book of Infernet" che da un'infarinatura generale di queste tecniche di web-hacking.
Ne esistono anche altre di tecniche ovviamente, ma non voglio dilungarmi troppo.
TL/DR;
Questa discussione serve per cercare di far capire agli utenti come stanno le cose: non puoi ottenere la password di un account sapendo username o email o altre cose, non puoi prendere una password di un account generico: c'è caso e caso.
Se dovete prendere la password di Facebook di un amico è semplice: ci sono vari modi, e molti di quelli che ho illustrato funzionano. Se dovete prendere la password di accesso a un qualche database della NASA, immagino che le cose si complichino molto
Evitate domande sciocche come quelle che continuate a ripetere in queste sezioni: dati di accesso si possono ottenere con le tecniche che ho illustrato, senza alcuna magia! Mago Merlino vi aiuta poco in queste situazioni.
Ricordate inoltre che c'è sempre una differenza tra lamer e hacker:
Il lamer, utilizza software di altri, copia codici, e segue tutorial banalissimi per cercare di ottenere dati di accesso a qualcosa e di solito far danni.
Non sa nulla di informatica e non capisce che, magari, utilizzando un certo software di cui non conosce assolutamente il funzionamento, potrebbe poi, il giorno dopo, trovarsi gli sbirri sotto casa.
L'hacker invece sa sempre cosa sta facendo. I software se li scrive lui (o se ne usa di fatti, sa benissimo cosa fanno e come funzionano). Sa quali rischi corre e sa come difendersi. Solitamente non lo fa per fare danni ma per cercare falle in alcuni sistemi e avvertire poi gli amministratori dell'esistenza di queste oppure lo fa solo sotto pagamento.
Il vero pericolo della società di oggi è il lamer, non solo per gli altri ma anche per se stesso.
E' doveroso ricordare che tutto ciò che qui ho descritto è illegale. Ad esempio, per dei cyber-crimini come infettare dei computer con un virus, la legge italiana prevede sanzioni anche fino a 30.000€ o la carcerazione fino a 24 mesi! Attenzione a ciò che fate!
Spero di non rivedere altre domande come "come rubo password Facebook?" o ancora "come posso spiare un account di Whatsapp?"
La risposta fondamentale è, diciamo, studia: informatica, programmazione, matematica, crittografia, ecc... Dipende da caso a caso: non c'è un modo univoco per rubare delle password.
Ma in ogni caso, se non avete studiato, non ci riuscirete mai. Se fate i lamer, rischiate grosso!
Saluti,
Speed
Posso entrare nell'account di facebook di una persona conoscendo solo email e nome ecc.?
è possibile entrare in un computer di un altro e vedere tutto quello che fa?
Come si fa a bucare un sito web o entrare come amministratore supremo massimo?
Si può inviare una bomba all'idrogeno sulla Luna premendo solo il tasto invio?
Escludendo l'ultima... sì e no. Ma vediamo di spiegarci meglio:
è completamente inutile che venite in queste sezione a fare queste domande. Se non avete studiato (informatica, programmazione ma anche matematica, ecc.) non ci riuscirete mai! E prima di tutto dovete capire un bel po' di cose.
Intanto esiste sempre Google, Wikipedia e tutto il resto di internet (risorsa che molti utenti sembrano aver dimenticata visto che continuano a chiedere "cos'è un keylogger?", "cos'è un DDoS?".... non vi spezzate un'unghia cercando!).
Vi basta scrivere su Google "Keylogger"; oppure "Denial of Service"; ecc.
Ora, consideriamo la domanda:
Posso entrare nell'account di facebook di una persona conoscendo solo email e nome ecc.?
La risposta è no. Cioè... allora...che ragionamento avete fatto per arrivare alla domanda? Che dalla mail e dal nome e altri dati si possa ricavare la password?!?!? Ma non vi pare assurda come cosa? non vi pare che se fosse così tutto il web sarebbe totalmente insicuro e chiunque potrebbe entrare negli account degli altri indisturbato?
Praticamente state sostenendo che se una persona ha email e nome di un altra persona, allora la password di Facebook si può trovare. Bhé, a sto punto Facebook poteva tranquillamente evitare di chiedere la password e dare direttamente l'accesso solo con l'email.
Ma vabbè... non è che sia impossibile rubare una password o ottenere l'accesso a facebook (parlo di facebook, ma la stessa cosa vale per altri siti e servizi).
Solitamente le risposte che si leggono sono qualcosa tipo:
Dovresti utilizzare un attacco brute-force. Ma ti ci vorrebbero settimane per trovare la password
Allora, intanto non ci vogliono settimane (umphf... sarebbe bello!). Normalmente ci vogliono... ANNI! Il brute-force è sempre L'ULTIMISSIMA risorsa dell'hacker.
Per chi non lo sapesse, il brute-forcing si tratta semplicemente di utilizzare programmi in grado di provare tutte le password possibili finché non viene trovata quella giusta.
Come aspetti positivi il brute-forcing ha la caratteristica che può essere utilizzato in qualsiasi caso e, prima o poi (appunto, solitamente, molti anni), si ottiene SICURAMENTE la password.
Una password come questa: 8Gd3Sm2B (lettere minuscole e maiuscole + numeri)
In un computer in grado di calcolare 500.000 password al secondo impiegherebbe ben 15 anni!!
Quindi è chiaro che il brute-forcing è totalmente da scartare.
C'è però una variante del brute-forcing che è un po' più utile. Si tratta del dictionary-attack. Questa tecnica si basa sull'uso di un numero limitato di parole (solitamente si prendono i dizionari di alcune lingue del mondo...non dimenticate che spesso gli utenti come password usano delle parole vere ed esistenti in qualche dizionario...perciò magari ci azzecchiamo ) e si fanno provare ad un brute-forcer (il programma che applica l'attacco di brute-force).
Per questo, ci vuole solitamente poco tempo (dipende da quanto è grande il dizionario). Solitamente bastano pochi minuti. Però, se fallisce, non possiamo farci nulla: l'utente non ha utilizzato una password presente nei nostri dizionari.
La maggior parte delle volte fallisce anche questo metodo.
Bene ora, vi chiederete dove potete trovare questi brute-forcer. bhé, se volete fare i lamer usate Google cercando "brute-forcer" oppure "brute-force attacker" o "brute-force facebook", ecc. ne trovate a sfare. Se però volete aver qualcosa di molto più "gestibile" e sopratutto capire veramente come funzionano le cose, dovete programmarvelo.
Non è assolutamente difficile (veramente, programmazione base) però prima di tutto dovete studiarvi un qualche linguaggio di programmazione (sì esatto studiare. Non c'è altro modo. Non pensate di imparare copiando codici come script-kiddies).
Risorse aggiuntive:
Brute-force attack - Wikipedia, the free encyclopedia
Visto che il brute-forcing è sempre l'ultimissima risorsa, vediamo qualche altro metodo:
Altre risposte a quelle domande che spesso leggo sono:
Il fake-login è sempre la via migliore!! xdxdxd
Allora...intanto cos'è il fake-login?
Si tratta di creare una pagina web o un'applicazione che sia in tutto e per tutto identica a quella originale. Ad esempio potete creare una pagina web del tutto identica alla home di facebook però, quando l'utente inserirà username e password, il vostro codice (la pagina ovviamente dovete averla programmata voi!) invierà a voi (ad esempio via email) i dati di login inseriti, e intanto rimanderà l'utente alla vera pagina di facebook facendogli credere che è tutto normale.
Anche per questo, se volete fare i lamer vi basta cercare per "fake-login facebook", ecc. altrimenti (ed è consigliato) dovrete programmarvela: necessariamente avrete bisogno di HTML e PHP per scrivere la pagina (in realtà il PHP non è strettamente necessario se usate le mail, ma è meglio) e poi magari qualche altro linguaggio per web (Javascript ad esempio) non guasta. Sì, ovviamente dovrete studiare.
Questo attacco può essere anche pericoloso (per la vittima ovviamente) però potrebbe accorgersene, ad esempio dal link visualizzato nel browser (che, se è una vostra pagina, non sarà di sicuro facebook.com ma sarà diverso). Può essere utile sapere che, questo dominio (facebook.com in questo caso) è quello che viene chiamato DNS (domain name system) e viene assegnato in sostituzione agli indirizzi IP. Ovvero, quando scrivete facebook.com, è come se voi scrivete l'indirizzo IP di facebook (viene infatti poi tradotto in questo). Infatti se navigate all'IP 173.252.101.16 vi si aprirà la pagina di facebook.
Come possiamo sfruttare ciò a nostro vantaggio?
Bene, consideriamo Windows
(ma questo vale anche per altri OS, cambiano solo i file): in questo OS c'è un file, ovvero C: \Windows\System32\drivers\etc\hosts.
Provate a scrivere in questo file (apritelo col notepad, e dovrete aprirlo come amministratore) questo: 127.0.0.1 facebook.com
Salvate e poi navigate a facebook.com sul vostro browser.... vedrete che la pagina non si apre! Questo perché abbiamo, con quel file, ridefinito il DNS di facebook. Abbiamo praticamente detto "quando l'utente naviga a facebook.com, traduci il DNS con l'IP 127.0.0.1". 127.0.0.1 è il vostro IP...cioè è l'IP universale che identifica sempre se stessi.
Ovvero, tentando di connettervi a facebook, vi siete connessi a voi stessi, ma visto che sulla vostra rete non c'è alcuna web-app installata, il browser non ha aperto nessuna pagina. Ritogliete quella riga dal file hosts per riaccedere a facebook.
Ora pensate se noi riuscissimo in qualche modo (ad esempio con un virus, o andando a casa della vittima come "amici" e usando il suo computer) a inserire nel file hosts una riga come quella, che però invece di contenere 127.0.0.1 come IP contiene l'IP di un nostro web-server con il fake-login... l'utente non si accorgerebbe di nulla!
A volte la risposta è:
Devi usare un keylogger!
Al 99%, a quanto ho visto, l'utente che risponde così poi non ha neanche la minima idea di cosa sia un keylogger...
Allora, qui entriamo in qualcosa di un po' più complesso, ma vedrò di spiegarvelo. Per fare un keylogger, ovviamente, dovete saper programmare in un qualche linguaggio di programmazione (e per questo dovete aver studiato).
Ma comunque io vi spiegherò come funziona un keylogger senza che voi abbiate bisogno di alcuna conoscenza di programmazione.
Allora, un keylogger, detta banalmente, è un programma (un virus) in grado di intercettare tutti i tasti premuti dall'utente sulla tastiera e di inviarli, tramite rete, all'attacker (solitamente il creatore del keylogger).
Allora, come fa un programma ad intercettare la pressione dei tasti?
Prendiamo sempre il caso del sistema operativo Windows (sotto altri OS cambia un po', ma la logica è praticamente sempre la stessa). Windows, quando voi premete un tasto, riceve dall'hardware (dalla tastiera) il messaggio "ehi! il tasto X è stato premuto!".... ok no, entriamo un po' più nel "tecnico": viene inviato dalla tastiera un codice numerico che corrisponde allo scan-code del tasto premuto e Windows lo intercetta e legge lo scan-code. Lo scan-code è un numero che identifica il tasto premuto. In questo modo Windows potrà sapere quale tasto è stato premuto.
Ora che succede? Windows ricevuto e capito qual'è il tasto premuto, guarda qual'è la finestra in primo piano (quella che ha il focus).
Al processo di questa finestra invia una sequenza di messaggi che, semplificando un po', sono sostanzialmente questi e in questo ordine:
1. WM_KEYDOWN
2. WM_CHAR
3. WM_KEYUP
(WM sta per Window Message e marca tutti quei messaggi per le finestre)
La finestra, ricevuto il messaggio WM_KEYDOWN, ne legge anche lo scan-code (che viene trasportato col messaggio) e ne fa ciò che vuole (se vuole farne qualcosa).
Poi arriva il messaggio WM_CHAR. Questo trasporta sempre un numero ma questa volta è il codice carattere ASCII o UNICODE del tasto premuto (ovvero WM_CHAR non trasporta lo scan-code del tasto, ma un codice sempre numerico che identifica la lettera che il tasto rappresenta...attenzione! rappresenta la lettera! non il tasto!).
Questo messaggio è usato solitamente dalla finestra per scrivere sullo schermo la lettera premuta (ecco perché quando premiamo un tasto, la lettera corrispondente a quel tasto ci compare davanti agli occhi).
Alla fine arriva WM_KEYUP. Questo messaggio arriva quando l'utente rilascia il tasto. Trasporta di nuovo lo scan-code e la finestra ne fa ciò che vuole.
Ora un keylogger usa una tecnica chiamata keyboard-hooking (hooking della tastiera). Questa è una tecnica per intercettare i messaggi: ovvero dice al sistema operativo: "quando viene premuto un tasto, prima di inviare il messaggio WM_KEYDOWN alla finestra con il focus, invialo a me e poi alla finestra". E Windows zitto zitto fa quello che il keylogger gli dice di fare: appena viene premuto un tasto, prima avverte il keylogger con "ehi! sto per inviare il messaggio WM_KEYDOWN con questo scan-code associato!" e poi invia il messaggio alla finestra.
Il keylogger in questo modo sa che il tasto con il tale scan-code è stato premuto. Poi fa la stessa cosa con il messaggio WM_KEYUP per sapere quando il tasto viene rilasciato (solitamente WM_CHAR viene ignorato dal keylogger, in quanto non gli interessa di disegnare il carattere del tasto premuto).
Ecco che il keylogger adesso è in grado di leggere tutto ciò che l'utente scrive da tastiera. Adesso non gli basterà che inviare (ad esempio tramite email, o meglio semplicemente tramite una connessione client<->server ad esempio tramite sockets...così diciamo che avrete tutto in tempo reale mentre l'utente digita) i dati raccolti all'attacker.
Chiaramente una volta programmato il keylogger dovrete convincere la vittima ad avviare il vostro programma. Alcuni inventano cose come "nascondere un eseguibile dentro ad un immagine".
Questo è impossibile (almeno sotto Windows) in quando Windows lavora ad estensioni: se voi salvate un eseguibile con estensione ad esempio .jpg questo non partirà più in quando Windows tratterà il file come un immagine e non come un eseguibile. E non c'è modo di farglielo eseguire.
Risorse aggiuntive:
Keystroke logging - Wikipedia, the free encyclopedia
Hooking - Wikipedia, the free encyclopedia
Vediamo una qualche tecnica un po' più... particolare questa che verrò a descrivervi non richiede (neanche per essere applicata) nessuna conoscenza informatica. Si chiama Social Engineering ed è molto semplice: convincere la vittima a fornirci i dati d'accesso Sembra banale, ma è molto potente e un bravo social engineer riesce quasi sempre a ottenere ciò che vuole.
Tra l'altro, con molta facilità, è possibile inviare email false (con indirizzi da voi inventati). Ad esempio potete inviare una mail da [email protected] con il testo che volete. Questo è facilissimo.
Quando inviate una mail utilizzate un particolare protocollo di rete chiamato SMTP (Simple Mail Transfert Protocol).
Tramite un server SMTP con open relay potete inviare mail con qualsiasi indirizzo (anche [email protected]) in quanto questi server non richiedono alcuna autenticazione.
Un esempio di questi server è out.alice.it.
Risorse aggiuntive:
Social engineering (security) - Wikipedia, the free encyclopedia
Phishing - Wikipedia, the free encyclopedia
Simple Mail Transfer Protocol - Wikipedia, the free encyclopedia
What is SMTP relay
Un'altra tecnica diciamo simile al social engineering e che non richiede alcuna conoscenza è il shoulder surfing.
Banalmente, mentre la vittima digita la sua password sulla tastiera, voi, dalle sue spalle, la osservate e leggete cosa digita semplice, no? Potete anche utilizzare particolari lenti, binocoli, telecamere a circuito chiuso, ecc.
Risorse aggiuntive:
Shoulder surfing (computer security) - Wikipedia, the free encyclopedia
Abbiamo poi una tecnica molto interessante. Mmmh... quanto di voi hanno mai sentito nominare nomi di software come "Wireshark" o, più in generale, "Sniffer"... bene, siamo solo io e un ciccione peloso e puzzolente... A parte gli scherzi, questi sniffer (categoria di software di cui fa parte anche il famoso Wireshark) sono programmi che catturano tutto il traffico su una rete LAN/WAN.
Quando voi inviate un messaggio via internet (qualsiasi esso sia, anche la password di facebook quando vi loggate a facebook) questo viene prima di tutto inviato al modem/router al quale siete connessi.
Quando il messaggio è in transito, un qualsiasi altro computer collegato alla stessa rete (ad esempio tramite Wi-Fi) può intercettarlo con uno sniffer e visualizzarlo. è una tecnica molto potente in quanto il 99% delle persone non sarebbero neanche in grado di immaginarsela!
Collegatevi ad esempio alla rete Wi-Fi di un luogo pubblico (la vostra scuola, un ristorante, una spiaggia, ecc.) e attivate uno sniffer... non avete idea di quante password si possono vedere in questo modo in pochissimo tempo Quindi attenti quando vi collegate alle reti Wi-Fi degli amici o della scuola: altri potrebbero vedere e leggere tutto quello che fate, password comprese! eheheh
Vi dirò, facendo dei test per vedere l'intelligenza delle persone, grazie ad uno sniffer nella mia scuola in 5 ore sono riuscito a prendere le password di facebook di ben 21 studenti e 1 professore! e anche la password di un account Google. Più precisamente, non mi sono messo a cercare le password (non mi interessavano). A me bastava vedere di riuscire ad ottenere l'accesso a diversi account web per vedere quanti "furbi" ci sono nella mia scuola
Per far ciò, ho preso i dati di sessione tramite una tecnica che si chiama session-hijacking.
Quando navigate su facebook (uguale per altri siti), in ogni cosa che fate, questo verificherà se avete loggato o meno. Per far ciò vengono inviate dal client un'insieme di informazioni (informazioni di sessione).
Queste informazioni possono essere catturate e, se le inviamo noi a facebook, questo crederà che siamo l'utente vero e proprio (che ha avviato la sessione) e ci darà accesso.
Ad esempio, un programma da lamer totali per fare questo con un Android è Faceniff (che usa proprio il session-hijacking).
Fate connettere i vostri amici alla vostra rete Wi-Fi e con uno sniffer potete prendergli le password. Facilissimo
Risorse aggiuntive:
Sniffing - Wikipedia
Session hijacking - Wikipedia, the free encyclopedia
Il virus ovviamente è un'altra tecnica. Un keylogger è ad esempio un virus. Un virus è un programma indesiderato. Voi potete farlo come volete e se infettate la vittima il virus farà sempre ciò che gli avete detto di fare. Perciò è un metodo che permette molte cose. Basta saperlo programmare.
C'è poi anche il cracking. Potete trovare delle falle nei siti che vi permettono di violarne il database (e quindi trovare tutte le password, anche se probabilmente criptate in MD5).
Però queste sono falle praticamente introvabili in colossi come Facebook, semmai le trovate nei siti di qualche ragazzino.
Ma per queste cose più specifiche, vi rimando al "The Black Book of Infernet" che da un'infarinatura generale di queste tecniche di web-hacking.
Ne esistono anche altre di tecniche ovviamente, ma non voglio dilungarmi troppo.
TL/DR;
Questa discussione serve per cercare di far capire agli utenti come stanno le cose: non puoi ottenere la password di un account sapendo username o email o altre cose, non puoi prendere una password di un account generico: c'è caso e caso.
Se dovete prendere la password di Facebook di un amico è semplice: ci sono vari modi, e molti di quelli che ho illustrato funzionano. Se dovete prendere la password di accesso a un qualche database della NASA, immagino che le cose si complichino molto
Evitate domande sciocche come quelle che continuate a ripetere in queste sezioni: dati di accesso si possono ottenere con le tecniche che ho illustrato, senza alcuna magia! Mago Merlino vi aiuta poco in queste situazioni.
Ricordate inoltre che c'è sempre una differenza tra lamer e hacker:
Il lamer, utilizza software di altri, copia codici, e segue tutorial banalissimi per cercare di ottenere dati di accesso a qualcosa e di solito far danni.
Non sa nulla di informatica e non capisce che, magari, utilizzando un certo software di cui non conosce assolutamente il funzionamento, potrebbe poi, il giorno dopo, trovarsi gli sbirri sotto casa.
L'hacker invece sa sempre cosa sta facendo. I software se li scrive lui (o se ne usa di fatti, sa benissimo cosa fanno e come funzionano). Sa quali rischi corre e sa come difendersi. Solitamente non lo fa per fare danni ma per cercare falle in alcuni sistemi e avvertire poi gli amministratori dell'esistenza di queste oppure lo fa solo sotto pagamento.
Il vero pericolo della società di oggi è il lamer, non solo per gli altri ma anche per se stesso.
E' doveroso ricordare che tutto ciò che qui ho descritto è illegale. Ad esempio, per dei cyber-crimini come infettare dei computer con un virus, la legge italiana prevede sanzioni anche fino a 30.000€ o la carcerazione fino a 24 mesi! Attenzione a ciò che fate!
Spero di non rivedere altre domande come "come rubo password Facebook?" o ancora "come posso spiare un account di Whatsapp?"
La risposta fondamentale è, diciamo, studia: informatica, programmazione, matematica, crittografia, ecc... Dipende da caso a caso: non c'è un modo univoco per rubare delle password.
Ma in ogni caso, se non avete studiato, non ci riuscirete mai. Se fate i lamer, rischiate grosso!
Saluti,
Speed