| 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. | /* ---------------------------------------------------------------------- */
/* CGI scanner v1.34, m0dify and recode by su1d sh3ll //UnlG 1999 */
/* Tested on Slackware linux with kernel 2.0.35;RH 5.2(2.0.36); */
/* FreeBSD 2.2.2-3.1;IRIX 5.3 */
/* Source c0de by [CKS & Fdisk] */
/* gr33tz to: Packet St0rm and Ken, ADM crew, ech0 security and CKS, ch4x,*/
/* el8.org users, #c0de, rain.forest.puppy/[WT], MnemoniX , */
/* hypoclear of lUSt,codex ;-) , K.A.L.U.G. */
/* fuck to: www.hackzone.ru , HDT... CHC fuck u 2 llamaz-scr1pt k1dd1ez */
/* NATO and bill klinton <---- double fuck! :-) huh */
/* c0ming s00n: add-on for CGI scanner - for scan "C" class subnet & logs */
/* -----------------------------------------------[12:00 13.05.99 UnlG]- */
#include <fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <netdb.h>
#include <ctype.h>
#include <arpa/nameser.h>
#include <sys/stat.h>
#include <strings.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
void main(int argc, char *argv[])
{
int sock,debugm=0;
struct in_addr addr;
struct sockaddr_in sin;
struct hostent *he;
unsigned long start;
unsigned long end;
unsigned long counter;
char foundmsg[] = "200";
char *cgistr;
char buffer[1024];
int count=0;
int numin;
char cgibuff[1024];
char *buff[100]; /* Don't u think 100 is enought? ;-)*/
char *cginame[100]; /* Don't u think 100 is enought? */
buff[1] = "GET /cgi-bin/unlg1.1 HTTP/1.0\n\n";
/* v0rt-fu when u modify source, check this first line.... that's my 8-) */
buff[2] = "GET /cgi-bin/rwwwshell.pl HTTP/1.0\n\n";
buff[3] = "GET /cgi-bin/phf HTTP/1.0\n\n";
buff[4] = "GET /cgi-bin/Count.cgi HTTP/1.0\n\n";
buff[5] = "GET /cgi-bin/test-cgi HTTP/1.0\n\n";
buff[6] = "GET /cgi-bin/nph-test-cgi HTTP/1.0\n\n";
buff[7] = "GET /cgi-bin/php.cgi HTTP/1.0\n\n";
buff[8] = "GET /cgi-bin/handler HTTP/1.0\n\n";
buff[9] = "GET /cgi-bin/webgais HTTP/1.0\n\n";
buff[10] = "GET /cgi-bin/websendmail HTTP/1.0\n\n";
buff[11] = "GET /cgi-bin/webdist.cgi HTTP/1.0\n\n";
buff[12] = "GET /cgi-bin/faxsurvey HTTP/1.0\n\n";
buff[13] = "GET /cgi-bin/htmlscript HTTP/1.0\n\n";
buff[14] = "GET /cgi-bin/pfdispaly.cgi HTTP/1.0\n\n";
buff[15] = "GET /cgi-bin/perl.exe HTTP/1.0\n\n";
buff[16] = "GET /cgi-bin/wwwboard.pl HTTP/1.0\n\n";
buff[17] = "GET /cgi-bin/www-sql HTTP/1.0\n\n";
buff[18] = "GET /cgi-bin/view-source HTTP/1.0\n\n";
buff[19] = "GET /cgi-bin/campas HTTP/1.0\n\n";
buff[20] = "GET /cgi-bin/aglimpse HTTP/1.0\n\n";
buff[21] = "GET /cgi-bin/glimpse HTTP/1.0\n\n";
buff[22] = "GET /cgi-bin/man.sh HTTP/1.0\n\n";
buff[23] = "GET /cgi-bin/AT-admin.cgi HTTP/1.0\n\n";
buff[24] = "GET /cgi-bin/filemail.pl HTTP/1.0\n\n";
buff[25] = "GET /cgi-bin/maillist.pl HTTP/1.0\n\n";
buff[26] = "GET /cgi-bin/jj HTTP/1.0\n\n";
buff[27] = "GET /cgi-bin/info2www HTTP/1.0\n\n";
buff[28] = "GET /cgi-bin/files.pl HTTP/1.0\n\n";
buff[29] = "GET /cgi-bin/finger HTTP/1.0\n\n";
buff[30] = "GET /cgi-bin/bnbform.cgi HTTP/1.0\n\n";
buff[31] = "GET /cgi-bin/survey.cgi HTTP/1.0\n\n";
buff[32] = "GET /cgi-bin/AnyForm2 HTTP/1.0\n\n";
buff[33] = "GET /cgi-bin/textcounter.pl HTTP/1.0\n\n";
buff[34] = "GET /cgi-bin/classifieds.cgi HTTP/1.0\n\n";
buff[35] = "GET /cgi-bin/environ.cgi HTTP/1.0\n\n";
buff[36] = "GET /cgi-bin/wrap HTTP/1.0\n\n";
buff[37] = "GET /cgi-bin/cgiwrap HTTP/1.0\n\n";
buff[38] = "GET /cgi-bin/guestbook.cgi HTTP/1.0\n\n";
buff[39] = "GET /_vti_pvt/service.pwd HTTP/1.0\n\n";
buff[40] = "GET /_vti_pvt/users.pwd HTTP/1.0\n\n";
buff[41] = "GET /_vti_pvt/authors.pwd HTTP/1.0\n\n";
buff[42] = "GET /_vti_pvt/administrators.pwd HTTP/1.0\n\n";
buff[43] = "GET /_vti_pvt/shtml.dll HTTP/1.0\n\n";
buff[44] = "GET /_vti_pvt/shtml.exe HTTP/1.0\n\n";
buff[45] = "GET /cgi-dos/args.bat HTTP/1.0\n\n";
buff[46] = "GET /cgi-win/uploader.exe HTTP/1.0\n\n";
buff[47] = "GET /cgi-bin/rguest.exe HTTP/1.0\n\n";
buff[48] = "GET /cgi-bin/wguest.exe HTTP/1.0\n\n";
buff[49] = "GET /scripts/issadmin/bdir.htr HTTP/1.0\n\n";
buff[50] = "GET /scripts/CGImail.exe HTTP/1.0\n\n";
buff[51] = "GET /scripts/tools/newdsn.exe HTTP/1.0\n\n";
buff[52] = "GET /scripts/fpcount.exe HTTP/1.0\n\n";
buff[53] = "GET /cfdocs/expelval/openfile.cfm HTTP/1.0\n\n";
buff[54] = "GET /cfdocs/expelval/exprcalc.cfm HTTP/1.0\n\n";
buff[55] = "GET /cfdocs/expelval/displayopenedfile.cfm HTTP/1.0\n\n";
buff[56] = "GET /cfdocs/expelval/sendmail.cfm HTTP/1.0\n\n";
buff[57] = "GET /iissamples/exair/howitworks/codebrws.asp HTTP/1.0\n\n";
buff[58] = "GET /iissamples/sdk/asp/docs/codebrws.asp HTTP/1.0\n\n";
buff[59] = "GET /search97.vts HTTP/1.0\n\n";
buff[60] = "GET /carbo.dll HTTP/1.0\n\n"; /* we have at archive about 70 CGi ,
rule? ;-) */
cginame[1] = "UnlG - backd00r ";
cginame[2] = "THC - backd00r ";
cginame[3] = "phf..classic :) ";
cginame[4] = "Count.cgi ";
cginame[5] = "test-cgi ";
cginame[6] = "nph-test-cgi ";
cginame[7] = "php.cgi ";
cginame[8] = "handler ";
cginame[9] = "webgais ";
cginame[10] = "websendmail ";
cginame[11] = "webdist.cgi ";
cginame[12] = "faxsurvey ";
cginame[13] = "htmlscript ";
cginame[14] = "pfdisplay ";
cginame[15] = "perl.exe ";
cginame[16] = "wwwboard.pl ";
cginame[17] = "www-sql ";
cginame[18] = "view-source ";
cginame[19] = "campas ";
cginame[20] = "aglimpse ";
cginame[21] = "glimpse ";
cginame[22] = "man.sh ";
cginame[23] = "AT-admin.cgi ";
cginame[24] = "filemail.pl ";
cginame[25] = "maillist.pl ";
cginame[26] = "jj ";
cginame[27] = "info2www ";
cginame[28] = "files.pl ";
cginame[29] = "finger ";
cginame[30] = "bnbform.cgi ";
cginame[31] = "survey.cgi ";
cginame[32] = "AnyForm2 ";
cginame[33] = "textcounter.pl ";
cginame[34] = "classifields.cgi";
cginame[35] = "environ.cgi ";
cginame[36] = "wrap ";
cginame[37] = "cgiwrap ";
cginame[38] = "guestbook.cgi ";
cginame[39] = "service.pwd ";
cginame[40] = "users.pwd ";
cginame[41] = "authors.pwd ";
cginame[42] = "administrators ";
cginame[43] = "shtml.dll ";
cginame[44] = "shtml.exe ";
cginame[45] = "args.bat ";
cginame[46] = "uploader.exe ";
cginame[47] = "rguest.exe ";
cginame[48] = "wguest.exe ";
cginame[49] = "bdir - samples ";
cginame[50] = "CGImail.exe ";
cginame[51] = "newdsn.exe ";
cginame[52] = "fpcount.exe ";
cginame[53] = "openfile.cfm ";
cginame[54] = "exprcalc.cfm ";
cginame[55] = "dispopenedfile ";
cginame[56] = "sendmail.cfm ";
cginame[57] = "codebrws.asp ";
cginame[58] = "codebrws.asp 2 ";
cginame[59] = "search97.vts ";
cginame[60] = "carbo.dll ";
if (argc<2)
{
printf("\n [-- CGI Checker 1.34. Modified by su1d sh3ll //UnlG --]");
printf("\nusage : %s host ",argv[0]);
printf("\n Or : %s host -d for debug mode\n\n",argv[0]);
exit(0);
}
if (argc>2)
{
if(strstr("-d",argv[2]))
{
debugm=1;
}
}
if ((he=gethostbyname(argv[1])) == NULL)
{
herror("gethostbyname");
exit(0);
}
printf("\n\n\t [CKS & Fdisk]'s CGI Checker - modify by su1d sh3ll 13.05.99\n\n\n");
start=inet_addr(argv[1]);
counter=ntohl(start);
sock=socket(AF_INET, SOCK_STREAM, 0);
bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
sin.sin_family=AF_INET;
sin.sin_port=htons(80); /* <--- if u want scan another port change it */
/* codex when u again change this code pls call
proggi like this 1.34.1 or 1.34.[a..z] ;-) */
if (connect(sock, (struct sockaddr*)&sin, sizeof(sin))!=0)
{
perror("connect");
}
printf("\n\n\t [ Press any key to check out the httpd version...... ]\n");
getchar(); /* CKS sorry, but ur new piece of code don't work :-( */
send(sock, "HEAD / HTTP/1.0\n\n",17,0);
recv(sock, buffer, sizeof(buffer),0);
printf("%s",buffer);
close(sock);
printf("\n\t [ Press any key to search 4 CGI stuff...... ]\n");
getchar();
while(count++ < 60) /* huh! 60 cgi..... no secur1ty in th1s w0rld ;-)*/
{
sock=socket(AF_INET, SOCK_STREAM, 0);
bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
sin.sin_family=AF_INET;
sin.sin_port=htons(80);
if (connect(sock, (struct sockaddr*)&sin, sizeof(sin))!=0)
{
perror("connect");
}
printf("Searching for %s : ",cginame[count]);
for(numin=0;numin < 1024;numin++)
{
cgibuff[numin] = '\0';
}
send(sock, buff[count],strlen(buff[count]),0);
recv(sock, cgibuff, sizeof(cgibuff),0);
cgistr = strstr(cgibuff,foundmsg);
if( cgistr != NULL)
printf("Found !! ;)\n");
else
printf("Not Found\n");
if(debugm==1)
{
printf("\n\n ------------------------\n %s \n ------------------------\n",cgibuff);
printf("Press any key to continue....\n"); getchar();
}
close(sock);
}
printf("...have a nice hack... ;-)\n");
}
|