
fscan扫出来80端口存活,给了个邮箱,疑似用户名,测试一下

尝试爆破
遇见了一个问题,对面发包给的flarum_session和X-CSRF隔一段时间就会失效,而这个密码又不好爆破,需要很大的字典,所以后面就会失效,目前不知道咋解决,感觉得用Python脚本,yakit没这功能。(yakit其实有这功能
https://wiki.bafangwy.com/doc/851/文章中用的Xpath提取数据,我们因为是要提取请求头中的,所以将Xpath换成键值对,提取位置将raw换成请求头即可)

暂时不管咋爆破,先进下一步,根据wp可知密码爆破出来是1chris
其实没进来前就可以发现对面是flarum框架,搜一下已存在的漏洞发现
阅读一下可知利用这个漏洞必须要有管理员权限,刚好已经获得了,其实这也可以是引导爆破密码的思路

在后台找到这个功能,下面这个不行不知道为啥

这个可以

跟着文章复现一下,但是跟文章有点不一样,@import (inline)后面要用单引号包裹,并且在最后加上一个;不然会有语法错误,在写了第一个css文件后要等一会,感觉可能是写文件要一点时间,最好在成功访问/assets/forum.css后再写第二个css文件

成功反弹
是web用户,权限很低,接下来进行提权
suid试了一下发现不行,晚点研究研究suid的原理
Linux提权之:利用capabilities提权 - f_carey - 博客园
用文章中的方法

发现openssl可以利用
利用高权限覆盖/etc/passwd从而创建具有root权限的新用户
1 | mkdir /tmp;cd /tmp |
之后用su test2 就能成功切换成test2了

当然如果说知道文件位置就不用添加新用户了
openssl enc -in “文件path”就能直接读
下次如果反弹shell了立马写马或者ssh,太难用了,这次写马半天连不上发现是校园网的问题,下次干这种就用热点吧
之后在内网用fscan扫,发现另外三台存活主机

发现域控开了一个88端口,搜了一下88端口是用kerberos协议的。该协议用于网络身份验证和单点登录服务
在web服务目录下找到了config.php。里面有数据库账号和密码

但是登陆的时候在蚁剑上老是有问题,反弹的终端又难用,不知道咋才能在终端上登mysql
shell连不上就换本地的navicat


注意因为要连Localhost,所以proxifier代理要把第一个规则给关了,给自定义的添上localhost

但是我发现localhost就能连上,但是内网ip就不行
ai说是localhost走的是 FRP 的本地回环转发(或者 MySQL 的 Unix Socket),而 172.22.60.52 触发了 MySQL 的权限拒绝或绑定限制
将user表里面的用户名提取到user.txt中,用Impact的GetNpUsers爆破一下开启了 UF_DONT_REQUIRE_PREAUTH 属性的用户,这样就能绕过Kerbros身份验证

找到两个不用kerberos验证的,wangyun和zhangxin
1 | D:\Intranet\hashcat-7.1.2>hashcat -m 18200 D:\hash.txt D:\Intranet\hashcat-7.1.2\rockyou\1.txt |

成功爆破出来了wangyu的密码
蚁剑有时候curl下载工具下不好,反弹shell或者ssh登录后再下
用bloodhound跑一下

我的bloodhound好像比别人的垃圾一点

它只找得到到FILESERVER的路径,找不到FILESERVER到XIAORANG.LAB的路径,也就是说wp里面的Dcsync漏洞它找不到
这里可以看到zhangxin属于ACCOUNT OPERATORS组,ACCOUNT OPERATORS组拥有对除域控外的计算机对象的GenericAll权限,而且正常情况下bloodhound应该扫得出来Fileserver拥有Dcsync,与题目描述中所说黑客留下的域控制器后门相符。所以思路就是利用zhangxin给Fileserver配置RBDC,最后用Dscync拿下域控
扫一下之前发现的PC1

有个3389,rdp登录

有个xshell,但是我tm打不开啊,怎么处处跟wp说的不一样啊,网上搜的解决方法结果wangyun的权限不够,我看看能不能直接用wp的方法在不打开xshell的情况下弄出来

可以可以,这工具牛逼,
成功拿到zhangxin密码
后面的全部都跟着wp无脑过了一遍了,接下来学习一下为什么要这么做
接下来打RBCD(Resource Based Constrained Delegation, 基于资源的约束委派)
参考这篇文章
什么是委派?即允许A将自己的权限赐给服务B,然后服务B用A的权限去访问服务C
RBCD与其他委派有什么区别?
在设置人上:其他委派需要域管理员去设置委派相关属性,但是RBCD只需要资源的管理员自己设置就行,谁是资源的管理员?即机器自身和将此机器加入域的域用户
在设置的地方上:其他的委派是在委派人上,即修改服务A的属性msDS-AlowedToDelegateTo为BDefinite的SPN,A就可以模仿任意用户像域控申请访问服务B的ST服务票据。RBCD则是相反的,是修改B的属性AllowedToActOnBehalfOfotherldentity为A的SID,从而A可以模仿任意用户访问B
msDS-AllowedToActOnBehalfOfOtherIdentity属性指向委派账户(也就是我们创建的机器账户或已知机器账户)
条件:
1.具有修改B属性的权限(如已经控制了主机WEB,则可以修改WEB的属性的权限账户)
2.可以创建机器账户的域用户(或已知机器账户)
票据是什么
RBCD就是允许一个主体(如test1$)代表一个用户(如administrator)向目标资源(如WEB计算机)请求服务
给 WEB 计算机设置 msds-allowedtoactonbehalfofotheridentity,相当于告诉域控制器(DC):“允许 test1$ 代表其他用户访问我(WEB)”
基于这个权限,让 test1$ 向 DC 申请一张 “冒充 administrator 访问 WEB 的 cifs 服务” 的票据(ST),拿着这张票据就能直接访问 WEB 的文件共享(CIFS)等资源。
什么用户能修改机器账户上的属性:
1.将主机加入域的账户(账户中有一个mSDS-CreatorSID属性,用于标记加入域时使用的用户的SID值,反查就可以知道是谁把机器加入域的了)
2.Account Operator组成员
3.该主机的机器账户
利用方式1:基于资源的约束委派攻击本地提权(有将目标主机加入域的域用户权限)
如果获取到了many权限,则可以对是被many加入域的主机(假如名为WEB)进行RBCD攻击
1.利用many创建一个机器账户(每个域用户可以默认创建10个)
2.修改WEB的msDS-AllowedToActOnBehalfOfOtherIdentity为新创建机器账户的SID
3.利用机器账户申请票据进行提权
创建机器账户
利用Powermad.ps1
创建机器账户test1 密码123456
1 | powershell |
利用powerView查询机器账户的sid(也可手动)
1 | Get-NetComputer test1 -Properties objectsid |
test1 sid:S-1-5-21-1400638014-602433399-2258725660-1148
设置委派,修改WEB的msds-allowedtoactonbehalfofotheridentity的值
利用PowerView.ps1
1 | powershell |
然后生成票据
1 | python3 getST.py -dc-ip 10.150.127.166 haishi.com/test1\$:123456 -spn cifs/WEB.haishi.com -impersonate administrator |
导入票据(生成票据后会默认保存为administrator.ccache )
1 | # 导入票据到环境变量 |
利用方式2:Account Operator组用户
如果获得Acount Operators组用户就可以获得域内除了域控的所有主机权限
Acount Operators组成员可以修改域内除了域控其他所有主机的msDS-AllowedToActOnBehalfOfOtherIdentity属性
步骤和利用方式1相同
还有方式3和4,具体就去看上面那篇域渗透之委派攻击全集
委派暂时告一段落,接下来继续分析题目
申请票据完了后就获取了FILESERVER的SYSTEM权限
直接获取flag就行
接下来打Dcsync
获取FILESERVER机器账户的哈希
1 | proxychains python3 secretsdump.py -k -no-pass Fileserver.xiaorang.lab -dc-ip 172.22.60.8 |

写下来用机器账户进行Dcsync
1 | proxychains secretsdump.py xiaorang.lab/'Fileserver$':@172.22.60.8 -hashes ':951d8a9265dfb652f42e5c8c497d70dc' -just-dc-user Administrator |

获得域控哈希之后就可以PTH登录所有主机了
About this Post
This post is written by DashingBug, licensed under CC BY-NC 4.0.