Análisis de malware

Blackrota abusó de la API remota de Docker para entregar la baliza CobalStrike

14 de abril de por Pedro Tavares

Descubriendo la puerta trasera de Blackrota

Blackrota recibe su nombre debido a su nombre de dominio C2: backdota.ga. El binario está disponible para sistemas Linux y admite arquitecturas de sistemas operativos x64 y x86. Como se desarrolló en GoLand, la puerta trasera se puede compilar para apuntar a sistemas Windows, una de las ventajas de utilizar un lenguaje de programación multiplataforma.

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

Blackrota se desarrolló y configuró en base al proyecto geacon, una implementación de baliza CobalStrike en Go, que se puede utilizar para controlar las máquinas comprometidas a través del servidor del equipo CobaltStrike.

1: Baliza e información obtenida de la máquina comprometida a través del servidor del equipo CobalStrike.

Modus operandi de Blackrota

Inicialmente, la puerta trasera se descarga desde los depósitos de AWS S3 mediante el abuso de múltiples cargas útiles para el uso no autorizado de la API remota de Docker. Una de las cargas útiles utilizadas se puede observar a continuación:

2: Puerta trasera de Blackroota descargada mediante el abuso de Docker Remote API.

Después de eso, el binario Linux /bin/sh se utiliza para generar un nuevo proceso blackrota en la máquina infectada.

Al analizar el binario, es posible ver la ruta de desarrollo de este malware desde la máquina de desarrollo de los delincuentes.

3: Rutas de desarrollo de Blackrota codificadas dentro del binario.

Uno de los desafíos de esta puerta trasera de GoLand es la difícil confusión de cadenas y funciones que dificultan su análisis. Un claro ejemplo son los símbolos binarios presentados en la 4.

4 : Lista de funciones de Blackrota ofuscadas.

Blackrota utiliza la herramienta gobfuscate disponible en GitHub para ofuscar el código fuente antes de compilarlo. En detalle, gobfuscated reemplaza cadenas usando una llamada XOR que decodifica dinámicamente las cadenas en tiempo de ejecución.

Como se observa en la 4, parte del binario estaba ofuscado, incluyendo:

Aunque una gran parte del binario se ha ofuscado, lo que dificulta detectar qué bibliotecas y funciones de terceros se utilizaron para implementar esta pieza, fue posible identificar que Blackrota fue compilado y desarrollado en base a la biblioteca CobalStrike geacon.

Uno de los pasos utilizados para recuperar partes del nombre original de funciones ofuscadas fue la compilación de un nuevo binario usando una biblioteca geacon y luego creando una firma FLIRT. Los investigadores realizaron los siguientes pasos:

Después de esta estrategia, se pueden revelar parcialmente algunas cadenas para identificar algunas llamadas y el modus operandi de esta puerta trasera.

5: Nombres de funciones desenfocados después de crear una nueva firma FLIRT para geacon firmas GoLand.

La baliza geacon fue diseñada especialmente por autores de malware antes de compilarla. Una señal clara es que solo implementa algunas de las funciones clave de la baliza CobaltStrike original disponible en GitHub:

Como se observa, sólo están disponibles ocho comandos: los indispensables para establecer comunicación entre la máquina infectada (bot) y el servidor C2 (servidor del equipo CobalStrike). La función «CMD_FILE_BROWSER» también se utiliza para acceder y navegar a través del sistema de archivos, y el comando «CMD_SHELL» para generar un nuevo shell interactivo.

6: Función del explorador de archivos CobalStrike.

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

Malware y listo

Los tipos de malware ofuscados en Go no son populares, excepto algunos intentos de muestra utilizados por sombreros blancos durante ejercicios de equipos rojos. Debido a que Blackrota utilizó un ofuscador escrito en Go que cifra todas las cadenas utilizando funciones de cifrado únicas para cada cadena, obtener las cadenas iniciales es un gran desafío desde el punto de vista del analista de malware. Con esta técnica implementada, los delincuentes aumentan el tiempo y el trabajo para analizar la puerta trasera y también ayudan al malware a evitar la detección automática de productos de seguridad como antivirus y EDR.

En este sentido, se debe tener en cuenta la monitorización a nivel de host como primer paso para detectar y bloquear amenazas de esta naturaleza. Para las operaciones de búsqueda de amenazas, considere buscar firmas FLIRT como paso inicial para obtener el nombre parcial de las funciones y los nombres del malware GoLand altamente ofuscado.

Fuente

Blackrota, una puerta trasera muy ofuscada escrita en Go, NetLab

Geacon , GitHub

Gobfuscate , GitHub

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *