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++));
doecho "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可以用,然后可以获取到密码
WarGame bandit相关推荐
- Overthewire wargame-bandit
文章目录 Bandit **Level 0->Level 1** **Level 1-> Level 2** **Level 2->Level 3** **Level 3-> ...
- 网络空间安全——Wargame靶场(Bandit)
Wargame 介绍: Wargame 是由 OverTheWire 社区提供的用来帮助初学者学习和实践网络安全技术的靶场.该靶场以关卡的形式,由易到难逐关提升难度,目前互联网上关于 Wargame ...
- linux练习平台WarGame之bandit通关日志
前言~ Bandit是一个学习linux命令的闯关游戏平台,比较类似于ctf,通过闯关的模式,不断的学习新的命令,对于程序员亦或者安全爱好者来说都是一个不错的学习平台 传送门 目录导航 Level 0 ...
- Bandit Walkthrough
Nikkko · 2015/05/25 15:26 0x00 Introduction overthewire是一个wargame网站,网址:http://overthewire.org/wargam ...
- OverTheWire: Bandit通关指引
OverTheWire的Wargame对于想要学习攻防技术的入门同学来说是非常好的游戏,通过练习wargame获得基本工具的使用技巧和思路.本文梳理了Wargame入门的Bandit的一些通关技巧,旨 ...
- OverTheWire:Bandit通关WriteUp(2019.01.17完)
OverTheWire:Bandit通关全攻略WriteUp 背景 通关过程 Level 0 Level 0-->Level 1 Level 1 - Level 2 Level 2 - Leve ...
- WarGame系列之Natas(Web安全)通关指北(初级篇0-10)详细版
*OverTheWire社区是一个提供wargame的网站,可以帮助安全爱好者以趣味的方式进行学习.练习安全知识. 本系列文章旨在记录笔者通关思路,其中解题思路也会参考借鉴网上已有文章,在此感谢相关作 ...
- 专治选择综合征——Bandit算法
作者 | 陈开江 责编 | 何永灿 推荐系统里面有两个经典问题:EE和冷启动.前者涉及到平衡准确和多样,后者涉及到产品算法运营等一系列.Bandit算法是一种简单的在线学习算法,常常用于尝试解决这两个 ...
- 在 Rss Bandit 和 SharpDevelop 之间的权衡
在 Rss Bandit 和 SharpDevelop 之间的权衡 (心理变化过程,没有技术含量,只是胡诌,呵呵) 距离上次的WebLog居然过了一个月有半,其实心理是一直希望可以经常写点东西的, 我 ...
最新文章
- 诺基亚主导Windows Phone手机市场 前景仍然堪忧
- 【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
- 无监督学习 | PCA 主成分分析之客户分类
- Mac OS修改VSCode Go的默认缩进格式
- AMD的Naples改名为EYPC
- linux ulimit知识
- 修改chrome中HTML元素,自由更改网页中的任何内容:Hack this page
- 什么是大数据,模式识别和人工智能算法实现
- 虎头少保,天下第一手孙禄堂【转】
- java8新特性-过滤
- C# ObservableCollection集合排序
- 二维图像中EMD 法与 Mura 检测的总结
- android面试题之二(红黑联盟)
- JQAjax读页面里面的方法
- 108. 将有序数组转换为二叉搜索树
- 小白也能懂的hadoop生态圈,很黄很暴力!
- 基于高通芯片组的广和通FM150 5G模组GPS测试演示
- mysql5.7错误提示ERROR 1265 (01000)的问题分析及解决方案和修改字段属性为中文
- js中的回调函数,什么是回调函数?
- 叶武滨老师时间管理感悟分享4