Come ha sottolineato l1thal, la tua domanda è abbastanza ampia. Quindi proverò a consigliarti in base alla mia esperienza personale.
Prima di tutto, hai bisogno della conoscenza della rete: devi capire come funziona una rete in dettaglio. Ad esempio, come configurare router, servizi relativi alla rete (dhcp, dns, gateway, proxy, firewall, condivisione file, ecc.), Protocolli e porte.
Devi conoscere la protezione dei dati (capire i certificati SSL, i metodi di crittografia, l'hashing della password, ecc.)
Raccomando vivamente di imparare Linux (più specifico, cercare una distribuzione di sicurezza come Kali ). Scopri come usare nmap, metasploit e molti degli strumenti che sono inclusi. È inoltre possibile conoscere IDS / IPS e tecniche di hacking comuni, come "SQL injection", attacchi XSS e exploit di vulnerabilità.
Riguardo ai linguaggi di programmazione, penso che dipenda dalla piattaforma che si desidera utilizzare e dall'area che si desidera mettere a fuoco. Se vai con Linux, allora C / C ++, Perl, Ruby, Python, Java, Bash sono alcune delle lingue che potresti imparare. Se vuoi concentrarti sulla sicurezza web, allora sono consigliabili PHP, Javascript, SQL e le impostazioni per apache, nginx, mysql, postgresql, ecc.
Per acquisire tutte le conoscenze necessarie per esercitarti. Ti suggerisco di controllare vulnhub.com , da cui puoi scaricare macchine virtuali vulnerabili per praticare alcune delle tecniche di hacking. Una volta compreso come è stato fatto, puoi imparare a proteggerti da tali attacchi.
Iscriviti ai canali di sicurezza, leggi le riviste relative alla sicurezza e continua ad entrare in questo sito per tenerti aggiornato ed espandere le tue conoscenze.
In ogni caso, è difficile includere tutto, ma immagino che questo copra le basi. Siate consapevoli del fatto che ci vorrà un sacco di tempo, ma godetevi il viaggio!
Sono sicuro che potrei perdere qualcosa, quindi fammi sapere con i tuoi commenti.