Análisis AsyncRAT con ChatGPT


A medida que las amenazas cibernéticas continúan evolucionando y se vuelven más sofisticadas, es crucial que los investigadores y profesionales de seguridad se mantengan a la vanguardia. En esta publicación,

⦁ Exploraremos cómo ChatGPT puede ayudar en el análisis de malware, específicamente el troyano de acceso remoto (RAT) conocido como AsyncRAT y,
⦁ También profundizaremos en las capacidades de ChatGPT y hablaremos sobre cómo puede ayudar a identificar indicadores de compromiso, analizando el tráfico de la pink y descubriendo la infraestructura de comando y handle (C2).

Pero antes de continuar, una breve introducción a ChatGPT.

Impulsado por inteligencia artificial (AI), ChatGPT fue presentado en noviembre de 2022 por OpenAI como un prototipo programado para responder preguntas complejas y de formato largo. Lo revolucionario de ChatGPT es que está capacitado para aprender sobre el significado de las búsquedas que se realizan. Como resultado de lo cual, las respuestas reportadas son claramente similares a las humanas. En este punto, sigue siendo discutible si ChatGPT apoyará o representará un desafío en la lucha contra el ciberdelito, pero por ahora, centrémonos en ChatGPT y sus capacidades de análisis de malware.

Por lo tanto, tanto si es un profesional de la seguridad experimentado como si acaba de empezar en el campo, esta publicación le proporcionará información valiosa sobre el uso de modelos de lenguaje avanzados en el análisis de malware.

¡Empecemos!

Para comprender el poder y las capacidades de ChatGPT, comenzamos analizando AsyncRAT. Teníamos curiosidad por ver cómo esta tecnología de inteligencia synthetic de vanguardia podría ayudar a descubrir el funcionamiento interno de este malware y, potencialmente, ayudar a identificar indicadores de compromiso mediante el análisis del tráfico de la red y el descubrimiento de la infraestructura de comando y regulate (C2).
Como resultado de nuestra investigación, encontramos el siguiente fragmento de código que actúa como un cargador de etapa 1 para AsyncRAT y contiene mucha ofuscación y una cadena codificada en foundation64. El código está escrito en Python y utiliza la biblioteca Prevalent Language Runtime (CLR) para interactuar con .Internet Framework, cargando y ejecutando un ensamblado codificado en foundation64.
Más adelante en la investigación, descubrimos que ChatGPT podría ser increíblemente útil para analizar malware como AsyncRAT, pero también descubrimos que todavía tiene limitaciones en ciertas áreas. No obstante, creemos que el uso de modelos de lenguaje avanzado como ChatGPT en el análisis de malware es un desarrollo prometedor en la lucha contra las ciberamenazas.

Aquí, hemos decidido proporcionar este código como entrada a ChatGPT y obtener información sobre el código.

El código proporcionado utiliza una cadena codificada en foundation64 que ChatGPT no pudo decodificar debido al límite de longitud de la cadena y las limitaciones en las acciones que puede realizar. Sin embargo, ChatGPT aún pudo proporcionar una explicación simplificada y comprensible de la funcionalidad del código y la posible intención maliciosa. Es importante tener en cuenta que ChatGPT es un modelo de lenguaje poderoso, pero debe usarse junto con otros métodos y técnicas y no es una panacea para todas las tareas relacionadas con el análisis de malware.

Es por eso que hemos utilizado Cyberchef para decodificar la cadena base64, que resulta ser un script Python de carga de etapa dos.

Le dimos este código como entrada a ChatGPT nuevamente para ver qué me puede decir al respecto,

Nuevamente, tenemos una cadena larga codificada en foundation64 que tuvimos que decodificar usando Cyberchef.

Esta cadena resulta ser un archivo PE. No podemos pasar el archivo PE a ChatGPT, por lo que no hubo ayuda como tal desde la perspectiva del análisis del archivo PE. Pero decidimos seguir adelante y ver qué contiene el archivo PE.

Usaremos Dnspy para descompilar este binario.

Como puede ver, la salida de la función de decodificación base64 se pasa como entrada a una función de descompresión.

El código anterior es una función de C# que parece estar descomprimiendo una matriz de bytes llamada «gzip». La función usa la clase GZipStream para crear una nueva secuencia y pasarle un objeto MemoryStream que se construye con la matriz de bytes «gzip». Luego, el GZipStream se united states para leer los datos comprimidos en fragmentos de 4096 bytes y escribirlos en un nuevo objeto MemoryStream. Luego, la función devuelve los datos descomprimidos como una matriz de bytes utilizando el método ToArray del objeto MemoryStream.

En términos más simples, esta función toma una matriz de bytes comprimida, la descomprime usando el algoritmo Gzip y devuelve los datos descomprimidos como una matriz de bytes. Esta función se puede utilizar para descomprimir datos que se han comprimido previamente mediante el algoritmo Gzip.

