---
title: "SharpRhino: una amenaza antigua que vuelve al acecho"
description: "Hunters International, un grupo de ciberdelincuentes conocido por sus operaciones de ransomware como servicio, ha empezado a utilizar un nuevo malware RAT. El primer incidente en el que aparecía este software se detectó a principios de agosto de 2024 y se denominó SharpRhino por su lenguaje C#. El troyano se introduce en los equipos y dispositivos de las víctimas como un software legítimo y concede acceso remoto a ellos. Con este software, los atacantes pueden ejecutar distintos comandos y propagar otros malware."
canonical_url: https://www.acronis.com/es/tru/posts/sharprhino-an-old-new-threat/
locale: es
last_updated: 2026-10-11
---

*   [Inicio](https://www.acronis.com/es/tru/)
*   [Todas las publicaciones](https://www.acronis.com/es/tru/posts/)
*   [Acronis Threat Research Unit](https://www.acronis.com/es/tru/authors/acronis-threat-research-unit/)

28 de marzo de 2025

# SharpRhino: una amenaza antigua que vuelve al acecho

Hunters International, un grupo de ciberdelincuentes conocido por sus operaciones de ransomware como servicio, ha empezado a utilizar un nuevo malware RAT. El primer incidente en el que aparecía este software se detectó a principios de agosto de 2024 y se denominó SharpRhino por su lenguaje C#. El troyano se introduce en los equipos y dispositivos de las víctimas como un software legítimo y concede acceso remoto a ellos. Con

Autor: **[Acronis Threat Research Unit](https://www.acronis.com/es/tru/authors/acronis-threat-research-unit/)**

Otros idiomas disponibles:[English](https://www.acronis.com/en/tru/posts/sharprhino-an-old-new-threat/)  
[Deutsch](https://www.acronis.com/de/tru/posts/sharprhino-an-old-new-threat/)  
[Français](https://www.acronis.com/fr/tru/posts/sharprhino-an-old-new-threat/)  
[Italiano](https://www.acronis.com/it/tru/posts/sharprhino-an-old-new-threat/)  
[日本語](https://www.acronis.com/ja/tru/posts/sharprhino-an-old-new-threat/)  
[Português](https://www.acronis.com/pt/tru/posts/sharprhino-an-old-new-threat/)

## Resumen

*   SharpRhino se basa en el proyecto de código abierto ThunderShell.
*   Se distribuye a las víctimas como un programa de instalación NSIS que ejecuta automáticamente scripts de PowerShell.
*   Los scripts de PowerShell contienen ensamblados de .NET codificados.
*   La carga útil .NET se utiliza para comunicarse con el servidor C2.
*   Puede ejecutar comandos de forma remota.
*   El tráfico de red se cifra con RC4 y se codifica en formato Base64.

## Introducción

[Hunters International](https://www.acronis.com/en-eu/cyber-protection-center/posts/hunters-international-new-ransomware-based-on-hive-source-code/), un grupo de ciberdelincuentes conocido por sus operaciones de ransomware como servicio, ha empezado a utilizar un nuevo malware RAT. El primer incidente en el que aparecía este software se detectó a principios de agosto de 2024 y se denominó SharpRhino por su lenguaje C#. El troyano se introduce en los equipos y dispositivos de las víctimas como un software legítimo y concede acceso remoto a ellos. Con este software, los atacantes pueden ejecutar distintos comandos y propagar otros malware.

## Detalles técnicos

### Descripción general

La muestra analizada se entrega a las víctimas como un programa de instalación que se ha creado con Nullsoft Scriptable Install System (NSIS). Este archivo tiene "Angryip.org" en la descripción y un certificado digital válido, pero el nombre de la empresa es falso y no existe.

![Image 1: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/6ebeebec8dc94a9939c46d88f46111f6.png)

Por otro lado, este programa de instalación contiene un programa de instalación adicional, un archivo comprimido protegido con contraseña y archivos adicionales que se utilizarán durante la ejecución del malware.

![Image 2: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/4b5ffe10cbd9a5b550ab01a74ef16f60.png)

### Instalación

Al ejecutarse, la muestra descarga todos los archivos incrustados en la carpeta "C:\ProgramData\Microsoft\WindowsUpdate24" y ejecuta un archivo "ipscan-3.9.1-setup.exe", que es un programa de instalación del software legítimo Angry IP Scanner.

![Image 3: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/08f92cf5acf2adc4ad1a381d4bde10a5.png)

Mientras el usuario se distrae con este programa de instalación, el malware extrae archivos del archivo comprimido protegido con contraseña UpdateFull.zip. Para descomprimir el archivo comprimido, utiliza el programa 7za.exe, que está incrustado. En la línea de comandos podemos ver la contraseña del archivo comprimido:

_C:\ProgramData\Microsoft\WindowsUpdate24\7za.exe x C:\ProgramData\Microsoft\WindowsUpdate24\UpdateFull.7z -pTG98HJerxsdqWE45 -oC:\ProgramData\Microsoft\WindowsUpdate24_

El contenido del archivo comprimido es el siguiente:

![Image 4: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/c59d1f1a6eb3a738165c54d1bb4515b6.png)

La muestra crea una nueva carpeta —"C:\ProgramData\Microsoft\LogUpdateWindows"— después de la extracción, y copia los archivos extraídos del archivo comprimido a la nueva carpeta. El uso de dos carpetas de instalación diferentes puede ayudar a los atacantes a conseguir persistencia y permanecer en el sistema en caso de que se elimine una de las carpetas, ya que los archivos de esas carpetas son similares en el proceso de ejecución. A continuación, agrega una nueva clave de registro en la ruta "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" que apunta al archivo "Microsoft.AnyKey.lnk". Este archivo es un acceso directo y contiene el siguiente destino:

_C:\ProgramData\Microsoft\LogUpdateWindows\Microsoft.AnyKey.exe abnormal c:\programdata\%username%0 cmd /c C:\ProgramData\Microsoft\LogUpdateWindows\LogUpdate.bat_

El ejecutable "Microsoft.AnyKey.exe", que también se descargó del archivo comprimido, es un programa legítimo que forma parte de las herramientas de Node.js para Visual Studio y se denomina "Microsoft.NodejsTools.PressAnyKey.exe".

### Ejecución

Los archivos "LogUpdate.bat" y "WindowsUpdate.bat" tienen la misma funcionalidad, pero cargan archivos diferentes.

![Image 5: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/f9fe7002d32e48acea953f950472c74b.png)

Los archivos "Wiaphoh7um.t" y "kautix2aeX.t" contienen datos ofuscados. Los datos sin procesar y la clave son diferentes para esos archivos, pero los datos resultantes serán los mismos. Tras el proceso de decodificación, la muestra define estos datos como ensamblado de .NET y llama a un método con algunos parámetros.

![Image 6: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/a859199aae89cc2b3e31aa4213a2ee33.png)

Después de realizar el volcado de todos los datos del script, podemos observar las siguientes variables:

Las variables $var1, $var2 y $var3 determinan los ensamblados a los que se hace referencia, y cuando se concatenan forman la siguiente cadena:

_System.Drawing.dllSystem.Web.Extensions.dllSystem.Windows.Forms.dll_

$var4 es diferente para cada archivo y contiene una dirección de servidor C2. A continuación, se muestra una tabla con los argumentos que se utilizan en la llamada a un ensamblado de .NET para cada archivo:

![Image 7: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/a1b3f898ccd81f705dc2cebd8c046c65.png)

"$fjwZrHB1k2RF" representa un ensamblado de .NET que se carga en la memoria. Después del volcado de los datos, podemos observar el código C#. El guion para llamadas de PowerShell llama a una función del espacio de nombres "Bzxmlpi" y la clase "OyrWkb". Al principio de esta clase, podemos observar algunas cargas adicionales y nombres de variables ilegibles.

![Image 8: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/0c1cc43a0a98c2792a85ac2f9f2ee859.png)

De hecho, este archivo es una versión modificada del proyecto de código abierto "[ThunderShell](https://github.com/Mr-Un1k0d3r/ThunderShell/blob/master/data/payloads/stager.cs)". Se realizaron varios cambios en el proyecto original:

*   Se han eliminado las funciones de registro de teclas, captura de pantalla y carga de ensamblados de .NET, así como los comandos del servidor que representaban dichas funciones.
*   Se han cambiado los nombres de todas las clases, funciones y variables.
*   Se han añadido valores predeterminados que se utilizarán si se ejecuta la carga útil sin argumentos

![Image 9: Comparación entre el código de SharpRhino y el de ThunderShell](https://staticfiles.acronis.com/images/content/66e5f82384953ced9541b98b24d4eba1.png)

Comparación entre el código de SharpRhino y el de ThunderShell

Esta función genera en primer lugar una cadena aleatoria de 16 bytes. Al inicializar la clase Random, la muestra utiliza la fecha, la hora y el ID de proceso actuales como valor de inicialización (o "semilla"). A continuación, obtiene algunas variables de entorno, como COMPUTERNAME, USERDOMAIN y USERNAME. Se dará formato a todos esos datos:

![Image 10: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/c200e95c1a6423db0a05ed3d5060614f.png)

Como resultado, se genera la cadena siguiente:

![Image 11: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/cab82ae79e427649e0fc51ad9958dfcb.png)

A continuación, la muestra pasa esta cadena a una función que la enviará al servidor. Una vez en el servidor, la muestra cifrará los datos con un cifrado RC4 y una clave que se pasó como segundo argumento.

![Image 12: Rutina de cifrado RC4](https://staticfiles.acronis.com/images/content/c6966492dbc8dcefc89e34c19a1cc373.png)

Rutina de cifrado RC4

Después del proceso de cifrado, añade algunos datos a la solicitud y codifica la cadena cifrada en formato Base64. Todos estos datos se envían posteriormente al servidor.

![Image 13: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/727003ea4050ce706aa702fa5c3da66a.png)

En esta primera conexión, se ignora la respuesta del servidor. Cuando la muestra entra en un bucle, se conecta de nuevo al servidor, pero ambos argumentos son "null". A continuación, se guarda la respuesta y se compara con los valores guardados. Si se recibe el comando "delay", la muestra tomará un argumento adicional y cambiará el valor, que pasará a la función "sleep". Si se obtiene el comando "exit", se romperá el bucle y se terminará la ejecución. Si obtiene algún dato distinto de "delay" o "exit", se creará un nuevo hilo con una función que tomará los datos obtenidos como argumento. Todas esas acciones se repetirán con un intervalo de 95 segundos entre cada iteración del bucle.

![Image 14: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/18388c3c078daeaa9cde6cafbe85c3a1.png)

La respuesta que llega del servidor pasa a la función de deserialización de la clase ‘zWxFlnVASjHYb’, que recopila y almacena los siguientes datos: "UUID", "ID" y "Data".

![Image 15: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/f1cab4b727cab3a8c09b31d4ebfe887b.png)

### Servidor C2

Aunque el enlace que se presentó en la muestra ya está offline, podemos utilizar el servidor del proyecto original para ver cómo funciona la comunicación. En primer lugar, tenemos que cambiar la configuración del servidor. Dicha configuración contiene varios campos, incluida la dirección IP del servidor, la clave de cifrado, la configuración de la interfaz gráfica de usuario (GUI) y la configuración de HTTP y HTTPS. En segundo lugar, tenemos que cambiar los parámetros "callback-url", "gui-host" y "encryption-key". Tomaremos los parámetros de la clave de cifrado de una muestra de SharpRhino.

![Image 16: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/852f0dac79c040dcd1bebda68992c127.png)

El servidor es una aplicación Python y requiere un servidor Redis en ejecución. Tras iniciarse, da como resultado información sobre el servidor.

![Image 17: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/53cc38232cb393fc17ac463069dee7be.png)

Esto incluye una dirección de la GUI web. Cuando se abre, el usuario debe iniciar sesión en primer lugar. Aunque no importa qué nombre de usuario introduzcan, la contraseña debe utilizarse a partir del archivo de configuración. Cuando se inicie sesión, se mostrará la sección del panel de control. Contiene información sobre sesiones y registros.

![Image 18: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/faf67ddd4ff72ce2992e594ddc70774c.png)

La carga útil se puede incorporar en la GUI web. Debe proporcionarse la dirección IP del servidor, así como el tipo de carga útil.

![Image 19: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/841dc24b87ceea8c2febe00bce808bd2.png)

Tras elegir una sesión, el atacante puede interactuar con ella. Si escribe "help", se mostrarán todos los comandos compatibles que se pueden utilizar en la sesión.

![Image 20: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/480612b87739bab808c3ceec2bbe153a.png)

### Comunicaciones C2

Estos comandos tienen cadenas predefinidas que se añadirán a los datos que el atacante introduzca como argumentos. Por ejemplo, si utiliza "shell [command]", se añadirá "cmd.exe /c" al principio de la cadena que se envíe. Otro ejemplo es el comando "ps", que enviará el script de PowerShell al cliente:

![Image 21: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/120fcca60813372ee54e4b9342132f85.png)

El comando llega al cliente cifrado con RC4 y codificado en formato Base64. Contiene los parámetros ID y UUID, donde ID es el ID del cliente y UUID es el ID del comando.

![Image 22: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/b00b475f6b561207e10f5d3fe4bdbc27.png)

Todos estos datos se pasan al nuevo subproceso. La función de este subproceso utiliza módulos de PowerShell para ejecutar los comandos proporcionados.

![Image 23: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/461302089492615515e48a1f4f84b105.png)

La muestra obtiene el resultado del comando ejecutado mediante la canalización. A continuación, estos datos se cifrarán y se enviarán de vuelta al servidor.

![Image 24: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/df0088014406477bd6d414e2869b76b3.png)

## Conclusión

ThunderShell, un antiguo proyecto de código abierto que se actualizó por última vez hace casi cuatro años, fue utilizado por parte del grupo Hunters International para distribuir malware a las víctimas. Llega como un programa de instalación del software Angry IP Scanner, que descarga y ejecuta scripts de PowerShell maliciosos. A través de las funciones de PowerShell, esos scripts ejecutan ensamblados de .NET codificados, por lo que no es necesario llevar ningún ejecutable compilado adicional: el código malicioso se invoca y se ejecuta en la memoria.

Aunque el código original se modificara, conservó su funcionalidad principal: ejecutar comandos de forma remota en los sistemas objetivo. Este es el peligro de los proyectos de código abierto. Normalmente se desarrollan con fines educativos o para llevar a cabo pruebas de penetración, pero también se utilizan para perpetrar ataques reales.

## Detectado por Acronis

![Image 25: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/00b44fd74cc04d53b8880d2a84811791.png)

![Image 26: SharpRhino: una amenaza antigua que vuelve al acecho](https://staticfiles.acronis.com/images/content/d70e42baca8abf387f5e32dc0cc369b6.png)

## Indicadores de compromiso

### Archivos

Nombre de archivo 

SHA256

ipscan-3.9.1-setup.exe

09b5e780227caa97a042be17450ead0242fd7f58f513158e26678c811d67e264

kautix2aeX.t

9a8967e9e5ed4ed99874bfed58dea8fa7d12c53f7521370b8476d8783ebe5021

 LogUpdate.bat 

 d2e7729c64c0dac2309916ce95f6a8253ca7f3c7a2b92b452e7cfb69a601fbf6 

 UpdateFull.7z 

 fe07d238cd17be4b5f8396a27dc395e675732be17aed103033fff56c18009e6d 

 Wiaphoh7um.t 

 3f1443be65525bd71d13341017e469c3e124e6f06b09ae4da67fdeaa6b6c38

 WindowsUpdate.b

b57ec2ea899a92598e8ea492945f8f834dd9911cff425abf6d48c660e747d722

### Indicadores de redes

 URL 

https://cdn-server-1.xiren77418.workers.dev

https://cdn-server-2.wesoc40288.workers.dev

Artículos relacionados

[Actualización de Acronis sobre ciberamenazas, julio de 2026](https://www.acronis.com/es/tru/posts/acronis-cyberthreats-update-july-2026/)  
[Por qué la mayoría de los despliegues de DR no resistirían un desastre real](https://www.acronis.com/es/tru/posts/why-most-dr-deployments-may-not-survive-a-real-disaster/)  
[Actualización de Acronis sobre ciberamenazas, abril de 2026](https://www.acronis.com/es/tru/posts/acronis-cyberthreats-update-april-2026/)  
[Actualización de Acronis sobre ciberamenazas, junio de 2026](https://www.acronis.com/es/tru/posts/acronis-cyberthreats-update-june-2026/)
