Comencé a profundizar en el pentesting porque quiero hacer esto para vivir. Empecé a usar Kali Linux, pero quiero entender qué hay detrás de todo eso. ¿Cómo puedo leer un código de explotación? ¿Qué lenguaje de programación se usa generalmente para escribir un exploit? ¿Y cómo puedo escribir un exploit yo mismo?

Podrá ganarse la vida con solo usar herramientas sin saber qué hacen estas herramientas. Apunte las herramientas correctas a una página web que le contraten para evaluar y ejecutar. Si la página web tiene fallas fáciles, la configuración predeterminada de la mayoría de las herramientas debería resaltarlas por usted. Apunte las herramientas adecuadas a una red para la que ha sido contratado para penetrar y ejecutar. Si hay sistemas con vulnerabilidades conocidas o están mal configurados, hay muchas posibilidades de que las herramientas que utilizó lo encuentren. Luego use otras herramientas para explotar las vulnerabilidades encontradas.
Muchas herramientas incluso le darán buenos informes que puede copiar y pegar en su propio informe. Firma con tu nombre. Lucro. Aproveche las ganancias y compre un software comercial de prueba de pluma para complementar su software gratuito. Podrían tener mejores informes. Incluso podrían ser mejores. Aprovecha más.

Dicho esto, no serás un muy buen examinador. Y aquellos de nosotros con experiencia que lo contratamos lo veremos fácilmente. En el momento en que golpeas un obstáculo, necesitarás ajustar las herramientas. Ajustar a menudo significa comprender qué están haciendo las herramientas y, lo que es más importante, por qué lo están haciendo. Esto significa que tendrá que leer los conceptos básicos detrás de él. Ve al fondo. ¿Encuentra una vulnerabilidad de inyección XSS o SQL en funcionamiento en una página web? Lea sobre esto para entender lo que está sucediendo.
Puede encontrar código de explotación en todo el lugar que es fácil de entender y puede darle una idea de lo que está sucediendo. Shellcode es en general más difícil de leer, pero incluso allí puedes encontrar ejemplos que te dan una idea. Es un trabajo duro. ¿Escribir tus propias hazañas y shellcode? Trabajo aún más duro.

Aquí hay un clásico que deberías leer: Rompiendo la pila por diversión y ganancias por Aleph One

Para ser un buen examinador de bolígrafos necesitas al menos habilidades de programación rudimentarias. De lo contrario, siempre dependerá de otros para proporcionar las herramientas y los ajustes que necesita. En un compromiso con un cliente no tienes tiempo para eso. ¿Necesita ejecutar esta consulta 10.000 veces en el servidor web y registrar los resultados? Escríbete fuera de él.

Tome algunas buenas manos en los cursos de prueba de pluma y seguridad ofensiva.

No te desanimes. No uses solo la teoría. Comprende la teoría detrás y luego aprende haciendo. No necesita dominar nada desde el principio. Demonios, incluso puedes hackear sistemas sin ningún conocimiento técnico profundo. Lea sobre los ataques de ingeniería social de Kevin Mitnick [1]. Pidió contraseñas y las consiguió. Hecho. ¿Fue eso pirateo? Usted apuesta! ¿Aprovechó y usó hazañas en esos ataques? No Entró y luego hizo lo que tenía que hacer. No tiene que ser un desarrollador maestro de exploits, un investigador de vulnerabilidades o un gurú de scripts para poder comprometer sistemas mal diseñados que no han sido parcheados durante décadas.

Sobre todo, necesita la mentalidad correcta. Un buen examinador debe pensar fuera de la caja.

Incluso un examinador de bolígrafos novato que solo apunta herramientas en redes y servidores web todavía está dando resultados . Solo tiene que reflejarse en el precio. El pen-tester está ejecutando las pruebas básicas para que el cliente no tenga que hacerlo. Mientras sean honestos al respecto (“las pruebas estándar no mostraron nada”) el cliente sabe lo que pagó.

Necesitamos desesperadamente más personas buenas con profundos conocimientos técnicos y habilidades en el campo de la seguridad de TI. Así que ve a hacerlo.

Por último, no hace falta decirlo, pero solo puedes hackear / comprometer / probar los sistemas que tienes permitido.

[1] Los ataques no siempre necesitaban un profundo conocimiento técnico. Estoy bastante seguro de que Mitnick tiene ese conocimiento 🙂

En primer lugar, Kali es un sistema operativo que comprende más de 300 herramientas. No es en sí una herramienta. Cada herramienta en Kali tiene sus usos. Por ejemplo, SQLMap para probar bases de datos, Vega para probar exploits, Nmap para redes, JackTheRipper para contraseñas, etc. Está aprendiendo cómo usar cada herramienta de manera efectiva de una manera apropiada que le permitirá comprender cómo pentest bien. Aprenda a usar cada herramienta y cuáles son sus limitaciones.

Primero, si quiere comprender todos los conceptos detrás de Kali Linux, puede descargar su primer libro llamado “Kali Linux Revealed”. Explican todas las ideas y la historia detrás de esto. En segundo lugar, si desea leer y crear sus propias hazañas, debe sumergirse profundamente en INGENIERÍA INVERSA. Se pueden encontrar buenos materiales en Tuts 4 You. Recomiendo 40 series de lecciones del usuario “lena”. El marco de explotación más conocido y actualizado es Metasploit. Que se puede iniciar escribiendo “msfconsole” en la terminal. Metasploit ha escrito en Ruby. Pero si desea escribir sus propios exploits, necesita aprender lenguaje ensamblador (principalmente para 32 bits), necesita dominar buenas herramientas de depuración como Ollydb e IDA Pro. Olly es libre pero ida no lo es. Puedes gastar dinero en ida, pero te recomiendo que uses ida pro 5 para aprender. Que es gratis. También hay “gdb”, que es un depurador de Linux basado en CLI.