当前位置:首页 > 财经

thewire OverTheWire Bandit Writeup (11-20)

昨天,边肖分享了《超火强盗记》(1-10),今天我们继续我们未完成的故事......

OverTheWire是一个战争游戏网站。其中,Bandit是一款适合学习Linux指令的游戏,主要考察一些基本的Linux命令行操作。规则是每一级使用提供的host plus端口和从上一级获得的密码通过ssh进入指定的环境,并按要求获取指定的密钥,获得的密钥作为下一级的密码。

网站:

http://overthewire.org/wargames/bandit/

上次我们到了10级,得到的密码是trukldjsbj 5 g7yyj2x 2 r0o 3 a5 hqjfulk。继续吧。这部分难度适中。

10级→11级

描述:下一个密码存储在data.txt文件中,包含base64编码数据

bandit10@bandit:~$ cat ./data.txtVGhlIHBhc3N3b3JkIGlzIElGdWt3S0dzRlc4TU9xM0lSRnFyeEUxaHhUTkViVVBSCg==

为了得到一串base64加密数据,我们需要在这里解密它,并使用系统自带的base64命令

bandit10@bandit:~$ cat ./data.txt | base64 -dThe password is IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR

11级→12级

说明:密码保存在data.txt文件中,但是里面的英文字母字符(A-Z/a-z)都是旋转13位的

本文涉及一种非常古老的置换密码算法ROT13。简单来说,原字母在13位数字后被其对应的字母替换,超过该数字时就绕回26个英文字母的开头。a被n取代,b被o取代,以此类推,直到m被z取代,然后顺序反过来:n被a取代,o被b取代,最后z被m取代。

在linux中,可以使用tr命令来完成

bandit11@bandit:~$ cat ./data.txtGur cnffjbeq vf 5Gr8L4qetPEsPk8htqjhRK8XSP6x2RHhbandit11@bandit:~$ cat ./data.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m'The password is 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu

12级→13级

说明:密码存储在data.txt文件中,是经过hexdump转换并经过多次压缩的二进制文件数据,即十六进制文件。本主题主要研究linux下各种压缩文件命令的用法

可以使用的命令有:“grep、sort、uniq、strings、base64、tr、tar、g、b2、xxd、mkdir、CP、mv”

它还建议我们可以在/tmp下创建一个新目录,复制文件进行操作。可能有几个步骤可以操作~

第一步是看文件的样子

bandit12@bandit:~$ cat data.txt00000000: 1f8b 0808 ecf2 445a 0203 6461 7461 322e ......DZ..data2.00000010: 6269 6e00 0149 02b6 fd42 5a68 3931 4159 bin..I...BZh91AY

第二步,复制一份到//tmp/level13/(自己取名字)

bandit12@bandit:~$ mkdir /tmp/level13bandit12@bandit:~$ cp data.txt /tmp/level13/bandit12@bandit:~$ cd /tmp/level13/

第三步是将十六进制文件转换回二进制文件,并使用xd命令

bandit12@bandit:/tmp/level13$ xxd -r data.txt data

第三步是使用file命令确定文件的类型,然后使用相应的命令解压文件

bandit12@bandit:/tmp/level13$ file datadata: g compressed data, was "data2.bin", last modified: Thu Dec 28 13:34:36 2017, max compression, from Unixbandit12@bandit:/tmp/level13$ mv data data.gzandit12@bandit:/tmp/level13$ g -d data.gzg: data.gz: decompression OK, trailing garbage ignored

第四步,重复前一步

