OverTheWire的Bandit题

来源:互联网 发布:网络语音肝是啥意思 编辑:程序博客网 时间:2024/05/19 18:42

题目:
http://overthewire.org/wargames/bandit/bandit21.html
Write-up:
https://rundata.wordpress.com/2013/03/21/overthewire-bandit-wargame-solutions-1-24/
https://github.com/Cathon/mySolutions/blob/master/overthewire/Bandit/Level_23.md

一个文件解压可以这么多步骤

这里写图片描述

用openssl加密数据与服务端通信

$ openssl s_client -ign_eof -connect localhost:30000

这里写图片描述

用nc连接到本地的某端口之后,传一个字符串过去,就可以得到服务端的响应–下一关的密码

这里写图片描述

~/.bashrc里面写让你退出的逻辑

你登录的时候会执行 .bashrc 里面的脚本,然后有人在 .bashrc 里面写了让你退出的脚本,于是你就退出了。但是可以用其他方法,只是ssh的时候就指明你要使用什么命令就可以执行那个命令了
比如 ssh bandit@localhost cat readme
就在ssh登录上那个机器之后第一时间执行了cat readme打印出当前目录的readme文件,里面就是下一关的密码
这里写图片描述

原来nc连接建立成功之后需要nc的服务端需要发送一个消息,而不是客户端

这里写图片描述

我了个擦这哪来的timeout命令,自己写的吧

timeout -s 9 60 "./$i"

还要有帮助选项
这里写图片描述

一个以某帐号在后台运行的任务持续定期查看某目录下的文件,并执行它然后删掉它

bandit23@melinda:/tmp/cqq23$ cat /usr/bin/cronjob_bandit24.sh#!/bin/bashmyname=$(whoami)cd /var/spool/$mynameecho "Executing and deleting all scripts in /var/spool/$myname:"for i in * .*;do    if [ "$i" != "." -a "$i" != ".." ];    then        echo "Handling $i"        timeout -s 9 60 "./$i"        rm -f "./$i"    fidone

对于当前目录的所有可见文件()和隐藏文件(.), 除去 ...之外的任何其他文件都会在60s之后执行,然后删掉。

第24->25需要暴力破解

$ vim brute.shpass="UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ"for i in {1000..10000}do {if    echo $pass $i| nc localhost 30002 | grep Wrong > /dev/nullthen    echo $ielse    echo $pass $i| nc localhost 30002    exitfi}done$ chmod +x brute.sh$ ./brute.sh

大概半个小时之后,终于出来了
这里写图片描述

如果这种echo $pass $i | nc localhost 30002不行的话,加上一句cat。即echo "$pass $i"; cat | nc localhost 30002

0 0
原创粉丝点击