WarGame bandit

传送门

0级

在这里插入图片描述
这里推荐用xshell来进行连接,连接好后看1级

0级->1级

在这里插入图片描述

ls
cat readme

1级->2级

在这里插入图片描述

ls
cat ./-    //需要输入完整路径才能查看

2级->3级

在这里插入图片描述

ls
cat "spaces in this filename"

3级->4级

在这里插入图片描述

ls 
cd inhere
ls -a
cat .hidden

4级->5级

在这里插入图片描述

file ./*              //查看文件类型
cat ./-flie07

5级->6级

在这里插入图片描述

在这里插入图片描述
解释一下-type f指定为普通文件,-size 1033c指定为1033字节

6级->7级

在这里插入图片描述
在这里插入图片描述
这里-user指定user组,-group指定group组,-size指定大小,后面的2>/dev/null因为find命令在根目录下查找会经常有很多权限的报错信息,所有在linux中通常用这种方式将错误信息重定向到“黑洞中”

7级->8级

在这里插入图片描述
在这里插入图片描述

8级->9级

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
两种解法,第一种直接显示出一行的行列,第二种列出所有出现的次数

9级->10级

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里用cat会乱码,如图一,所以这里我们可以用到strings,如图二

10级->11级

在这里插入图片描述
在这里插入图片描述
进行base64解码

11级->12级

在这里插入图片描述
在这里插入图片描述

12级->13级

在这里插入图片描述
根据提示我们先创建一个目录,然后复制数据,查看发现是十六进制文件

在这里插入图片描述
我们把它转换成二进制文件,然后查看文件类型,发现是一个gzip压缩文件

xxd -r data.txt > data.bin

在这里插入图片描述
先重命名成gzip文件格式,再进行解压,查看文件类型发现是bzip2文件类型
在这里插入图片描述
继续重命名,解压

mv data data.gz2
bzip2 -d data.bz2

查看文件类型,发现又是gzip,继续改文件类型,解压
在这里插入图片描述

发现是tar压缩文件,解压得到data5.bin
在这里插入图片描述
在这里插入图片描述
后面一路判断文件,进行解压,这里就不一 一演示了

在这里插入图片描述

13级->14级

在这里插入图片描述
这里说我们要根据ssh密钥登录到bandit14用户才能获取密码,所以我们根据ssh密钥登录到bandit14用户
在这里插入图片描述
在这里插入图片描述

14级->15级

在这里插入图片描述
这里说把当前级别的密码提交上去,其实就是我们13级别的密码,我们用那条命令继续查看一下,然后用nc命令进行连接那个端口,把密码提交过去,得到密码
在这里插入图片描述

15级->16级

![在这里插入图片描述](https://img-blog.csdnimg.cn/7408043f8d7e4bae880639c231fe00f8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBALua3sea1ty4=,size_20,color_FFFFFF,t_70,g_se,x_16) 用openssl s_client进行ssl连接(下面两条命令皆可),然后提交我们的密码,得到密码
openssl s_client -host localhost -port 30001
openssl s_client -connect localhost:30001

在这里插入图片描述

16级->17级

在这里插入图片描述
先使用nmap工具进行端口扫描,发现有五个端口

在这里插入图片描述
挨个测试连接,发现只有31518和31790端口可以进行ssl连接,根据题目要求,错误的你发送什么会返回什么,最后确定31790是正确的,发送密码得到密码

在这里插入图片描述
发现返回的是一个ssh的密钥文件,接下来创建一个ssh秘钥文件,然后用ssh -i 来指定秘钥登录

mkdir /tmp/bandit16    //创建一个目录
cd /tmp/bandit16      
vim sshkey.private    //保存我们的密钥
chmod 600 sshkey.private    //把权限降到700以下,不然无法登录
ssh -i sshkey.private bandit17@localhost

在这里插入图片描述

17级->18级

在这里插入图片描述
这里密码在两个文件的不同处,所以我们使用diff比较两个文件的差异,得到密码

diff passwords.old passwords.new

在这里插入图片描述

18级->19级

在这里插入图片描述
在这里插入图片描述
这里告诉了我们密码在readme文件夹里,我们根据上一级获得的密码连接这一级根据题目也可以看出我们登录上去就会被强制下线,所以这里我们可以用自己的kali利用ssh连接,然后加上查看这个文件夹的命令(因为登录上去就会下线)

ssh bandit18@bandit.labs.overthewire.org -p2220 cat readme

在这里插入图片描述

19级->20级

在这里插入图片描述
根据题目要求我们可以在/etc/bandit_pass这个目录下找到我们要的通关密码,根据题目要求我们要使用这个二进制文件以获取密码
在这里插入图片描述
这里setuid大概作用是bandit20-do这个二进制文件是20级权限创建的,我们通过setuid这个二进制文件,利用这个文件的权限然后去查看下一级的密码,我们现在是19级是看不了20级的密码
在这里插入图片描述

20级->21级

在这里插入图片描述
根据要求我们需要用到nc工具,我们开启一个40000端口,然后把这一级的密码放上去,这里我在命令后面加了&符号,可以让这条命令在后台执行。

echo "GbKksEFF4yrVs6il55v6gwY5aVje5f0j" | nc -l -p 40000 &

接下来我们利用这个文件进行连接,就可以得到下一级的密码了
在这里插入图片描述

21级->22级

在这里插入图片描述
到指定目录查看即可
在这里插入图片描述

22级->23级

在这里插入图片描述
和上一题类似
在这里插入图片描述

23级->24级

在这里插入图片描述
在这里插入图片描述
首先执行cronjob_bandit24.sh这个脚本,然后这个脚本会执行、var/spool/bandit24这个目录下所有的文件,如果60秒内没有执行就会删除所有的文件,再加上题目提示,可以看出到这题开始,我们就要开始学习写shell脚本了,这题我们要写一个查看密码的shell脚本

mkdir /tmp/bandit24
chmod 777 /tmp/bandit24
cd /tmp/bandit24
vim 1.sh

脚本如下

#!/bin/bash
cat /etc/bandit_pass/bandit24 >> /tmp/bandit24/mm
chmod /tmp/bandit24/1.sh                      //给文件权限
cp /tmp/bandit24/1.sh /var/spool/bandit24/

等一分钟/tmp/bandit24这个目录下就会有mm这个文件,查看这个文件就是密码了

24级->25级

![在这里插入图片描述](https://img-blog.csdnimg.cn/ff7c4bfd60954e509aa18b80d60277db.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBALua3sea1ty4=,size_20,color_FFFFFF,t_70,g_se,x_16) 这里需要暴力破解,需要我们写一个字典进行爆破,这里我们写一个shell脚本
#!/bin/bash                                                                                                      
for ((i=0;i<10000;i++));
do
    echo "UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ $i ">>pass
done

然后用字典进行爆破,得到密码,方法不止一种,有很多种方法,这种算是比较简单的一种

nc localhost 30002 <pass

在这里插入图片描述

25级->26级

在这里插入图片描述
首先我们查看发现有个26关的密钥,我们尝试连接,发现会自动下线
在这里插入图片描述

根据题目所说shell有问题,所以我们可以查看/etc/passwd文件,接着查看showtext文件,发现连上后会退出,所以我们无法通过ssh密钥连接
在这里插入图片描述
这里more跟less都是可以执行命令的,因为屏幕太大所以没有触发more的效果,这里我们可以缩小终端
在这里插入图片描述
接下来按v可以进入到vim模式,然后就可以放大了,因为我们知道密码的位置,所以可以利用vim里的e命令来导入密码

:e /etc/bandit_pass/bandit26

在这里插入图片描述
这里还有另一种方法,前面一样,缩小终端进入vim,输入以下命令,然后就可以直接进入到26关了,因为题目说我们使用的shell不是/bin/bash,所以以下命令是满足题目要求

:set shell sh=/bin/bash
:sh

在这里插入图片描述

26级->27级

在这里插入图片描述
根据密码连接,会发现直接断开,说明不能用密码登录,所以只能用上一关的第二种方法,这里仔细看,上一关more的那个文件果然是这个26的标志,所以可以解释为什么要卡一下终端大小,就是为了在没有结束more命令的时候进入vim,然后这个我们可以看到这里给出一个程序,可以看到这个程序我们直接利用这个程序得到下一级密码
在这里插入图片描述

在这里插入图片描述

27级->28级

![在这里插入图片描述](https://img-blog.csdnimg.cn/1e30a0969e5b487381fa5e1b7f54b0d6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBALua3sea1ty4=,size_20,color_FFFFFF,t_70,g_se,x_16) 我们先创建一个文件夹,进入我们创建的文件夹操作 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e896c2c72f694e1395087169146a53dc.png) 首先,git下来这个存储库,然后会发现要密码,刚好题目要求和我们进入这一级的密码一样,所以用进入这关的密码就git下来了,然后查看密码就行了
git clone ssh://bandit27-git@localhost/home/bandit27-git/repo

在这里插入图片描述

28级->29级

![在这里插入图片描述](https://img-blog.csdnimg.cn/a4a7b28f96aa483393803e62fff38b21.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBALua3sea1ty4=,size_20,color_FFFFFF,t_70,g_se,x_16) 和上一关操作一样,但是没有发现密码

在这里插入图片描述

这时我们查看一下日志,发现最新一条写着修复信息泄露

在这里插入图片描述

我们git show一下,查看一下文本差异

在这里插入图片描述

29级->30级

在这里插入图片描述
先用上一题的做法,发现只是修改了一下关卡用户名字,其他没变化
在这里插入图片描述
接下来我们就查分支了,再看一下分支的变化,发现dev分支是增加了东西,再加上dev一般是development开发者的分支,我们切换到dev分支,然后就可以找到密码
在这里插入图片描述
在这里插入图片描述
第二种切换分支方法
在这里插入图片描述

30级->31级

在这里插入图片描述
和前面一样,没什么线索,git show-ref可以现实本地存储库的所有可用的引用以及关联的提交ID,可以看到secret,所以直接查看这个得到密码
在这里插入图片描述
或者查看标签,也能发现密码
在这里插入图片描述

31级->32级

在这里插入图片描述
这题这一次是将文件推送到远程存储库

在这里插入图片描述

touch key.txt
echo "May I come in?" > key.txt
git add key.txt
git add key.txt -f
git commit -m "add key.txt"
git push

在这里插入图片描述

32级->33级

在这里插入图片描述
这题输入的命令都会变成大写命令,发现$0可以用,然后可以获取到密码
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShenHai.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值