miércoles, 21 de junio de 2017

Recordatorio: Torificar cualquier comunicación con TOR Browser

Aunque mucho se ha escrito sobre este asunto, quiero crear un recordatorio para las personas con mala memoria.

El objetivo es: torificar cualquier programa que utilice comunicaciones TCP.

Para ello, sólo necesitaremos:

1.- TOR Browser (https://www.torproject.org/)
2.- ProxyChain (http://proxychains.sourceforge.net/)

-----------------------------------------------------------------------------------------------------------------------------------------------------------
NOTA:  El TOR Browser lo puedes cambiar por el comando TOR (linux). El siguiente enlace explica perfectamente como instalar y usar la combinación: TOR/ProxyChain

https://www.redeszone.net/2014/10/17/como-instalar-y-usar-proxychains-y-tor-en-kali-linux/

                O usar la combinación: TOR/ProxyChain/nmap.

https://www.shellhacks.com/anonymous-port-scanning-nmap-tor-proxychains/
 ----------------------------------------------------------------------------------------------------------------------------------------------------------

TOR Browser, es nuestro navegador web favorito que utiliza la red TOR para establecer su conexiones web. Para lo cual utiliza un túnel VPN, el cual utilizará ProxyChain.

Se encuentra disponible para múltiples sistema operativos, y su instalación es muy sencilla tanto en sistema Linux como en sistema Windows.

ProxyChain, permite tunelizar comunicaciones TCP y DNS a través de proxys.

Sólo se encuentra disponible para versiones Linux, y su uso es tan fácil como escribir el siguiente comando:

proxychain <programa a torificar> <opciones del programa a torificar>

Pero antes de lanzar el comando se tiene que hacer:

1.- ESENCIAL Y DE CARACTER PERMANENTE: Este paso consiste en modificar la configuración de ProxyChain, para que traslade todas las comunicaciones TCP a través del túnel vinculado con la red TOR. Para ello, abrimos el archivo: /etc/proxychains.conf, y :

                 1.1.- Des-comentamos la línea 10 (en mi archivo): #dynamic_chain


Línea 10 (#dynamic_chain), des-comentada.

                1.2.- Comentamos la línea 18 (en mi archivo): strict_chain.

Línea 18 (strict_chain), des-comentada.

               1.3.- Y por supuesto, creamos/modificamos las últimas líneas del archivo con las que indicaremos al ProxyChain por donde debe enviar las comunicaciones.

                El TOR browser, por defecto, habilita el puerto 9150/TCP, como puerto de entrada al túnel dirigido hacía la red TOR.

Camino por donde se envian los paquetes al utilizar el comando: proxychain.

2.- ESENCIAL: Levantar una instancia de TOR Browser.

Y ahora ya, sí que sí, podemos torificar el programa que "deseemos"

Ejemplo: Torificación de la navegación web a través del firefox


Solicitud de la IP que se utiliza para navegar por internet a través del Firefox y a través del TOR Browser


Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

martes, 6 de junio de 2017

¡¡Estamos igual o peor que hace años!!

En una de las últimas auditorias sobre un WordPress de "última generación", más concretamente: versión 7.4.5, se encontró con una fuga información conocida desde 2011, más concretamente sobre las versiones de WordPress:  2.6, 3.1, 3.1.1, 3.1.3 y 3.2-beta2.

La fuga de información permite conocer los nombres de los usuarios almacenados en la base de datos de WordPress, y se encuentra identificada como: CWE-715.

Está vulnerabilidad se categoriza como:

Impacto: Bajo
Explotable remotamente: Sí
Explotable locamente: Sí

Para ello sólo hay que jugar con el parámetro "author" con el que trabaja WordPress. Dicho parámetro acepta valores numéricos que hacen referencia al ID del usuario, por lo que si se utiliza la petición: [http|https]://<dominio>/?author=<ID> , se podría conocer el nombre del usuario, e incluso ser redirigido hacía la página personal del usuario. Aunque esto último, supuestamente , a partir de la versión 3.1.3 esto ya no se puede.

Más información:
https://www.talsoft.com.ar/site/talsoft-advisory-security-wordpress-user-id-and-user-name-disclosure/

Se quiso probar con otro sitio donde estuviera instalada la última versión de WordPress (7.4.5), y me se encontró lo siguiente:

Sitio Web que utiliza la última versión conocida de WordPress.

Nombre de uno de los usuarios almacenados en la base de datos de WordPress

Es decir, al igual que la que se audito, esté sitio también permite enumerar los usuarios almacenados en la base de datos mediante el CWE-715.

¡Después de tantos años seguimos igual!

¡¡O peor!!, ya que se nos redirige a la página del usuario ... algo que debería estar resuelto desde la versión: 3.1.3

Página web del usuario:"gregwstuart"

CONTRAMEDIDA

Recomiendo encarecidamente el bastionado del servicio WordPress mediante algún tipo de guía. Sugiero la guía: CCN-STIC-460

https://www.ccn-cert.cni.es/series-ccn-stic/guias-de-acceso-publico-ccn-stic/952-ccn-stic-460-seguridad-en-wordpress/file.html


Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

ACTUALIZACIÓN (21/06/2017)

Si se introduce el siguiente código en el archivo: funcions.php, se podrá evitar la enumeración a través del parámetro "author", ya que dichas peticiones serán redirigidas:

Código que permite evitar la enumeración de usuarios a través del parámetro: "author".


jueves, 11 de mayo de 2017

Unas consideraciones sobre la vulnerabilidad CVE-2017-5689

Unas consideraciones sobre la vulnerabilidad: CVE-2017-5689, relacionada con procesadores Intel con firmware a partir de la versión: 6.0

Después de investigar sobre el asunto, puedo decir que el problema radica en el servicio: LMS.exe.

Para saber más detalladamente donde radica el fallo concreto, la segunda referencia de los siguientes enlaces es lo que buscas.

Más información:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5689
https://www.embedi.com/files/white-papers/Silent-Bob-is-Silent.pdf
https://www.tenable.com/blog/rediscovering-the-intel-amt-vulnerability
https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00075&languageid=en-fr

Este servicio es el que levanta un servicio web sobre alguno de los puertos TCP donde se puede montar el servicio web son: 623,664, 16992-16995. En una las máquinas que uso pude observarlo sobre los puertos 623/TCP y 16992/TCP

Puerto 623/TCP abierto

Puerto 16992/TCP abierto

Servicio montando  sobre el puerto: 623/TCP

Servicio montando  sobre el puerto: 623/TCP

Este servicio, se ubica sobre el directorio:  c:\Programa Files (x86)\Intel\Intel(R) Management Engine Component\LMS\, y basado en el ejecutable LMS.exe, y aparece entre los servicios de la máquina con el nombre: Intel(R) Management and Security Application Local.

Servicio en la máquina afectada.

Existe una herramienta publicada para remediar esto, y que consiste en deshabilitar el servicio y renombrar el archivo LMS.exe. Está última parte NO está bien implementada ;-)), pero la primera parte sí, siempre y cuando se ejecute la herramienta  con permisos de administrador.

Para descarga la herramienta utiliza la URL: https://packetstormsecurity.com/files/142411/Disable-Intel-AMT-master.zip

Aunque creo que la manera más rápida de hacerlo es deshabilitar el servicio anteriormente mostrado, y parar la ejecución que reside en memoria.

Resultado tras parar el servicio problemático y deshabilitarlo.


Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.  

lunes, 8 de mayo de 2017

Donde están las claves, matarile, rile, rile





Hace tiempo me pregunte donde se almacenaban las contraseñas de los usuarios locales dentro de sistemas Windows.

Antes de seguir, comentar que las pruebas están realizadas sobre un sistema Windows 7

Es lógico pensar que dichas contraseñas (hashes) residen en el registro de Windows, pero, ¿dónde?

Pues básicamente residen en las "secciones" del registro SAM and SECURITY. Más concretamente: HKEY_LOCAL_MACHINE\SAM y HKEY_LOCAL_MACHINE\SECURITY. De hecho ambas se organizan igual y poseen la misma información.

Dichas "secciones" sólo son legibles mediante el usuario: system.

"Secciones" HKLM/SAM y HKLM/SECURITY sin permisos para su visualización

Por lo tanto para acceder a dichas secciones necesitamos elevar privilegios mediante el siguiente comando:

Psexec.exe –s –i regedit.exe

Pero para que dicha instrucción funcione correctamente, se debe ejecutar con permisos de administrador.

"Secciones" HKLM/SAM y HKLM/SECURITY tras elevar privilegios

La herramienta: Psexec.exe, del pack de herramientas SysInternals, puede ser descargado desde la siguiente URL: http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx

Más información: 
http://www.windowsnetworking.com/kbase/WindowsTips/Windows2000/RegistryTips/RegistryTools/HowtobreakintoregistrytoexploreHKLMSAMandHKLMSECURITYkeys.html 

Dentro de las "secciones" anteriormente comentadas, debemos irnos a: "\Domains\Account\Users\", en donde se podrá ver los identificadores únicos de los distintos usuarios presentes en la máquina local.

NOTA: Para poner "cara" a cada uno de esos identificadores, dentro de la clave de registro: "\Domains\Account\Users\Names", nos aparecerán los nombres de los usuarios dados de alta en la máquina local, y si seleccionas cualquiera de ellos se podrá averiguar el identificador único del usuario en cuestión.

Relación entre usuario e identificador único del mismo.

Dentro de la clave de registro del identificador único de un usuario se puede ver dos valores de tipo binario: "F" y "V"

La que nos interesará será la clave "F", ya que ella contendrá el valor hash de la clave del usuario.
















Clave de registro que contiene el hash de la contraseña para el usuario "Administrador"

Más información:
http://windowsitpro.com/en/how-reset-administrator-password

De hecho, metasploit, tiene un modulo de post-explotación para obtener la lista de contraseñas (hashes) de los distintos usuarios de la máquina. También podemos hacer uso de dicho modulo, mediante un comando tras obtener una shell remota con meterpreter. Este módulo/comando es: hashdump.

Si se quiere se puede obtener el código de dicho comando o módulo en:
https://github.com/rapid7/metasploit-framework/blob/master/modules/post/windows/gather/hashdump.rb

En el código se pueden ver llamadas a las claves comentadas en este artículo.

Lectura de las claves de registro donde se almacena la información de las claves de los usuarios

Lectura de las claves de registro de los distintos usuarios dados de alta en un sistema local.


Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

jueves, 20 de abril de 2017

Mirando debajo de las faldas de un "posible" malware.

Siempre que se analiza un archivo PE (archivos ejecutables para sistemas Windows), todo el mundo recomienda hacer un pequeño análisis estático.

El objetivo de esto: "intuir" si nos encontramos ante un "bicho malicioso" o no.

Dentro de los distintos puntos a mirar, siempre hay que mirar las SECCIONES del archivo.

Pero para entender que es una sección, es necesario entender que es un archivo PE, y para ello se usará la definición dada por el Wikipedia.

NOTA: https://es.wikipedia.org/wiki/Portable_Executable

Según la Wikipedia:

Definición de archivo PE según la wikipedia.

De manera gráfica, un archivo PE se compone de:

Composición de un archivo PE, de manera gráfica.

De las secciones existentes, las más comunes e interesantes.

SECCIÓN
DESCRIPCIÓN
.text    

Contiene las instrucciones que la CPU ejecutará y por lo tanto, debería ser la única sección que contuviera código.
.rdata 

Normalmente contiene los datos de sólo lectura usados por el ejecutable. Si no existen las secciones: .idata y .edata, está sección también puede contener funciones a exportar o importar.
.data   
Contienen los datos globales del ejecutable.
.idata
Si está presente en el ejecutable, almacena información sobre las funciones a importar.
.rdata 

Si está presente en el ejecutable, almacena información sobre las funciones a exportar
.pdata

Sólo está presente en los ejecutables de 64 bits, y almacena información sobre el manejo de las excepciones.
.rsrc    

Contiene los recursos usados por el archivo PE que no son considerados partea del ejecutable, tales como: iconos, imágenes, menús y cadenas.
.reloc  
Contiene información para la recolocación de librerías.

QUÉ BUSCAR

De las anteriores secciones, la sección que dará más información para determinar si un archivo PE puede ser un archivo malicioso es la sección: .rsrc.

El motivo es que en dicha sección más utilizada para embeber/contener otro programa, el cuál podría ser extraído y ejecutado por el programa anfitrión.

Nos encontramos, por tanto, con una manera de ocultación.

Para determinar si un archivo trae embebido otro debemos fijarnos en el tamaño de la sección.

Otros indicios a buscar son las secciones con nombres no habituales.

COMO BUSCARLO

Todos los archivos PE pueden ser editados fácilmente mediante editores y editores hexadecimales, pero entonces, se debería tener un conocimiento profundo sobre la estructura interna de dichos archivos. Por esto existen ciertos programas que interpretan la información interna de los archivos PE y la muestran estructurada y fácilmente legible.

En nuestro caso, para poder ver toda la información de las secciones de las que se compone un archivo PE, deberemos irnos a: IMAGE_SECTION_HEADER.

EJEMPLOS

MD5: 0E066D6FAF758DD2C6CCFBEA1F989973

NOTA: Este archivo es un conocido ransomware, más concretamente: Cerber

Contiene un sección: .rsrc de 438 bytes

MD5 del archivo a estudiar

Según VT, 42 motores de 57 lo detectan como malicioso.

Secciones del archivo analizado - Parte 1

Secciones del archivo analizado - Parte 2

MD5: B15B187ADA85381027ABE8E30831385

Contiene un sección: .rsrc de 1192 bytes

MD5 del archivo a estudiar

Según VT, 45 motores de 58 lo detectan como malicioso.

Secciones del archivo analizado.

MD5: 1EEAE1E6FD62B56B03BA6EA7CE226EF9

Contiene un sección: .rsrc de 384 bytes, además de una sección de nombre: .gfids


MD5 del archivo a estudiar

Según VT, 48 motores de 62 lo detectan como malicioso.

Secciones del archivo analizado.


Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

sábado, 1 de abril de 2017

This is my way!!!!!!

Hace tiempo se leyó la siguiente entrada en el blog de Didier Steven:

https://blog.didierstevens.com/2017/03/07/update-oledump-py-version-0-0-27/

Más concretamente, el vídeo referente al nuevo plugin de la herramienta "oledump", que se denomina: plugin_str_sub.

https://youtu.be/tnPWKHiHpBo

En ella se enseña una manera de des-ofuscar el código de las macros de un archivo ofimático para poder comprender el código de las macros.

Esta lectura permitiría encontrar información útil que pueda ser utilizada para alimentar cualquier sistema de inteligencia desplegado.

En este sentido, se va a comentar a continuación una manera de extraer información de archivos ofimáticos utilizados como "downloaders" y cuyas macros se pueden modificar. Todo ello sin necesidad de des-ofuscar el código.

Para ello vamos a analizar el archivo ofimático con md5:
F0B58E18DFF22D0A6D1B91076A1B463B

Md5 del archivo a analizar

Al ser un downloader, lo que buscamos es la URL desde donde se intentará descargar, el archivo analizado, el archivo verdaderamente malicioso. Para ello, lo primero que se hará es abrir el archivo, mejor en un entorno controlado, sin permitir la ejecución de macros.

Apertura del documento sin ejecutar las macros que trae el archivo

Tras esto, se procederá a modificar las macros que tengan el archivo analizado, que pueden venir codificadas

Observamos las macros que trae el archivo

Accedemos al código de la macro

En este punto, comentar que el lo que siempre hay que buscar es la cadena: "RUN", ya que esta cadena pertenecerá a la instrucción que permite lanzar un comando dentro del sistema operativo Windows.

Búsqueda de la cadena: "run".

Instrucción que permite lanzar un comando a nivel del sistema operativo Windows.

La línea encontrada consistirá en:

<variable definida como un objeto "wscript.shell" >.run <comando a ejecutar>,<apariencia de la ventana de windows>,<valor que indica si es necesario esperar a que el comando termine>

Más información:
https://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.84%29.aspx

Esa línea debemos comentarla con el comando "msgbox", para ver el contenido de la variable que contiene el comando, de la siguiente manera:

Comentamos la instrucción

Tras dicha modificación, debemos guardar los cambios y volver a ejecutar el archivo, pero está vez, permitiremos la ejecución de las macros.

Tras el cambio , lanzamos la ejecución del documento permitiendo la ejecución de macros.

El resultado final será:

Mensaje devuelto mostrando el contenido que se va a ejecutar.



Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.