Active X Inseguros y una Prueba de Concepto


¿Qué es un ActiveX? Es una tecnología de reutilización de software creado en Microsoft COM. Por ejemplo, ActiveX permite un documento de Word embeberlo en una hoja de cálculo de Excel y esta publicarse por medio de un sitio o aplicación Web.

ActiveX habilita una interface de Scripts a través de la cual se pueden aprovechar todas las capacidades de componentes binarios pueden estar disponibles para los lenguajes scripts, tales como VBS y JS (lo que se conoce como Automatización OLE o simplemente Automatización). Es un modelo de plug-in de IE, permitiendo que IE cargue y use componentes binarios personalizados desde o dentro de sitios Web. La interacción entre las páginas se hace por medio de las interfaces script.

Dado que ActiveX es una tecnología de reutilización de código de propósito general y no es diseñado solamente para usarse en páginas Web. No todos los componentes son apropiados para su uso en la Web. Sin embargo, hay límites para estos componentes, por ejemplo, un ActiveX no podría ejecutar código malicioso en su computador sin su consentimiento.

El componente ActiveX debe afirmar que es tanto seguro para inicialización y seguro para scripting.

¿Qué es inicialización y scripting seguro?

“Seguro para inicialización” básicamente significa que el componente no violará la seguridad del usuario, incluso si inicializado con datos no confiables o maliciosos.

“Seguro para scripting” significa que sus interfaces de scripting no pueden ser objeto de abuso por un script malicioso que cause daño al usuario.

¿Cuál es la configuración por defecto de esta característica en IE?

IE por defecto deniega la carga de componentes ActiveX marcados como no seguros para inicializar o ejecutar scripting cuando son referenciados en sitios Web alojados remotamente y en cualquier zona de seguridad del IE, excepto la zona de maquina local que está en la opción “Preguntar”, es decir, en el resto de zonas está configurada en la opción denegar.

Esta configuración se puede hacer de manera diferente por cada zona de seguridad o mediante GPO a partir de IE 7.

Las interfaces del Windows Script Host son también un ejemplo más claro de un componente ActiveX inseguro, ya que permiten la manipulación del registro, manipulación de archivos, y lanzar programas o líneas de comando.

En IE6 en inferior, en la zona de sitios seguros esta opción está marcada para preguntar y no denegar como las versiones actuales, por tanto, le muestra un mensaje al usuario para que permita la interacción al darle clic en “Yes” o “Si”.

Question

La opción de “Preguntar” al usuario, tampoco es una buena idea, ya que los usuarios finales se acostumbraron a que cada vez que ven un aviso del navegador, dan en la opción “Si” para poder trabajar o visualizar lo que desean, por tanto, muchos no leen o son conscientes de que están permitiendo al hacer clic en sí.

Amenazas informáticas:

El problema radica en que IE no permite configurar de manera personalizada un componente ActiveX para fines específicos, sino que cuando se habilita esta opción en una zona del navegador, permite que cualquier o todos los sitios Web que funcionan en esta zona. Lleven a cabo cualquier acción en el computador sin el consentimiento del usuario, esto significa que un atacante o cualquier persona podría controlar el contenido, archivo, entre otras para todos los computadores que visitan el sitios Web.

Un atacante podría instalar un malware (ej. Spyware, virus, ransomware…) sin necesidad de permisos administrativos, configurar programas para ejecutarse al inicio de sesión del usuario, capturar o enviar información privada a externos, borrar citas del calendario o modificar/borrar archivos. Además puede hacer un escenario de ataque en donde con un script en un archivo HTML infecte los usuarios y luego lo restaure al original, sin que sea fácil de rastrear este tipo de ataque.

Prueba de Concepto – PoC:  (Se puede ejecutar codigo remoto desde la Red Interna o desde un sitio Web comprometido en Internet).

Verificar la opción en la configuración del Internet Explorer. (La que no se puede habilitar)

Opcion1

La prueba consiste en ingresar desde el Internet Explorer a un sitio en Internet donde se montó una página HTML que permita ejecutar una calculadora sin consentimiento del usuario. La prueba fue satisfactoria en un Internet Explorer 10 con Windows 7 Service Pack 1.

Se crea una página HTML básica con un llamado a un archivo JavaScript o se modifica una existen en un sitio Web.

