声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 |
|---|
为什么整理这篇文章?因为个人感觉在后渗透中是否能够执行命令是至关重要的一步,所以想着将以前在实战中搜集整理的不能执行命令的常见原因和一些解决方法分享给大家。
注:当时做这个笔记只是为了方便自己查询,所以也就没有详细记录和截图,仅供大家做下参考吧!
0x01 前言
大家有没有遇到过Webshell无法执行系统命令或可执行文件的情况?我想肯定是有的,出现无法执行命令的原因也有很多,如常见的:
PHP安全模式(disable_functions);
cmd.exe被降权或删除;
命令执行组件被卸载;
组策略禁止执行cmd.exe;
安全狗、云锁、360等安全防护软件;
...SNIP...0x02 执行命令组件、函数、类和方法
Asp:
Wscript.shell、Shell.ApplicationAspx:
ProcessStartInfo、Wscript.shell,Shell.ApplicationPhp:
system、passthru、shell_exec、exec、popen、proc_openJsp:
Runtime.getRuntime().exec(command)0x03 注册与卸载执行命令的高危组件
可以通过执行以下命令或删除对应注册表项来注册和卸载WScript.Shell、Shell.Application命令组件。
WScript.Shell组件:
regsvr32 /u %windir%\system32\wshom.ocx
HKEY_CLASSES_ROOT\WScript.Shell
HKEY_CLASSES_ROOT\WScript.Shell.1Shell.Application组件:
regsvr32 /u %windir%\system32\shell32.dll
HKEY_CLASSES_ROOT\Shell.Application
HKEY_CLASSES_ROOT\Shell.Application.1
0x04 Webshell常见命令执行报错小结



0x05 Windows各版本操作系统cmd路径
大部分管理员只会给默认System32、SysWOW64目录下的cmd.exe文件做降权处理,这时我们就可以尝试使用以下对应操作系统版本的cmd.exe来执行系统命令,如下图。

Win2k8:
C:\Windows\winsxs\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7601.17514_none_e932cc2c30fc13b0\cmd.exe
C:\Windows\winsxs\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7601.17514_none_f387767e655cd5ab\cmd.exeWin2k12:
C:\Windows\WinSxS\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.3.9600.16384_none_7bcb26c7ee538fe3\cmd.exe
C:\Windows\WinSxS\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_6.3.9600.16384_none_861fd11a22b451de\cmd.exeWin2k16:
C:\Windows\WinSxS\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_10.0.14393.0_none_b8813238310f2dd6\cmd.exe
C:\Windows\WinSxS\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_10.0.14393.0_none_c2d5dc8a656fefd1\cmd.exe