【内网安全】——Windows权限维持

news2024/9/24 1:16:28
作者名:白昼安全
主页面链接: 主页传送门
创作初心: 以后赚大钱
座右铭: 不要让时代的悲哀成为你的悲哀
专研方向: web安全,后渗透技术
每日鸡汤: 20岁的年纪不该困在爱与不爱里,对吗
在红队行动中在网络中获得最初的立足点是一项耗时的任务。因此,持久性是红队成功运作的关键,这将使团队能够专注于目标,而不会失去与指挥和控制服务器的通信。所以,这就引出了我们今天要讲解的内容——权限维持

当然,权限维持我们也是分为windows和linux来讲,这篇文章就讲解的是windows的权限维持姿势,这里的姿势也只是讲一些常见的,用的比较多的姿势来讲,希望博客的内容能够帮助到大家

一、辅助功能镜像劫持

1、辅助功能介绍

什么是windows的辅助功能

就比如说想粘滞键这样的程序,或者放大镜这些都是windows的辅助功能

[1]、粘滞键

程序地址:

粘滞键: c:\windows\system32\sethc.exe

快捷启动方式:

连按五下shift键即可启动对应的程序,并弹出

弹出页面如下

注意:启动粘滞键并不需要用户登录,如下

[2]、放大镜

程序地址:

放大镜:c:\windows\system32\Mageify.exe

快捷启动方式:

"win+",就是win键和+号键一起按

弹出画面如下

[3]、屏幕键盘

程序地址

屏幕键盘:c:\windows\system32\osk.exe

快捷启动方式

CTRL + WIN + O键

弹出页面如下

除此之外还有一些,讲述人,高度比对,筛选键等,这里就不一一介绍了

总而言之,每个辅助功能都对应着一个目标程序,并且有对应的启动方式,最大的特点是他们都不需要用户登录就可以通过快捷方式使用

2、利用方式讲解

[1]、利用条件

1、能连接目标的3389服务,即rdp

2、版本比较老,因为新版本windows多了第四种安全权限,而系统自带的一些文件基本都是这个权限,导致此方法无法利用,而且一些家庭版的windows是没有3389这项服务的,所以使用前还是要探测好
比如windows server 2012这种

像下面这样就是不支持

[2]、利用方式

上面讲了,辅助功能在用户没有登录时就可以通过快捷方式来启动对应其对应的程序,现在我们来模拟一个环境,环境如下

我们此时已经获取到了windows目标的system权限,并且能够连接目标的3389服务,即远程桌面,而我们此时想在目标的机器上做一个权限维持的操作,不让我们好不容易拿到的权限丢失

如果我们生成一个名为sethc.exe的木马程序,将它上传到目标的c:\windows\system32\目录下,把原来那个粘滞键对应的sethc.exe删掉,此时当目标连按5下shift启动的就是我们的木马程序,就可以拿到权限

而我们最开始又能直接远程连接目标的3389端口,每次我们想获取权限时就远程连接目标,连按5下shift就可以执行木马程序,重新拿到我们最开始的system权限

[3]、演示

那我们具体应该怎么操作呢?
这里在 windows server 2003 系统上,以利用 粘滞键为例,给大家演示一下

首先粘滞键对应的程序位置如下:

c:\windows\system32\sethc.exe

将木马上传到该位置,并命名为sethc.exe

kali开启木马的监听

使用3389远程连接目标桌面

不需要登录,只要远程按五下粘滞键即可返回权限

这样就算利用成功了,可以看到还是system的权限

注意:如果我们成功拿到权限,并且目标也存在3389服务,但是并没有开启,那我们就可以使用msf自带的3389开启模块,模块名如下
post/windows/manage/enable_rdp

如下就是成功开启

开启之后就可以继续操作了

二、IFEO,映像劫持

1、原理讲解

原理:

当我们双击运行 程序的时候。系统就会查询 IFEO注册表。如果发现存在完全相同的子键,就会查询对应的子键中包含的" debugger"键值名,如果这个 键值名不为空的情况下 系统则会把 debugger参数指定的程序文件来作为启动的程序

这个IFEO在什么位置呢?如下

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

也就是这里的