Index

Se agregan las lineas de ejecución de codigo al archivo JS con el objeto ActiveX malicioso, que  para este ejemplo solo ejecuta una calculadora en el computador que visita la página.

js

Ejecución desde el navegador.

PoC

Remediación

Para asegurar un ActiveX no solamente basta con fírmalo digitalmente(este es más para la integridad y no repudio del control), sino que también existen dos métodos a nivel de código fuente para asegurarlo, usando un identificador de clase del control (CLSID).

  1. El primer método consiste en usar la interface ICatRegister del “Component Categories Manager” para crear unas entradas en el registro (CATID_SafeForScripting) del sistema operativo y el IE examina este antes de cargar el control ActiveX.

La ruta donde se crea esto es la siguiente:

regedit

Los pasos son:

  1. Create an instance of the Component Categories Manager and retrieve the address of the ICatRegister
  2. Set the appropriate members of a CATEGORYINFO
  3. Call the ICatRegister::RegisterCategories method, passing the address of the initialized CATEGORYINFO

NOTA: En el enlace de referencia está el código fuente de ejemplo con la implementación.

El segundo método tiene que ver con implementar una interface llamada IObjectSafety y su método SetInterfaceSafetyOptions (con 3 parámetros) en el control ActiveX, para poder que el navegador IE lo inicialice y ejecute de forma segura.

ActiveX-Seguro

En el siguiente articulo de Microsoft explican el detalle del asunto:

https://msdn.microsoft.com/en-us/library/aa751977%28v=vs.85%29.aspx

También es recomendable este post sobre el diseño seguro de ActiveX:

https://msdn.microsoft.com/es-es/library/aa752035%28v=vs.85%29.aspx

Espero este ejemplo sirva para que cuando se vaya habilitar una opción en el navegador, se evalue primero el riesgo y en lo posible con una prueba de concepto evidenciarlo; ademas que esto  pueda ayudar a crear lineamientos para los desarrolladores de las Apps corporativas que usan ActiveX, con el fin de no poner en riesgo la organización.

Anuncios

Propagación de malware desde emails gubernamentales de Colombia


Uno de los vectores de ataque más comunes para propagar malware (virus, troyanos, ransomware…) son los correos electrónicos, ya que muchos usan la ingeniería social para que más fácilmente exploten la vulnerabilidad del kernel humano, que es el eslabón más débil en seguridad de la información.

En este post, se muestra una nueva propagación que se está realizando por medio de cuentas de correo comprometidas de municipios de Colombia, usando el servicio de correo de Google – Gmail.

– carreta & + acción!

Este es el correo malicioso o vector de ataque: como pueden ver el correo llega aparentemente desde una cuenta oficial de un municipio de Caldas y al parecer ya tienen identificado personas que hacen este proceso con el Ministerio de Hacienda, ya que de los correos que se han analizado, solo le llegan a personas que trabajan o apoyan el pago de impuestos.

Vector

Al descomprimir el archivo adjunto, se evidencia que efectivamente tiene un binario (.exe) el cual al momento del análisis, solo era detectado por cuatro fabricantes de antivirus, como se va mostrar más adelante.

Muestra

Análisis del encabezado del correo

Usando este script elaborado en Python para extraer la información más trascendental de los encabezados del correo, se evidencia que efectivamente se envió desde servidores de correo de Google y que la cuenta de correo es la oficial del municipio.

Script

PD: El código completo del script lo publique en pastebin, por si lo quieren probar y complementar.

Ejecución del script y prueba de que se envio desde el servidor de correo de Gmail.ExecScriptComo pueden ver en el Return-Path, el buzón de correo es el oficial de un municipio de Viterbo Caldas  – Colombia y se verifico que la cuenta existiera desde el login de Gmail.

VerificacionCuenta

Análisis dinámico del malware

Verificación integridad del archivo binario

El pase de diapositivas requiere JavaScript.

Nivel de detección a la fecha (solo 4 de 54)NivelDeteccion

Detección en Virus Total

