Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
GRAT2 — 我们开发了GRAT2命令与控制(C2)项目,用于学习目的。 | Kitploit
工具/GitHubGitHub/r3nhat/grat2
权限提升后渗透利用命令与控制学习与教育红队Payload 开发
GitHubr3nhat/grat2

GRAT2

我们开发了GRAT2命令与控制(C2)项目,用于学习目的。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Project Status

GRAT2 C2


                   (c).-.(c)    (c).-.(c)    (c).-.(c)    (c).-.(c)    (c).-.(c)
                    / ._. \      / ._. \      / ._. \      / ._. \      / ._. \
                    \( Y )/__  __\( Y )/__  __\( Y )/__  __\( Y )/__  __\( Y )/
                 (_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)
                    || G ||      || R ||      || A ||      || T ||      || 2 ||
                   _.' `-' '._  _.' `-' '._  _.' `-' '._  _.' `-' '._  _.' `-' '._
                 (.-./`-'\.-.)(.-./`-`\.-.)(.-./`-'\.-.)(.-./`-'\.-.)(.-./`-'\.-.)
                  `-'     `-'  `-'     `-'  `-'     `-'  `-'     `-'  `-'     `-'
                                             v1.1 beta!

关于 GRAT2

GRAT2 是一个用 python3 编写的命令与控制(C2)工具,客户端使用 .NET 4.5。主要创意来自 Georgios Koumettou,他发起了这个项目。

我们为什么开发 GRAT2?

我们知道市面上已有大量 C2 工具,但我们开发这个工具是出于对 C2 工作原理以及各种规避技术的好奇。仅此而已! ;-)

当前功能:

规避技术:

  • 沙箱检测(检查机器是否加入域,如未加入则退出)。
  • 修补 Windows 事件跟踪(ETW)日志记录。
  • 修补反恶意软件扫描接口(AMSI)。
  • caretrun - 通过 cmd.exe 以脱字符格式(^i^p^c^o^n^f^i^g)执行命令,并使用 explorer.exe 作为父进程 PID(规避部分 AV/EDR)。

通信方式:

  • HTTP 和 HTTPS
  • DNS - 当前仅支持 TXT 记录。
  • 使用 XOR 和 base64 编码的通信。
  • 支持代理。

模块:

  • startdns - 启动 DNS 监听服务器。
  • listagents - 列出当前 agent。
  • localip - 获取机器的本地 IP 地址。
  • uac - 尝试通过静默磁盘清理并结合父 PID 欺骗技术绕过 UAC。
  • maketoken - 移除当前令牌,并使用给定的凭据(域或本地)创建一个新令牌。
  • revtoself - 移除当前令牌。
  • stealtoken - 尝试从正在运行的进程中窃取令牌并模拟用户(需要管理员权限)。
  • rportfwd - 尝试创建反向端口转发。
  • whoami - 显示当前用户。
  • hostname - 显示机器主机名。
  • domain - 显示域 FQDN。
  • screenshot - 截取屏幕截图。
  • download - 下载文件。
  • upload - 上传文件。
  • cd - 更改目录。
  • run - 通过 cmd.exe 执行命令,并使用 explorer.exe 作为父进程 PID。
  • caretrun - 通过 cmd.exe 以脱字符格式(^i^p^c^o^n^f^i^g)执行命令,并使用 explorer.exe 作为父进程 PID(规避部分 AV/EDR)。
  • sleep - 设置新的休眠时间。
  • exit - 退出。
  • shell - 通过 cmd.exe 执行命令。
  • powershell - 使用非托管 PowerShell 执行 PowerShell 命令。
  • powerscript - 使用非托管 PowerShell 执行 PowerShell 脚本。
  • executeassembly - 尝试在内存中执行 .NET 程序集。
  • ps - 打印当前进程。
  • pwd - 打印当前目录。
  • ls - 列出目录内容。
  • pid - 打印当前进程 ID。

进程注入技术:

  • dynamic_injectcrt - 尝试使用动态调用将 shellcode 注入到进程中。
  • ppid_processhollow - 尝试使用进程镂空(Process Hollowing)和父 PID 欺骗(explorer.exe)技术将 shellcode 注入到进程中。
  • processhollow - 尝试使用进程镂空技术将 shellcode 注入到进程中。
  • injectppidapc - 尝试使用 QueueUserAPC 和父 PID 欺骗(explorer.exe)技术将 shellcode 注入到进程中。
  • injectapc - 尝试使用 QueueUserAPC 技术将 shellcode 注入到进程中。
  • injectcrt - 尝试使用远程创建线程(Create Remote Thread)技术将 shellcode 注入到远程进程中。

请参考 GRAT2_Shellcodes 以使用 Donut 生成位置无关的 shellcode。

待办事项:

  • SMB 监听器。
  • 改进 DNS 监听器,增加更多功能,如 A 记录、从 DNS 切换到 HTTP 等。
  • 添加日志记录。
  • 实现 SOCKS5。
  • 修复已知问题。

配置客户端配置文件:

GRAT2 配置文件

常规设置和 HTTP/s 监听器:

  • c2 - 您的 GRAT2 服务器 IP 地址或主机名(必填)。

  • sandboxEvasion - 如果启用(1),GRAT2 将仅在已加入域的计算机上执行,否则 GRAT2 将终止。如果禁用(0),GRAT2 将仅在未加入域的计算机上执行,否则将终止(默认:禁用)。

  • patchEtw - 如果启用(1),将修补 Windows 事件跟踪(默认:启用)。

  • patchAmsi - 如果启用(1),将修补反恶意软件扫描接口(默认:启用)。

  • sleep - 设置休眠时间(默认:3 秒)。

  • UserAgent - 设置用户代理(默认:"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; yie11; rv:11.0) like Gecko")。

  • initialUrl - 初始 GRAT2 HTTP GET 请求(默认:jquery.js)。

  • sendResults - GRAT2 HTTP POST 结果请求(默认:login.aspx)。

    注意:如果更改了 initialUrl 或 sendResults 字符串,您必须更新 GRAT2_Server/handlers.py 中第 49 行和第 84 行的对应字符串。

DNS 监听器:

  • DNSListener - 启用(1)或禁用(0)。如果启用,请相应地配置 GRAT2 服务器(见下文)。
  • DNSServer - 您的 GRAT2 DNS 服务器。
  • dnsMaxTXT - TXT 记录的最大长度(默认:255)。
  • maxDNSChar - 每个 DNS 子域的最大字符数(默认:63)。

配置服务器配置文件:

GRAT2 服务器配置文件

HTTP/s 和 DNS 监听器:

  • HOST_NAME - 您的 GRAT2 服务器 IP 地址或主机名。
  • PORT_NUMBER - 监听端口(80 或 443)。
  • server_pem - 您的 PEM 文件路径。
  • dnsDomainName - 您的 GRAT2 DNS 服务器。

使用方法:

  • 使用 Visual Studio 打开 GRAT2 客户端项目(GRAT2_Client.sln),将解决方案配置从 Debug 改为 Release,然后生成解决方案。
  • 在 GRAT2 服务器上安装两个依赖项(dnslib 和 termcolor):pip3 install -r requirements.txt
  • 启动 GRAT2 服务器: GRAT2 启动服务器
  • 运行 GRAT2 客户端可执行文件 - GRAT2_Client\bin\Release\GRAT2_Client.exe
  • 与 agent 交互: GRAT2 交互

发布说明:

版本 1.0 - 2020年9月5日

  • 初始版本

版本 1.1 - 2020年12月13日

  • 添加 DNS 监听器
  • 添加 HTTPS 监听器
  • 添加列出 agent 功能
  • 添加 localip 模块,可获取机器的本地 IP 地址
  • 重写非托管 PowerShell
  • 从 .NET 4.0 改为 .NET 4.5

致谢:

  • Donut - @TheRealWover
  • DInvoke - @TheRealWover 和 @FuzzySec
  • SharpC2 - @_RastaMouse 和 @xpn
  • SharpSploit - @cobbr_io
  • DNSExfiltrator - @Arno0x0x

此外,源代码中对每位作者及参考链接均已标注。

免责声明:

本项目仅可用于授权测试或教育目的。未经事先许可使用本软件攻击目标系统是违法的,因误用本软件造成的任何损失,作者不承担任何责任。

下载工具