¡Esa es una excelente (y una pregunta muy amplia)! Lo que realmente estás buscando es una vulnerabilidad. Una vulnerabilidad es una falla en un sistema que alguien, como un hacker, podría usar para hacer que el sistema se comporte de una manera inesperada. Nos gusta llamarlo una “característica”, no un error :).
Un exploit, es una pieza de código o un proceso que aprovecha la vulnerabilidad para evitar ciertas restricciones.
Un excelente recurso para encontrar exploits listos es la Base de datos de exploits de Offensive Security. Actualmente contiene más de 35,483 exploits. En otras palabras:
- ¿Por qué tenemos hackers menos geniales?
- ¿Por qué las contraseñas no son más discretas?
- Cómo trabajar para ingresar a la seguridad cibernética como mi carrera
- Quiero trabajar en el campo de la seguridad cibernética. ¿Qué debo comenzar a hacer? ¿Qué sería beneficioso?
- ¿La Generación Z paga por el software de seguridad?
La primera vulnerabilidad que recuerdo haber explotado fue la inyección de comandos en una aplicación web que ofrecía la funcionalidad básica de herramientas de red.
Supongamos que este es el formulario web para esa aplicación vulnerable:
Si ingresa una dirección IP, como “8.8.8.8”, la aplicación tomaría esa entrada y crearía un comando para la línea de comando.
Probablemente se veía así: ping -c 3 8.8.8.8
Aceptar la entrada del usuario y generar comandos del sistema generalmente se considera peligroso … ¡y DIVERTIDO!
Supongamos que un atacante ingresa lo siguiente en el cuadro de dirección IP:
8.8.8.8; cat / etc / passwd
El comando que se generaría sería:
ping -c 3 8.8.8.8; cat / etc / passwd
Si aún no lo sabe, el ‘;’ es un personaje de fin de comando . Marca el final de un comando y le permite iniciar uno nuevo. En otras palabras, una vez que se completa el comando ping, el sistema ejecutará “cat / etc / passwd”.
Por lo tanto, la aplicación web no solo hará ping 8.8.8.8 tres veces, sino que también mostrará el contenido del archivo / etc / passwd, un archivo importante que contiene una lista de nombres de usuario en ese sistema.
¿Cómo encuentras este tipo de vulnerabilidad? Tienes varias opciones diferentes:
- Busque aplicaciones que ofrezcan funcionalidad que normalmente se realiza en la línea de comando.
- Obtenga información sobre el código vulnerable y búsquelo en Github y otros repositorios de código fuente en línea. Sugerencia: para PHP es system y passthru
Las aplicaciones web son un excelente lugar para comenzar. Las aplicaciones web no solo son más fáciles de entender (en comparación con los desbordamientos de búfer, desbordamiento de pila, desbordamiento de pila y vulnerabilidades de cadena de formato), sino que también son más fáciles de explotar. Comience leyendo el Proyecto Top Ten de OWASP.
Revisa cada una de las 10 categorías principales de OWASP y aprende todo lo que puedas sobre ella. Una vez que sienta que comprende las vulnerabilidades, puede usar el Proyecto OWASP WebGoat para practicar lo que aprendió.
WebGoat es una aplicación web deliberadamente insegura que puede usar para practicar la búsqueda y explotación de vulnerabilidades.
Sigue practicando y aprendiendo nuevas técnicas. Si te quedas sin cosas que aprender, vuelve a la Base de datos de exploits de Offensive Security y mira los últimos exploits. Terminará encontrando nuevas técnicas de piratería que puede incorporar en su kit de herramientas de crecimiento.
Y sobre todo, ¡disfruta el proceso!