domingo, 8 de diciembre de 2024

CTF - Blueteam - Forense sobre imagen de USB

 


Ejercicio:            BlueTeam

Objetivo:             Obtener el dominio desde dónde los atacantes llevaron a cabo el ataque

Recurso:             Imagen de un USB

 

 

Pasos llevados a cabo:

 

1.- Identificación del tipo de fichero con el que vamos a trabajar.

 2.- Identificación del tipo  de sistema de fichero de la imagen

 

3.- Identificamos el “offset” de comienzo de la partición que queremos montar

 

 4.- Montamos la imagen para poder acceder al contenido de la susodicha.

 5.- Accedemos al punto de montaje para ver el contenido

Cuando estamos revisando un USB, lo primero desde mi punto de vista a buscar es el archivo: “autorun.inf” (¡llamativo el nombre del archivo!), el cual es leído tras insertar un USB en un equipo, buscando con ello comprobar si existe alguno fichero a ejecutar sin intervención del usuario

En nuestro caso el contenido es:

Dentro del archivo, el campo más importante es el campo:OPEN”, ya que lo que indique dicho campo es lo que se ejecutará tras la lectura del archivo “.inf”

Por lo tanto, podemos ver que tras insertar el USB y leer el archivo “autorun.inf”, lo siguiente será ejecutar el fichero “s.jpg.exe” (¡doble extensión!, indicativo de “cosas malas”).

Pero, si buscamos dicho fichero de cualquier manera, no aparece por ninguna parte.

Por lo tanto, debemos suponer que se encuentra borrado, y, para recuperarlo  necesitaremos recorrer el sistema de fichero secuencialmente buscando todos los ficheros que permanezcan en él. ¿Por qué?, porque nada se borra hasta que se hace de manera segura o se sobrescribe.

