前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【HTB靶场系列】Bastard

【HTB靶场系列】Bastard

作者头像
Ms08067安全实验室
发布2023-08-18 13:37:30
3480
发布2023-08-18 13:37:30
举报

#01

实验信息

靶机:10.10.10.9

Kali:10.10.16.2

#02

实验过程

靶机打开的端口很少,接下来扫描端口的详细信息

根据信息可以得出靶机是IIS搭建的,网站有robots.txt里面有很多可用信息

接下来 再对靶机进行 常用漏洞脚本扫描 以及 常见UDP端口扫描,没有什么出现其他的可用信息

那么这里的突破口就主要就是80端口

通过刚刚nmap的扫描结果得出靶机用的是IIS7.5

通过IIS7.5的wiki可以大致得出靶机的系统为win7或为Windows Server 2008 R2,也进一步验证了nmap的扫描结果

查询尝试drupal的是否存在默认账号密码,发现失败

刚刚在nmap的结果中发现robots.txt内容,接下来就根据robots.txt里面的内容进行展开

http://10.10.10.9/CHANGELOG.txt

http://10.10.10.9/xmlrpc.php

通过CHANGELOG.txt可得出当前的drupal版本是7.54

通过searchspolit来查找是否有现成的可利用EXP

根据刚刚得知drupal的版本是7.54来挑选合适的EXP进行使用

首先尝试“Drupal 7.x Module Services - Remote Code Execution”

编辑41564.php,这里修改了url,file变量,但是endpoint_path和endpoint还需要查询下如何修改

通过访问EXP作者里面的博客(https://www.ambionics.io/blog/drupal-services-module-rce),可知restful API接口

那么接下来就需要来查找drupal的API接口地址

因为不同的扫描器的扫描机制、算法是不同的,这里尝试使用多个扫描器来查找API接口地址

再安装个feroxbuster,这个工具扫描速度更快

字典采用专门用来发现API的字典 https://gitee.com/AnranRemo/SecLists.git

经过一段时间的等待dirb、feroxbuster、dirbuster并没有爆出更多的可用信息网上说API的目录为 /rest,可能真的需要一定经验才能猜出来吧

将EXP里面的endpoint_path修改下

报错,PHP缺少curl_init

再次运行即可得到webshell

除了41564.php之外还可以尝试使用'Drupalgeddon2' Remote Code Execution(CVE-2018-7600)

同样 Drupalgeddon3 也是可以的,但是Drupalgeddon3需要已认证的权限,而且这个账号需要有可以删除节点的权利。可以配合41564.php 得到的 session.json 来进行使用,session.json里面的内容就是admin的session

从github找现成的利用工具(https://github.com/oways/SA-CORE-2018-004)

先看看session.json里面的值是否可以成功获得admin权限,这里使用的是Cookie Quick Manager

编辑完成后保存cookies,刷新页面发现得到drupal的admin权限

那么就用这个session来尝试使用Drupalgeddon3,同时EXP还需要存在的节点编号,可以通过admin账号进行查看

可以找到node number为1

接下来使用 Drupalgeddon3 可以成功执行命令

接下来反弹一个shell到Kali上,先去github上找一个win下的nc

(https://github.com/vinsworldcom/NetCat64/releases/tag/1.11.6.4)

使用smb服务来将nc共享给靶机使用

Kali监听443端口

让靶机通过smb运行nc文件来反弹shell

读取user flag

除了使用webshell来执行命令,还可以借助drupal本身的功能模块来运行PHP代码

去google上找 PHP reverse shell,并粘贴到drupal中

注意修改IP、port、以及shell(为了防止歧义,路径用反斜杠)

这里Kali上还要额外监听一个1234端口,PHP会反弹会一个shell然后这个shell又会执行nc弹回一个shell,我们需要的是nc的shell

还可以通过Drupalgeddon3直接弹shell

除此之外,因为是win系统还可以使用powershell来获得TCP shell,这样就可以不用借助nc

先在kali上安装nishang

编辑下Invoke-PowerShellTcp.ps1,在底部添加内容

Kali上通过PHP开启http服务,然后让靶机的powershell下载并执行

这里使用到Drupalgeddon2

下载执行powershell脚本,获得shell

同样也可以借助Drupalgeddon3来运行powershell获取shell

也可以使用webshell来调用powershell

接下来开始尝试提权,通过systeminfo查询到靶机没有打任何补丁所以使用内核提权成功的概率非常大

Windows - Privilege Escalation

(https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology and Resources/Windows - Privilege Escalation.md)

在页面中搜索2008的内核提权工具进行尝试

查看当前用户权限,发现SeImpersonate是开启的

然后找一个合适的CLSID,这里可以直接用Windows Server 2008 R2 Enterprise的CLSID

将JuicyPotato下载到Kali中

在获取的shell中执行,发现报错,可能是用pweroshell反弹的shell原因

换成nc反弹再次尝试,虽然不报错,但是4444端口依旧没有接收到

将nc以及JuicyPotato下载到靶机上再进行尝试,用certutil将文件下载到目标靶机上

然后再次运行juicyPtato,提权成功

重置下靶机,接下来尝试用CVE-2018-8120来提权

(https://github.com/SecWiki/windows-kernel- exploits/blob/master/CVE-2018-8120/x64.exe)

然后在靶机上下载EXP

执行whoami发现可以得到system权限

那么就通过这个EXP来反弹一个system权限的shell

接下来尝试MS15-051(https://github.com/euphrat1ca/ms15-051/tree/master/ms15-051/ms15- 051/x64) 提权,同样先重置靶机

发现也是可以成功提权

除了进行内核漏洞提权之外,还可以通过mysql数据库提权

通过端口查询发现靶机上开着3306,说明有MySQL数据库

连接mysql,但是shell没有反应

那么将靶机的3306映射到Kali中来,

下载chisel(https://github.com/jpillora/chisel)

通过certutil下载到靶机中去

在Kali上开启监听

然后在靶机上运行chisel进行端口转发

然后连接kali的3306就可以连接到靶机的3306然后连接kali的3306就可以连接到靶机的3306

查看是否具备UDF提前条件

mysql版本为5.5.45,只能将udf.dll写入MySQL安装目录下的lib\plugin文件夹才行

得到插件的目录地址,并且secure_file_priv为空,满足使用udf提权条件

开始进行UDF提权

Kali上用nc开启监听

在MySQL通过自定义函数反弹shell

get rootshell

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档