miércoles, 1 de julio de 2020

Que bonitos siguen siendo.


No hace mucho se me paso un documento EML que contenía un documento “infectado”.

Parte inicial del archivo a investigar

Parte final del archivo a investigar

Como se puede ver, el nombre del archivo es: PO 127516.xlsm y el contenido del archivo viene en base 64.

NOTA: La extensión: xlsm, es la extensión utilizada por Excel para almacenar archivos con macros.

Para poder analizarlo, se tuvo que extraer los caracteres en base64 y decodificarlos, para lo cual se utilizo una herramienta de cosecha propia. Si quieres utilizarla puedes obtenerla aquí.

Tras obtener el archivo, se traslado a un entorno controlado para su análisis. En dicho entorno no existe salida a Internet de manera efectiva pero es posible analizar las comunicaciones que se han producido mediante Wireshark al abrir el documento analizado.

El Wireshark mostro peticiones DNS, hacía el dominio: cd.crazendemand.com

 Peticiones DNS

Tras la apertura del documento se procedió a revisar la macro del documento

Parte de la macro

Se procedió a buscar el punto de ejecución, porque el malware que utiliza macros siempre ejecuta algo

Se encontro :

Punto de ejecución dentro del código

En la ejecución paso a paso del código nos fijamos en el campo: TXTFile, en donde se encontró:


Como se puede apreciar, tenemos un archivo ubicado en: C:/programdata, que utiliza ALTERNATE DATA STREAM (asc.txt:script1.vbs).

Para ver el contenido del archivo que realmente contiene el premio gordo tenemos que utilizar el nombre completo, es decir, ejecutar , por ejemplo, lo siguiente: notepad asc.txt:script1.vbs

Al hacerlo se pudó ver:

Primeras líneas del archivo: asc.txt:script1.vbs

Analizando un poco por encima se vio:

1.- Que tiene que tener algún carácter en base 64
2.- Que realiza una petición web de tipo GET

Por lo tanto, se busco una cadena en formato Base 64.

Tuvimos suerte, por qué en las dos primeras líneas se tienen dos asignaciones de cadenas en base64 a variables.

La segunda cadena no da:

http://cd.crazendemand.com/vendor/phpunit/php-timer/src/bn.exe

Decodificación de una de las cadenas del código

Y os confirmo que se pudo descargar dicho archivo y que VirusTotal informaba que 48 de 69 motores lo clasificaban como malicioso.

MD5 del archivo descargado

Resultado de VirusTotal

 
En cualquier caso…

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

martes, 23 de junio de 2020

Quando arrivo a casa tua, me pongo a enumerar

Siempre que me das acceso a la tua casa/organización, lo primero que hago es obtener los datos referentes a la dirección IP de la máquina desde la que estoy conectado, así como los datos del servidor DHCP y del servidor DNS, si los hubiera.

Mi intención con ello es explorar el entorno para ver donde se encuentran los peligros y las medidas de seguridad

Después de obtener los datos anteriores y sabiendo que mi objetivo es conocer como se encuentra la red, realizo:

1.-       Un traceroute o un tracert, dependiendo del sistema operativo que maneje en ese momento, para saber qué elementos hay entre mi conexión y los servidores DNS y DHCP.

Lo encontrado sería "estudiado" posteriormente, pero no en ésta entrada.

2.-      Se realiza una conexión mediante el comando: nslookup, para realizar consultas inversas al servidor DNS de la tua organización

La primera petición de resolución inversa es la del propio servidor DNS, es decir, solicito el nombre del servidor DNS mediante el envío de su IP.

Si tenemos resolución, ¡tenemos una mina de oro!

No necesitaremos intentar hacer una transferencia de zona, con lo que ello implica, posibilidad de no conseguirlo y lo peor, detección por parte de las medidas de seguridad existentes que desconocemos. Si no que, podemos empezar a solicitar peticiones de resolución inversa ¡¡¡A LO BRUTO!!!

Para ello, podemos generarnos un pequeño script… pero, puede ser muy llamativo la cantidad de solicitudes de resolución inversa que parten desde nuestra máquina, y tampoco sabemos nada sobre las medidas de seguridad implementadas en el servidor DNS.

