Webshell不能執行命令常見原因
VSole2021-11-01 08:00:23
為什么整理這篇文章?因為個人感覺在后滲透中是否能夠執行命令是至關重要的一步,所以想著將以前在實戰中搜集整理的不能執行命令的常見原因和一些解決方法分享給大家。
注:當時做這個筆記只是為了方便自己查詢,所以也就沒有詳細記錄和截圖,僅供大家做下參考吧!
0x01 前言
大家有沒有遇到過Webshell無法執行系統命令或可執行文件的情況?我想肯定是有的,出現無法執行命令的原因也有很多,如常見的:
PHP安全模式(disable_functions);cmd.exe被降權或刪除;命令執行組件被卸載;組策略禁止執行cmd.exe;安全狗、云鎖、360等安全防護軟件;...SNIP...
0x02 執行命令組件、函數、類和方法
Asp:
Wscript.shell、Shell.Application
Aspx:
ProcessStartInfo、Wscript.shell,Shell.Application
Php:
system、passthru、shell_exec、exec、popen、proc_open
Jsp:
Runtime.getRuntime().exec(command)
0x03 注冊與卸載執行命令的高危組件
可以通過執行以下命令或刪除對應注冊表項來注冊和卸載WScript.Shell、Shell.Application命令組件。
WScript.Shell組件:
regsvr32 /u %windir%\system32\wshom.ocxHKEY_CLASSES_ROOT\WScript.ShellHKEY_CLASSES_ROOT\WScript.Shell.1
Shell.Application組件:
regsvr32 /u %windir%\system32\shell32.dllHKEY_CLASSES_ROOT\Shell.ApplicationHKEY_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.exeC:\Windows\winsxs\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7601.17514_none_f387767e655cd5ab\cmd.exe
Win2k12:
C:\Windows\WinSxS\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.3.9600.16384_none_7bcb26c7ee538fe3\cmd.exeC:\Windows\WinSxS\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_6.3.9600.16384_none_861fd11a22b451de\cmd.exe
Win2k16:
C:\Windows\WinSxS\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_10.0.14393.0_none_b8813238310f2dd6\cmd.exeC:\Windows\WinSxS\wow64_microsoft-windows-commandprompt_31bf3856ad364e35_10.0.14393.0_none_c2d5dc8a656fefd1\cmd.exe
VSole
網絡安全專家