ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

BYOB CLI 实战指南:控制台版后渗透框架的安装、服务器搭建与客户端生成全流程

2026/10/8 1:55:55 拓冰建站 浏览量
BYOB CLI 实战指南:控制台版后渗透框架的安装、服务器搭建与客户端生成全流程 渗透测试网络安全应用安全【免费下载链接】byobAn open-source post-exploitation framework for students, researchers and developers.项目地址https://gitcode.com/gh_mirrors/by/byob点击查看免费下载本篇指南聚焦 BYOB 项目中的控制台版应用CLI即仓库根目录下的 byob/ 目录它包含 C2 服务器、客户端生成器以及 12 个后渗透模块是学习如何在纯终端环境中搭建命令与控制C2基础设施、生成反向 TCP 客户端并远程分发模块的完整范例。读完本文你将掌握 Linux/macOS 环境的完整安装流程、server.py与client.py的全部核心参数、dropper/stager/payload 三级客户端的生成与执行方式以及底层远程导入与加密机制的工作原理。适用范围声明BYOB 是面向学生、研究人员与开发者的开源后渗透学习框架项目总览 README 明确要求仅用于授权测试与教育目的。一、安装前的整体认知BYOB 项目由两大部分组成见 项目总览 README控制台应用Console Application位于 byob/即byob/README.md讲解的BYOB CLI本文主题Web GUI位于 web-gui/提供浏览器端的仪表盘、Payload 生成器与终端模拟器。控制台版的工作模型非常简单先运行server.py启动 C2 服务器再运行client.py生成客户端payload最后在目标机器上执行客户端建立反向连接。整条链路由 byob/core/ 下的核心模块支撑payloads.py反向 TCP shell、stagers.pystager 与解密、loader.py远程导入、security.py加密、database.pySQLite 持久化、handler.py文件上传接收。二、安装 BYOB CLIHow to install官方安装方式极简在 byob/ 目录下运行python3 setup.py。该脚本会自动定位并安装 requirements.txt 中的依赖。但真实环境常因系统差异出现缺包、缺编译工具等问题因此按平台分场景给出完整步骤。2.1 LinuxDebian/Ubuntu 系假设以 root 用户执行下列 bash 命令与setup.py做的事情基本一致但覆盖了更多可能的失败场景$ git clone https://github.com/malwaredllc/byob.git # 也可使用当前仓库镜像地址 $ cd byob/byob/ # 第一步Python33.6/3.7/3.8/3.9 均可 $ apt install python3.6 # 第二步Pip 与 OpenCVwebcam 模块依赖 cv2 $ apt install python3-pip python3-opencv # 第三步编译工具编译 cryptonight、pyrx 等挖矿相关包所需 $ apt install cmake build-essential python3-dev # 第四步升级 Pip 及其工具链 $ python3 -m pip install --upgrade pip setuptools wheel # 第五步安装全部依赖 $ python3 -m pip install -r requirements.txt # 第六步验证安装 $ python3 server.py --version # 应打印一个浮点版本号例如 0.5验证命令实际读取的是 byob/server.py 中 argparse 注册的版本号0.5。2.2 macOSmacOS 属于 Unix-BSD 家族与 Linux 差异不大只是把包管理器从apt换成 Homebrew$ git clone https://github.com/malwaredllc/byob.git $ cd byob/byob/ # 更新 Brew 仓库 $ brew update # 安装最新版 Python3自带 Pip $ brew install python # 安装编译工具cryptonight、pyrx 等需要 $ brew install cmake # 升级 Pip 及其工具链 $ python3 -m pip install --upgrade pip setuptools wheel # 安装全部依赖 $ python3 -m pip install -r requirements.txt # 验证 $ python3 server.py --version2.3 Windows原文档对 Windows 的说明仅为 Soon...当前仓库未提供 Windows 安装分步指南。不过从 byob/setup.py 与 byob/requirements.txt 可以推断setup.py在os.name nt时直接通过python -m pip install -r requirements.txt安装依赖而不使用sudo且 requirements.txt 通过sys.platformwin32条件标记了pyHook、pypiwin32等仅 Windows 需要的包客户端生成器也支持--freeze配合 PyInstaller 将 payload 编译为 Windows 独立可执行文件见 byob/client.py。2.4 深入理解 setup.py 与依赖清单byob/setup.py 在安装前还会做三件额外的事OpenCV 预检非 Windows 平台上若检测到python3-opencv未安装apt/yum 两套检测逻辑会直接报错退出——这是为了避免运行时加载cv2发生段错误Pip 缺失处理若import pip失败且为非 root 用户会提示必须以 sudo 运行 setup自动安装 requirements以sudo --prompt...方式执行python -m pip install -r requirements.txt。依赖清单 requirements.txt 按 Python 大版本分支声明核心包括用途关键包加密/挖矿py-cryptonight、pyrxgit 源、pycryptodome/pycrypto截屏/键记录mss、pyxhook、opencv-python系统/网络WMIWin、numpy、twilio、requests编译独立可执行PyInstaller终端彩色输出colorama缺失会直接sys.exit见 byob/server.py三、搭建并运行 C2 服务器How to use — Server3.1 server.py 的三个核心参数原文档说明可向 byob/server.py 传递三个参数对应关系与默认值如下以当前仓库源码为准参数作用默认值--host服务器监听的地址如127.0.0.1、example.dns.com0.0.0.0--portC2 监听端口如13371337--databaseSQLite 数据库文件自定义路径README 中记载为--db当前源码实际注册的参数名为--database见 byob/server.pydatabase.db不指定任何参数直接运行python3 server.py服务器将监听0.0.0.0:1337并使用database.db作为数据库文件。源码中还额外注册了--debug附加日志与-v/--version两个参数。3.2 端口规划一个 C2 端口 三个伴随服务从 byob/server.py 的main()可以看到启动server.py不只是监听一个端口而是同时拉起 4 个进程端口全部由--port派生port默认 1337C2 主服务接受客户端反向 TCP 连接见C2类与_socket()byob/server.pyport 1BYOB 模块的 HTTP 文件服务器供客户端远程导入modules/下的模块port 2Pythonsite-packages包的 HTTP 文件服务器供客户端远程导入第三方包serve_resources()每 3 秒检查并重启该进程见 byob/server.pyport 3运行 byob/core/handler.py 的 HTTP POST 处理器接收客户端回传的文件。3.3 控制台管理命令进入服务器后是一个交互式控制台完整命令表定义在C2.commandsbyob/server.py常用命令包括sessions列出当前活动会话clients列出所有加入过服务器的客户端shell id与某客户端建立反向 TCP shell 交互bg将会话转入后台broadcast command向所有活动会话广播任务tasks/results查看未完成任务与已完成结果load module [target]让客户端远程导入模块set调整控制台文字/提示符颜色与样式query statement直接执行 SQL 查询 SQLite 数据库对应 byob/core/database.py 的 DAO 层会话内还可下发persistence、keylogger、screenshot、webcam、escalate、portscanner、miner、ransom、upload、spread等模块任务。四、生成并执行客户端How to use — Client4.1 client.py 参数详解byob/client.py 要求三个位置参数位置参数含义host服务器地址主机名或 IPport服务器监听端口modules希望 payload 运行时远程导入的后渗透模块如keylogger、persistence关于modules的默认值需要说明原文档称默认为全部模块而从源码_modules()byob/client.py看不指定时默认注入core/util.py、core/security.py、core/payloads.py、core/miner.py四个核心模块指定具体模块时则会追加到该列表中且会校验模块是否存在于 byob/modules/ 目录。按需指定模块可以降低客户端内存占用。可选参数源码 argparse 定义见 byob/client.py参数作用--name NAME指定输出文件dropper名称--icon ICON指定编译可执行文件时使用的图标--pastebin API将 payload 上传到 Pastebin 托管替代 C2 托管--encrypt用随机密钥加密 payload密钥内嵌于 stager 中生成端使用os.urandom(16)产生密钥见 byob/client.py--compress将 payload/stager 做 zip 压缩生成自解压 Python 脚本--freeze配合 PyInstaller 将客户端编译为当前宿主平台的可执行文件--debug为 frozen 可执行文件开启调试输出4.2 一次生成三级制品dropper、stager、payload按文档场景服务器与客户端同机执行python3 client.py 127.0.0.1 1337生成器会依次产出三件制品对应源码中的_payload()、_stager()、_dropper()三个阶段Dropper保存在modules/clients/droppers/默认名如byob_xyz.py本质上只有 1 行核心代码——exec(eval(marshal.loads(zlib.decompress(base64.b64decode(...)))))即内嵌一段经 base64zlibmarshal 层层包装的代码执行时会urlopen拉取 stagerdropper 模板见 byob/client.pyStager保存在modules/clients/stagers/由 byob/core/stagers.py 拼装而成先做环境检查environment()会扫描环境变量与进程列表以识别 VirtualBox/VMware 等虚拟机特征见 byob/core/stagers.py再urlopen拉取 payload若启用了--encrypt则用内嵌密钥对拉取内容执行 TEA 风格分组解密decrypt()byob/core/stagers.pyPayload保存在modules/clients/payloads/文件名形如byob_xyz.py由 loader 代码 隐藏依赖 import 测试 各模块源码截取# main之后部分拼接而成执行后以反向 TCP 连接 C2 服务器拼装逻辑见 byob/client.py。由于生成器默认以 C2 端口1作为模块托管端口生成的 payload 下载地址形如http://host:port1/clients/payloads/...。4.3 执行 payload本例直接执行 payload其路径与文件名会在生成时打印在屏幕上$ python3 byob_xyz.py客户端随即发起反向连接服务器控制台会打印New Connection:提示并分配会话 ID之后便可通过shell id进入该客户端的终端。三件制品dropper、stager、payload任意一个单独执行都能建立连接区别在于 dropper 体积最小、按需从服务器拉取后续内容。五、底层机制远程导入与加密如何工作5.1 远程导入Remote Imports这是 BYOB 最核心的设计客户端本身不落盘任何文件连临时文件也不写第三方包与模块全部从服务器动态拉取到内存中 import。实现位于 byob/core/loader.py 的Loader类通过add_remote_repo()将Loader实例插入sys.meta_pathbyob/core/loader.py从而拦截 Python 的导入机制load_module()会依次尝试以包__init__.py、模块name.py、压缩包name.zip三种 URL 形态从base_url拉取源码再用imp.new_moduleexec在内存中执行byob/core/loader.py因此任何放入 byob/modules/ 目录的 Python 脚本/模块/包都会在服务器运行期间自动成为所有客户端可远程导入的资源——这也就是往modules/目录丢一个脚本即可为全部客户端新增功能的来源。5.2 加密与反分析byob/core/security.py 提供了完整的安全原语自实现的 AES 分组加密类AES支持 16/24/32 字节密钥即 AES-128/192/256、Diffie-Hellman IKE 密钥交换以及 XOR 对称加密。它们在 byob/core/payloads.py 中被用于客户端与服务端之间的通信链路与 项目总览 README 中反向 TCP AES 加密 防逆向/防沙箱/拦截杀软进程的特性描述相互印证。六、常见问题与排错建议cv2缺失server.py会告警missing package cv2 is required for webcam module如需 webcam 模块请按 2.1 节安装python3-opencvcolorama缺失server.py会直接退出并报missing package colorama is required执行pip install -r requirements.txt即可编译 cryptonight/pyrx 失败确认已安装cmake、build-essential或 macOS 的cmake Xcode CLTsite-packages定位失败服务器启动时会遍历sys.path寻找存放用户安装包的最新site-packages目录作为包托管根目录byob/server.py找不到会提示unable to locate site-packages并退出验证安装始终可以用python3 server.py --version快速确认环境可用。若上述步骤均无效可在打开 issue 前前往项目官方 Discord 支持服务器咨询原文档推荐渠道。赞分享渗透测试网络安全应用安全【免费下载链接】byobAn open-source post-exploitation framework for students, researchers and developers.项目地址https://gitcode.com/gh_mirrors/by/byob点击查看免费下载相关推荐BYOBBuild Your Own Botnet开源后渗透框架实战指南客户端生成、远程导入与 C2 服务端架构全解析BYOBBuild Your Own Botnet开源后渗透框架实战指南客户端生成、远程导入与 C2 服务端架构全解析 本篇技术指南以仓库根目录 READ渗透测试网络安全应用安全nps 内网穿透服务器启动与运行实战指南服务端、客户端安装启动到版本检查全流程nps 内网穿透服务器启动与运行实战指南服务端、客户端安装启动到版本检查全流程 导读 本文基于 nps 开源仓库的 docs/run.md https://l网络后端BYOB僵尸网络构建指南终极后渗透测试框架完全解析BYOB僵尸网络构建指南终极后渗透测试框架完全解析 BYOBBuild Your Own Botnet是一款面向学生、研究人员和开发者的开源后渗透测试框架渗透测试网络安全应用安全上一篇AccelStepper实战指南Arduino步进电机控制的最佳实践下一篇终极DirectX兼容性解决方案让经典游戏在现代Windows系统重生创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考