6.- Mediante la herramienta: “foremost” (https://www.kali.org/tools/foremost/), buscamos todos los ficheros, borrados y no borrados, dentro de la imagen del USB.

 


Se encuentran 3 archivos ejecutables, con extensión “EXE”, pero tras una evaluación de los mismos, utilizando un análisis estático, así como una búsqueda por internet de sus hashes … no encontramos nada, de hecho no podemos decir que alguno de este archivos sea el que buscamos. Por eso necesitamos seguir buscando, pero esta vez, nos centraremos en la MFT (Master File Table) con la que trabaja el sistema de fichero NTFS.


NOTA: La MFT (Master File Table) es un “directorio” que almacena los medadatos de los ficheros que contiene el sistema de ficheros, tanto de los archivos no borrados como los borrados, siempre y cuando el espacio de estos últimos no haya sido sobrescrito.

7.- Mediante la herramienta: “autopsy”, podemos recuperar la información de la MFT.

Efectivamente, la herramienta nos indica que en la MFT están los metadatos del archivo que buscamos, y que por supuesto no lo encontrábamos porque dicho archivo se encuentra eliminado.

Pero, si lo analizamos llegaremos a la conclusión de que este archivo realmente es un “netcat” renombrado, y por lo tanto no es lo que estamos buscando. Por lo tanto, debemos seguir indagando.

En nuestro proceso de investigación, podremos ver un archivo muy interesante, cuyo nombre es: Desktop.lnk, que se encuentra “eliminado” y por tanto no es visible a simple vista.

Pero que gracias a “autopsy” podemos ver su contenido, que es el siguiente:

Es decir, este “link” o “acceso directo” ejecuta al hacer un doble click sobre él un comando “cmd.exe”, que a su vez ejecuta algo que viendo codificado. Descodificándolo, podemos ver lo siguiente:


NOTA: Si se realiza la descodificación a mano, hay que tener en cuenta que la primera posición en todo array de datos NO es la 1, sino la 0

Bitsadmin, es una herramienta de línea de comandos que se usa para crear, descargar o cargar trabajos, y para supervisar su progreso. Por lo tanto, estamos ante el archivo de infección, que no es más que un “downloader”, y que nos permite cumplir con nuestro objetivo.


domingo, 2 de abril de 2023

Cuadernos de malware: Interesante forma de identificar un equipo infectado por parte de un troyano

 

Hace poco me enviaron un archivo para su análisis, el archivo era un script programado en “vbs”…comenzamos mal…su ejecución se lanzaba siempre que se arrancaba la máquina gracias a una clave de registro ubicada en el lugar más típico para ganar persistencia: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

… continuamos mal…y tras revisar el contenido del archivo se pudo apreciar un RAT o lo que comúnmente se ha denominado TROYANO, por lo que terminamos mal.

Lo anterior no es lo importante, lo importante o mejor dicho, lo que más me ha gustado de este troyano es la identificación del quipo infectado.

La identificación siempre es enviada al C2C a través de cabecera: User-Agent.

 


Teniendo en cuenta el código, el contenido de la variable “information”, y por tanto, el contenido del User-Agent, seguirá el siguiente patrón:

<serial number del disco C:>&qiQqi&HKEY_CURRENT_USER\SOFTWARE\C\Note&qiQqi&<nombre del ordenador>&qiQqi&<nombre de usuario>&qiQqi&<nombre del sistema operativo>&qiQqi&0.1&qiQqi&<nombre de antivirus>&qiQqi&VBScript&qiQqi&

 

En cualquier caso.

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

domingo, 5 de marzo de 2023

Cuadernos de campo: Remote Source Disclosure en PHP <= 7.4.21

 

Hace un mes salió publicado el siguiente post: 

https://blog.projectdiscovery.io/php-http-server-source-disclosure

En el cual se explica un fallo de seguridad encontrado en versiones de PHP anteriores a la 7.4.22, por el cual se puede leer el código fuente de un archivo PHP simplemente modificando las cabeceras HTTP de la petición hecha a dicho archivo.

Para comprobar la veracidad de lo comentado en el post, se realiza un par de PoCs sobre un entorno “vulnerable”

 

Versión vulnerable

Tras comprobar la versión de PHP instalado, se preparan las dos simples páginas PHP que se van a utilizar en la PoC. Están son:

 

 Primera página creada en PHP, o “patado.php”

 

Segunda página creada en PHP, o “patatos.php”

 

Ahora es el momento de montar el entorno web para la primera PoC

 


Si lanzamos una petición web al entorno montado, obtenemos la ejecución del archivo PHP:

 

Ejecución de la página PHP: patato.php

 

Pero si lanzamos la petición modificada tal y como comenta el post, obtenemos el código fuente de dicha página:

 


 

¡La primera PoC funciona!

¡Se habrá tenido suerte!, lancemos la segunda PoC

 

Se monta el entorno web para la segunda PoC

 

Lanzamos una petición web al entorno montado, obteniendo la ejecución del archivo PHP:

 

Ejecución de la página PHP: patatos.php

 

Y si lanzamos la petición modificada tal y como comenta el post, obtenemos … ¡el código!:

 



 

Parece que funciona, ahora sólo tenemos que saber aprovecharlo para …

 

En cualquier caso.

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

 

viernes, 6 de enero de 2023

Cuadernos de campo: WordPress

 

OBJETIVOS DE ESTE HOW-TO:  

1.- Obtener usuarios y credenciales válidos para el acceso al entorno web, una vez dentro intentar generar una RCE

2.- Encontrar vulnerabilidades en plugins o themes para la obtención de un RCE u otras cosas.

3.- Encontrar archivos de configuración con información útil.

 

PASOS A SEGUIR

 

·       Detección de la presencia de WordPress

 

o   Cabeceras HTTP. >>> Se obtiene por ejemplo una cabecera : X-Redirect-By: WordPress

o   En robots.txt >>> Aparecen referencia a carpetas:

 

§  /wp-admin/

§  /wp-admin/login.php

§  /wp-admin/wp-login.php

§  /wp-admin.php

§  /wp-content/

§  /wp-includes/

§  /wp-login/

§  /wp-login.php

§  /login/

§  /login.php.

 

IMPORTANTE: Principales ficheros/directorios de WordPress:

 

·       license.txt >>> contiene información útil

·       wp-activate.php >>> es usado por el proceso de activación por correo electrónico mientras se configura el WordPress

·       Carpetas de login

o   /wp-admin/login.php

o   /wp-admin/Wp-login.php

o   /login.php

o   /wp-login.php

·       xmlrpx.php >>> fichero que presenta la capacidad de WordPress para solicitar información enviando las peticiones por HTTP mediante XML. Estas comunicaciones se están reemplazando por API REST

·       /wp-content/ >>> directorio donde se almacenan los plugins y themes

·       /wp-content/uploads/ >>> directorios donde se almacena cualquier fichero subido a WordPress

·       /wp-includes/ >>> directorio dónde se almacenan los ficheros esenciales de WordPress, tales como certificados, fuentes, código javascript, etc.

      

o   Buscar en el código fuente de la página inicial:

             

§  Cadena “wordpress

§  Cadena: ‘<meta name:”generator”

§  Cadena: “.css?ver

§  Cadena: “.js?ver

 

NOTA: Estas dos últimas cadenas pueden darnos también información sobre: plugins, themes … entre esa información, las versiones

 

o   Mediante herramientas

 

§  Nuclei >>> echo “<página>”| nuclei  -t wordpress-detect.yaml

§  Wp-scan 

NOTA: con token

§  Wappalyzer

 

·       Detectar usuarios

 

o   https[:]//<dominio>/?author=[0..1000]

o   https[:]//<dominio>/wp-json/wp/v2/users

 

NOTA: Tras obtener un listado de usuarios, se podrían realizar ataques de diccionario y fuerza bruta.

              Los usuarios de WordPress pueden tener estos roles:

 

§  Administrator

§  Editor: Pública y gestiona sus post y los de otros.

§  Author: Pública y gestiona sólo sus propios post.

§  Contributor: Escribe y gestiona sus post pero no puede publicarlos.

§  Subscriber: Puede buscar post y editar su perfil.

 

·       Detectar la existencia y uso del archivo: xmlrpc.php

 

o   Esto permitiría usar los métodos accesibles para hacer “cosicas”, como por ejemplo: ataques de fuerza bruta

 

·       Detectar plugins

 

o   En el código fuente de la página inicial, buscar:

 

§  Cadena: “.css?ver”

§  Cadena: “.js?ver”

 

NOTA: Estas dos últimas cadenas pueden darnos también información sobre: plugins, themes … entre esa información, las versiones

 

o   Mediante herramientas

§  Wp-scan 

 

·       Detectar themes

 

o   En el código fuente de la página inicial, buscar:

 

§  Cadena: “.css?ver”

§  Cadena: “.js?ver”

 

NOTA: Estas dos últimas cadenas pueden darnos también información sobre: plugins, themes … entre esa información, las versiones

 

o   Mediante herramientas

§  Wp-scan 

 

·       Detectar fugas de información

 

o   De la configuración >>> https[:]//<dominio>/wp-config.[php|txt|zip|md|php_orig|bak]

o   De los logs de debugging >>> https[:]//<dominio>/wp-content/debug.log

o   De los backups >>>

https[:]//<dominio>/domain.[7z|lz|xz|bz2|gz|sql.xz|sqlitedb|rar|tar.gz|zip|z|tar.z|sql.tar.z|sql.gz|db|sqlite|sql.7z|sql.bz2|sql.lz|sql.rar|sql.tar.gz|sql.zip|sql.z]

 

·       Detectar la existencia y uso del archivo: wp-cron.php

 

o   Esto permite realizar ataques de DoS