bandit12@bandit:/tmp/level13$ file datadata: b2 compressed data, block size = 900kbandit12@bandit:/tmp/level13$ b2 -d datab2: Can't guess original name for data -- using data.outbandit12@bandit:/tmp/level13$ file data.outdata.out: g compressed data, was "data4.bin", last modified: Thu Dec 28 13:34:36 2017, max compression, from Unixbandit12@bandit:/tmp/level13$ zcat data.out > data2bandit12@bandit:/tmp/level13$ file data2data2: POSIX tar archive (GNU)bandit12@bandit:/tmp/level13$ tar -xvf data2data5.binbandit12@bandit:/tmp/level13$ file data5.bindata5.bin: POSIX tar archive (GNU)bandit12@bandit:/tmp/level13$ tar -xvf data5.bindata6.binbandit12@bandit:/tmp/level13$ file data6.bindata6.bin: b2 compressed data, block size = 900kbandit12@bandit:/tmp/level13$ b2 -d data6.binb2: Can't guess original name for data6.bin -- using data6.bin.outbandit12@bandit:/tmp/level13$ file data6.bin.outdata6.bin.out: POSIX tar archive (GNU)bandit12@bandit:/tmp/level13$ tar -xvf data6.bin.outdata8.binbandit12@bandit:/tmp/level13$ file data8.bindata8.bin: g compressed data, was "data9.bin", last modified: Thu Dec 28 13:34:36 2017, max compression, from Unixbandit12@bandit:/tmp/level13$ zcat data8.bin > data9.binbandit12@bandit:/tmp/level13$ file data9.bindata9.bin: ASCII textbandit12@bandit:/tmp/level13$ cat data9.binThe password is 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL

真是折腾~终于拿到密码了

13 →14级

描述:进入下一级的密码存储在/etc/bandit_pass/bandit14中,但该文件只能由用户bandit14读取。这一级没有密码,但是可以通过ssh私钥登录bandit14,获取进入下一级的密码。

可以使用的命令:ssh、telnet、NC、OpenSSL、s _ client、nmap

从这个角度出发,研究了linux网络管理的命令,如ssh远程登录

让我们看看是否有私钥,然后登录bandit14

bandit13@bandit:~$ ls -ltotal 4-rw-r----- 1 bandit14 bandit13 1679 Dec 28 2017 sshkey.privatebandit13@bandit:~$ ssh -i sshkey.private bandit14@localhost

登录成功,检查密码进入下一级

bandit14@bandit:~$ cat /etc/bandit_pass/bandit144wcYUJFw0k0XLShlDzztnTBHiqxU3b3e

14→15级

描述:将当前密码提交到localhot的30000端口,就可以得到下一个密码了

这很简单,只需使用telnet登录到本地主机的端口30000并提交当前密码

bandit14@bandit:~$ telnet localhost 30000Trying ::1...Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.4wcYUJFw0k0XLShlDzztnTBHiqxU3b3eCorrect!BfMYroe26WYalil77FoDi9qh59eK5xNrConnection closed by foreign host.

15→16级

描述:通过ssl加密传输当前密码,然后提交到localhost的30001端口获取下一个密码

和前一个差不多,除了多了一个ssl加密传输,不能用telnet,因为telnet是明文传输~

这里,我们使用openssl的SCLENT命令。SCLENT是一个ssl/TLS客户端程序,对应的是server。它不仅可以与服务器通信,还可以使用SSL协议与任何其他服务程序通信。

bandit15@bandit:~$ openssl s_client -connect localhost:30001 -ign_eof

-ign_eof:当输入文件到达文件末尾时,连接不会断开。

然后提交当前密码并获得密码进入下一级

Verify return code: 18 (self signed certificate)---BfMYroe26WYalil77FoDi9qh59eK5xNrCorrect!cluFn7wTiGryunymYOu4RcffSxQluehdclosedbandit15@bandit:~$

16→17级

描述:将当前密码提交到localhost的31000到32000端口之一,获取证书进入下一级。但是,只有一个端口启用了侦听服务,它需要通过ssl加密进行传输。

这个水平好像有点麻烦。要不要一个一个来试试?这不是我们的风格。

是时候牺牲nmap这个神器了。

让我们先确定端口服务

bandit16@bandit:~$ nmap -A localhost -p31000-32000......31790/tcp open ssl/unknown| ssl-cert: Subject: commonName=bandit.......

