2 个版本
| 0.1.2 | 2023年3月2日 |
|---|---|
| 0.1.0 | 2023年3月2日 |
#11 在 #下一代
68KB
1.5K SLoC
猫攻击
猫攻击是一个受 Metasploit 启发的开源现代攻击框架。
猫攻击目前处于早期开发阶段,该项目旨在吸引有兴趣在 Rust 中构建下一代攻击框架的贡献者。项目旨在保持 100% 开源,没有高级版本,并采用 GPLv3 许可证。
安装
作为 crate 安装:cargo install catsploit
从源码构建
git clone https://github.com/tirax-lab/catsploit
cd catsploit/catsploit
cargo build --release
sudo cp ./target/release/catsploit /usr/local/bin
示例用法 - 利用 VSFTPD v2.3.4 后门
在这个攻击中,一个运行在 172.16.187.128 的虚拟机运行着 Metasploitable2,该虚拟机运行着一个有漏洞的 VSFTPD 服务器
- 默认的 reverse shell 负载
nc_mkfifo_reverse_tcp将其LHOST设置为172.16.1.1,这是 VMware 路由回主机的位置 VSFTPD攻击将RHOST设置为172.16.187.128,默认的RPORT为21,用于 FTP 服务器- 当调用
run时,攻击运行,负载运行一个预任务,启动一个监听 TCP 服务器以接收 shell 连接 - 攻击成功,负载在 Metasploitable2 系统上执行,监听的 TCP 服务器接收连接,打开一个 root shell
贡献
待办事项
- 模块类型,猫攻击目前定义了 exploit 和 payload 模块类型。应该创建辅助、规避、编码和其他许多模块类型
- 编写更多模块、攻击、负载以及其他内容,以便猫攻击可用于通用渗透测试
- 为新手提供更好的文档,教程、视频等。
代码结构
catsploit目录仅包含创建 CLI 应用程序的代码,例如用户输入循环和处理模块选项。catsploit与catsploit_lib库交互catsploit_lib目录包含库。catsploit_lib包含执行 Catsploit 任务的函数代码。例如,Exploit特性和诸如Vsftpd234Backdoor攻击等单个模块
这种将CLI应用程序和库分离的结构允许其他自定义应用程序挂钩到catsploit_lib并使用其功能。例如,未来可以编写一个axum服务器,以便从网站上调用catsploit_lib代码。
自动测试
Catsploit中自动测试的一些要点
- 测试是为了逻辑功能编写的。例如,在
catsploit_lib/src/core/exploit/remote_tcp.rs中,测试了connect和custom_connect,但没有测试opts。可以为opts编写一个测试,迭代其值以查找RHOST等,但这会使修改opts函数变得更加复杂,而收效甚微 - 未为只向STDOUT打印且无副作用的函数编写测试。例如,在
catsploit/src/cli/info.rs中的print_exploit - 为了使函数更容易测试,修改函数参数和代码块是可以的。例如,在
catsploit/src/cli/cmd/show.rs中的show_exploits函数,它接收一个布尔值,指示函数是否在测试中运行,以防止在测试期间将完整的漏洞表打印到STDOUT。可能存在使用闭包等方法来阻止测试中的STDOUT打印的方法,而无需修改show_exploits函数签名。为此增加的复杂性和开发时间不值得为了避免简单的参数更改。
运行测试
要运行catsploit库和CLI应用程序的测试
cargo test --manifest-path=catsploit_lib/Cargo.toml && cargo test --manifest-path=catsploit/Cargo.toml
依赖关系
~5–14MB
~138K SLoC
