.NET 通过UserInit键实现Windows权限维持

01阅读须知

此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。

02基本介绍

本文内容部分节选自小报童《.NET 修改系统注册表UserInit键值实现权限维持》,完整的文章内容请加入小报童后订阅查看。目前已有80+位朋友抢先预定,我们会长期更新,对.NET内网安全的朋友们请尽快订阅该报刊!

图片

03编码实现

UserInit键位于Windows注册表的路径中,所包含的值表示指向用户登录时系统要启动的初始化程序,利用Windows注册表中的UserInit键,攻击者可以实现权限维持。

3.1 UserInit键

红队可以通过修改UserInit键值将自定义的可执行文件添加到路径中,比如某个远控生成的木马后门文件,这样用户登录时自动执行该文件,以下是实现这一操作的代码示例

string keyName = "Userinit";
string customExecutablePath = @"C:\windows\system32\calc.exe";
string newUserInitValue = $"C:\\windows\\system32\\userinit.exe,{customExecutablePath}";

这里的customExecutablePath变量是要添加的自定义可执行文件的路径,此处便于演示直接定为计算器calc.exe,newUserInitValue是新的UserInit键值,它包含了默认的userinit.exe路径和自定义可执行文件路径。

3.2 更新键写入后门

.NET中使用Registry.LocalMachine.CreateSubKey方法打开UserInit键所在的注册表路径,调用SetValue方法将UserInit键的值更新为新值,确保在用户登录时启动calc.exe,具体代码如下所示。

RegistryKey registryKey = Registry.LocalMachine.CreateSubKey("Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon");
registryKey.SetValue(keyName, newUserInitValue);
registryKey.Close();

通过修改注册表UserInit键来启动自定义程序,是红队在渗透测试和攻击活动中常用的方法之一,从蓝队视角因此需定期检查和监控UserInit键的配置。想要了解更多内网权限维持的文章,可以移步订阅小报童《.NET 内网实战攻防》电子报刊。

04轻量级.NET 电子报刊

小报童电子报刊【.NET内网安全攻防】已开始运营,引入小报童也是为了弥补知识星球对于轻量级阅读支持的不足,为用户读者提供更佳的阅读体验。如果您对阅读体验的需求比较高,那么可以订阅这个专栏。

 本次电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。

1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理

我们会长期更新,初步计划保持每周更新1-2篇新内容,对.NET内网安全的朋友们请尽快订阅该报刊!

图片

感兴趣的朋友,可以点击链接:https://xiaobot.net/p/dotNetAttack,或者扫描下方海报微信二维码加入即可,订阅后小报童定时会将最新内容通过微信推送给您。

图片

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

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

相关文章

Spring Boot 学习第七天:动态代理机制与Spring AOP

1 概述 在Java的世界中,实现AOP的主流方式是采用动态代理机制,这点对于Spring AOP也一样。代理机制的主要目的就是为其他对象提供一种dialing以控制对当前对象的访问,用于消除或缓解直接访问对象带来的问题。通过这种手段,一个对象…

EEPROM与FLASH

一、EEPROM介绍 1.概念 EEPROM简介,EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用&…

【Bugku CTF】web解题记录

记录我在Bugku CTF靶场中做的比赛真题,便于自己以后的复习 1.my-first-sqli 进入此关卡,发现参数有username和password 我们尝试在username上注入数字型、字符型参数,后面发现注入字符型的单引号的有报错语句,我们在username上注…

【服务器08】之【游戏框架】之【加载主角】

首先简单了解一下帧率 FixedUpdate( ) > Update( ) > LateUpdate( ) 首先FixedUpdate的设置值 默认一秒运行50次 虽然默认是0.02秒,但FiexedUpdate并不是真的0.02秒调用一次,因为在脚本的生命周期内,FixedUpdate有一个小循环&…

大学计算机

项目一 了解计算机 1.1 了解计算机的诞生及发展阶段 1.2 认识计算机的特点、应用和分类 1.计算机的特点 1. 计算机的特点 2.计算机的应用 3.计算机的分类 4.数量单位 1.3 了解计算机操作系统的概念、功能与种类 1.操作系统概念 2.操作系统的作用 1&#xff0e…

主流的RAG框架

