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

Anuncios

Análisis de malware: Reversing a una variante de Houdini Worm


  • Nombre de la muestra encontrada: sev.vbs
  • HASH SHA256: a9f8dbdb9c116a5d47fabfa950477a96463f8d13ff102405e4ab0590c94faade
  • Ruta en donde se detectó: Se encontró en la ruta correspondiente al valor de la variable de entorno %APPDATA%, es decir por ejemplo, “C:\Users\%username%\AppData\Roaming”
  • Vector de ataque o infección: Dispositivos de almacenamiento USB.
  • Método de propogación: Internet y la Red LAN.

muestra

Preview de la muestra:

Se observa que cierta parte del código está codificada.

preview1Se observa que la codificación está en base64.

decode1

En esta variante se observa que la codificación la realiza en dos veces con el fin de quedar más ofuscado.

decode2

Para decodificar el texto en Base64, existen múltiples formas, se puede usar un servicio online (la más fácil), usar una herramienta existente a nivel de sistema operativo, modificar el código fuente para imprimir la variable resultante (como en el anterior post) o crear su propio código para Codificar y Decodificar en Base64. Ver un ejemplo que cree en Java.

 Codificar y Decodificar base64 en JAVA

Codificar y Decodificar base64 en JAVA

En esta ocasión, por simplicidad, opte por usar un comando con una utilidad en Kali Linux, luego de extraer el codigo codificado.

Texto codificado en Base64, como se encontró en la muestra.

Extract_Code_Base64

En la primera decodificación el texto se ve de la siguiente manera:

Decode1-VIM

En la segunda decodificación ya el texto se ve así:

Decode2-VIM

Comando utilizado para decodificar doblemente.

Command-base64

Comando decodificar en base64

Resultado del comando:

Decode OK

Decode OK

 

Luego, se observa que el código esta codificado en ASCII, por tanto, se puede modificar el código fuente para que imprima la variable decodificada o escriba el resultado en un archivo guardado en el disco duro.

Para este caso, se elimina en donde ejecuta el archivo y se remplaza por las últimas tres líneas para guardar el resultado en otro archivo.

Decodificar en ASCII

Decodificar en ASCII

Archivo resultado de ejecutar el script.

DecodeMalware

Revisando el código se obtiene el script del malware en su texto claro; por ejemplo, en la primera línea vemos el nombre del malware con copyright y el usuario de Skype del creador por si desean contactarlo, jejeje…

Codigo de Houdini

Codigo de Houdini

En la imagen anterior, también se observa el dominio del C&C y el puerto por donde se está conectando así como la declaración de variables públicas y privadas.

Luego encontramos los comandos que usa y los strings de conexión:

Comandos y String de Connexiones

Uso de los comandos:

  • execute :ejecuta un comando especifico en el host afectado

  • update : actualiza la configuración del malware.

  • uninstall : desinstala o elimina evidencias del malware..

  • send : copia un archivo desde el C&C hasta el host afectado

  • site-send : copia un archivo almacenado en un sitio Web al host afectado

  • recv : descarga un archivo desde Internet

  • enum-driver : enumera o lista los discos

  • enum-faf : lista archivos y carpetas

  • enum-process : lista los procesos en ejecución

  • cmd-shell : abre una ventana de comandos

  • delete : borra archivos o carpetas

  • exit-process : termina procesos específicos

  • sleep : espera cinco segundos, según el valor asignado a la variable.

Sleep

Tener en cuenta que algunos comandos están asociados a una función que es la que realmente realiza la opción, por ejemplo, el comando “recv” usa la función upload y recibe como parámetro la URL del archivo.

funcionUpload

Una de las funciones más interesantes es la de seguridad, la cual permite a partir del sistema operativo y la versión consultar los productos de antivirus que están instalados o informar si no tiene antivirus, posiblemente con la finalidad de usar técnicas de evasión según el antivirus que detecte.

Función de Seguridad

Función de Seguridad

Finalmente, al subir la muestra a Virus Total, se evidencia que ya es detectada por el 70% de los antivirus.

