看看samba。
rpc的Public共享文件有一个关于SQL Server的pdf。
从中能得到几个用户名Brandon、Ryan、Tom。还有一个可能的新用户的凭证:PublicUser
:GuestUserCantWrite1
。想通过crackmapexec来试试连接。
用法是对的,但是不知道为什么用户名一直没有变化。
使用impacket-mssqlclient。
使用help获取帮助。
试试能不能在数据库里发现什么。获取数据库:SELECT name FROM master.dbo.sysdatabases;
。
似乎不能通过收集数据库的信息来。额,试试中继攻击。
将哈希复制到文件夹并使用john或hashcat尝试破解(sql_svc开头那一段都是hash)。
使用凭证sql_svc:REGGIE1234ronnie
登录samba收集信息。哈哈,啥都收集不到。还是看看winrm吧。
开始漫长的信息收集之旅,还记得前面我们在pdf中发现的Ryan么?
可能我们会先搞定Ryan用户。
目标很明确,首先去看看MSSQL的相关信息。
可能Ryan用户在登陆的时候发现密码输入错误决定重新输入,结果失误导致密码直接当成用户输入,被日志记录下来。
试一试吧。
弄了半天没发现什么新的收获,可以跟着这个checklist走一遍看看。额,大致走了一遍回来发现啥都没有发现。
可能提权的方向要向AD靠拢。在一段尝试之后,发现证书可能存在易损版本。
Certify.exe request /ca:dc.theshire.local-DC-CA /template:VulnTemplate /altname:localadmin
C:\Users\Ryan.Cooper\Documents\Certify.exe request /ca:dc.theshire.local-DC-CA /template:VulnTemplate /altname:localadmin
将cert.pem的内容复制下来到攻击机上,然后在攻击机上执行下面的命令。
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
继续跟着走。
因为密码是空,所以没有使用/password: 。
成功通过Administrator的身份认证后,发现似乎作用不怎么大。经过搜索发现可以通过/getcredentials获取管理员的NTLM。
首先在Microsoft官网文档可以看到NTLM。先把注意力放在左边,NTLM的上一级是SSP,SSP的上一级是SSPI。
看看官文对SSPI的介绍。
SSP
又出来一个新的名词安全包
看的有点迷糊,以我这个脑子只能理解个大概,对我而言太抽象了。简单来说SSPI定义一个接口,SSP来实现这个接口。SSP是一个dll文件,可以自己编写属于自己的SSP。
再来看看NTLM,官网的中文版文档翻译总是怪怪的。
简单来说:
NTLM是一种身份验证,它使用质询/响应(challenge/response)的验证机制。它的验证流程如下图所示:
太好了,大致知道了NTLM的验证过程。那么前面是如何利用smb服务来对MSSQL进行中继攻击的?
首先需要知道几个名词。
LLMNR(Link Local Multicast Name Resolution)链路本地多播名称解析,在网络中如果主机尝试对特定主机进行解析,但可能因为某些原因导致DNS不可用或者错误的输入了主机名时,主机会对当前网络中的其他主机使用LLMNR进行通信询问对方是否知道那个特定主机。
NBT-NS(NetBIOS Name Service)则是通过 NetBIOS 名称识别本地网络上的系统,和LLMNR的识别
方法不同而已。所以说这两是在Micrsoft系统对DNS查找失败时,会使用这两进行本地主机解析。
xp_dirtree对指定目录的进行目录查询,可以用于网络路径。并且如你所见,它可以配合responder和impacket-smbserver来实现中继攻击。