Según el análisis realizado en la maquina infectada y en un sandbox, se pudo evidenciar que inyecta el proceso “explorer.exe”, lee y establece valores en las siguientes claves de registro:

  • “Explorer.EXE” (Access type: “SETVAL”, Path: “HKCU\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN”,

  • Key: “HKCU”, Value: “%VariableEntorno%\Pago_De_Impuesto_Empresarial_Ministerio_De_Hacienda.exe”) “Explorer.EXE” (Access type: “SETVAL”, Path: “HKLM\SOFTWARE\MICROSOFT\ACTIVE SETUP\INSTALLED COMPONENTS\{XR047075-RM0W-RY08-NN57-N332G1U801U4}”,

Crea un archivo en la ruta>

%TEMP%\iJanuary15.exe

String de mutuaciones:

  • “_x_X_UPDATE_X_x_” “_x_X_PASSWORDLIST_X_x_” “_x_X_BLOCKMOUSE_X_x_” “***MUTEX2” “***MUTEX2_PERSIST” “***MUTEX2_SAIR” “{C20CD437-BA6D-4ebb-B190-70B43DE3B0F3}” “_SHuassist.mtx” “Local\ZonesCounterMutex” “Local\ZoneAttributeCacheCounterMutex” “Local\ZonesCacheCounterMutex” “Local\ZonesLockedCacheCounterMutex”

Intenta ejecutar el proceso del navegador “Firefox.exe” y usa las siguientes DLL

“USER32.DLL” at base 76C20000
“%WINDIR%\SYSTEM32\OLE32.DLL” at base 764C0000
“OLEAUT32.DLL” at base 77170000
“%WINDIR%\SYSTEM32\APPHELP.DLL” at base 75470000

%WINDIR%\system32\MSVBVM60.DLL (usada por apps en Visual Basic)

Usa el comando:

cscript.exe” “%TEMP%\teste.vbs””

Intenta obtener nombres de usuarios del equipo

  • GetUserNameA@ADVAPI32.DLL

  • LookupAccountNameA@ADVAPI32.DLL

Metadatos de la muestra

MetaMuestra

Certificados digitales

CertsDigitales

Acciones de Red

  • ·        Se conecta al dominio: paovallos1.no-ip.info
  • ·         Se conecta a la IP 201.211.17.122 por el puerto TCP 9015.

La IP del C&C esta ubicada en Venezuela y ya esta listada en Blacklist.

Finalmente, se prueba la conexión por dicho puerto y aun esta habilitado.

TestConnect

Conclusiones y recomendaciones:

  • Con este análisis se comprueba que efectivamente el correo contiene un malware que busca conectarse a una IP de Venezuela donde está el C&C para extraer información confidencial y tener el equipo en una Botnet.
  • Al revisar los encabezados del correo se comprueba que se están enviando desde los servidores de Google y no desde un Servidor Falso, lo da un indicio de que estos buzones están comprometidos o tuvieron un acceso no autorizado.
  • Con el análisis dinámico de malware puedes entender mejor como funciona y que está intentando hacer, con el fin de implementar otras medidas preventivas y no solamente las reactivas que se pueden tomar con la muestra.
  •  Se recomienda revisar el filtro de correo de tus servidores, ya que muchos por defecto dejan pasar archivos comprimidos con contraseña y crear reglas con patrones para detectarlos, ya sea por el asunto, contendido del correo, entre otros…
  • Se recomienda usar contraseñas fuertes y diferentes para los buzones de correo, incluso aprovechar las características que estos brindan como autenticación de doble factor.
  • Si te llega un malware, no te quedes tranquilo con solo enviar la muestra a los laboratorios para que genere la firma que lo detecta y elimina, es más interesante hacerle un análisis manual o usar servicios Sandbox free o pagos, para ver cómo funciona y tomar otras medidas en la infraestructura de T.I. (Ej. Bloqueo de IPs, puertos TCP/UDP en los Firewalls, Bloqueo de URLs en el Proxy, Habilitación de filtros en los IPS/IDS, mitigación de vulnerabilidades entre otros…) ademas de entender el codigo malicioso.
  • Se recomienda afinar mejor las reglas de correlacion del SIEM para detectar tempranamente estas amenazas.
  • Finalmente, se recomienda dar a todos sus empleados un entrenamiento de concienciación en seguridad de la información  (Security Awareness Training) para que aprendan a identificar estas amenazas informáticas y las reporten adecuadamente al personal del Service Desk, al equipo de respuesta a incidentes de seguridad o en este caso, al equipo de seguridad de Google, el cual puedes hacer diligenciando el formulario para reportarlo desde aquí, anexando las cabeceras segun tu proveedor de correo.

Una de las cosas interesantes en la gestión de incidentes de seguridad de T.I. o de la información, es que “cuando aprendes de cómo te atacan, aprendes a defenderte y atacar mejor.”

Salu010,

@JOGAcrack.

 

 

Apuntes de contramedidas para RANSOMWARE


El siguiente resumen fue realizado a partir del informe publicado en el mes de febrero del presente año, por el CERT de España, asociado al Centro Criptológico Nacional – CNN y al final agregue otras contramedidas que se han probado con más de 15 muestras de ransomware, en las que he tenido la oportunidad de apoyar en su erradicación y/o recuperación.

¿Qué es un Ransomware? Técnicamente hablando, es un tipo de malware (como los virus informáticos) que cifra archivos con extensiones conocidas (ej. Excel – xls, Word – docx, etc…) usando algoritmos criptográficos (ej. RSA), en su mayoría del método asimétricos, lo que indica que tienen dos claves (una publica y otra privada) y posteriormente crea unos archivos (imágenes, archivos de texto, entre otros), con la información que solicita el pago para decifrar, por medio de plataformas anónimas, como TOR y monedas electronicas como Bitcoins. En otras palabras de usuario final, “daña la información y solicita pagar para recuperarla.”  Sus primeras apariciones publicas o masivas se dieron desde el 2013, con el archi reconocido CryptoLocker. (SophosLabs, 2015).

VECTORES COMUNES DE ATAQUE:

  1. Correo Spam o Phishing.
  2. Web Exploit Kits (ej. Blackhole, PEK…)
  3. Código malicioso (ej. RAT)
  4. Servicio RDP (Escritorio Remoto de Windows)
  5. Anuncios publicitarios (ej. Banners pornográficos).

MEDIDAS DE SEGURIDAD PREVENTIVAS

  1. Copias de Seguridad: No en unidades de red mapeadas o discos duros externos, se recomienda mejor usar un software automatizado o directamente desde el sistema operativo, ej. “Copias de Seguridad y Restauración” (Panel de Control -> Sistema y Seguridad -> Hacer una copia de seguridad del equipo).
  2. Usar VPN como método de acceso remoto. De nada sirve si tenemos todos los “fierros de seguridad perimetral” FW/ Proxy /IPS/IDS/ y cuando el usuario se lleva el endpoint para la casa no los usan.
  3. Usar sistemas anti-Spam y mail scanners a nivel de correo electrónico, para minimizar la posibilidad de infección por el vector de ataque de correo que es uno de los más comunes.
  4. Mantener actualizado el sistema operativo, los programas instalados (en especial el Anti-malware), plugins de los navegadores (especialmente Java, Flash, Adobe Acrobat).
  5. Usar herramientas o utilidades extras de seguridad que ayuden a mitigar la explotación de vulnerabilidades, por ejemplo con la herramienta EMET (activando DEP, EAF, ASLR, SEHOP, NPA…).
  6. Uso de software para control de aplicaciones o de lista blanca: Estos protegen contra programas no autorizados en la lista. AppLocker en Windows, McAfee Application Control, Bit9 Parity Suite, entre otras.
  7. Establecer políticas o mecanismos para impedir la ejecución de archivos en carpetas comúnmente usadas por este malware (App Data, Local App Data…), ej. Herramientas como CryptoPrevent, o CryptoLocker Prevention Kit, permiten crear fácilmente dichas políticas.
  8. Usar bloqueadores de JavaScript para el navegador, ej. Privacy Manager.
  9. Bloquear el tráfico relacionado con dominios y servidores C2 mediante los IPS/IDS de perímetro.
  10. Mantener listas de control de acceso – ACL para unidades de red mapeadas: esto reduce la propagación del malware a nivel de toda la red.
  11. Mostrar extensiones de archivos conocidos, con el fin de identificar archivos ejecutables o con extensiones aleatorias que no corresponden al tipo de archivo.
  12. Usar la herramienta Anti Ramsom, para monitorear e internar bloquear el proceso de cifrado monitoreando archivos de prueba “honey files” que crea en el PC, además de que hace un volcado de memoria del proceso para buscar la clave de cifrado y mata el proceso.
  13. Usar máquinas virtuales para evitar técnicas anti-debugin y anti-virtualización.
  14. Evitar el uso masivo de cuentas con permisos de administrador local o de dominio.
  15. Restringir ejecución de .exe en rutas conocidas por medio de directivas de seguridad o GPO o reglas del IPS de host. Se recomienda rutas como %AppData%, %UserProfile%\ %Temp%
  16. Prevenir aprobar o usar con permisos de administrador local o del dominio.
  17. Usar programas de concienciación en seguridad de la información (ej. Securing The Human of SANS), con el fin de que los usuarios aprendan a identificar técnicas básicas de ingeniería social entre otras amenazas y vulnerabilidades informáticas.

MEDIDAS DE SEGURIDAD REACTIVAS

Luego de que se detecta una infección por causa de un Ransomware, se recomienda seguir los siguientes pasos:

  1. Desconectar cable de red, dispositivos de almacenamiento externos (ej. memorias USB) y unidades de red mapeadas.
  2. Verificar si el proceso o ejecutable sigue en ejecución o esta inyectado como un hilo de un proceso valido del sistema operativo.
  3. Realizar un volcado de memoria del proceso.
  4. Si no se ha identificado el proceso, se recomienda apagar manualmente el PC y arrancarlo en “Modo Seguro” (tecla F8 al inicio).
  5. Realizar copia de seguridad del equipo afectado.
  6. Comunicar el incidente de seguridad (de tipo código malicioso) al Equipo de Seguridad de la Información o de respuesta a incidentes de la organización o del país (ej. ColCERT).
  7. Valorar el escenario para ver si es posible recuperar los archivos cifrados.
    1. Existe un backup completo de la información en el host afectado.
    2. Existe una herramienta o la clave privada para descifrar los archivos.
    3. Existe un Shadow Volume Copy para restaurar el sistema operativo
    4. Existe forma de recuperar los archivos usando técnicas o software forense
    5. Conservar los archivos cifrados para ver si en un futuro se pueden descifrar.

Se podría hacer un procedimiento o checklist con los anteriores pasos.

Finalmente, no se recomienda por ningún motivo hacer el pago, en primer lugar porque esto motiva a que los atacantes sigan distribuyendo este malware y en segundo porque no se garantiza que los archivos sean descifrados.

ANEXO: Tabla de variante Ransomware conocidas y posible recuperación.

TablaRansomware

CONTRAMEDIDAS ADICIONALES (Con base a la experiencia):

  • Crear o mejorar las políticas de seguridad o lineamientos con base al Backup, ya que es la que permite cumplir en cascada las metas y recuperarse más fácilmente ante una infección.
  • Crear procedimientos o canales claros y simples para que los clientes, usuarios finales o mesa de servicio, reporten incidentes de este tipo (Código Malicioso, tipo Ransomware) de manera eficaz.
  • Crear nuevas reglas en el Antivirus o IPS de Host, para que detecte cuando se estén cambiando extensiones comunes a estos archivos de forma masiva, por ejemplo para el Ransomware que convierte a formato MP3., incluir en la regla archivos con extensiones comunes, (*.docx.mp3, *.xls.mp3,  *.html.mp3, entre otras) o detectar creación de archivos “Help_*”
  • Ejecutar en un Sandbox el malware para analizar su comportamiento y crear nuevas reglas de correlación en el SIEM u otras medidas adicionales en la infraestructura (Firewalls, WAF, IPS/IDS…), según los patrones identificados.
  • Compartir muestras de las variantes y/o análisis del malware, con colegas de otras organizaciones  afectadas, para aprender de su experiencia y evitar un impacto mayor.
  • Recuerden que este tipo de malware también aplica para otros sistemas operativos o activos de información, como es el caso de KeRanger para MAC OSX o los que Atacan Sitios Web, principalmente CMS populares (ej. Joomla, WordPress, Magento, o librerías (ej. JQUERY), coming soon in Smartphones and others (LoT?)… por lo que la copia de seguridad o Backup en un lugar seguro (ej. Centro Alterno de Datos, o  desconectado de la red en una jaula de faraday, jejeje), sigue siendo la mejor contramedida para recuperarse a un incidente de este tipo.

¿Que otras contramedidas conocen o han tenido la oportunidad de implementar?

Saludos,

@JOGAcrack

Auditando Plantillas de Configuración segun Línea base de Seguridad


En la auditoria a dispositivos de redes, existen varias herramientas de software propietarias (ej. Nipper Studio, Cisco Prime) y open sources (ej. Cisco Auditing Tool, Yersenia…) que apoyan este procedimiento, sin embargo, dependiendo del alcance u objetivo de la auditoria, muchas de estas herramientas se quedan cortas o quizás ya no tienen soporte y actualizaciones (ej. Nipper) o simplemente no se adaptan a la necesidad especifica o al tipo de auditoria que se va a realizar (ej. de caja blanca o gris), por ejemplo, verificar que se esté cumpliendo la línea base definida e implementada por el área pertinente (ej. OpSec) en la organización.

Comando en Nipper

Ejemplo de comando en Nipper con varios archivos de configuración

Es en estos casos en donde se hace necesario crear scripts o herramientas de software propias para realizar ciertas validaciones, por ejemplo, hacer búsquedas de comandos que están definidos en la línea base y en caso de que lo encuentre indicar si cumple o no con lo establecido en dicho documento.

Conceptualización:

¿Qué es una línea base? En el contexto de seguridad informática, una linea base tiene que ver con un conjunto de parametros o configuraciones definidas para los activos de T.I. con el fin de estar más seguros o con un nivel de riesgo minimo. Por lo general, se documentan para ser publicados en la base de conocimiento de T.I. con los respectivos permisos solo para el personal de seguridad, operación o quien lo consideren por demanda (ej. Auditores, Jefes…). Las guias/herramientas de Hardening publicadas por los Fabricantes o entidades como el Center for Internet Security – CIS, son un buen inicio para crear las lineas base.

¿Qué es Windows Powershell – PS? Es un Framework con interface de linea de comandos (CLI) basado en .NET, con el fin de automatizar tareas y administrar configuraciones en entornos Microsoft, por medio de lenguaje scripting.

¿Y por qué no Python u otro lenguaje scripting? Para este caso, porque PowerShell esta embebido por defecto en sistemas operativos Windows Vista en Adelante y posee una gran cantidad de funcionalidades o CMDLETs que le permiten interactuar de forma directa con el sistema operativo Windows; Además porque en muchas ocasiones no se tiene facilidad de instalar el entorno o interprete para Python, lo que es más conveniente usar comandos ninja o scripts con un lenguaje nativo por defecto.

En este post, se comparte un sencillo script en Powershell para la finalidad de auditar los comandos definidos en una línea base de dispositivos de redes y comunicaciones, básicamente funciona de la siguiente manera:

  • El script solicita ingresar como parámetros el nombre de la categoría, el comando o string a buscar, la ruta en donde están almacenadas las plantillas o archivos de configuración de la muestra seleccionada y finalmente la ruta del archivo de salida.
parámetros Script

Información que solicita el Script

NOTA: Este código puede ser modificado para que la variable tenga un valor en específico o tome la información desde un array.

  • Finalmente, este recorre cada una de las plantillas en búsqueda del comando y en caso de que lo encuentre indica que cumple sino indica que no cumple; este resultado se almacena en un archivo CSV el cual puedes manipular para crear una tabla dinámica y mostrar los resultados en forma percentil o más resumida.
Reporte CSV

Reporte en formato CSV

 El código fuente del script lo publique en CodePlex y se puede clonar con GIT (git clone https://git01.codeplex.com/auditsecbaselinenet Folder) o se puede copiar y pegar a un archivo PS1 para ser ejecutado.

Codigo Fuente Script en Power Shell

Código Fuente Script en Power Shell

NOTA: Pueden aprender a usar GIT con CodePlex en este enlace> http://bit.ly/1VPKxj5

  • Luego de validar los cumplimientos y otras actividades que se incluyen en una auditoria de seguridad, se puede obtener una tabla como la siguiente para anexar en el informe final.
Tabla de Cumplimiento

Tabla de Cumplimiento

Cabe aclarar que este script se puede adaptar para otras situaciones en las que sea necesario realizar búsquedas masivas sobre un conjunto de archivos.

By @JOGAcrack