MENU

Windows 间接命令执行方式总结

August 3, 2020 • Read: 678 • 后渗透阅读设置

0x00 前言

最近学习看到了关于Windows系统下实现间接命令执行的文章。某些情况下,可以使用非cmd.exe的一些自带的程序文件来执行命令,常见的场景就是逃避检测,绕过一些HIDS,看到国外的文章讲的是可以绕过应用程序白名单产品。具体可利用于哪些场景还得靠表哥们研究下。

这里直接就用找到的一些例子来测试下。

0x01 操作

1.forfiles

forfiles是一款windows平台的软件工具,其中选择文件并运行一个命令来操作文件。

image-20200731233906532.png

实际需要执行的命令是通过/c参数后的内容。

forfiles /c c:\windows\system32\calc.exe

打开进程的父进程为forfiles.exe

image-20200731234823857.png

2.pcalua

Windows 7以上的版本可以尝试使用pcalua执行命令。不过实测Windows 08R2没有找到这个程序。

使用-a参数执行命令。

pcalua.exe -a C:\Users\keefe\Desktop\1.exe

主进程即为运行的进程。

image-20200801000557325.png

3.SyncAppvPublishingServer

通过powershell执行SyncAppvPublishingServer.vbs

测试的时候发现在Powershell V2版本不能执行。Windows 7Windows 2008 R2默认是V2版本。

Windows 10测试可以。

通过查询Powershell版本,来验证是否可以使用。

powershell $PSVersionTable.PSVersion

Powershell命令行下执行。

SyncAppvPublishingServer 将执行双引号内的全部内容。

powershell SyncAppvPublishingServer.vbs "n; Start-Process C:\Users\keefe\Desktop\1.exe"

这里也可以通过执行进行上线,据说效果还不错,Tide团队有讲,就不多测试了。

主进程即为运行的进程。

image-20200801004841327.png

4.路径遍历/参数混乱

利用:

在同个盘符下,通过欺骗cmd执行任意程序。

cmd.exe /c "ping 127.0.0.1/../../../../../../../windows/system32/calc.exe"

为什么可以这么使用呢?

在国外大佬的某篇博客中看到以下解释。

image-20200803162032774.png

简单的理解也就是可以通过构造这种形式,来尝试执行任意程序。

5.conhost

conhost.exe是在windows 7Windows server 2008中引进的新的控制台应用程序处理机制。同样可以命令执行。

Windows 10下测试:

conhost C:\Windows\System32\calc.exe

image-20200803171114848.png

6.explorer

explorer.exeWindows系统的文件资源管理器,通过explorer可以执行程序,其实就是平常我们使用的桌面或者从我的电脑中启动程序都是通过explorer.exe

explorer.exe C:\Users\keefe\desktop\1.exe

explorer.exe /root,"C:\Users\keefe\desktop\1.exe"

explorer.exe test, "C:\Users\keefe\desktop\1.exe"

image-20200803171749995.png

7.waitfor

Windows还有一个waitfor命令,用于在系统上发送或等待信号。

image-20200803181614037.png

通过发送信号或者使用等待信号,可以执行任意命令。

waitfor test && C:\Users\keefe\desktop\1.exe

// test为信号的名称

waitfor /s 127.0.0.1 /si test

image-20200803181956299.png

0x02 参考文章

Indirect Command Execution, Technique T1202 - Enterprise | MITRE ATT&CK

T1202 - Indirect Command Execution

Indirect Command Execution

远控免杀专题(54)-白名单SyncAppvPublishingServer.vbs执行payload

Cmd Hijack - a command/argument confusion with path traversal in cmd.exe

原文作者:Keefe

原文链接:Windows 间接命令执行方式总结

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

Last Modified: August 7, 2020