Multi-purpose and multi-module backdoor Trojan written in С. It is spread by means of Trojan.Siggen6.31836. This malware possesses the ability to:
- run a FTP server on an infected computer;
- run a SOCKS 5 proxy server on an infected computer;
- modify the RDP protocol to provide remote access to the infected computer;
- log keystrokes on an infected PC (keylogging);
- set feedback with an infected PC for FTP, RDP and Socks5 if the network uses NAT (backconnect);
- intercept data by PCRE patterns (Perl Compatible Regular Expressions)—a library that implements the regular expression in Perl; for this reason the Trojan intercepts all possible features associated with web surfing;
- intercept SCard's tokens;
- inject arbitrary content into web pages loaded in browser windows (web injections);
- intercept various system functions, depending on the accepted configuration file;
- modify the code of the running process, depending on the accepted configuration file;
- interact with the various functional modules (plug-ins);
- take screenshots;
- search in the infected system for private keys.
BackDoor.Yebot utilizes standard HTTP protocol as well as native binary protocol to exchange data with the command and control server. Examples of HTTP requests:
http://46.***.***.94/d/i.html?b=88B22416&c=88B22416
Repacked Trojan.Siggen6.31836 is uploaded upon this request.
http://46.***.***.94/t/i.html?b=88B22416&c=88B22416
The request of a configuration file encrypted with RC4 algorithm, that has the following structure after decrypting:
<?xml version="1.0" encoding="utf-8"?>
<tasks>
<task taskid="49">
<startat>0</startat>
<stopat>0</stopat>
<daemonconf>46.***.***.94:80:some_magic_code1</daemonconf>
<plugin>internal</plugin>
<exec_type>3</exec_type>
<function>sndbtnfo</function>
<params />
</task>
<task taskid="525">
<startat>0</startat>
<stopat>0</stopat>
<daemonconf>46.***.***.94:80:some_magic_code1</daemonconf>
<plugin>internal</plugin>
<exec_type>0</exec_type>
<function>curls</function>
<params>
<param>46.***.***.24</param>
<param>46.***.***.94</param>
</params>
</task>
</tasks>
The request to load additional modules (plug-ins):
http://46.***.***.94/tp/i.html?m=<имя плагина>&b=98B22416&s=0&c=98B22416
The request to require a list of command and control servers:
http://46.***.***.94/dc/i.html?b=88B22416
Trojan's report on task's execution:
http://46.***.***.94/t/r.html?b=88B22426&tid=525
Trojan's report with information about the bot's version:
http://46.***.***.94/u/i.html?b=88B22416&p=1&v=20&c=88B22426
The binary protocol, employed by the backdoor, has the following title:
struct thead { BYTE magic[16]; //some_magic_code1 DWORD d1; //0 DWORD Bid; DWORD d3; //0 };
The following information is about the type of the forwarded message:
#pragma pack(push, 1) struct tbody1 { DWORD Size; //message size SizeData+2 WORD Op; //command number }; struct tbody2 { DWORD Flag; WORD Op; //command number DWORD Size; //message size SizeData }; #pragma pack(pop)
Next, the data is transmitted, the message size corresponds to the parameter specified by the variable SizeData. The following commands are supported:
- 450—create a new user with the specified name in the system;
- 351, 352—change PCRE rules for data interception;
- 108—download and run the plug-in in computer's memory;
- 102,105—set the configuration to modify the Remote Desktop Protocol (RDP);
- 400—set the configuration for web injects;
- 777—prepare specified reports;
- 200—send information on the infected machine to the command and control server;
- 350—send stolen keys and data to the command and control server.
The Trojan's C&C server employs the paranoid settings: e.g., it can add an IP address into a black list when the request is incorrect or there are too many requests from a single IP address.