Image File Execution Options目录

里面都是你电脑安装过的exe程序

2、运行演示

这里我们以ie浏览器来做一个攻击演示举例,如下

[1]、图形操作

首先查看ie浏览器的exe程序对应的键值

可以看到子键中并不包含"debugger"键值名所以我们可以给它新建一个,如下

注意:新建时要选择字符串值

可以看到新建时 值为空,此时 不影响

但是如果把 值改为指定的执行程序,那么双击程序就会 运行debugger的值指定的程序,因为debugger指定的程序的优先级比较高。

这里我还没准备木马文件,就以cmd为例,如下

此时我们运行ie浏览器,结果如下

如果我们把debugger的值指定为我们的恶意木马程序,那么每当用户运行ie浏览器时,就会启动我们的恶意木马,反弹权限,达到权限维持的目标

其实这就是一种技术手段,原理类似于辅助功能镜像劫持,只不过改的是注册表里面的东西

[2]、命令操作

也可以用命令来添加,用命令添加注册表项的指令如下

reg add "注册表项路径" /v “键名” /t 键值类型 /d “值名” 

下面的命令就是达到运行ie浏览器达到执行我们的木马文件的效果(test.exe就是我们的木马文件)

注意:这个debugger键值如果不删的话他对应的初始程序(比如上面例子中的ie浏览器就相当于损坏了,注意分寸哦)

三、启动项

这个也比较简单,其实跟上面两种的原理差不多,都是替换正常文件为恶意文件

1、文件目录启动项

windows自己带有启动项目录,目录中的文件都是开机自启,位置如下

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

这个就直接把木马文件放到这个目录就可以了,每次用户开机时就会启动我们的恶意文件,这样自然就能达到权限维持的目标

2、注册表的启动项

注册表也有对应的启动项服务目录,将恶意文件添加到启动项服务目录即可,但是有的目录内容改动需要管理员权限,有的不需要,这里也分开介绍

[1]、无需管理员权限

改动里面的内容不需要管理权限,针对于不同的用户。尽量写其他用户 ,服务项目录如下:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

[2]、需要管理员权限

如果改动里面的内容 需要管理员权限,之后什么用户执行,返回的就是什么权限

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

3、在线演示

这里为了方便就直接用注册表的启动项了,同样可以用reg命令来添加值,如下

reg add "注册表项路径" /v “键名” /t 键值类型 /d “值名” 

这里的键名随便定(当然为了隐蔽性也可以认真点),键值设置为我们的恶意程序,路径就是上面提到的注册表项中的启动目录

这样目标机器在下一次开机时就会直接运行我们的木马程序了

四、服务

基于服务的攻击,前面我在很多博客中都已经介绍过了,比如修改服务路径,增加启动项服务等等,因为服务都是默默在后台运行,且都是system权限,所以也非常适合我们做权限维持

1、命令操作

[1]、创建服务

新建服务的指令如下

sc create 服务名称 binpath="对应执行程序的路径" start="启动方式" obj="指定权限" 
注意:这里的binpath指定的程序为单纯的木马程序时有点问题,有可能会出现闪退,所以一般我都是调用cmd去执行木马程序,所以命令可以更改为如下
sc create 服务名称 binpath="cmd.exe /k 要执行的文件路径" start="启动方式" obj="指定权限" 

效果如下

mysql2008就是我创建的服务名
cmd.exe /k c:\windows\test.exe就是该服务对应的指令
auto的启动方式就是自动运行的意思
localsystem意思就是已system权限作为这个服务对应的权限

[2]、启动服务

就是下面这一条命令就可以了

sc start mysql2008

效果如下

成功拿到权限

2、Msf操作

Msf也有对应的自带模块,操作步骤如下

1、meterpreter会话下执行如下命令

run metsvc

效果如下:

2、开启监听

set payload windows/metsvc_bind_tcp 
set lport 31337
set rhost 192.168.15.167
run

因为这里是正向的payload,即bind模式,所以开启监听后就可以直接拿到权限了

五、计划任务

这个也没啥好讲的,前面的内网渗透很多操作上都涉及了这种方法,下面我们也来看看windows利用计划任务做权限维持的姿势

