以往的打靶记录都聚焦与打靶过程中的思考与流程,与网上随处可见的WalkThrough差别不大,因此之后我打算聚焦于记录在打靶过程中学到的新知识或思路。
靶机是来自HTB的Driver,感谢Yuro送来的一个月vip+
攻击路径
立足点:Web认证爆破->SMB共享scf文件攻击->responder捕获认证哈希->爆破哈希->登录WinRM
提权:winpeas枚举->检查Spooler存在漏洞->N-day提权
攻击面分析
web信息收集完成后,获得如下信息:
- 目标不属于域环境
- 文件上传无法通过web页面利用,上传的文件会放在SMB的文件共享中
- SMB服务有交互,但无权限访问,且并未枚举出有效信息
- 5985端口,即WinRM服务开放,但需要有凭据才能交互
涉及知识点:
- 内网认证机制
- 内网协议
Windows内网认证机制
非域环境下,一般采用的是NTLM认证,早期是LM(Line Manager),由于安全性过低,因此诞生了NTLMv1,在这基础上又诞生了安全性更高的NTLMv2,但在使用弱密码的情况下,还是存在被破解的可能
在非域环境中的具体认证流程如下
内网协议降级
Windows默认开启的三种基本协议:LLMNR、NBNS、MDNS,具体介绍请点此处
三种协议的主要作用是在DNS服务器解析失败后,尝试对windows主机名称进行解析
例如,在win10主机上ping一个不存在的主机名,会按如下流程尝试解析:
- 查看本地hosts文件
- 查看DNS缓存
- 通过DNS服务器查找
- 尝试用LLMNR、NBNS、MDNS协议进行解析
测试:
可以看到当DNS解析失败后,用LLMNR与MDNS协议向两个多播地址进行广播,用NBNS协议向广播地址进行广播
这里,可以使用responder来欺骗目标,原理和ARP欺骗大致相同
启动responder:
可以看到这次解析到了攻击机192.168.111.132上,responder这里也有对应的解析日志
通过Responder获取Hash
通过组合以上两个知识点,可以实现通过responder欺骗来获取目标主机的NTLM hash,
此事在红队思维1-关于红队攻防和玩俄罗斯方块的共性中亦有记载
windows中,基于NTLM认证的有SMB、HTTP、LDAP、MSSQL等服务,通过responder,我们可以模拟正常的SMB协议来获得目标主机的NTLM hash
运行responder后,使用net use尝试连接一个不存在的主机名
可以看到成功获取到了目标用户的NTLM hash,接下来使用hashcat尝试破解即可
除net use外还有很多命令能够触发带有NTLM的访问,只要和SMB相关就可以,在此就不展开了
当然,除了responder,使用impacket中的smberver也可以实现,不过连接时的UNC路径中的ip需要替换为攻击机的ip,否则不会解析到攻击机上,共享路径则没有特定需求
SMB共享scf文件攻击
根据这台靶机的情况,我们还需要一个触发带有NTLM访问的途径,常见的攻击手法便是利用SMB共享scf文件攻击,虽然我们没有SMB文件共享的写权限,但是可以通过上传点将scf文件传入文件共享
scf文件:即shell命令文件,可以在windows资源管理器中执行一组有限的操作,如显示桌面或打开资源管理器。但是scf文件还可以用来访问一个特定的UNC路径,实现访问SMB共享文件,格式如下:
|
|
如此,攻击思路就很清晰了,构建scf文件上传至目标的SMB文件共享中,同时启动responder或smbserver,拦截到目标的NTLMv2 hash后进行爆破,即可获取目标的凭据,随后使用evil-winrm与目标5985端口进行连接即可
内网信息收集
利用winPEAS辅助收集,优先尝试文件不落地的执行方式,无果后再通过evil-winrm上传文件本体至目标主机,将执行结果输出并拉取到本地查看
在powershell的历史记录文件中可以看到添加打印机的操作
可以来检查下是否开启了spooler服务,nxc中有模块可以直接检查,也可以在shell中查看进程
在网络上检索了相关信息后,发现一个著名的打印机漏洞:PrintNightmare
nxc中也有相关的检查模块,甚至贴心地给出了漏洞exp
由于漏洞是通过dll利用,因此还需要生成一个payload,使用msfvenom进行生成,上传至目标后运行exp即可反弹shell,过程繁琐,不展开了
权限持久化
学习了一下windows中如何做权限持久化,当是留个后门
|
|
利用secretsdump转储SAM中的hash,之后就可以用这个hash登录
|
|