Webshell不能执行命令常见原因

简介: Webshell不能执行命令常见原因

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.ocx
              HKEY_CLASSES_ROOT\WScript.Shell
              HKEY_CLASSES_ROOT\WScript.Shell.1

              Shell.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.exe

                  Win2k12:

                    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.exe

                    Win2k16:

                      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


                      相关文章
                      |
                      SQL 关系型数据库 MySQL
                      远程访问GitLab内置的PostgreSQL数据库
                      业务系统需要接入GitLab,业务系统以及GitLab都有一套各自的用户系统,需要实现同一套账户密码的话需要将数据同步给GitLab(主要是密码),然而由于GitLab安全策略,通过api进行同步GitLab用户数据并不满足需求,所以需要能直接访问GitLab数据库进行数据修改。
                      远程访问GitLab内置的PostgreSQL数据库
                      |
                      开发框架 前端开发 .NET
                      C#编程与Web开发
                      【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
                      662 3
                      |
                      算法
                      GSEA 富集分析原理分析
                      本分分享了自己学习参考多篇 关于GSEA 原理的博客文献后总结的个人理解,以供参考学习
                      1294 0
                      |
                      存储 虚拟化 数据中心
                      VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS HPE (慧与) 定制版
                      VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS HPE (慧与) 定制版
                      386 8
                      VMware ESXi 8.0U3e macOS Unlocker & OEM BIOS HPE (慧与) 定制版
                      |
                      机器学习/深度学习 存储 算法
                      机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
                      机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
                      974 0
                      机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
                      |
                      JavaScript 前端开发 数据安全/隐私保护
                      boss直聘__zp_stoken__参数分析
                      boss直聘__zp_stoken__参数分析
                      2233 1
                      |
                      机器学习/深度学习 人工智能 自然语言处理
                      9大商业GenAI用例
                      9大商业GenAI用例
                      |
                      JSON JavaScript 前端开发
                      服务器通信:使用WebSocket与后端实时交互
                      【4月更文挑战第24天】WebSocket为解决服务器与客户端实时双向通信问题而生,常用于聊天、游戏和实时通知等场景。本文通过4步教你实现WebSocket通信:1) 客户端使用JavaScript创建WebSocket连接;2) 监听`open`、`message`和`close`事件;3) 使用`send`方法发送数据;4) 使用`close`方法关闭连接。服务器端则需处理连接和数据发送,具体实现依后端技术而定。WebSocket为现代Web应用的实时交互提供了强大支持。
                      1537 3
                      |
                      SQL 缓存 弹性计算
                      阿里云提示网站后门发现后门(Webshell)文件该怎么解决
                      阿里云提示网站后门发现后门(Webshell)文件该怎么解决
                      3698 0
                      阿里云提示网站后门发现后门(Webshell)文件该怎么解决