Por tanto, es mejor no llamar mucho la atención, por ello es preferiblemente desarrollar un script que permita consultar rangos de red de tipo C, como por ejemplo:

NOTA: Si te gusta el: ¡A LO BRUTO!, puedes modificar el código.



             Ahora... a preguntar, que el saber no ocupa lugar!, o eso dicen.
        
             Este código y alguno más lo dejo en mi github, por si os sirven de algo.
        
             En cualquier caso…

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

jueves, 14 de mayo de 2020

Arañita, ¿dónde vas?


Siempre he querido crear mi propio “spider” en bash, para no tener que utilizar herramientas externas.

A este respecto,  aproveché un trabajo de hace unas semanas para desarrollar la idea anterior, es más, aproveché para darle más funcionalidades, porque así lo necesitaba para mi trabajo.

La funcionalidad incorporada es la de detectar los distintos tipos de extensiones de los distintos documentos que posee el sitio web, y la posibilidad de descargarlos para su posterior análisis de metadatos. Esta última parte, la extracción de metadatos, lo desarrollaré a posteriori.

El código es el siguiente:

NOTA: Creo que el código es fácil de entender, si no es así, contáctame.

 Parte del código 1 de 3

Parte del código 2  de 3

Parte del código 2  de 3

Un ejemplo del uso de este código se puede ver a continuación:

Ejemplo de uso del código

Estos códigos y alguno más lo dejo en mi github, por si os sirven de algo.

En cualquier caso…

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

jueves, 16 de abril de 2020

De todo se aprende


Recientemente ha tenido lugar un CTF de C0r0n4con, de hecho aún sigue, por lo que intentaré un hacer demasiado spoiler.

Durante los primeros días del CTF, tuve un momento para conectarme y realizar un reto de esteganografía, de hecho, uno que te daba 100 puntitos.

El reto consistía en dada un imagen, obtener la flag… nada fuera de lo normal, aunque personalmente terminé aprendiendo algo nuevo

El archivo descargado consistía en un archivo “pdf”, que cuando lo abras veras dos páginas, en la segunda de ellas podrás ver el siguiente icono


Si haces doble click sobre el icono, aparecerá un mensaje de texto que nos dará varias opciones, entre ellas estará aquella que nos permitirá ver el contenido del archivo.

El contenido se trata nada más y nada menos que de un hash en base64



Si decodificamos su contenido de manera online, vemos que lo que tenemos es un archivo en formato PNG (imagen)


Ahora se nos plantea un problema, como trasladar esta información a un archivo que tras ser interpretado nos muestre la imagen. Puedes pensar que con un simple corta y pega se resuelve pero me temo que no, ya que lo que estas copiando son caracteres ASCII y por ahí no van los tiros.

¡Pruébalo si no me crees!

En este punto, puedes hacer dos cosas: buscar alguna web online que nos haga lo que necesitamos, que existen o utilizar algún tipo de lenguaje de programación para realizar la tarea.

Yo tomé el primer camino, pero me prometí abordar el segundo… ¡y aquí estoy!… para ello ¡te escojo a ti, PYTHON!

Y aquí tenéis el código resultante:


Y nuestro archivo PNG, contiene la siguiente imagen:


Bien, hemos conseguido un código de barras.

Ahora toca, transformar dicho código de barras a caracteres ASCII.

En este punto podemos hacer dos cosas: buscar alguna web online que nos haga lo que necesitamos, que existen o utilizar algún tipo de lenguaje de programación para realizar la tarea.

Yo tomé el primer camino, pero me prometí abordar el segundo… ¡y aquí estoy!… para ello ¡te escojo a ti, PYTHON!

Pero antes necesitamos instalar la siguiente librería de Python: pyzbar, pero es fácil. Con un simple: apt-get install libzbar0, lo tenemos.
Y aquí tenéis el código resultante:


Y nuestro código de barras se corresponde con la cadena:


Estos códigos y alguno más lo dejo en mi github, por si os sirven de algo.

En cualquier caso…

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