Determinación de software vulnerable en las máquinas cliente

8

Estoy interesado en cómo los atacantes logran identificar versiones vulnerables de software en las máquinas cliente, detrás de una red grande o independientes en casa. No estoy interesado en la exploración de puertos, ya que la mayoría del software en una máquina cliente no estará escuchando activamente.

Me interesan específicamente las técnicas para determinar las versiones de software vulnerable en una máquina cliente. Por ejemplo, una máquina determinada puede tener Adobe Reader y Flash, Windows Media Player, VLC y Java instalados. Puede ser que todas estas aplicaciones sean vulnerables, o solo una.

Me imagino que sería ventajoso para un atacante poder determinar cuál de las aplicaciones era vulnerable, ya que los ataques de lanzamiento pueden alertar al usuario y me pregunto cómo pueden hacerlo los atacantes.

Pensé que recordaba un escenario en el que, al utilizar un explorador del navegador, el atacante podía leer la información del archivo del sistema de archivos local, lo que haría el truco.

¿Qué otras vías de ataque podrían usarse para obtener esta información directa o indirectamente?

¿El software de administración de red que informa las versiones de software se puede usar de manera maliciosa? Si es así, ¿cuál sería un ejemplo de escenario?

En muchos casos de ataques informados se utilizó una vulnerabilidad específica, de todas las posibilidades. No creo que los atacantes tuvieran tanta suerte, ya que el spamming de cien ataques podría llamar la atención y quizás ser detectado.

Creo que hay alguna metodología para detectar varias versiones de software, quizás sin detección. Esto también sería válido para los ataques de descarga por disco ... donde pueden haber 30 ataques diferentes, pero en lugar de la página, simplemente cargar todos y probar suerte puede cargar un ataque apropiado. O, ¿es realmente más común que estos sitios envíen spam tantos ataques como puedan sin importar si los reproductores multimedia y lectores de pdf abren al azar y muestran un error en la máquina cliente?

Cualquier información o fuentes sobre esto son muy apreciadas.

    
pregunta Sonny Ordell 02.06.2011 - 06:53
fuente

6 respuestas

5

En el caso típico (que no son ataques dirigidos), el atacante no necesita conocer las versiones de su software. El atacante común, poco sofisticado, está alquilando o ha comprado un kit de explotación, como zeus, crimepack, eleanor u otro.

Estos 'kits' normalmente vienen con exploits de día cero en su interior. Funcionan creando un servidor web, una página php en algún host aleatorio, que solo sirve malware y explota el navegador de la víctima o su java o su flash o descarga un pdf y explota su lector de pdf, etc.

Simplemente haciendo clic en el enlace y navegando a la página afectada, o descargando y ejecutando un archivo pdf / doc / xls, se explota la aplicación de manejo y el atacante coloca su ejecutable en el host (que puede ser un cliente de botnet o un programa antivirus falso o cualquier cosa).

La página php creada por el kit de exploits (u otras herramientas, incluso metasploit), simplemente prueba todos o cualquiera de los exploits proporcionados en el kit que elija. Uno de ellos funcionará, dependiendo de la actualización de sus servicios de suscripción al kit de malware.

Todo lo anterior no es el mejor método para los ataques dirigidos, pero aún puede funcionar. En el escenario de ataque dirigido, se realizará una fase de recolección de información antes del ataque, donde el atacante intentará determinar cosas como el software que se ejecuta en los hosts y las versiones, mediante el uso de información filtrada, de una gran cantidad de fuentes, como el navegador. huellas dactilares, correos electrónicos, etc.

    
respondido por el john 03.06.2011 - 01:28
fuente
9

Hay muchas formas en que las personas y las aplicaciones filtran información sobre las versiones de software.

Si puede ver documentos que las personas publican o comparten, el formato del documento generalmente identifica explícita o implícitamente la versión del software que lo produjo. La gente publica informes de errores y preguntas en los foros que solicitan ayuda con el software.

Si puede hacer que visiten su sitio web, obtendrá una gran cantidad de información sobre su entorno de navegación, que está altamente correlacionada con otro software que utilizan.

Hay programas que informan sobre la información de la versión del software, ya sea para la gestión de la seguridad de la empresa o para concursos de popularidad o similares.

Y, a menudo, solo puede adivinar, basándose en el conocimiento de otro software que utilizan, cuándo obtuvieron una computadora nueva, en qué industria trabajan, etc.

Finalmente, gran parte del malware está diseñado para atacar varias versiones. E incluso si no lo es, el costo de intentar un exploit suele ser tan bajo, que las personas solo realizan ataques al por mayor (como el spam), con la esperanza de encontrar un cliente vulnerable. Ese es probablemente el enfoque más común en la vida real, fuera de los sofisticados ataques de pesca submarina.

    
respondido por el nealmcb 02.06.2011 - 16:49
fuente
5

Antes de realizar un escaneo activo de recursos, tiendo a buscar en los tablones de trabajo e identificar las posiciones de desarrollador que están abiertas. No siempre, pero a menudo enumerarán la versión específica de una suite de software en uso. La gente de recursos humanos puede ser bastante despistada cuando se trata de esto, y a menudo querrán "tantos detalles como sea posible" al hacer una solicitud.