Nuevamente decidimos usar Cyberchef para decodificar esta cosa,

Que nuevamente period un archivo PE, que cuando se analizó fue un ensamblaje .Net. Usamos Dnspy para analizarlo.

Este binario tiene una cadena codificada en foundation64, pero si observa la última palabra con cuidado, tendrá una plan de que la cadena foundation64 resultará ser un script de PowerShell cuando se decodifique.

Como puede ver, el powershell está muy ofuscado, por lo que decidimos verificar si ChatGPT puede decodificarlo por nosotros. A continuación se muestra la salida.

Cuando se le preguntó cuál podría ser la funcionalidad de dicho script, el resultado recibido es el que se muestra a continuación.

Hay una cadena más codificada en foundation64 en el ensamblado .Web. Que se pasa primero a una función llamada cifrado con un parámetro que es una clave para el cifrado.

Así que decidimos echar un vistazo a cuál era la lógica de la función de cifrado.

Ahora, decidimos dar este código como entrada a ChatGPT y le pedimos que identificara el cifrado.
Esta salida nos sorprendió.

Implementamos la misma lógica en python para pasar a la siguiente etapa.
Esta fue la salida. Un archivo PE last: –

Esto nuevamente es un archivo .Net. Cuando se registra en Dnspy, esto es lo que obtenemos.

Al observar la función, tenemos una concept clara de la funcionalidad de este archivo, que son sus técnicas de antianálisis y funciones de registro y cosas por el estilo. Teníamos curiosidad por saber si ChatGPT entendería el propósito de este código e identificaría qué tipo de malware period.

La función clave en el código es el método «Instalar» que parece ser responsable de instalar y ejecutar el archivo especificado al inicio.
El objeto «FileInfo» se united states para especificar el archivo que el código intenta instalar y ejecutar.
El «Method.GetCurrentProcess().MainModule.FileName» y «fileInfo.FullName» se utilizan para verificar si el proceso que se está ejecutando actualmente es el mismo que el archivo especificado.
El método “Process.GetProcesses()” se united states para obtener una lista de todos los procesos en ejecución y el código itera a través de ellos para detener cualquier proceso que tenga la misma ruta de archivo que el archivo especificado.
El método “Methods.IsAdmin()” se utiliza para verificar si el usuario tiene privilegios de administrador.
El comando «schtasks» se usa para crear una tarea programada para ejecutar el archivo especificado al iniciar sesión (si el usuario tiene privilegios de administrador).
El método «Registry.CurrentUser.OpenSubKey» se usa para abrir la clave HKEY_Current_USERSoftwareMicrosoftWindowsCurrentVersionRun y ​​el método «registryKey.SetValue» se united states para establecer el valor de la clave en la ruta del archivo especificado. archivo (si el usuario no tiene privilegios de administrador).
El método «File.Exists» se united states para verificar si el archivo especificado ya existe y el método «File.Delete» se usa para eliminarlo si existe.
El objeto «FileStream» se utiliza para crear un nuevo archivo en la ruta de archivo especificada y escribir en él el contenido del archivo del proceso en ejecución true.
Se ejecuta el método “Methods.ClientOnExit()”.
El método “Path.GetTempFileName()” se united states of america para crear un archivo .bat temporal y el objeto “StreamWriter” se united states para escribir una serie de comandos en él.
El método «Method.Start out» se usa para iniciar el archivo .bat y el método «Natural environment.Exit()» se usa para salir del proceso precise.

A partir de este código, se puede inferir que el código está intentando instalar y ejecutar un archivo específico al inicio, y parece estar diseñado para garantizar que el archivo especificado se ejecute al inicio y que se ejecute con privilegios administrativos. El código también intenta eliminar el archivo authentic y crear uno nuevo con el mismo nombre y contenido, lo que podría indicar que está tratando de reemplazar el archivo primary con una versión maliciosa. El uso de métodos para verificar si el usuario tiene privilegios de administrador, la creación de tareas programadas y la modificación de la clave de registro indica que está intentando ejecutar el archivo al inicio en cualquier escenario posible. Además, el uso de varios métodos para ocultar la ejecución del archivo, como crear un archivo bat, ejecutarlo en modo oculto y eliminar el archivo bat después de la ejecución, indica que el código está ocultando su ejecución al usuario closing.

Pudo entender que el código es malicioso y pudo identificarlo correctamente como RAT.

Mediante este ejercicio, pudimos descifrar ChatGPT mucho mejor y comprender cómo puede ayudar en el análisis de malware. Si bien ChatGPT ha demostrado sus capacidades básicas en este frente, en este momento no es rival para el análisis de malware impulsado por la inteligencia humana, que es mucho más capaz y holístico. Continuaremos vigilando el ChatGPT y compartiremos más actualizaciones a medida que aumente sus capacidades y poderes en el futuro.

Nihar Deshpande



Enlace a la noticia first