在windows实现计划任务主要有schtasks与at二种方式

windows2003是用at方式,win7/2008以上使用schtasks方式
因为windows2003现在用的比较少了,所以这里我们就介绍一下 schtasks方式实现计划任务权限维持,有兴趣的朋友们可以去看看at方式

查看计划任务,指令如下

schtasks

创建计划任务,指令如下

schetasks /create /sc minute /mo 1 /tn "mysqlstart" /tr c:\windows\test.exe /ru system
/create 就是创建计划任务
/sc 指定模式,这里minute代表以分钟为时间模式
/mo 指定时长,我这里设置为1,配合前面的模式就代表每分钟执行1次(设为2就是2分钟执行一次)
/tn 指定计划任务名称,像我这里的名称就是“mysqlstart”
/tr 指定你要启动的目标程序,就指定木马就可以
/ru 指定以哪个权限启动,我这里选择的是system权限

可以看到这里就创建成功了,再来看看监听的位置

可以看到已经拿到shell了,说明我们的木马程序成功被计划任务执行,就算断开后再开启监听还是能拿到权限

六、winlogon用户初始化(慎用)

winlogon.exe是windows中非常重要的进程,在用户 还没有登录系统之前就存在。当用户登录时。winlogon进行负责 将用户配置文件加载到注册表

对应注册表所在目录如下

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

如下,我标记的Userinit对应的路径就是winlogon对应的程序

这个原理就不给大家解释了,因为涉及了汇编,内存之类的东西,比较复杂(主要是我也不太懂,渗透的时候会用就行)

同样Userinit的键值对也可以被修改,如下

可以看到它本来指向的应用程序是

c:\windows\system32\Userinit.exe

如果我们把它执行的应用程序替换为我们的木马文件,如下

修改后,此时在攻击端(kali)开启监听

再控制目标机器重启,此时的监听端如下

已经成功拿到了目标权限,但这个方法要慎用

注意注意:为什么说这个方法要 慎用呢,因为修改Userinit键对应的值后,目标机器能够开机,能够正常出现密码输入框,但是啊但是,虽然你拿到了权限,但是目标输入密码后目标机器会进入 无限黑屏的状态,除非你用拿到的权限修改刚才的Userinit键对应的值为原来的值,就是改回原来的状态,此时才能成功登录,不然就黑屏一辈子或者拿去重装吧,所以一定要 慎用!慎用!慎用!

七、文件关联

1、原理讲解

文件关联就是将一种类型的文件与一个可以打开他的程序建立起一种关系

这个是什么意思呢?我们就以简单的记事本来举例,右键桌面新建一个记事本,当双击时就会弹出一个空白的记事本

因为这是一个txt文件,我们也可以使用assoc命令来查看txt后缀指向的一个文件类型,指令如下

assoc .txt 

可以看到指向的是textfile文件类型

再来查看一下这个文件类型是以什么方式打开,指令如下

ftype testfile

就说明txtfile文件打开时是用c:\windows\syswow64\notepad.exe这个程序打开的

也就相当于txtfile文件与notepad这个程序关联,打开textfile就会用notepad来进行打开,所以肯定是执行了这个notepad程序的
既然执行了这个程序,那我们以攻击的思路来想,如果我们把textfile文件对应的启动程序改为我们的木马程序,那是不是每次用户打开txt文件时,系统就会执行我们设置好的木马呢?所以关联文件来做权限维持也就是这个原理

2、操作演示

那么例如上面这种txtfile与notepad程序的关联关系在哪修改呢?同样是在我们的注册表里面

例如textfile关联文件的注册表项目录如下

计算机\HKEY_CLASSES_ROOT\txtfile\shell\open\command

可以看到这个默认键值中的值就是txtfile所关联的启动程序,每次运行txtfile文件就是用这个值对应的应用打开

现在是notepad.exe,我们把它改为我们的恶意文件

(为了方便这里的恶意文件我们直接用cmd代替了,换成木马文件也是同理)

修改后我们再尝试打开txt文件,效果如下

可以看到双击txt文件直接就打开了cmd,如果是木马文件就会直接执行了,并反弹权限,达到权限维持的目的

3、拓展说明

