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