安全矩阵

 找回密码
 立即注册
搜索
查看: 2597|回复: 0

九维团队-红队(突破)| HackThebox-Timing靶场渗透记录

[复制链接]

180

主题

231

帖子

1180

积分

金牌会员

Rank: 6Rank: 6

积分
1180
发表于 2022-5-1 02:37:00 | 显示全部楼层 |阅读模式
本帖最后由 Grav1ty 于 2022-5-1 02:38 编辑

九维团队-红队(突破)| HackThebox-Timing靶场渗透记录



Timing为HackTheBox靶场的中等靶机,由图可知目标ip为10.10.11.135。



01
信息收集

1.nmap端口扫描

  1. sudo nmap -F  10.10.11.135
复制代码





只有简单的两个端口,说明还是需要从web页面突破

2.80端口
直接访问url:http://10.10.11.135/login.php,返回一个登录框。



3.目录扫描
得知站点是php解析的,目录扫描专门扫一下php后缀的文件。



从上到下依次访问:
css:



然后是/index.php/autologin.php。



检查后发现这个页面暂时没有有用的信息。


  1. /image.php
复制代码





  1. /images/
复制代码




  1. /js
复制代码




其余访问后都是跳转到登录页面。

4.image.php
注意到image.php访问后没有返回值,猜测是不是传入的参数没有对上。于是就开始跑参数,这就发现的了这个url。说明这里可能存在文件包含的漏洞。




02
漏洞利用

1.收集思路
针对上面出现的LFI漏洞需要绕过限制。在文件包含中能绕过使用的就是php伪协议。



但是user的flag没有读出来,怀疑是权限不够。



又尝试一圈各种伪协议绕过就是读不到flag。所以读源码出来分析一下。目前有login.php和upload.php。

在login.php的源码中包含了db_conn.php数据库连接文件。



读一下db_conn.php,之前nmap扫描过了3306不对外开放,估计留到后面有用。



同理upload.php中发现
admin_auth_check.php。



可以猜测,这个站点需要先拿到web管理员权限,然后上传文件,通过上传的文件getshell。

查看admin_auth_check.php文件,发现其中又包含了auth_check.php文件。



2.弱口令
使用弱口令aaron/aaron即可登录进去(弱口令是从/etc/passwd里来的)。



访问Editeprofile,页面,点击Update并使用burp抓包。



由于在admin_auth_check.php源码中有判断role是否等于1,所以尝试在数据包中添加一个role=1。



Forward发送数据包后可以发现配置文件已经被更新。



刷新后多了一个AdminPanel,说明越权成功。



访问后多了一个文件上传的页面。



3.文件上传
先读读avatar_uploader.php的源码,发现没有什么限制。



因为有了之前的文件包含漏洞我们只需要上传一个图片马,然后包含一下就可以使用。我们不知道的东西可能就是文件上传的名称。



从代码中可以知道,文件上传的路径已经有了。然后需要文件名是个分句uniqid()和time()值拼接后取md5值加上“_文件名.jpg”,这个可以用代码实现。

先运行php脚本:

  1. while (true){echo date("D M j G:i:s T Y"); echo " = " ; echo md5('$file_hash' . time());echo "\n";sleep(1);}
复制代码





脚本不要停,然后再上传文件,这里就很符合题目的意思(Timing)。



在php脚本中找到对应的时间输出的值就是文件名。




4.文件包含
直接文件包含漏洞来包含上传的图片马。

  1. http://10.10.11.135/image.php?img=images/uploads/251dfe5087c642010121c2f3eba8c0c4_sherl.jpg&a=phpinfo();
复制代码





5.提权(aaron)
查看权限后发现为服务器权限,怪不得之前读不到aaron用户的flag。



先getshell。通过蚁剑发现有网站备份文件。



打开后发现.git文件夹。需要用工具分析其中版本更替的内容。



使用工具后查看到修改前的密码。



尝试用于ssh连接。


连接成功,读取flag。


提交。



03
提权

使用sudo -l,来查看哪个文件使用sudo运行而不需要密码。



文件的内容是执行一个jar包。



既然可以用sudo执行那就执行一下。



发现有FTP和HTTP两种请求方式。所以需要搞清楚,这两种方式使用的工具是啥。
开启一个nc监听可以看到HTTP是使用Axel工具来下载文件的。



介绍:Axel是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载,并且下载下来的文件所属于root用户。



所以是不是可以把ssh的公钥写入到服务器中后用密钥来连接。那么也是需要.axelrc配置文件来决定写入的文件文件与命名。

同理研究FTP。由于FTP本身是无法下载文件的,需要借助wget来使用FTP协议下载文件。而同理wget可以由用户家目录的.wgetrc配置文件决定。那么就会有两个解法。

解法一(http)
生成ssh密钥对。



下载器会识别文件名为index.html的内容,所以修改公钥的文件名为index.html。



由于本靶机上没有.axelrc配置文件所以需要上传一个上去。



查看一下,使用试需要把#号去掉,并且前面不能有空格。



开启http服务。



使用工具下载ssh公钥。



使用ssh密钥连接服务器,成功。



解法二(FTP)
修改wget的配置文件。



使用FTP文件下载ssh公钥。



指定密钥连接root用的ssh。



提交flag。



04
加固建议

php文件包含漏洞
过滤目录穿越的字符如:../ ./
闭allow_url_fopen 和 allow_url_include两个php配置项

git信息泄漏
删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。

linux越权
做好linux服务器的安全基线检查需要检查是否存在除root之外UID为0的用户。
排查是否有低权限用户能免密执行sudo的文件而引发的越权问题。


回复

使用道具 举报

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

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-30 08:37 , Processed in 0.014345 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表