Psexec和wmiexec的原理和区别

PSEXEC

针对远程建立连接的方式有两种,一种先建立IPC通道连接,然后直接使用,操作如下:

net use \\192.168.0.1\ipc$ “password” /user:administrator

psexec.exe \\192.168.0.1 cmd                   进入半交互式cmdshell  ;

另一种时在psexec的参数中指定账户密码    操作如下:

psexec.exe \\192.168.0.1 –u administrator –p password

执行原理:

1.通过ipc$连接,释放psexecsvc.exe到目标

2.通过服务管理SCManager远程创建psexecsvc服务,并启动服务。

3.客户端连接执行命令,服务端启动相应的程序并执行回显数据。

4.运行完后删除服务。这个在windows的日志中有详细的记录,另外psexec在少数情况下会出现服务没删除成功的bug,所以一般不推荐使用psexec,推荐wmiexec

工具说明:

需要远程系统开启admin$共享

建立IP超链接后可以不指定用户名和密码

不能仅拷贝文件不行执行,拷贝时可以建立ipc连接后拷贝

在启动psexec建立连接后,远程系统上会被安装一个服务:psexecsvc,安装服务会留下日志,而且psexec推出时有可能服务删除失败,所以不推荐使用psexec


wmiexec

wmi介绍

全称是Windows management instrumentation,它出现在所有的Windows操作系统中,并由一组强大的工具集合组成,用于管理本地或远程的Windows系统,攻击者使用wmi来进行攻击,但Windows系统默认不会再日志中记录这些操作,可以做到无日志,攻击脚本无需写入到磁盘,增加了隐蔽性。推荐使用wmiexec进行远程执行命令

wmiexec介绍

大牛使用VBS脚本调用WMI来模拟 psexec 的功能,于是乎WMIEXEC 就诞生了。基本上psexec 能用的地方,这个脚本也能够使用。整个过程是先调用WMI通过账号密码或者NTLM认证(WCE注入)连接到远程计算机,然后如果提供了账号密码,则用这个账号密码建立一个到目标的IPC连接。随后WMI会建立一个共享文件夹,用于远程读取命令执行结果。 当用户输入命令时,WMI创建进程执行该命令,然后把结果输出到文件,这个文件位于之前创建的共享文件夹中。最后,通过FSO组件访问远程共享文件夹中的结果文件,将结果输出。当结果读取完成时,调用WMI执行命令删除结果文件。最后当WMIEXEC退出时,删除文件共享。

常用命令

获取半交互式shell

cscript.exe //nologo wmiexec.vbs /shell 192.168.0.1 username password

在远程系统上执行单条命令

cscript.exe wmiexec.vbs /cmd 192.168.0.1 username password “cmdkey /list”

在远程系统上执行bat脚本

cscript.exe wmiexec.vbs /cmd 192.168.0.1 username password c:\programdata\test.bat


上面是提供账号密码的情况,如果有时候我们抓取到的是hash,破解不了时可以利用WCE的hash注入,然后再执行wmiexec(不提供账号密码)就可以了,操作如下:

wce –s 账号:主机名或域的名字:LM:NTLM

cscript //nologo wmiexec.vbs /shell 192.168.0.1

注意:日过抓取的LM hash是AAD3开头的,或者是No Password之类的,计用32个0代替LM hash

猜你喜欢

转载自www.cnblogs.com/sup3rman/p/12381874.html