LinuxJa
Samueleex si usano tecniche o comunque tool specifici!
Concordo in pieno! Tool che prevalentemente usi da riga di comando, quindi in pratica devi "cavartela" con bash (lavoriamo in ambiente Linux) e ovviamente i comandi del tool specifico!
Poi inutile dirlo, la cosa fondamentale è "sapere cosa stai facendo". Voglio dire, dal punto di vista della rete, a parte "lanciare un comando", devi avere ben chiaro il funzionamento, cosa stai facendo e perché lo stai facendo, questo è ovvio.
In generale per quanto riguarda la programmazione (tutti gli ambiti), ciò che è utile davvero è ragionare sull'algoritmo ovvero la procedura per arrivare alla soluzione del problema; questo ti aiuta molto dal punto di vista mentale. Poi che tu lo converta con una sintassi (quindi un linguaggio) piuttosto che un altro, viene dopo. Ovviamente esistendo migliaia di linguaggi di programmazione diversi (salvo ambiti molto di nicchia, quelli che realmente "possono servire" sono comunque sempre quelli che trovi in qualsiasi lista), alcuni saranno più indicati per un determinato uso, altri meno.
Come dicevo all'inizio, se vuoi approfondire l'hacking non è Java che ti serve, studia il funzionamento della rete, cosa vuoi fare di preciso e come raggiungerlo (es. riguardo indirizzi IP, indirizzo MAC, ecc), devi avere un po' di dimestichezza col terminale, ambiente Linux e poi il tool specifico che andrai ad usare.