我们发现31790开启了监听,是一个ssl服务

给它密码

bandit16@bandit:~$ openssl s_client -connect localhost:31790......cluFn7wTiGryunymYOu4RcffSxQluehdCorrect!-----BEGIN RSA PRIVATE KEY-----MIIEogIBAAKCAQEAvmOkuifmMg6HL2YPIOjon......

返回一个RSA私钥。这是进入下一级的证书。我们复制它并将其保存为sshkey.private文件

bandit16@bandit:/tmp$ mkdir /tmp/bandit16bandit16@bandit:/tmp$ cd /tmp/bandit16bandit16@bandit:/tmp/bandit16$ vim sshkey.private

然后使用私钥登录bandit17

bandit16@bandit:/tmp/bandit16$ chmod 600 sshkey.privatebandit16@bandit:/tmp/bandit16$ ssh -i sshkey.private bandit17@localhost

提示:您必须在这里更改私钥的权限,否则您将不能登录

17→18级

说明:有两个文件,分别是password . old和passwords.new,进入下一级的密码在passwords.new中,而且是password . old中唯一被修改过的一行。如果你已经解决了这个水平,并看到“拜拜!”当您尝试登录bandit18时,这与下一个级别有关。

可以使用的命令:cat、grep、ls、diff

调查现场是否回档操作?

非常简单,只需使用diff命令

Diff是Unix系统中非常重要的工具。它用于比较两个文本文件之间的差异

bandit17@bandit:~$ diff passwords.new passwords.old42c42< kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd---> 6vcSC74ROI95NqkKaeEC2ABVMDX9TyUr

kfbf 3 eyk 5bpbrzwjqutbbfe 887 SVC 5YD为改装线

bandit17@bandit:~$ ssh bandit18@localhost......Byebye !Connection to localhost closed.......

不骗我真的很真诚,提示拜拜!然后看下一关说什么

18→19级

描述:密码存储在主目录的自述文件中。但是,当使用SSH登录时,有人修改了”。这导致你退出。是最后一个提示的出现。拜拜!。谁这么坑~ ~

~/.这个文件包含特定于您的bash shell的bash信息,在登录和每次打开新的shell时都会读取这些信息。

估计bash没有打开,登录后无法分配伪终端远程登录,导致退出。

怎么登录?我们找到了ssh命令的帮助,找到了参数-T,意思是“没有伪终端分配”,也就是说远程主机不需要分配伪终端。让我们试试

bandit17@bandit:~$ ssh -T bandit18@localhostiduid=11018(bandit18) gid=11018(bandit18) groups=11018(bandit18)

成功登录

lscat readmeIueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x

19→20级

描述:要访问下一级,您必须在您的主目录中使用setuid可执行程序。使用setuid文件后,您可以在/etc/bandit_pass/中找到密码。

这一关考查的是linux文件权限的知识。如果二进制可执行程序具有SUID权限,则其他用户在执行该程序时将拥有与文件所有者相同的权限。

bandit19@bandit:~$ ls -ltotal 8-rwsr-x--- 1 bandit20 bandit19 7408 Dec 28 2017 bandit20-do

这个“bandit20-do”的权限是“rwsr-x-”,也就是说它是SUID许可的程序。

我们来看看文件“/etc/bandit_pass/bandit20”的权限

bandit19@bandit:~$ cat /etc/bandit_pass/bandit20cat: /etc/bandit_pass/bandit20: Permission deniedbandit19@bandit:~$ ls -l /etc/bandit_pass/bandit20-r-------- 1 bandit20 bandit20 33 Dec 28 2017 /etc/bandit_pass/bandit20

发现只有“bandit20”用户可以阅读,所以我们需要使用“bandit20-do”调用“cat”命令来查看文件内容

bandit19@bandit:~$ ./bandit20-do cat /etc/bandit_pass/bandit20GbKksEFF4yrVs6il55v6gwY5aVje5f0j-------------------login bandit20bandit19@bandit:~$ ssh bandit20@localhost

