春秋云境-MagicRelay
Wh1teSu 渗透测试 203浏览 · 2025-02-28 05:16

MagicRelay

外网信息收集

JSON
复制代码
发现Redis未授权访问漏洞

Redis未授权访问漏洞

JSON
复制代码
找到配置文件的绝对路径config_file:C:\Program Files\Redis\redis.windows-service.conf

参考:https://xz.aliyun.com/news/13892?time__1311=eqUxuDcDg7SBD%2FD0DdD8mDkKOv%2BGDGTpD&u_atoken=b3a75be672265d77a53604a111e28958&u_asig=0a47319217406169222756739e0032

方式
利用方法
利用要求
Webshell
有IIS服务的情况下,可以尝试往C:/inetpub/wwwroot/写Webshell,其他Web服务要猜目录
Administrator能直接写,普通用户看运气,Network Service权限写不了
启动项
比如往startup目录写启动项,但需要重启
Administrator能直接写,普通用户需要猜用户名,Network Service权限写不了
覆写system32
比如把cmd.exe覆写到sethc.exe,然后在RDP登录界面调出命令行窗口
要System权限才能写
加载模块
4.x之后的Redis允许用户加载自定义dll,可用主从复制写入恶意DLL,直接加载执行
无权限要求,但3.x的Redis并没有模块加载的功能
DLL劫持
劫持dbghelp.dll,主从复制写入恶意DLL并通过Redis命令触发
无权限要求
其他花式
比如写一个exe马,再整个快捷方式伪装一下放到桌面上,等运维人员打开
Administrator能直接写,普通用户需要猜用户名,Network Service权限写不了

DLL劫持能稳定利用并且对权限没有要求,也不会破坏原本的服务。

DLL劫持

漏洞原理概述

DLL劫持简介

在Windows操作系统中,动态链接库(DLL)用于存放通用代码,供多个应用程序共享使用。当一个程序需要调用DLL中的函数时,它首先会尝试从特定路径加载DLL文件。如果该程序未指定DLL的绝对路径,而是仅指定了DLL的名字,系统将按照预设的顺序搜索DLL文件的位置。这种机制为攻击者提供了机会,通过在高优先级路径放置恶意DLL来实施DLL劫持攻击。

标准的DLL查找顺序

1应用程序目录

2系统目录(如C:\Windows\System32)

316位系统目录(如C:\Windows\SysWOW64)

4Windows目录(如C:\Windows)

5当前工作目录

6系统环境变量PATH中指定的路径

例如,如果"example.exe"尝试加载名为"example.dll"的DLL但没有提供完整路径,系统会在上述顺序中寻找此DLL。若攻击者提前在应用程序目录放置了同名的恶意DLL,该恶意DLL会被优先加载执行。

函数转发劫持

为了不影响目标应用的正常功能,攻击者可能会采用函数转发劫持的方式。这要求攻击者导出原始DLL的所有函数,并确保这些函数能够正确指向原DLL中的对应地址。工具如DLLHijacker可以帮助自动化这一过程,但可能需要针对一些问题进行修复,比如中文乱码、匿名函数处理以及确保正确引用原DLL的绝对路径等。

具体案例:劫持dbghelp.dll

以redis-server.exe为例,在执行bgsave操作时,它首先在其应用目录中查找dbghelp.dll。利用Redis主从复制特性,攻击者可以在应用目录中写入恶意DLL,从而实现劫持。然而,若不正确地处理原DLL的路径,可能导致目标应用的功能异常,甚至无法重启。

正确的DLL劫持不仅不会影响应用程序的功能,还可以重复多次实施不同的攻击策略,如上线命令与控制(CS)或使用Metasploit Framework (MSF)发起反向shell攻击。关键在于保证恶意DLL正确转发对原始DLL函数的调用请求,维持目标应用的正常运行状态。

漏洞利用

工具下载地址:https://github.com/JKme/sb_kiddie-/blob/master/hacking_win/dll_hijack/DLLHijacker.py

要用修改后的DllHijacker.py和目标DLL路径生成Visual Studio 2019的项目文件:



用visual Studio 2019打开项目文件

参考c1trus师傅的方法改一下项目的属性(之前没改好像一直没成功.......)





VPS起一个CS,生成一个C的payload。

然后打开后在源文件的dllmain.app,修改里面的shellocde



选择 Releasex64 生成DLL文件

Redis主从写文件

https://github.com/0671/RabR

把生成好的DLL文件上传到RabR文件夹里面,上传到VPS,安全组开放对应的端口,我之前全开了就没管了。

然后主从复制将dbghelp.dll写过去并bgsave



