Como he señalado en el l1, tu pregunta es bastante amplia. Así que intentaré aconsejarte en base a mi experiencia personal.
En primer lugar, necesita conocimiento de la red: necesita comprender cómo funciona una red en detalle. Por ejemplo, cómo configurar enrutadores, servicios relacionados con la red (dhcp, dns, puertas de enlace, proxys, firewalls, intercambio de archivos, etc.), protocolos y puertos.
Necesita aprender sobre protección de datos (conozca los certificados SSL, los métodos de cifrado, el hashing de contraseñas, etc.).
Recomendaría encarecidamente aprender Linux (más específicamente, busque una distribución de seguridad como Kali ). Aprenda a usar nmap, metasploit y muchas de las herramientas que se incluyen allí. También puede obtener información sobre IDS / IPS y técnicas comunes de piratería, como la "inyección SQL", los ataques XSS y las vulnerabilidades de vulnerabilidad.
Sobre los lenguajes de programación, creo que depende de la plataforma que quieras usar y del área en la que quieras enfocarte. Si vas con Linux, C / C ++, Perl, Ruby, Python, Java, Bash son algunos de los lenguajes que podrías aprender. Si desea centrarse en la seguridad web, se recomienda PHP, Javascript, SQL y la configuración de apache, nginx, mysql, postgresql, etc.
Para obtener todo el conocimiento que necesitas para practicar. Le sugiero que consulte vulnhub.com , desde donde puede descargar máquinas virtuales vulnerables para practicar algunas de las técnicas de pirateo. Una vez que entienda cómo se hace, puede aprender cómo protegerse contra tales ataques.
Suscríbase a canales de seguridad, lea revistas relacionadas con la seguridad y continúe ingresando a este sitio para mantenerse actualizado y ampliar sus conocimientos.
De todos modos, es difícil incluir todo, pero supongo que esto cubrirá lo básico. Tenga en cuenta que tomará mucho tiempo, ¡pero disfrute del viaje!
Estoy seguro de que puedo estar perdiendo algo, así que hágamelo saber con sus comentarios.