|
|
|
联系客服020-83701501

内网渗透:利用WMI代替psexec(WMIEXEC.vbs)

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
内网浸透渗出:利用WMI经办psexec(WMIEXEC.vbs)

0x01 靠山

内网浸透渗出中屡屡用到psexec这个东西,或许很未便的失掉一个半交互式的cmd shell。

然则psexec也有一些标题:psexec必要对方关闭ADMIN$共享,而且必要布置就事;别的,psexec参与时有或许就事删除腐臭,这个环境只是无心,然则我碰到过。

布置就事会留下清楚明了的日记,而且就事没有删除的损害更大,打算员很繁冗就会发现。

WMI或许远程执行命令,所以我就想用VBS脚本调用WMI来仿照psexec的坚守,因此乎WMIEXEC就降生了。根柢上psexec能用的处所,这个脚本也也许利用。

0x02 WMIEXEC坚守

利用WMI代替psexec——WMIEXEC.vbs

WMIEXEC否决两种模式,一种是半交互式shell模式,另一种是执行单条命令模式。

WMIEXEC必要供给账号暗码中止远程连贯,然则假设没有破解出账号暗码,也或许配合WCE的hash注入坚守一起利用,后辈行hash注入,往后再利用WMIEXEC即可。

半交互式shell模式

供给账号暗码,执行如下命令:

Default
1 cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 username password

利用WMI代替psexec——WMIEXEC.vbs

何等就失掉了一个半交互式的shell,这个shell和psexec的shell没什么判袂。之所以称为半交互式,是由于这个shell也不克不及执行实时交互的命令,和psexec是同样的。

上个执行命令的图:

利用WMI代替psexec——WMIEXEC.vbs

左边是捏造机名义执行的命令,左边是WMIEXEC名义执行的。

还或许抓取hash:

利用WMI代替psexec——WMIEXEC.vbs

单个命令执行的模式

这个模式适用于只必要执行一个命令,大约说当前的环境不是交互式shell,无奈运行WMIEXEC的shell模式时(比如在webshell名义)。

Default
1 cscript.exe wmiexec.vbs /cmd 192.168.1.1 username password "command"

利用WMI代替psexec——WMIEXEC.vbs

上面是供给账号暗码的环境,假设偶然候我们抓取到的是hash,破解不了时或许利用WCE的hash注入,往后再执行WMIEXEC(不供给账号暗码)即或许了。

利用WMI代替psexec——WMIEXEC.vbs

Tips:

假设抓取的LM hash是AAD3扫尾的,大约是No Password之类的,就用32个0经办LM hash即可。

0x03 事理和相干标题

全数进程是先调用WMI经由账号暗码大约NTLM认证(WCE注入)连贯到远程共计机,往后假设供给了账号暗码,则用这个账号暗码创立一个到目标的IPC连贯。随后WMI会创立一个共享文件夹,用于远程读取命令执行后果。

当 用户输出命令时,WMI创立过程执行该命令,往后把后果输出到文件,这个文件位于过来创立的 共享文件夹中。开首,经由FSO组件访问远程共享文件夹中的后果文件,将后果输出。当后果读取实现时,调用WMI执行命令删除后果文件。开首当 WMIEXEC参与时,删除文件共享。

由于WMI只担任创立过程,没有法子法式或许判毕命令是否执行结束,所以脚本采纳的言论是担搁 1200ms后读取后果文件,然则假设命令执行的时间大于1200ms,比如systeminfo 大约ping之类的,这时读取后果文件会导致读取的后果不完整,往后在删除后果文件时会犯错。

比如正常的执行ping:

利用WMI代替psexec——WMIEXEC.vbs

Ping后果没有读取完整,而且命令执行完后目标就事器上的wmi.dll后果文件并无被删除!

为了预防出现这种环境,因此在shell模式名义参预了-waitTIME选项,TIME是要等待的时间。当执行的命令背面跟上-wait5000时,显示这个命令等待5s后再读取后果.

利用WMI代替psexec——WMIEXEC.vbs

由于正常的命令都要查抄后果,所以执行的命令背面农村加上重定向符,把后果输出到文件中。

所以用这个执行木马会有标题,由于木马过程会始终具备,导致后果文件被占用,不克不及删除,也不克不及改写,假设执行不带任何参数的nc.exe也是这种效果

出现这种环境后由于后果文件被占用,所以WMIEXEC不克不及工作,除非手动调动脚本中的后果文件名。大约或许用taskkill 远程结束掉卡死的过程,往后WMIEXEC或许恢停工作。

为了经管这个标题,参预了-persist选项。

当命令加了persist选项后,步伐会在布景运行,不会有后果输出,而且会前往这个命令过程的PID,未便结束过程。

何等即或许运行nc大约木马步伐了。

下面是测试nc的后果:

利用WMI代替psexec——WMIEXEC.vbs

相干设定:

Default
12345 Const Path = "C:\" Const FileName = "wmi.dll" Const timeOut = 1200

这段代码在脚本的一初步,是牵制后果文件路径、文件名、以及默认代码执行时间的,或许自行调动

0x04 题外话:UAC的讨论

测试中发而今Server 2008以及2012中,只需Administrator账号能中止远程连贯,并且psexec也是同样的环境,还有IPC连贯也是。就算是打算员用户组的别的用户也不克不及中止远程连贯。

事先发现是UAC的标题,默认UAC是关闭的,这时只需Administrator账户也许远程访问共享大约连贯WMI。

利用WMI代替psexec——WMIEXEC.vbs

图中hehe是打算员用户组的用户,然则PSEXEC在连贯时提醒回绝访问,WMIEXEC也是同样。

Google查到或许经由禁用UAC往后psexec即或许利用了,如何禁用参考:http://support.microsoft.com/kb/942817

禁用当前psexec或许经由hehe账户连贯,然则是平时的权限,此时要加上-h选项即可失掉打算员的权限。

利用WMI代替psexec——WMIEXEC.vbs

禁用UAC后WMIEXEC用hehe账户连贯间接即是打算员权限

利用WMI代替psexec——WMIEXEC.vbs

值得一提的是,UAC并不会拦截域打算员,就算UAC是关闭的,域打算员也或许直间断接,或许间接利用PSEXEC大约WMIEXEC。

0x05 WMIEXEC利用实例

还是用抓取server 2012域控上的hash作为例子吧,具体独霸法式就不引见了,间接上图:

利用WMI代替psexec——WMIEXEC.vbs
利用WMI代替psexec——WMIEXEC.vbs 利用WMI代替psexec——WMIEXEC.vbs

0x06 总结

运行时间长的命令时,如ping,systeminfo之类的,记得加上-wait5000大约更久的时间选项

运行nc反弹大约木马等无须要输出后果、同时必要始终运行的步伐时,未必要加上-persist选项,不然你就只能去taskkill远程结束过程了

而今单命令执行模式(/cmd)也或许剖析-waitTIME 和 -persist选项了,何等即或许用单命令模式运行nc大约远控

下载地点:

wmiexec v1.1.rar (wmiexec v1.1.vbs)

[via@t00ls]

数安新闻+更多

证书相关+更多