成功上线CS,添加一个后门用户,RDP上去。

Stowaway搭建第一层代理

第一层

攻击机

目标机

内网信息收集

发现Redis机器加入了域xiaorang.lab

上传fscan扫描

整理如下

根据向日葵安装包的版本号找到一个rce

sunlogin-client-for-windows_11.0.0.33_rce_cnvd-2022-10270(向日葵RCE)

漏洞描述

上海贝锐信息科技股份有限公司的向日葵远控软件存在远程代码执行漏洞(CNVD-2022-10270/CNVD-

2022-03672),影响Windows系统使用的个人版和简约版,攻击者可利用该漏洞获取服务器控制权。

影响版本

向日葵个人版 for Windows <= 11.0.0.33

向日葵简约版 <= V1.0.1.43315(2021.12)

漏洞利用

SunloginClient 启动后会在 40000 以上随机开放一个web端口,认证有问题可以直接通过cgi-bin/rpc?

action=verify-haras获取cid 执行回显rce

https://github.com/Mr-xn/sunlogin_rce



mimikatz抓取hash

上传mimikatz抓取hash

SharpHound用System权限收集一下域内信息,其他权限运行报错

PetitPotato提权

上传一个后门程序到C:\Program Files\Redis

PetitPotato梭哈



sharphound收集域信息、bloodhound分析域信息



active-directory-certsrv-detect

参考https://cloud.tencent.com/developer/article/2391445

前面fscan进行内网扫描时,发现IP地址为172.22.12.12的CA服务器存在一个与Active Directory证书服务(AD CS)相关的安全漏洞。具体来说,这个漏洞可以通过利用名为“certsrv”的检测点来请求任意攻击者控制的DNS主机名的计算机证书。

漏洞描述

该漏洞允许攻击者滥用Active Directory证书服务(AD CS),通过以下方式提升域权限:

1 请求特制证书:攻击者可以利用AD CS请求一个具有任意DNS主机名的计算机证书。

2 模拟域控制器:一旦获得了具有特定DNS主机名的证书,攻击者可以利用该证书模拟域中的任何计算机帐户,包括域控制器。

3 完全域接管:通过成功模拟域控制器,攻击者可以获得对整个域的完全控制权,从而实现全面的域接管。

查看CA

配置一下hosts

滥用 Active Directory 证书服务(AD CS)。可以请求任意DNS主机名的计算机证书,从而模拟域中的任何计算机账户,包括域控制器。使用现有的机器账号 WIN-YUYAOX9Q$ 的哈希值来创建一个新的机器账号,以便后续操作。

具体步骤

1 获取现有机器账号的哈希值: 已经获取了名为 WIN-YUYAOX9Q$ 的机器账号的哈希值。这一步骤通常通过前期的信息收集和凭证窃取完成。

2 利用现有机器账号创建新的机器账号: 使用 WIN-YUYAOX9Q$ 的哈希值,通过以下步骤创建一个新的机器账号:

Pass-the-Hash 攻击:利用 WIN-YUYAOX9Q$ 的哈希值进行 Pass-the-Hash 攻击,以该机器账号的身份进行身份验证。

创建新机器账号:一旦成功通过身份验证,使用该机器账号的权限在域中创建一个新的机器账号。

3 为新机器账号请求证书: 使用新创建的机器账号,向 AD CS 请求一个具有特定 DNS 主机名的计算机证书。这个证书将允许该新机器账号冒充域中的其他计算机,包括域控制器。 示例步骤:

连接到证书颁发机构(CA)服务器。

提交证书请求,指定所需的 DNS 主机名。

安装并应用获得的证书。

4 冒充域管理员: 使用新机器账号及其获得的证书,模拟域中的关键系统(如域控制器),从而实现全面的域接管。

利用WIN-YUYAOX9Q$机器用户新建一个机器用户

申请证书模板

(如果一次没成功,执行两次即可)

接下来按照正常流程走会出错

报错的原因是域控制器没有安装用于智能卡身份验证的证书,解决办法的话就是尝试 Schannel,通过 Schannel将证书传递到 LDAPS, 修改 LDAP 配置 (例如配置 RBCD / DCSync), 进而获得域控权限。

Schannel

首先将pfx导出为.key 和.crt 两个文件(空密码)

https://github.com/AlmondOffSec/PassTheCert/blob/main/Python/passthecert.py

将证书配置到域控的RBCD

接下来同之前一样,申请ST,导入票据,无密码登录即可。

导入票据 PTT

拿下域控,SAM转储

PTH

拿到域控hash

直接PTH



0 条评论
某人
表情
可输入 255