Rank1、LangChain(86k stars) https://github.com/langchain-ai/langchain/.当之无愧的霸主,范围很全面,但代码 Rank2、Quivr(33.4k stars) https://github.com/StanGirard/quivr Rank3、Llamalndex(32.1k stars) https://github.com/run-llama/llama…

MySQL数据库锁的实现原理

MySQL数据库的锁实现原理主要涉及到如何确保在多用户并发访问数据库时,保证数据的完整性和一致性。以下是MySQL数据库锁实现原理的详细解释: 锁的基本概念和目的 锁的概念:在数据库中,锁是用于管理对公共资源的并发控制的机制。当多个用户或事务试图同时访问或修改同一数…

Java零基础-集合:Set

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

感应电机转差速度估算

在感应电机矢量控制中,需要计算出感应电机的机械转差速度(同步速度和转子速度之间的差)。以下方程描述了感应电机磁场定向控制 (FOC) 中转差速度值的关系: 如果我们保持转子磁通恒定,并且 d 轴与转子磁通参考系对齐&am…

MFC时间获取与高精度计算

文章目录 MFC获取系统当前时间CTimeGetLocalTime 获取程序运行时间GetTickCount() MFC 获取系统当前时间 CTime CTime tm; tmCTime::GetCurrentTime();    int m_nYear tm.GetYear(); ///年 CString m_strTime tm.Format("%Y-%m-%d %H:%M:%S");GetLocalTime …

基于Java医院门诊互联电子病历管理信息系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

np.copy与copy.deepcopy

以下内容来源于poe的assistant: np.copy() 和 copy.deepcopy() 都是用于创建对象的副本,但它们之间有一些区别: 对象类型: np.copy() 主要用于创建 NumPy 数组的副本。copy.deepcopy() 可以用于创建任意 Python 对象的副本,包括列表、字典、自定义类等。 复制方式…

ubuntu 18.04 server源码编译安装freeswitch 1.10.7支持音视频通话、收发短信——筑梦之路

软件版本说明 ubuntu版本18.04:https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.iso freeswitch 版本1.10.7:https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gz spandsp包:https:…

【python】在 Linux 中使用webdriver有头模式

用webdriver 模拟浏览网页时,可以使用无头模式,尤其在linux系统中,因为linux没有图形化界面,使用有头模式一般会报错。 chrome_options.add_argument("--headless") # 设置Chrome无头模式 但是有些网站的反爬措施比较…

AI与音乐:共创未来还是艺术终结?

随着人工智能技术的不断进步,AI在音乐创作领域的应用已经成为了一个不可忽视的现象。最近一个月,一系列音乐大模型的推出,不仅极大地降低了普通人创作音乐的门槛,也引发了关于音乐产业未来的广泛讨论。AI是否正在创造音乐的新纪元…

49-1 内网渗透 - Bypass UAC介绍

一、Bypass UAC 用户账户控制(UAC)是Windows操作系统的一种安全机制,旨在防止未经授权的应用程序自动安装并防止非授权修改系统设置。它确保应用程序和任务通常在非管理员账户的安全上下文中运行,除非明确需要管理员权限,用户才会被提示确认。 对于非RID 500的管理员用户(…

XML DOM 简介

XML DOM 简介 XML DOM(XML Document Object Model)是一种用于XML文档的标准编程接口。它定义了一种方式,允许程序和脚本动态地访问和更新文档的内容、结构和样式。XML DOM 将 XML 文档视为一个树形结构,其中每个节点都代表文档中的一个元素、属性、文本或其他内容。 XML …

学习笔记——路由网络基础——路由汇总(路由聚合)

九、路由汇总(路由聚合) 1、路由汇总背景 子网划分、VLSM解决了地址空间浪费的问题,但同时也带了新的问题,路由表中的路由条目数量增加。为减少路由条目数量可以使用路由汇总。 对于一个大规模的网络来说,路由器或其他具备路由功能的设备势…

C#的Switch语句2(case后的值与模式匹配)

文章目录 switch语法结构case具体的值枚举值字符串const关键字 如果没有匹配的值default语句不一定要在最后 模式匹配与C的差异-case穿透(Fall-through)下一篇文章 switch语法结构 基础的语法结构,在上一篇文章已经写了,具体请看…

git 初基本使用-----------笔记

Git命令 下载git 打开Git官网(git-scm.com),根据自己电脑的操作系统选择相应的Git版本,点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” ,也可以命令终端下cd到指定目录执行初始化命令…