Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
WAREED-DNS-C2 — 仅使用DNS的命令与控制框架,支持Windows代理、载荷生成、远程Shell执行、Shellcode注入及SOCKS5代理,用于隐蔽行动。 | Kitploit
工具/GitHubGitHub/faisal-p27/wareed-dns-c2
Payload生成IDS/IPS规避后渗透利用命令与控制远程访问工具Payload 开发
GitHubfaisal-p27/wareed-dns-c2

WAREED-DNS-C2

仅使用DNS的命令与控制框架,支持Windows代理、载荷生成、远程Shell执行、Shellcode注入及SOCKS5代理,用于隐蔽行动。

查看仓库
126341年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Wareed DNS C2

在此处输入图片描述

WAREED 是一个命令与控制(C2)框架,利用 DNS 协议在服务器与目标之间进行安全通信。它旨在最小化通信和限制数据交换,适用于作为第一阶段的 C2,在无法通过 HTTP/HTTPS 访问互联网但允许 DNS 的机器上持久化。

开发者: @Fsalabduljabbar

工作原理

在此处输入图片描述

为什么选择 Wareed

虽然许多命令与控制(C2)框架支持 DNS 作为传输协议,但它们主要针对 HTTP/HTTPS 设计。将这些框架转换为 DNS 通常会导致操作更慢、更不稳定。面对这些框架在 DNS 事务中不稳定的诸多挑战,我不得不创建一个专门针对 DNS 的解决方案。结果就是 Wareed——一个纯 DNS 的 C2 框架。这种专门的关注带来了更稳定、更高效的操作,使 Wareed 与传统上并非主要为 DNS 设计的 C2 框架相比更快、更可靠。这使得 Wareed 成为允许 DNS 流量但限制 HTTP/HTTPS 的环境的理想选择。

关于

它使用三种编程语言开发:

  1. Hams Agent 使用 C 语言
  2. Wareed 团队服务器使用 Golang
  3. Ather 客户端 GUI 使用 C++

名称解释:

Hams (همس) 在阿拉伯语中意为“低语”。

Wareed (وريد) 在阿拉伯语中意为“静脉”。

Ather (أثر) 在阿拉伯语中意为“踪迹”。

演示

此处为图片替代文本

先决条件

  1. 一个有效的受控域名
  2. Kali Linux 2023+ 或 Ubuntu 23+
  3. 一个用于处理 DNS 连接的转发器(Ubuntu)(可选)

安装

步骤 1:克隆 Wareed 仓库:

root@kitploit:~
git clone https://github.com/Faisal-P27/WAREED-DNS-C2.git

步骤 2:运行安装脚本:

root@kitploit:~
cd WAREED-DNS-C2
chmod +x Run.sh
sudo ./Run.sh setup

如果编译过程成功完成,将在同一目录下生成两个可执行文件:

  • WareedServer:此文件用作团队服务器的可执行文件
  • Ather:此文件是 GUI 客户端的可执行文件。

同时,它还会检查 Agent 的编译状态。如果成功,则确认 Agent 已准备好部署并可运行,这对 Wareed C2 的功能至关重要。

配置

root@kitploit:~
{
    "magic_value": "cdn",
    "domains": ["2.example.net"],
    "listener_port": "111",
    "sleep": 5,
    "jitter": 50,
    "lookup_delay": 5,
    "default_dns_server": "1.1.1.1"
}
  • magic_value:C2 使用的唯一标识符。
  • domains:C2 用于 DNS 通信的域名数组。
  • listener_port:DNS 团队服务器监听传入连接的端口号。
  • sleep:任务请求之间的基本延迟。
  • jitter:为睡眠间隔增加随机性的百分比,以伪装流量模式。
  • lookup_delay (已禁用):在执行 DNS 查询之前的延迟,用于调节 DNS 查询速度以避免检测。
  • **default_dns_server **:当本地 DNS 无响应时,指定供 Agent 使用的 DNS 服务器。

**magic_value:**长度必须等于 3。

DNS 基础设施

DNS 设置:

要运行 Wareed,必须拥有一个有效的域名。获取域名后,需要配置两条 DNS 记录指向转发器:

  1. A 记录:应设置为指向转发器的 IP 地址。
  2. NS 记录:需要指向你之前建立的 A 记录。

示例

基础设施

转发器设置:

转发器将处理端口 53 上的传入 DNS 流量,并将其重定向到团队服务器。为此,请在转发器机器 (R1) 上执行以下 iptables 命令:

接受 DNS 请求:
root@kitploit:~
iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

此命令将防火墙配置为接受端口 53 上的传入 UDP 数据包,该端口是 DNS 请求的标准端口。

重定向 DNS 流量:
root@kitploit:~
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination [TeamServer IP]:[teamserver listener port]

将 [TeamServer IP] 替换为你的团队服务器的实际 IP 地址,并将 [teamserver listener port] 替换为你的团队服务器正在监听的端口号。此命令将到达端口 53 的所有流量引导至指定的团队服务器 IP 地址和端口。

在此处输入图片描述

运行 Wareed

Wareed 团队服务器

首次启动 Wareed 团队服务器时,你需要指定配置文件、客户端密码以及客户端将监听的端口。使用以下命令运行 Wareed 团队服务器:

root@kitploit:~
sudo ./WareedServer [Client Password] [Client Port Listener] [Path to configuration file]
  • [客户端密码]:将此占位符替换为客户端用于向服务器进行身份验证的密码。
  • [客户端监听端口]:将此替换为团队服务器将监听来自客户端传入连接的端口号。
  • [配置文件路径]:提供初始配置文件的完整路径。在后续运行时,此配置将从数据库加载,无需再次指定。

Ather GUI 客户端

要启动 Ather GUI 客户端,只需

root@kitploit:~
./Ather

运行该命令后,将出现一个带登录页面的新窗口。

在此处输入图片描述

登录详情:在出现的登录页面中:

  • 用户名:输入用户名。
  • 密码:输入在团队服务器命令行中配置的相应密码。
  • 端口:输入团队服务器在命令行中配置的监听连接的端口号。
  • IP 地址:输入团队服务器地址。

Wareed 主窗口:

在此处输入图片描述

生成新载荷

要使用 Ather GUI 客户端生成新载荷,请按照以下步骤操作:

  1. 导航到载荷生成:

    • 打开 GUI 客户端。
    • 从菜单栏导航到 Payload > Generate > Windows。选择此选项将打开一个专为载荷生成而设计的新窗口。
  2. 选择载荷类型: Wareed 允许生成两种类型的载荷: - EXE:一种可执行文件格式,便于部署。 - DLL:一种可以多种方式使用的动态链接库。 -

DLL 载荷选项:

  1. 导出函数: 创建一个 DLL,其中包含在执行时触发 Agent 功能的特定函数。
  2. 进程附加: 生成一个 DLL,当附加到进程时,立即激活载荷。

会话

生成新载荷后,会自动向团队服务器注册一个新的访客会话。此注册过程确保只有该特定会话才能连接团队服务器。它使用唯一标识符和“magic value”来验证和授权会话。该机制确保新生成的载荷与团队服务器之间的通信安全且可控。

在此处输入图片描述

执行载荷

在 Windows 机器上执行载荷后,它将开始生成 DNS 查询以向团队服务器注册。此注册过程在几秒钟内完成,通常涉及生成 3 到 5 条 DNS 查询。

在此处输入图片描述

交互

要与会话交互,只需右键单击所需会话,然后从上下文菜单中选择“Interact”。此操作将打开一个带有终端界面的新选项卡。在此终端中,你可以执行命令

在此处输入图片描述

命令

注意: inject 命令虽然直接,但常常被安全控制检测到。为提高隐蔽性,你应该实现自己的注入技术。修改 Agent/Source/Core/Tasks/Modules/Injection.c 中的注入代码。以下是一个用于自定义注入函数的基本模板:

root@kitploit:~
int Inject(unsigned char *ShellCode, int size, int ProcessID) {
	// Add your injection technique here.
	// You will receive the shellcode in [unsigned char *ShellCode] and shellcode size in [nt size]
	// and the process ID in [int ProcessID].
 }

清理数据库

要清理数据库,只需在终端中执行以下命令:

root@kitploit:~
./Run clean

进一步行动

虽然我目前没有继续投入时间在 Wareed 项目上的计划,但这是一次令人难以置信的学习之旅,我非常享受其中。我很兴奋地宣布,我计划启动一个新的大型项目 THAWD BAS。更多信息,请访问 Thawd.io。

如果你有开发技能并有意为 Wareed 做出贡献,这里有几个机会:

  1. 使用 DNS 开发 Stager 载荷:由 @C5pider 开发的一个很棒的项目,它提供了一个 shellcode 模板,是一个很好的起点。查看 GitHub 上的 Stardust。

  2. 添加 COFF 加载器与集成:将 COFF (Common Object File Format) 加载器集成到 Wareed 框架中,可以通过动态加载和执行二进制模块来显著增强其能力,从而提高操作灵活性。对于希望实现此功能的开发者,Sector7 等资源提供了关于 COFF 加载器功能的宝贵见解,而 @C5pider 的开源项目 CoffeeLdr 提供了一个实用的实现示例。

特别感谢

如果没有以下几个杰出的开源项目的贡献,这项工作是不可能完成的:

Havoc 作者 - @C5pider

DNSStager 作者 - @mohammadaskar2

Boomerang 作者 - @NinjaParanoid

Socks5Server 作者 earthquake

delete-self-poc 作者 - @LloydLabs

下载工具
命令描述用法示例
help显示指定命令的帮助信息[command]help shell
sleep设置带有抖动的睡眠延迟[delay] [jitter]sleep 10 50
shell执行 cmd.exe 命令并获取输出[commands]shell dir c:\windows\system32 (请不要这样做)
inject将 shellcode 注入远程进程[pid] [shellcode_path]inject 1234 /path/to/shellcode.bin
proxystart启动 SOCKS5 代理[callback_host] [agent_connect_port] [proxy_listener_port]proxystart example.com 443 1080
proxystop停止 SOCKS5 代理[callback_host] [agent_connect_port] [proxy_listener_port]proxystop example.com 443 1080
adddomain添加新的回调域名[domain_name]adddomain example.com
deldomain删除回调域名[domain_name]deldomain example.com
listdomain列出所有活动的回调域名listdomain
kill终止当前进程。[yes]kill yes
wipe终止并删除当前进程。[yes]wipe yes
selfdel从磁盘中删除当前进程。[yes]selfdel yes
tasklist列出所有排队的任务tasklist
taskdel按 ID 删除特定任务[task id]taskdel 123
tasksclean删除队列中的所有任务[yes]tasksclean yes
clear清除终端屏幕clear