待续......

别忘了投稿

大家都有不错的技术原创文章

欢迎提交至邮箱:edu@heetian.com或qq:3200599554

根据文章的时效性、新颖性、文笔和实用性,和田将给予100元-500元不等的稿费

详情投稿,点击奖励|和田原创投稿等你!

1.《thewire OverTheWire Bandit Writeup (11-20)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《thewire OverTheWire Bandit Writeup (11-20)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/caijing/1017697.html

上一篇

近九成大学生支持开设恋爱课 事件的真相是什么?

下一篇

英孚回应前外教性勒索未成年 或面临至少15年监禁

win7怎么设置开机密码 如何让Win7开机不输入密码直接登录的方法

win7怎么设置开机密码 如何让Win7开机不输入密码直接登录的方法

现在电脑很普及,很多人没必要在家里用电脑然后设置密码。那么我们如何不输入密码直接开机进入系统呢? 1.按下windows+R键并输入“netplwiz”进行确认  2.删除“要使用此机器,用户必须输入用户名和密码”前面的框  3.点击“应用”-在弹出窗口中输入电脑的登录密码,最后点击“确定”...

批量替换文件名部分文字 批量修改批注内容,你会吗?

h3c交换机配置教程 H3C交换机基础配置命令

今天,我们将学习基本的配置命令,我们可以专注于虚拟局域网的划分,这在项目应用中更常见。 一、用户配置: & ltH3C & gt;系统视图 [H3C]超级密码H3C设置用户的分级密码 [H3C]撤销超级密码删除用户分级密码 [h3c]本地用户大堆1234561 web网管用户设置,1(默认)...

一年级小学生记事本堪比摩斯密码 事件详细经过!

  • 一年级小学生记事本堪比摩斯密码 事件详细经过!
  • 一年级小学生记事本堪比摩斯密码 事件详细经过!
  • 一年级小学生记事本堪比摩斯密码 事件详细经过!

国泰君安君弘 身份证过期了?!不用来营业部,君弘App端口自助更新!

  • 国泰君安君弘 身份证过期了?!不用来营业部,君弘App端口自助更新!
  • 国泰君安君弘 身份证过期了?!不用来营业部,君弘App端口自助更新!
  • 国泰君安君弘 身份证过期了?!不用来营业部,君弘App端口自助更新!
联合行文 党政联合行文文件属于政府信息吗?

联合行文 党政联合行文文件属于政府信息吗?

《党政机关公文处理条例》(中办发〔2012〕14号)第十七条规定:“同级党政机关、党政机关和其他同级机关在必要时可以联合行文。党委和政府各自职权范围内的工作不得联合行文。党委和政府部门可以根据职权互写。除办公厅(室)外,部门内设机构不得正式撰写文章。”在实践中,经常会有党委(部门)和政府(部...

如何打开命令行窗口 CAD命令行不见了,怎么打开?

如何打开命令行窗口 CAD命令行不见了,怎么打开?

CAD命令行缺失,如何打开? 命令行用于输入命令和显示命令参数,如下图所示。  有时候命令行关闭,给操作带来很多麻烦。打开命令行最简单的方法是快捷键:CTRL+9,可以用来关闭或打开命令行。AutoCAD、陈豪CAD等类似软件都使用同一个快捷键。如果使用带有下拉菜单的界面,可以点击下拉菜单中...

苹果官网描述文件在哪 苹果官方维修怎样删除iPhoneXS中的描述文件

苹果官网描述文件在哪 苹果官方维修怎样删除iPhoneXS中的描述文件

很多人看过iPhone上安装的描述文件,但是不知道描述文件是什么,它是做什么的,怎么删除。下面的小系列会告诉你一些关于描述文件的事情。 描述文件是什么 IOS配置文件是一个设置文档,实际上是一个XML文档,不是证书。部署iOS设备时,可以使用苹果官方的“iPhone配置实用程序”。App "...