Además, si el objetivo utiliza terceros para obtener recursos, a menudo puede obtener información de incluso más . Lo creas o no, pero he podido identificar más de 30 aplicaciones antes, mientras estaba sentado en el vestíbulo, antes de comenzar un compromiso con nada más que un iPad y un navegador web.

Una vez que haya llegado hasta aquí, puede comenzar a perfilar vectores probables e investigar posibles explotaciones, etc. Si la organización está buscando contratar un administrador AV o una persona de herramientas de seguridad, es posible que tenga la suerte de saber qué tipo de defensas es su objetivo. tiene para apuntar en su laboratorio antes de comenzar el compromiso.

Lo ideal sería que, antes de que incluso aparecieras en el sitio, tuvieras una bolsa de trucos que sabrías que te ayudarán a entrar silenciosamente y escalar a un nivel de privilegio que demostrará la necesidad de una mejor postura de seguridad. En el peor de los casos, disparas una IDS que no sabías que estaba allí y se cae el martillo, lo que demuestra que la seguridad es "adecuada" para alguien con tu límite de tiempo limitado.

    
respondido por el Ori 02.06.2011 - 19:07
fuente
3

Realmente no estoy seguro de qué tipo de ataque estás hablando. Pero la mayoría del tiempo es específico para el exploit. Por ejemplo, existen muchas vulnerabilidades de navegadores de Internet remotos para diferentes, pero las metasploit pueden ejecutar una página web simple, que puede identificar qué cliente de navegador utilizó (Firefox, Chrome, IE ...) y ejecutar la vulnerabilidad adecuada. Pero si estás hablando de explotaciones locales de BOF, secuestro de DLL, etc., el atacante no sabe realmente, si la víctima usará una aplicación vulnerable para abrir el archivo, pero todavía hay suficientes posibilidades de explotar si se utiliza la explotación de software popular.

    
respondido por el Tornike 02.06.2011 - 10:19
fuente
1

Nmap hace esto bastante fácil. Resumen rápido de la opción relevante de: enlace

Nmap 5.51SVN ( http://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
SERVICE/VERSION DETECTION:
  -sV: Probe open ports to determine service/version info
  --version-intensity <level>: Set from 0 (light) to 9 (try all probes)
  --version-light: Limit to most likely probes (intensity 2)
  --version-all: Try every single probe (intensity 9)
  --version-trace: Show detailed version scan activity (for debugging)

SEE THE MAN PAGE (http://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES
    
respondido por el Rory Alsop 02.06.2011 - 09:50
fuente
1

Otra forma de ver este problema es que las empresas deben poder reaccionar rápidamente cuando una aplicación tiene una vulnerabilidad. Esto requiere que el departamento de TI tenga la capacidad de hacer un seguimiento definitivo de las aplicaciones, componentes y parches instalados mediante la automatización y las herramientas estándar. Hay esfuerzos de la industria para estandarizar las etiquetas de activos de software (19770-2) que son archivos XML instalados con una aplicación, componente y / o parche que identifican el software instalado, y en el caso de un componente o parche, qué aplicación son una parte de. Las etiquetas tienen información del editor autorizada, información de la versión, lista de archivos con el nombre del archivo, hash seguro del archivo y tamaño, que se pueden usar para corroborar que la aplicación instalada está en el sistema y que los binarios no se han modificado. por un tercero. Las etiquetas están firmadas digitalmente por el editor.

Cuando se conoce una vulnerabilidad, los departamentos de TI pueden usar su software de administración de activos para identificar inmediatamente los sistemas con software vulnerable y pueden tomar medidas para actualizar los sistemas. Las etiquetas pueden ser parte del parche o la actualización puede usarse para validar que el parche está instalado. De esta manera, los departamentos de TI pueden aprovechar recursos como la Base de datos de vulnerabilidad nacional del NIST, como fuente de información en sus herramientas de administración de activos, de modo que tan pronto como la empresa publique una vulnerabilidad en el NVD, el departamento de TI podrá comparar de inmediato las nuevas vulnerabilidades con sus equipos. inventario de software actualizado.

Hay un grupo de empresas trabajando a través de una organización sin fines de lucro IEEE / ISTO llamada TagVault.org (www.tagvault.org) con el gobierno de los Estados Unidos en una implementación estándar de la norma ISO 19770-2 que permitirá este nivel de automatización. En algún momento, estas etiquetas que cumplen con esta implementación probablemente serán obligatorias para el software vendido al gobierno de los Estados Unidos en algún momento en los próximos años.

Al final, es una buena práctica no ser público sobre qué aplicaciones y versiones específicas de software está utilizando, pero puede ser difícil como se señaló anteriormente. Lo que desea asegurarse es que tiene un inventario de software actualizado y preciso, que se compara regularmente con una lista de vulnerabilidades conocidas, como el NVD de NIST, y que el departamento de TI puede tomar medidas inmediatas para remediar la amenaza . Esto, junto con la detección de intrusiones actualizada, la detección de virus y otras técnicas para bloquear un entorno, al menos dificultará que su entorno se vea comprometido, y si lo hace, que no se detectará por un tiempo. largo periodo de tiempo.

    
respondido por el John Richardson 03.04.2012 - 14:02
fuente

Lea otras preguntas en las etiquetas