¿Cómo Erradicarlo?

La primera opción es verificar que su antivirus o solución antimalware lo detecte y elimine, en caso de que no lo haga, se debe escalar el caso con el fabricante para que envie la firma o sea detectado por euristica.

Por otro lado, se pueden  borrar manualmente los registros del malware, siguiendo los pasos de la función “uninstall”, que basicamente son:

  • Identificar el PID de la conexión y terminar el proceso en ejecución “wscript.exe” (Comando netstat -abo y luego Taskkill /PID #PID /F) o desde el administrador de tareas.
Conexión WScript.exe

Conexión WScript.exe

Terminación de Proceso

Terminación de Proceso

  • Desactivar la ejecución del malware al inicio de la sesión,  desde la configuración del sistema (Comando MSCONFIG), Pestaña Inicio de Windows.
MSConfig

MSConfig

  • Eliminar las claves de registros creadas en la ruta,normlamente contiene el nombre del proceso “WSCRIPT.EXE” seguidodelparrametro //B y luego la ruta en donde se encuentra.
    • HKEY_CURRENT_USER\software\microsoft\windows\currentversion\run\
    • HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run\

regedit

  • Borrar el archivos malicioso de la carpeta %APPDATA%  y del inicio del sistema. (Recuerde que antes debe mostrar los archivos ocultos del sistema para poder visualizarlo).

MenuInicio

  • Vacunar los ultimos medios extraibles o dispositivos USB que se hayan ingresado.
Borrado Malware en USB

Detección y Borrado del malware en la USB

Otras Contramedidas:

  • Se recomienda crear o modificar las reglas Correlación delSIEM y/o en elProxy, para detectar losString de Conexión en las peticionesHTTP (normalmente esPOST), es decir, por ejemplo, no solo elstring “is-ready”, sino también los siguientes que se detectaron en el código fuente:
    • “is-recving”
    • “is-sending”
    • “is-enum-driver”
    • “is-enum-faf”
    • “is-enum-process”
    • “is-cmd-shell”
  • Se recomienda activar los filtros en los IPS/IDS que tengan que ver con el malware llamado Houdini Worm.
  • Se recomienda monitorear y controlar la escritura de claves en la ruta RUN del sistema y del usuario, principalmente cuando el valor inicie por WSCRIPT.EXE.
  • Se recomienda seguir monitoreando e inventariando los archivos en Visual Basic Script, para identificar otras variantes de malware escritos en este lenguaje scripting.

Conclusión:

Luego de realizar el reversing al archivo encontrado, se identificó que es un codigo malicioso que corresponde al malware llamado “Houdini”, escrito en Visual Basic Script y el cual estaba ofuscado con la codificación en base64 usándolo interactivamente dos veces, luego usa la técnica ASCII. El malware tiene la capacidad de obtener información confidencial y ejecutar varios comandos desde el Command and Control en el equipo infectado, por ejemplo, enumerar procesos o terminar uno específico a partir del PID, además de saber que antivirus tiene instalado para realizar técnicas de evasión.

Segun informes de fabricantes de Antivirus (ej. ESET), en los ultimos meses este tipo de malware en VBS, tiene una tendencia alcista en Colombia y Venezuela, por ende, se deben tomar medidas para evitar incidentes de seguridad de la información, con alto impacto.

Estadísticas de detección variantes de malware VBS, en Colombia y Venezuela

Estadísticas de detección variantes de malware VBS, en Colombia y Venezuela

La muestra del malware analizado, se puede descargar desde la siguiente URL:

http://bit.ly/1dvtqAy

By @JOGAcrack

Detección y análisis de un codigo malicioso (malware en visual basic script)


Luego de negarme tanto a escribir post técnicos sobre seguridad informática (que es uno de los temas que me apasiona), creo que llego el momento de empezar a compartir con la comunidad, puesto que muchos se podrían ver beneficiados o aprender pildoritas sobre el asunto y complementar su conocimiento+experiencia.

Este post, resume los pasos realizados para la detección de un malware escrito y codificado en visual Basic Script y su respectivo análisis utilizando la técnica debugging, finalmente, se dan algunas recomendaciones de contención y erradicación para evitar su propagación.

Cabe aclarar que no se utilizaron servicios de sanbox de análisis comportamentales automáticos (muchos solo aceptan binarios) o desensambladores porque el malware usa una técnica de evasión sencilla (Conversión a ASCII) y no justifica realizar ingeniería inversa usando uno de estos, además por qué es más divertido entender manualmente lo que el malware están intentando hacer en nuestro host o la red.

Detección del malware:

El primer indicio fue que se detectó una conexión de red sospechosa desde un host interno, pasando por el proxy y hacia la IP publica con reputación alta maliciosa detectada en el Security information and event management (SIEM).

 

siem

Por lo anterior, se procede a revisar remotamente las conexiones de red (ej. con el comando netstat -abo) del host interno y efectivamente se evidencia que el proceso WScript.exe tiene establecida una conexión hacia el proxy con el Process ID 5744.

conexion

Posteriormente se puede validar los procesos que tiene en ejecución la maquina y verificar que usuario este ejecutando este proceso en especifico, para este caso en concreto, se valido que se estaba realizando con la cuenta de red del usuario afectado.

procesos

 

Consultando en Internet se evidencia que el proceso “wscript.exe” es un intérprete para scripts escritos en Microsoft Visual Basic Scripting Edition (VBScript) o JavaScript. Véase el articulo sobre WHS para más información.

Por lo que por “sentido común” y malicia indígena, procedemos a realizar búsqueda de archivos con esta extensión, encontrándonos con una en la siguiente ruta del perfil del usuario:

DeteccionScript

Se toma la muestra de este script sospechoso y se evidencia que varias soluciones de antivirus lo detectan como malware, por tanto, para el caso en que no lo esté detectando el antivirus personal o corporativo, puedes enviar la muestra comprimida con la contraseña estándar para que los laboratorios generen la firma y se despliegue la “vacuna” en todos los equipos a nivel mundial.

Hasta aquí se tiene la detección de un malware que posiblemente esta relacionado con la conexión inicial sospechosa, sin embargo, en el siguiente análisis de su código es donde se evidencia la relación y que estaba tratando de hacer exactamente.

Análisis del malware

Nombre Archivo Analizado: “SysDrivers.vbs”

HASH SHA256: 1390a053996a54af3b4f36450ac2928deb97eb7ed57eb2c7de5af5f09b87cfaf

Preview del script:

ScriptCodificado

Se evidencia que el código esta codificado en ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estándar Estadounidense para el Intercambio de Información y separado con un “SALT” de tres caracteres “§?§”, los cuales se almacenan en una variable acumuladora de tipo String.

Por lo que el siguiente paso es decodificar este código para extraer las variables, los valores y las funciones que usa.

Usando la misma lógica del “atacante” y agregando una línea de código para imprimir la variable que almacena el texto decodificado, puedes obtener el código fuente en texto claro.

FuncionDecodificar

Variables y valores asignados:

Variables-Valores

Esta pequeña función tiene una URL de Google Site codificada, llamando un archivo XML

FuncionAliveData

Valor Codificado>

(“104|116|116|112|115|58|47|47|115|105|116|101|115|46|103|111|111|103|108|101|46|99|111|109|47|115|105|116|101|47|98|97|114|103|99|109|47|99|111|110|102|105|103|47|112|97|103|101|116|101|109|112|108|97|116|101|115|47|116|100|105|45|49|47|85|115|101|114|83|101|116|116|105|110|103|46|120|109|108”)

Valor decodificado>

https://sites.google.com/site/bargcm/config/pagetemplates/tdi-1/UserSetting.xml

Este es el contenido del archivo “UserSetting.xml”

XML

Convirtiendo estos códigos ASCII, corresponde a una dirección IP

DecodeXML

Esta dirección IP tiene reputación alta de correo y es de Marruecos.

UbicacionIP

Esta IP es la que se detectó como maliciosa al inicio de este post.

Ahora vemos el comportamiento del script según las funciones que tiene:

Esta función obtiene información del disco duro en el equipo local, exactamente el número serial de cada volumen.

fHDD

¿Que contiene la variable “win” la cual recibe como parámetro?

vWin

Contiene esta instrucción:

decodeWIN

Este código sirve para establecer el nivel de autenticación y crear un objeto WMI el cual podría utilizar por ejemplo el método “ExecQuery” para hacer consultas al sistema operativo y obtener información del mismo, ejemplo, obtener los discos físicos del equipo:

La siguiente función obtiene información del disco duro, equipo, usuario, sistema operativo y la concatena con la constante VICnAME que tiene asignado el valor “SKY ESP PC “

fInfo

La siguiente función se encarga de enviar la petición POST con la dirección IP (para este caso la 41.249.107.143) que toma del sitio de google Site, por el puerto TCP 2223 y con el string “is-ready”, como se evidencia en el SIEM.

fPost

La siguiente función se encarga de escribir en las siguientes rutas del registro:

  • “HKCU\Software\Microsoft\Windows\CurrentVersion\Run\”,
  • ‘”HKLM\Software\Microsoft\Windows\CurrentVersion\Run\”
  • “HKEY_LOCAL_MACHINE\software\classes\folder\defaulticon\”,
  • Crea el acceso directo y crea el archivo malicioso “SysDrivers.vbs”

SubParseFile

Ejemplo de argumentos que envía “/c start ” “SysDrivers.vbs” ” ” “&start explorer ” “&exit”

cicloParseFile

Esta función es para salir del script

fUnParseFile

Las siguientes líneas inician el script y crean objetos para conectarse por XML a la dirección que toma desde Internet.

start

Finamlemente, este código se encarga de manejar el timeout de la conexión y los parámetros que se envían luego a la función post.

timeout

Conclusión:

Se evidencia que el script tiene el siguiente comportamiento:

Busca obtener la siguiente información confidencial utilizando la técnica de evasión tipo ASCII; El script se crea al inicio del perfil del usuario y del Sistema, con el fin de obtener el serial del disco duro, el nombre del equipo, el nombre del usuario de red y el sistema operativo, y lo concatena con el texto “SKY ESP PC”; esta información se envía por medio de un método POST a una dirección IP publica (con reputación alta y que es donde normalmente esta el Command and Control), que toma desde un archivo XML publicado en Google Site.

CONTRAMEDIDAS

Acciones recomendadas (después del análisis):

  • Bloquear en el proxy la siguiente URL, que es desde donde esta tomando la IP a la cual se conecta luego: https://sites.google.com/site/bargcm/config/pagetemplates/tdi-1/UserSetting.xml
  • Crear la configuración por la herramienta de inventario que tengan, para inventariar archivos con extensión *.VBS, , con el fin de detectar proactivamente posibles scripts de Visual Basic Script maliciosos como el analizado en este informe.
  • Validar si es posible bloquear el puerto TCP 2223 desde el Firewall Perimetral, es decir, que no lo este usando antes otro servicio de red o aplicación valida.

Acciones de contención (antes del análisis):

  • Bloqueo de las direcciones IPs a la cual se está conectando por medio del script.
  • Bloqueo de URLs de la IP con Puerto TCP en el proxy.
  • Detección y toma de la muestra del script malicioso para la generación de la firma en el Antivirus.
  • Crear o Activar filtros en los IPS/IDS que puedan detectar este tipo de comportamiento sospechoso.

Acciones de erradicación:

  • Despliegue del extraDAT o Vacuna en todos los endpoints y servidores de la red.

 Retos:

  • Identificar los vectores de ataque del malware.
  • Comprobar para que se usa el comando “SKY ESP PC”. ¿Es de una Botnet?
  • Utilizar técnicas OSINT para identificar la ubicación e información relevante de los autores del malware.

Se puede descargar la muestra del malware analizado,  desde la siguiente URL:

http://bit.ly/1GySUe2

Password: “infected”

“Lo interesante de la seguridad informática o de la información, es que como dicen por ahí, no todo es siguiente>siguiente>finalizar…”

By @JOGAcrack…

Que es INTERNET.ORG y como usar sus servicios gratuitos


El principal objetivo de la visita histórica de Mark Zuckerberg, creador de Facebook, a Colombia, era compartir el lanzamiento del proyecto que está apoyando llamado “INTERNET.ORG”, el cual tiene como finalidad, dar acceso gratuito a Internet a las personas con menos recursos y que hacen parte de los dos tercios que no cuentan con conexión a Internet en el mundo. Con esto, Colombia es el primer país en América y el cuarto en el mundo, en hacer parte de esta iniciativa.

El pase de diapositivas requiere JavaScript.

¿Qué es Internet.org? Palabras más, palabras menos, para Colombia en este momento, es una nube privada con acceso gratuito por un mes, para que los usuarios de TIGO, puedan navegar en las 15 aplicaciones o sitios Web que hacen parte de este proyecto.

Sin embargo, en el sitio Web Oficial, lo definen como:

es una asociación mundial entre líderes en tecnología, organizaciones sin fines de lucro, comunidades locales y expertos que trabajan juntos para que los dos tercios de la población mundial que no cuentan con acceso a internet, lo tengan.

Los Pro y los Contra de este Proyecto:

Pro (Ventajas):

  • Primera vez que una empresa de tecnología de esta magnitud (Facebook Inc.) tiene una alianza con Colombia para implementar una iniciativa mundial.
  • Acceso a unas aplicaciones específicas de internet (ej. Facebook Lite) de forma GRATIS para usuarios con menos recursos.
  • Publicación de aplicaciones o servicios de interés para los ciudadanos de Colombia.
  • Aplica para la mayoría de dispositivos móviles de gama baja, media, alta… si, también puedes acceder desde tu Smartphone si se te acabaron los datos pagos.

Contra (Desventajas):

  • Solo está disponible para los usuarios de TIGO, no aplica para CLARO, Movistar, AVANTEL, entre otros operadores de telefonía móviles en Colombia. Falta “Equidad”
  • Solo sirve para navegar en 15 sitios Web o aplicaciones definidos, no para otros sitios de la Web. Esto afecta la libre competencia de otras aplicaciones.
  • Al acceder a los sitios Web de Internet.org, Facebook procesa los datos del celular en sus servidores, afectando la “Privacidad.”
  • Falta sensibilización y capacitaciones para que los ciudadanos de bajos recursos aprendan a usar fácilmente este servicio y hagan un uso adecuado del mismo.
  • Según la política de restricciones de TIGO, aplica solo por un mes.

Promo

¿Cómo usar este servicio gratuito?

  1. Verificar que los datos estén habilitados en el celular. La ruta cambia según el dispositivo móvil.2015-01-16-07-50-57
  2. Ingresar desde el navegador Web del dispositivo móvil al sitio Web “www.internet.org “, aceptar las condiciones de Facebook y la política de privacidad de Internet.org.2015-01-15-08-08-41
  3. Seleccionar alguna de las siguientes aplicaciones y listo!

2015-01-15-08-09-44

2015-01-15-08-09-56

Finalmente, mi opinión sobre este Proyecto en Colombia es que un buen inicio para masificar el acceso a Internet, sin embargo, considero que deben abrirlo a todos los operadores de telefonía y de forma ILIMITADA; capacitar a las personas de bajos recursos para que aprendan a usar el servicio, ademas de permitir que las personas puedan escoger que tipo de aplicaciones o servicios pueden acceder gratuitamente, por ejemplo, una aplicación para reportar incidentes/amenazas que afecten a los ciudadanos, ya que muchas pueden encontrarse en peligro y no tienen ni minutos o datos para poder reportar los hechos a tiempo, salvaguardando su vida y la de otras personas.

Aquí está el vídeo de la entrevista que le realizó el ex Periodista y Presidente de la República al CEO de Facebook, en el lanzamiento de este proyecto para Colombia.

Más información en> www.Internet.org