#框架 #现代 #下一代 #攻击 #Metasploit #测试 #shell

app catsploit

受 Metasploit 启发的开源现代攻击框架

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,默认的 RPORT21,用于 FTP 服务器
  • 当调用 run 时,攻击运行,负载运行一个预任务,启动一个监听 TCP 服务器以接收 shell 连接
  • 攻击成功,负载在 Metasploitable2 系统上执行,监听的 TCP 服务器接收连接,打开一个 root shell

asciicast

贡献

待办事项

  • 模块类型,猫攻击目前定义了 exploit 和 payload 模块类型。应该创建辅助、规避、编码和其他许多模块类型
  • 编写更多模块、攻击、负载以及其他内容,以便猫攻击可用于通用渗透测试
  • 为新手提供更好的文档,教程、视频等。

代码结构

  • catsploit 目录仅包含创建 CLI 应用程序的代码,例如用户输入循环和处理模块选项。 catsploitcatsploit_lib 库交互
  • catsploit_lib 目录包含库。 catsploit_lib 包含执行 Catsploit 任务的函数代码。例如,Exploit 特性和诸如 Vsftpd234Backdoor 攻击等单个模块

这种将CLI应用程序和库分离的结构允许其他自定义应用程序挂钩到catsploit_lib并使用其功能。例如,未来可以编写一个axum服务器,以便从网站上调用catsploit_lib代码。

自动测试

Catsploit中自动测试的一些要点

  • 测试是为了逻辑功能编写的。例如,在catsploit_lib/src/core/exploit/remote_tcp.rs中,测试了connectcustom_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