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