前言
放假前辽宁省为了应景“网络安全宣传周”举办了一场安恒杯,初赛依靠大佬们的出色发挥进了决赛,奈何pwn大佬实习出差不能赶回来,我们两个Web只要赶鸭子上架,2 VS 3
不过幸运的是最终获取了二等奖,遗憾的是离最终大奖只差一步一摇…
而能够获取这二等奖的原因,也是因为在最后一轮我发现了一个隐藏的用户名和密码,猜到了密码,就可以随意登陆别的队的服务器,然后执行curl命令来获取flag,但是当时
不会写登陆ssh的脚本,导致我们两个手动连接30台服务器,累的要死。之后特意来学习一下
代码
1 |
|
首先需要用到python的库pexpect,直接pip3 install pexpect
安装即可。
首先pxssh.pxssh()
进行初始化,然后直接s.login()登陆即可,这里默认是登陆22端口的,如果需要指定端口,则需要在login函数中指定port
参数
之后如果用户名密码正确的话,就登陆成功了,再然后使用s.sendline()就可以在服务器上执行命令了,而s.prompt()用来获取前后两个服务器登陆的标志,类似这样
其中#
井号就是这个标志,这个主要是用来获取两个井号之前的内容,然后利用s.before
输出出来,但是我发现这样的话也会将我们输入的命令也获取到,因此我再这里进行了一些
处理,就能够获取到flag了。
最后再来一波循环,批量登陆别的队伍的服务器然后获取flag。