
OctoRAT Malware Analysis
What is OctoRAT?
OctoRAT is a .NET-based Remote Access Trojan (RAT) that supports a lot of commands. It was first publicly identified in late November 2025 when threat hunters traced suspicious VBScript payloads back to a GitHub repository. OctoRAT is marketed as a "remote administration framework" and has been sold via Telegram for around $800.
Static Analysis
Information
Looking up the binary in CFF Explorer (or you can just use any tool you want), we can see it is 32 bit .NET Assembly. Which in this case we will basically use dnspy-x86 (or your own favourite tool) to decompile binary. But before doing that, we can see there is Resource directory in CFF Explorer:

Which is interesting, using Resource Hacker tool we can see, RCData holds 3 data:
- 185.163.204.93
- 8080
- 185.163.204.93|8080|false|false|false
We can guess from there, these are probably related to C2 server. Doing little checkup in VirusTotal, we can see the binary contacted with this ip at 2026-02-03.
Decompilation
Now we can use dnspy to continue with our research. First thing the malware does is, checking if sqlite3.dll is available in system, if not, it retrieves sqlite3 from "ftp://server09.mentality.cloud/public_html/sqlite3.dll" using credentials "admin_syn:Black900".

Next up, it checks if program runs as admin, if not, uses Function: GetConfig(), which reads 3th Resource string, that we found using resource hacker before. if last flag is "true" (which is false in our case), it calls to BypassUACFodHelper():

This is a well known UAC Bypass technique, which is also mapped in MITRE ATT&CK How it works is, malware modifies "Software\Classes\ms-settings\Shell\Open\command" key to point malware path, and modifies DelegateExecute key to make it empty so, command doesn't get ignored. fodhelper is in Microsoft's trusted whitelist, so when it is launched, it has elevations. using this technqique, malware actually launches itself and cleans current binary. (Continues with elevated privileges)
Browser Data Extraction
The first thing malware does after checking privileges is, extracting browser data, same function for "Chrome, Edge, Brave, Opera, Opera GX, Yandex" and different one for Firefox.

it gets passwords and cookies using same function for them, and tries to get master key if last flag is set to true, or if browser name is Edge, it tries different way to get it. Also different way to get cookies for edge browser. At the end, a zip archive created with all data. Next up, gets the ip and port (we found using Resource Hacker), sends the zip arhive in "Credentials_{0}_{1:yyyyMMdd_HHmmss}.zip" format to server.
RAT Setup
After sending zip archive, malware creates a mutex: "OctoRAT_Client_Mutex_{B4E5F6A7-8C9D-0E1F-2A3B-4C5D6E7F8A9B}".
For initialization, it reads config again, in our case all flags were set "false", but if 2th flag was set to true, malware would delete itself at the end and if 3th flag was set to true, malware would start up every minute even if you kill the process. It would be set up using "schtasks", MITRE ATT&CK.
Next, malware connects to server and sends client info: hostname, username, os, country, monitorcount, (if client has crypto wallets).
NOTE: malware checks if client has crypto wallets by checking "\\Ethereum", "\\Electrum", "\\Exodus" in application data folder and "\\Programs\\Exodus" in local application data folder
And, there we are... in main loop. Where all important RAT features and stealers run.
Main loop
In main loop, there is HandlePacket() function which processes the packet retrieved if it is not null, but before going into it, there are 2 main things in main loop.
- Keylogger will be in queue if it is active (which will be set to active if server activates it by sending the packet)
- And if IsDesktopActive is set to true (which is also set to true if server activates it by sending packet), it periodically captures screen and sends to server.
Now we can continue with HandlePacket, which is around 1801 lines of code when decompiled. I will list all commands possible one by one, but to make it clear, i cant go to depth of all of them cause it would take a lot of time, you can use .Net decompilers to see how they are implemented by yourself, it is pretty easy to understand: Commands
End
And finally, after connection is lost or server exits, it cleans up and malware stops.
