En resumen, la respuesta es sí. Definitivamente puede comenzar tutoriales de piratería ética sin ninguna experiencia en programación. Puede recoger todo lo que necesita saber en el camino. Sin embargo, sus posibilidades de éxito serán mucho menores que las de alguien que ya sabe programar.
La razón de esto no es que sea imposible. Es solo que sin experiencia en programación, necesitará más perseverancia para hacerlo a través de tutoriales de piratería. La mayoría de los buenos tutoriales de piratería tendrán algún tipo de juego de guerra, en el que deberás entrar / realizar alguna tarea en un sistema que se ha configurado específicamente para el tutorial. Los juegos de guerra generalmente tienen pistas mínimas y requerirán conocimientos que aún no has aprendido. Debes estar listo para pasar horas buscando en Google, golpeándote la cabeza contra la pared y sintiéndote inútil hasta que finalmente lo descubras. Esto es cierto si sabes programar o no. No saber programar hará que este proceso tarde mucho más.
Hagamos un ejemplo rápido de por qué este es el caso. Muchos juegos / tutoriales de guerra en línea se centran en las pruebas de penetración de aplicaciones web. Un juego de guerra para principiantes puede requerir que explotes una vulnerabilidad de inyección SQL.
- ¿Qué significa, para un lenguaje de programación, ser seguro? ¿Por qué los desarrolladores dicen que Java es seguro? ¿Qué lenguajes de programación son realmente 'seguros'?
- ¿Qué pueden hacer las organizaciones para prevenir los ataques de la botnet Mirai?
- Si la validación de su contraseña fallara en cada sitio web durante una hora, ¿qué haría?
- ¿Por qué los medios publican noticias de una falla de seguridad importante (como Heartbleed o el problema de IE de hoy) antes de que se haya solucionado?
- ¿Qué tan probable es que el monitoreo de Google, Facebook, Microsoft, etc., pudiera haber ocurrido sin conocimiento interno?
No describiré qué es la inyección SQL, pero la ejecución exitosa de un ataque de inyección requiere el conocimiento de lo siguiente:
- Bases de datos y su estructura típica.
- Sintaxis de consulta SQL (múltiples variantes comunes)
- Vulnerabilidades de inyección típicas en aplicaciones web (es decir, dónde buscar en sitios web para insertar su código)
Si eres programador, ya conoces el n. ° 1 y n. ° 2, y solo necesitas buscar en Google y enseñarte el n. ° 3. Si no eres un programador, también necesitarás verificarte en el n. ° 1 y n. ° 2, probablemente varias horas adicionales de aprendizaje para lograr la misma tarea.
Si está buscando entrar en piratería ética, le recomiendo que conozca los conceptos básicos de lo siguiente antes de sumergirse en:
- Cómo usar la línea de comando : esto ayudará en casi todos los aspectos del pirateo ético. Obtenga acceso a algún tipo de sistema basado en Unix y comience a usar el terminal. Hay muchos buenos recursos para aprender esto en línea. Un recurso orientado a la piratería que disfruté fue el conjunto de juegos de guerra Bandit en OverTheWire: Wargames
- Un lenguaje de programación : soy parcial con Python. Es fácil de aprender para un primer idioma, y la sintaxis simple le ayuda a centrarse en los conceptos de programación de nivel superior (estructura de bucle, instrucciones if if, etc.). Una vez que conoces un lenguaje de programación, es mucho más fácil recoger los fragmentos de otro que a menudo son necesarios para el pirateo ético. Muchas veces estará tratando con un sitio web que tiene código en varios idiomas (por ejemplo, Javascript, Perl, PHP) y necesitará poder aprender nuevos idiomas rápidamente para penetrar con éxito en el sitio.
- Estructura de página web / HTML : esto es increíblemente importante para la penetración de aplicaciones web. Si no puede leer el código fuente de un sitio web y comprender lo que está sucediendo, es imposible identificar vulnerabilidades.
- Estructura / sintaxis de la base de datos : de manera similar al HTML, esto es principalmente importante para la penetración de aplicaciones web, pero es tan fundamental y fácil de aprender que lo he enumerado aquí. Una gran cantidad de piratería ética está explotando las vulnerabilidades de la base de datos, y deberá comprender cómo funcionan las bases de datos para tener éxito.
Espero que esto haya ayudado. Terminaré con un par de recursos que me han ayudado en el pasado:
- OverTheWire: Wargames – Mencionado antes – Bandit es particularmente bueno para aprender el terminal. Cualquiera de los juegos de guerra después de eso será difícil sin conocimientos de programación.
- Hackear este sitio: un sitio antiguo que usaba en el pasado con un montón de desafíos de prueba de lápiz de aplicaciones web. Las misiones básicas lo familiarizarán con html / lectura del código fuente / identificación de vulnerabilidades. Las misiones realistas son donde se pone divertido.
- Udacity: mi sitio favorito personal para aprender temas de programación introductoria. Para comenzar, tienen algunos excelentes cursos de introducción sobre programación / desarrollo web.