VulnServer

  • Posted on: 19 March 2015
  • By: ReYDeS

VulnServer es una aplicación servidor TCP basada en Windows diseñado para ser explotado. El programa esta hecho para ser utilizado como herramienta de aprendizaje para enseñar sobre los procesos de la explotación del software, como también un buen programa victima para evaluar nuevas técnicas de explotación y shellcode.

Para ejecutar vulnserver asegurarse de copiar el archivo “essfunc.dll” en algún lugar de la ruta para los dlls del sistema (aunque tenerlo en el mismo directorio de vulnserver.exe es suficiente), y simplemente abrir el ejecutable vulnserver.exe. El programa iniciará su ejecución en el puerto TCP 9999 por defecto, si se desea utilizar otro puerto simplemente ajustar el número de puerto correspondiente en la línea de comandos.

El programa expondrá su número de versión cuando inicie, como también el número de versión del dll acompañante, es obvio entonces la versión ejecutándose en caso se necesite actualizarlo en el futuro.

La explotación puede ser un negocio delicado, y los cambios para recompilar el programa pueden cambiar la estructura del buffer requerido para ganar control de ejecución de código, así se ha intentado hacerlo lo más sencillo posible para determinar cual versión del programa y dll asociada se está ejecutando, de esta manera si se utiliza una guía se puede estar seguro de tener la misma versión utilizada. Esto es también algo a considerar si se compila el programa desde las fuentes, diferentes compildaores de c (incluso diferentes versiones del mismo compilador) puede producir binarios a explotar en diferentes formas desde el mismo código, y se obtendrá también una advertencia sobre esto cuando se inicie el programa.

Vulnserver no hace nada más que permitir la explotación, no existe otra funcionalidad útil. Código integrado para realizar alguna otra función no parecía ser un buen uso del espacio binario o de tiempo considerando el propósito del programa. Han habido algunos esfuerzos para simular la entrada del usuario hacia el programa y proporcionar respuestas para parecer una aplicación servidor regular (aunque sea básico), pero no hay realmente una razón para ejecutarlo a menos de realizar una explotación en el momento.

Este programa no se debe ejecutar sobre un sistema crítico, y no debe permitirse a este programa atender en un puerto accedible desde una red no confiable, como Internet. No existe código malicioso incluido dentro del programa (revisar el código fuente para confirmarlo), no es un virus o malware, pero el programa puede ser objeto de un uso malicioso si un individuo no confiable lo accede. Esto es algo inevitable considerando el diseño del programa precisamente para esto. Por lo tanto ejecutarlo únicamente sobre un sistema de prueba bien protegido (posiblemente aislado), y únicamente cuando se está utilizándolo activamente para evaluar métodos de explotación, y no dejarlo en ejecución todo el tiempo.

Si se tiene en funcionamiento vulnserver en el sistema y no se está explotándolo, alguien más podría hacerlo.

Fuentes:

http://www.thegreycorner.com/p/vulnserver.html
http://www.thegreycorner.com/2010/12/introducing-vulnserver.html
http://sites.google.com/site/lupingreycorner/vulnserver.zip

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense