梦中的一次HTB
这几天又做梦了 梦到了…
当前机子的80端口是一个Joomla,并且发现了版本号为4.2.7,存在Joomla未授权访问漏洞(CVE-2023-23752)
1 |
|

泄露用户名密码,并且在前期内网信息收集的过程中可知,22端口没有开放不过开放了445,所以从smb入手

发现用户名密码不正确,猜测可能是用户名不正确,尝试使用AS-REP攻击,使用kerbrute对目标域名进行用户名枚举

逐个尝试,发现一个用户能够成功连接,并且在查看共享文件夹内容时,发现在SOC Analysis文件夹中有一个pcap文件,get下来


分析这个流量包,不管是tcp或者是udp流,都没有发现异常流量,但是发现了存在Kerberos流量

不过在第二个数据包中,还是发现了点东西,并且发现了一个用户

首先在cipher那里那里可以看到hash的类型,是一个是krb类型,流量包中的加密模式为18,并且为SHA-256,能够破解Kerberos的方式为7500,但是7500模式中的加密模式为23而并非18,而19900模式是能够破解Kerberos,并且加密模式正好是18,所以我们用hashcat进行破解,首先构造密文,Krb5pa标识kerberos5预身份验证,18标识kerberos加密类型18(AES-256),后面追加用户名和域名,均用$符合隔开
1 |
|
保存到一个txt中,再用hashcat进行破解,命令如下
1 |
|
破解出来之后,进行登录Joomla,查找功能点,发现在system->site Templates可以修改主页代码,修改为反弹shell代码

拿shell

为了方便后边的操作,上线msf,拿到一个会话之后,随即迁移进程,并使用runas模块提权到刚才流量包中发现的账户


成功拿到用户权限,查看端口开放情况

发现开放了8083端口,通过端口转发将其流量代理出来

代理出来之后发现了文件上传点,随便上传了几个文件进行探测,发现对文件类型有限制,其中可以上传odt文件


这里我们利用odt文件的漏洞(CVE-2023-2255),首先生成一个exe马,然后制作一个odt恶意文件,让这个odt去执行cmd命令从而执行exe木马,msf监听接收shell

获取到新的shell,此时用户已经变为域中的其他用户,开始进行横向移动,首先查看当前还有什么用户

用mimikatz查看凭据信息

列出了当前用户的windows凭据保管库内容和Windows Credentials凭据,然后逐一寻找受保护的凭据内容
1 |
|

可以看到有三个不同cred,回到mimikatz使用dpapi::cred模块来解密存储在Windows数据保护API(DPAPI)下的凭据,尝试解密位于当前用户的Credentials目录下的一个加密凭据文件。以便查找数据



一般情况下,用于加密用户RSA密钥的DPAPI密钥存储在%APPDATA%\Microsoft\Protect\ {SID}目录下,其中{SID}是该用户的,DPAPI 密钥与保护用户私钥的主密钥存储在同一文件中,通常是64字节的随机数据,列出当前用户AppData\Roaming\Microsoft\Protect\下的所有内容(此处为该用户的sid)

继续列出当前用户sid下的所有隐藏内容

接下来使用mimikatz的dpapi::masterkey模块来解密最新的主密钥

这个时候域控已为我们解密,直接将mimikatz打进缓存

使用缓存中的密钥,我们可以恢复查看凭证文件,得到了新的用户名和密码

横向到新用户,尝试使用winrm登录,成功

因为一直没有拿下超管权限,很多操作还是受限,接下来寻找提权的方法,在开始之前先用Bloodhound导出所有域之间的所有关联数据



不难发现当前横向到的这个用户是位于GPO组内的,而GPO Manager组成员很可能被授予了修改、创建或链接组策略对象的权限,由于GPO MANERGERS@OFFICE.HTB这个组为AD中的安全组,因此可能可以利用GPO来进行横向移动,于是列出域中的所有GPO

这个时候就有思路了,使用SharpGPOAbuse在Active Directory环境中通过修改“Default Domain Controllers Policy”这个组策略对象,将当前用户账户添加为所有受此GPO影响的域控本地管理员,使得当前用户获得对这些域控制器的高级访问权限

强制更新组策略

现在再查看administrators组用户成员,可以发现当前用户属性,已经在administrators里面,这样一来就拥有了administrator权限,提权成功 拿下!

醒了…原来终究是一场梦罢了
起床.
吃早饭..
摸鱼的一天又开始了…