¿Cómo se realizó Pentest en la era sin marcos como Metasploit?

3

Últimamente me ha interesado la seguridad, he estado leyendo principalmente libros de cocina en el marco de Metasploit, cómo la ingeniería social se ha empleado de manera exhaustiva, he empezado a leer algunos conceptos del IA-32, pero en algún momento me confundo. Si tomo en cuenta un ataque sin interacción del usuario (no hay posibilidad de ataque del lado del cliente), no hay un framework como Metasploit disponible, no hay nmap, no nessus. ¿Qué y cómo ocurre un pentest? ¿Qué hay en el núcleo?

Hablando hipotéticamente, un amigo mío ejecuta un servidor web amateur que él codificó, lleno de fallas y vulnerabilidades. Este servidor se está ejecutando en el puerto 80. Fui a su casa, recibí una copia del software sin permiso y escribí sus informaciones de red. En casa examiné el código y encontré una vulnerabilidad de desbordamiento de pila.

¿Pero qué sigue? Aquí apenas puedo concatenar. Mi exploit, como cliente (navegador), necesita conectarse a su servidor web en el puerto 80 para poder explotar la vulnerabilidad e implementar la carga útil (una inversa). ¿El último tendrá que actuar como un servidor para conectarse de nuevo a mi otro cliente que está escuchando, esperando un shell? Estoy bastante confundido acerca de "pentest desnudo", siento que hay malentendidos que desafortunadamente hice que me gustaría que algunas explicaciones llenen los vacíos para poder seguir adelante. Además de eso, el inglés no es mi primer idioma. Gracias de antemano.

    
pregunta Daniel 30.12.2012 - 23:35
fuente

2 respuestas

7

Antes de Metasploit y otros marcos, usamos herramientas separadas, escribimos nuestras propias herramientas o hicimos las cosas manualmente.

Los escáneres de puertos y las herramientas de identificación de servicios de red han existido durante mucho tiempo, casi tanto como el campo de la seguridad informática. Incluso si no tuviera acceso a nmap, podría crear un script para un simple escáner de puertos en la mayoría de los idiomas en un par de horas.

Un marco hace poca diferencia en cuanto a cómo desarrollaría y utilizaría un exploit para una nueva vulnerabilidad. El único cambio al usar un marco es que debe hacer que el módulo de explotación sea compatible con ese marco.

Primero, identificaría el desplazamiento del búfer para controlar el EIP. En un marco, puede usar una herramienta como pattern_create.rb para generar un blob de datos especial y luego calcular el desplazamiento basado en EIP. Sin una herramienta de este tipo, solo tiene que usar el método de prueba y error: haga un blob de datos que comiencen con un grupo de valores 0x41414141 y luego cambie a valores 0x42424242. Ejecute el exploit, verifique la pila y luego vuelva a calcular su número de valores 0x41414141. Continúe hasta que encuentre el número correcto de bytes antes del desplazamiento de EIP. Desde allí puede controlar el EIP y configurarlo para ejecutar una cadena ROP a VirtualProtect, o simplemente un jmp esp si DEP está deshabilitado. Su carga útil podría ser una cáscara inversa, o lo que quieras. Debería configurar un script que escuche en un puerto TCP para su conexión entrante y canalizarlo a través de stdin / stdout para que pueda interactuar con el shell.

Complicado, pero todavía es la forma en que se realiza hoy: simplemente tomamos los resultados de ese proceso y los incorporamos en un módulo de metasploit al final.

P.S. Para obtener más información sobre la escritura de exploits para código nativo en la plataforma Windows, recomiendo revisar el Tutoriales de escritura de exploits CoreLAN .

    
respondido por el Polynomial 31.12.2012 - 00:21
fuente
7

De la misma manera en que ocurre un desafío de Capture The Flag, tú mismo lo creas todo .

Al final, las metasploit, nessus y nmap son todas herramientas o una colección de herramientas para realizar algunas tareas más fácilmente. Pero usted puede "fácilmente" escribirlos usted mismo. Un escáner de puertos básico es bastante fácil de escribir. La cuestión es que Nessus y Metasploit reducen el tiempo que tiene que pasar como pentestro y las vulnerabilidades están listas para su uso, esto significa que no necesita mucha habilidad para aplicar las vulnerabilidades.

Lo que estás tratando de hacer requiere una comprensión muy profunda y me temo que no podemos explicarte cómo elaborar un exploit de este tipo en solo unos pocos pasos. Te aconsejo que estudies esto un poco más. Libros como el Manual de Shellcoders son muy buenos para explicar esto, pero no es para los de corazón débil.

    
respondido por el Lucas Kauffman 31.12.2012 - 00:17
fuente

Lea otras preguntas en las etiquetas