No estoy seguro de que los hackers realmente aprendan a hackear. Puedes aprender técnicas, herramientas, etc, pero el hacking es realmente más un tipo de comprensión que un conjunto de habilidades.
Aquí tienes un ejemplo sencillo: Tengo una caja. La abro. Sin saber nada más esperaría que un buen hacker ya esté modelando el problema en su cabeza. ¿De qué está hecha? ¿Tiene bisagras hacia afuera o hacia adentro? ¿Cómo se cierra? ¿Cómo se abre? ¿Cuál es el mecanismo de cierre, si lo hay? ¿Qué tamaño tiene? ¿Quién la ha fabricado? ¿Qué contiene? ¿La persona que hizo la caja esperaba que se viera comprometida?
Deberían entender a cierto nivel que la caja existe dentro de una red de expectativas y diseños, y que esas expectativas y diseños son explotables.
Llevémoslo al siguiente nivel. Tengo un sitio web y quiero que entres en él. Un sitio web tiene una arquitectura, unos componentes, un diseño y unos métodos de funcionamiento que el hacker debería entender – al margen de cualquier detalle específico del propio sitio web. Debería ser capaz de decir dónde están los puntos débiles y fuertes, y tener una idea de dónde, si el desarrollador apesta, estarán los puntos de compromiso. Esto es antes de saber nada sobre el sitio web en absoluto.
No estoy seguro de que realmente se pueda aprender a hacer eso. Casi todas las personas que he conocido que pueden hacer esto han estado pensando de esta manera durante toda su vida.
He aquí un último ejemplo: alguien deposita un cheque con su teléfono escaneando. Depositan el mismo cheque en otro banco. Ambas cuentas se acreditan. Qué te dice eso sobre el proceso de compensación de cheques? ¿Cómo afectó el cheque 21 a eso?
Si pudieras enseñar a alguien cómo aprender a pensar en esto sería increíble.