
roadmap per un hacker autodidatta
L'hacking è l'arte di usare le cose in modi non previsti. Per esempio, se la prova di un software sta per scadere, potresti essere in grado di estenderla cambiando la data del computer alla settimana precedente. Questo è hacking.
Non esiste un 'unico modo giusto' per imparare l'hacking perché è un termine molto ampio. Ecco perché lo scopo di questa guida è fornire una direzione piuttosto che una roadmap.
Se c'è qualcosa che pensi debba essere aggiunto/migliorato, per favore crea un issue.
Credo sia importante conoscere le proprie radici, quindi parliamone senza analizzare eccessivamente l'origine.
Negli anni '60, le reti telefoniche utilizzavano un insieme di suoni per elaborare le chiamate. Un gruppo di persone capì come funzionava tutto e riuscì a riprodurre i suoni a 2600 Hz utilizzati da queste reti. Come ci riuscirono? Soffiando in un fischietto che veniva gratuito con i cereali. Questo atto fu chiamato phreaking e le persone che lo facevano furono chiamate phreaks.
Denny Teresi, uno dei phreak, disse in un'intervista:
"Non era solo per fregare la compagnia telefonica, era la sfida tecnica - se saremmo stati in grado di farlo."
Lo fecero perché era un problema affascinante da risolvere e volevano vedere se ci sarebbero riusciti. Questo è esattamente ciò che è la cultura dell'hacking, ancora oggi.
Se vuoi vendere medicine, ti servirà solo un posto dove conservarle e consegnare ciò di cui il cliente ha bisogno. D'altra parte, se vuoi creare cure per le malattie, dovrai sapere come funziona il corpo umano e tutto il resto. Ha senso, vero? Lo stesso vale per l'hacking. Se vuoi diventare davvero bravo a hackerare qualcosa e creare nuove tecniche per farlo, devi capire come funziona.
Se hai informazioni che pensi possano essere utili ad altre persone, condividile tramite social media, forum o blog. Ti avvantaggerà in molti modi:
Sii curioso, sperimenta molto, costruisci cose fighe, questo è il punto centrale, è così che è iniziato tutto. Se passi la vita a usare tecniche e strumenti sviluppati da altri, che senso ha scegliere un percorso così figo?
La roadmap contiene alcune buone risorse e alcuni argomenti su cui dovrai cercare su Google e leggere da solo. Questa non è semplicemente una 'guida passo-passo' o una raccolta di risorse.
Leggi/guarda cose, annota i termini che non capisci, cercali su Google e imparali da almeno 3 fonti diverse, annota di nuovo i termini che non capisci e continua a ripetere il processo. Perché almeno 3 fonti? Perché le informazioni fornite da un singolo creatore saranno limitate a ciò che sa; riceverle da 3 creatori diversi ti darà una comprensione migliore dell'argomento da prospettive diverse.
Mi riferirò a questa metodologia come 'apprendimento ricorsivo' nel corso della guida.
L'hacking ha molti campi, ad esempio reverse engineering, hacking web, hacking di auto, ecc., ma alcune cose sono utili indipendentemente dal campo, quindi parliamone prima.
Ti aiuterà ad acquisire una comprensione più profonda della macchina che userai per ore ogni giorno, oltre a ottenere una prospettiva preziosa che non posso davvero spiegare a parole.
Ricorda, hai solo bisogno di conoscere le basi perché questa conoscenza continuerà a svilupparsi se sei curioso ponendo domande come "Cosa succede quando elimini un file? Se rimangono sul dispositivo, come viene liberato spazio? Se sono veramente eliminati, come fanno i software di recupero a recuperarli?"
Risorse:
Capire come funzionano Internet (e altre reti) è essenziale perché le reti sono ovunque.
Argomenti per iniziare l'apprendimento ricorsivo:
IP address, MAC address, port, client & server, dns, tcp, udp, proxy, tls/ssl, vpn
Risorse:
Passerai molto tempo nel terminale, sia per eseguire programmi che per accedere a server remoti. Puoi usare qualsiasi sistema operativo, ma suggerisco di usare sistemi basati su Linux semplicemente perché puoi modificare tutto ciò che riguarda il sistema, che è l'essenza dell'hacking. Ubuntu è un'ottima distribuzione Linux per principianti.
Per capire come funziona un determinato software (facilitandone l'hacking) e per creare il proprio software per hacking e altri compiti.
Ci sono molti linguaggi di programmazione, ma ti suggerirò di iniziare con Python perché è facile e può fare quasi tutto, dalla creazione di un rilevatore di volti a un sito web.
Ho scritto un articolo su come iniziare, dai un'occhiata.
Ci sono alcuni concetti che troverai in quasi ogni articolo di cybersecurity e che tornano utili nella maggior parte dei campi.