这种利用方式如果使用txt来试关联文件,就很明显有点,因为用户打不开txt文件,一看就知道有问题,可以改一些冷门点的后缀,比如xml之类的,这样就会隐蔽很多

八、其他

当然提权的姿势不可能只有这几个,我这里演示的都是比较常用的,平时渗透中用的比较多的,一些冷门的,复杂的姿势感兴趣的同学们可以自己下去研究一下

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

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

相关文章

shiro CVE-2020-13933

0x00 前言 同CVE-2020-1957&#xff0c;补充一下笔记&#xff0c;在CVE-2020-1957的基础上进行了绕过。 影响版本&#xff1a;Apache Shiro < 1.6.0 环境搭建参考&#xff1a;shiro CVE-2020-1957 0x01 漏洞复现 CVE-2020-13933中使用%3b绕过了shiro /*的检测方式&…

使用BP神经网络和Elman Net预测航班价格(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…

电脑如何录制屏幕视频?6个屏幕录制的好方法

我们每天消费的大部分媒体都是通过视频。研究表明&#xff0c;与阅读相比&#xff0c;我们通过观看视频保留的信息更多。因此&#xff0c;很容易看出视频在我们的个人生活和职业生活中的重要性。 让我们更深入地了解视频录制软件和市场上的一些最佳选择。 如何确定好的视频录制…

建议收藏,轻松搞懂区块链

未来已来&#xff0c;只是不均衡地分布在当下 大家好&#xff0c;我是菜农&#xff0c;欢迎来到我的频道。 本文共 5844字&#xff0c;预计阅读 30 分钟 区块链是近些年来最热门的前沿技术&#xff0c;被认为是未来十几年对金融、物联网、医疗等诸多领域产生最大影响的"…

Similarity-Preserving KD(ICCV 2019)原理与代码解析

paper&#xff1a;Similarity-Preserving Knowledge Distillationcode&#xff1a;https://github.com/megvii-research/mdistiller/blob/master/mdistiller/distillers/SP.py背景本文的灵感来源于作者观察到在一个训练好的网络中&#xff0c;语义上相似的输入倾向于引起相似的…

[python入门㊾] - python异常中的断言

目录 ❤ 断言的功能与语法 ❤ 常用断言 ❤ 常用的断言表达方式 ❤ 异常断言 ❤ 正则断言 ❤ 检查断言装饰器 ❤ 断言的功能与语法 Python assert&#xff08;断言&#xff09;用于判断一个表达式&#xff0c;在表达式条件为 False 的时候触发异常 断言可以在条件…

2023Python接口自动化测试实战教程,附视频实战讲解

这两天一直在找直接用python做接口自动化的方法&#xff0c;在网上也搜了一些博客参考&#xff0c;今天自己动手试了一下。 一、整体结构 上图是项目的目录结构&#xff0c;下面主要介绍下每个目录的作用。 Common:公共方法:主要放置公共的操作的类&#xff0c;比如数据库sql…

js中数字运算结果与预期不一致的问题和解决方案

本文主要是和大家聊聊关于js中经常出现数字运算结果与预期结果不一致的问题&#xff0c;与及解决该问题的的方案。 一、问题现象 如&#xff1a;0.1 0.2的预期结果是0.3&#xff0c;但是在js中得到的计算结果却是0.30000000000000004&#xff0c;如下图所示 如&#xff1a;0…

GEE学习笔记 六十九:【GEE之Python版教程三】Python基础编程一

环境配置完成后&#xff0c;那么可以开始正式讲解编程知识。之前我在文章中也讲过&#xff0c;GEE的python版接口它是依赖python语言的。目前很多小伙伴是刚开始学习GEE编程&#xff0c;之前或者没有编程基础&#xff0c;或者是没有学习过python。为了照顾这批小伙伴&#xff0…

15种NLP数据增强方法总结与对比

数据增强的方法 数据增强&#xff08;Data Augmentation&#xff0c;简称DA&#xff09;&#xff0c;是指根据现有数据&#xff0c;合成新数据的一类方法。毕竟数据才是真正的效果天花板&#xff0c;有了更多数据后可以提升效果、增强模型泛化能力、提高鲁棒性等。然而由于NLP…

光伏VSG-基于虚拟同步发电机的光伏并网逆变器系统MATLAB仿真

采用MATLAB2021b仿真&#xff01;&#xff01;&#xff01;仿真模型1光伏电池模块&#xff08;采用MATLAB自带光伏模块&#xff09;、MPPT控制模块、升压模块、VSG控制模块、电流滞环控制模块。2s时改变光照强度 &#xff01;&#xff01;&#xff01;VSG输出有功功率、无功功率…

6.3 使用 Swagger 生成 Web API 文档

第6章 构建 RESTful 服务 6.1 RESTful 简介 6.2 构建 RESTful 应用接口 6.3 使用 Swagger 生成 Web API 文档 6.4 实战&#xff1a;实现 Web API 版本控制 6.3 使用 Swagger 生成 Web API 文档 高质量的 API 文档在系统开发的过程中非常重要。本节介绍什么是 Swagger&#xff…

15-基础加强-2-xml(约束)枚举注解

文章目录1.xml1.1概述【理解】(不用看)1.2标签的规则【应用】1.3语法规则【应用】1.4xml解析【应用】1.5DTD约束【理解】1.5.1 引入DTD约束的三种方法1.5.2 DTD语法&#xff08;会阅读&#xff0c;然后根据约束来写&#xff09;1.6 schema约束【理解】1.6.1 编写schema约束1.6.…

基于高频方波电压信号注入的永磁同步电机无传感器控制仿真及其原理介绍

基于方波信号注入的永磁同步电机无传感器控制仿真及其原理介绍 注入的高频方波信号为&#xff1a; 可以得到估计轴的高频响应电流为: 当向定子绕组注入高频电压信号时,所注入的高频信号频率远高于基波信号频率。因此&#xff0c;IPMSM 在a-β轴的电压模型可以表示为: 假定…

二叉树OJ(一)二叉树的最大深度 二叉搜索树与双向链表 对称的二叉树

二叉树的最大深度 二叉树中和为某一值的路径(一) 二叉搜索树与双向链表 对称的二叉树 二叉树的最大深度 描述 求给定二叉树的最大深度&#xff0c; 深度是指树的根节点到任一叶子节点路径上节点的数量。 最大深度是所有叶子节点的深度的最大值。 &#xff08;注&#xff1a;…

Xcode Archives打包上传 / 导出ipa 发布至TestFlight

Xcode自带的Archives工具可以傻瓜式上传到App Store Connect分发这里以分发到TestFlight为例进行操作。 环境&#xff1a;Xcode 14 一&#xff1a;Archives打包 选择Xcode菜单栏的Product&#xff0c;Archives选项&#xff0c;需要等待编译完成&#xff0c;进入如下界面&…

【C语言】初识结构体

☃️内容专栏&#xff1a;【C语言】初阶部分 ☃️本文概括&#xff1a;继初识C语言&#xff0c;对C语言结构体初阶部分进行归纳与总结。 ☃️本文作者&#xff1a;花香碟自来_ ☃️发布时间&#xff1a;2023.2.19 一、结构体的声明 结构体&#xff08;类型&#xff09;是一些…

字符设备驱动基础(二)

目录 一、五种IO模型------读写外设数据的方式 二、阻塞与非阻塞 三、多路复用 3.1 应用层&#xff1a;三套接口select、poll、epoll 3.2 驱动层&#xff1a;实现poll函数 四、信号驱动 4.1 应用层&#xff1a;信号注册fcntl 4.2 驱动层&#xff1a;实现fasync函数 一、…

CSAPP学习笔记——虚拟内存(二)

案例研究 Intel Core i7 该处理底层的Haswell微体系结构允许64位的虚拟和物理地址空间&#xff0c;而现在的Core i7实现支持48位&#xff08;256TB&#xff09;虚拟地址空间和52位&#xff08;4PB&#xff09;物理地址空间&#xff0c;这对目前来说已经完全够用了。&#xff…

Liunx(狂神课堂笔记)

一.常用命令 1. cd 切换目录 cd ./* 当前目录cd /* 绝对路径cd .. 返回上一级目录cd ~ 回到当前目录pwd …