pentest-env攻击自动化实战:cscan+msfrpc持续扫描完整指南,2小时45分钟自动开7个shell
【免费下载链接】pentest-envPentest environment deployer (kali linux + targets) using vagrant and chef.项目地址: https://gitcode.com/gh_mirrors/pe/pentest-env
pentest-env是一个基于 Vagrant + Chef 的渗透测试环境部署器,可以一键拉起 Kali Linux 攻击机和多个漏洞靶机。本文介绍如何用 pentest-env 搭建cscan + msfrpc 持续扫描实验室:把 Kali 和 2 台 Metasploitable 靶机放进同一私有网络,通过 Faraday 的 cscan 插件调用 Metasploit RPC,自动执行发现、扫描、利用脚本——最终在2 小时 45 分钟内自动打开了7 个 shell。🎯
一、持续扫描实验室架构:3台VM + 1个私有网络
这套实战环境由 3 台虚拟机组成,全部挂在172.28.128.0/24私有网络中:
| 角色 | 名称 | 内存 | 说明 |
|---|---|---|---|
| 攻击机 | kali-light | 4096 MB | 带图形界面的轻量 Kali,由 Chef 自动配置 |
| 靶机1 | metasploitable2 | 1024 MB | Debian 漏洞机,最终收获 7 个 shell 🎉 |
| 靶机2 | metasploitable3-win2008r2 | 2048 MB | Windows 漏洞机(本例中未出 shell) |
自动化的核心是 3 个 cscan 脚本,按顺序执行:
msf-basic-discovery-nmap.sh—— nmap 全端口发现,把主机/端口/服务导入 Metasploit 数据库msf-autoscan.sh—— 自动选择扫描模块,枚举更多信息msf-autosploit.sh—— 自动匹配 exploit 模块并发起利用
完整示例配置在 docs/examples/Cscan-msfrpc.md 对应文档中,配置文件为examples/cscan-msfrpc.pentestrc。
二、一键安装步骤:配置 pentestrc 并 vagrant up
1. 克隆仓库
git clone --recursive https://gitcode.com/gh_mirrors/pe/pentest-env cd pentest-env前置条件:Vagrant 2.2.3 + VirtualBox 6.0.4(更高版本通常兼容),参考 docs/Installation.md。
2. 准备 Chef 依赖
bundle install --path=vendor/bundle bundle exec berks update3. 加载示例配置并启动
export PENTESTRC=examples/cscan-msfrpc.pentestrc vagrant status vagrant up启动后vagrant status应显示 3 台机器:kali-light、metasploitable2、metasploitable3-win2008r2。⏳ kali-light 的 Chef 供给时间较长,取决于网络速度。
配置要点解读(examples/cscan-msfrpc.pentestrc):
chef.recipes中包含pentest-env::cscan和pentester::msf_pkg,前者由 cookbook/recipes/cscan.rb 实现:它会自动从 cscan 仓库的msfrpc分支克隆代码到/root并生成配置chef.json中的pentest-env.cscan段指定了扫描网段172.28.128.0/24、3 个 msf 脚本、nmap 参数(-p- -O -sT -T5 -Pn全端口 + 版本探测)autostart: true让两台靶机开机自启,无需手动操作
三、最快配置方法:手动三连(Metasploit → Faraday → CScan)
首次部署完成后,登录 kali-light 做三件事。若不想手动操作,可跳过本节直接用第四节的 Chef 全自动方案。
1. Metasploit 初始化 + 开启 RPC
msfdb init # 初始化数据库,记下自动生成的密码 msfconsole # 进入控制台 load msgrpc # 加载 RPC 插件,设置 RPC 密码msfdb init生成的密码保存在/usr/share/metasploit-framework/config/database.yml,后续 Faraday 插件要用。
2. 启动 Faraday 并启用插件
/usr/share/python-faraday/faraday-server.py # 先启动服务端 /usr/share/python-faraday/faraday.py # 再启动图形客户端在 GUI 中创建cscan-pentest-env工作区,启用Metasploit Online Service Plugin,填写:Serverlocalhost、Usermsf、Port5432、Password 为上一步的密码。
3. 写入 msfrpc 凭据环境变量
在~/.bashrc中加入,让 cscan 的 msfrpc 插件能连上 RPC:
export MSFRPC_HOST=127.0.0.1 export MSFRPC_PORT=55552 export MSFRPC_USER=msf export MSFRPC_PASS=你的msgrpc密码四、进阶玩法:Chef 全自动配置,免手动操作
项目提供了全自动版配置examples/faraday-cscan-msfrpc-chef-setup.pentestrc,通过faraday-cscan、faraday-server等 Chef role 和 cookbook/recipes/faraday_metasploiton_plugin.rb 把上述所有手工步骤自动化:
- PostgreSQL + CouchDB 自动安装配置
- Metasploit 数据库、
msfconsole.rc(自动load msgrpc)自动设置 - Faraday 插件凭据直接注入
plugin_settings,无需进 GUI MSFRPC_USER/MSFRPC_PASS写入 cscan 配置
使用方式:
export PENTESTRC=examples/faraday-cscan-msfrpc-chef-setup.pentestrc vagrant up五、启动持续扫描:2小时45分钟自动开7个shell
一切就绪后,开一个新终端:
cd /root/cscan-pentest-env ./cscan.pycscan 会依次跑完 3 个脚本:nmap 发现 → autoscan 枚举 → autosploit 利用。作者实测整个流程约2 小时 45 分钟,最终在 metasploitable2 上开出7 个 shell(metasploitable3-win2008r2 为 0,Windows 目标需要更精细的模块匹配)。
💡实用建议:
- 扫描结果(主机、端口、漏洞、shell 会话)都会实时同步进 Faraday 工作区,方便边扫边看
CS_MSF_EXPORT: enabled保证 Metasploit 侧数据完整落库- 想换靶机,只需在
pentestrc的targets列表里增删,网段保持一致即可,靶机定义参考 targets/metasploitable2.rb
六、常见问题速查
| 问题 | 解决 |
|---|---|
vagrant up下载 box 慢 | 提前手动导入 Kali / Metasploitable box,SHA256 校验值见 checksums.txt |
| msfrpc 插件连不上 | 检查MSFRPC_*环境变量是否已 source,端口是否为 55552 |
| Kali 界面打不开 | kali-light 定义在 instances/kali-light.rb 中v.gui = true,首次启动需 VirtualBox GUI 环境 |
| 想看更多机器状态 | vagrant status或vagrant status NAME,详见 docs/Usage.md |
总结
pentest-env 把"搭渗透实验室"变成了声明式配置:一份pentestrc定义攻击机、靶机、网络,Chef 自动完成软件栈部署。配合 cscan 的 msfrpc 插件,扫描与利用全程无需值守——挂上./cscan.py,喝杯咖啡回来收 shell ☕。想继续探索,还可以看看 Tor 代理、Whonix、K8s 集群等更多示例配置(examples/目录)。
【免费下载链接】pentest-envPentest environment deployer (kali linux + targets) using vagrant and chef.项目地址: https://gitcode.com/gh_mirrors/pe/pentest-env
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考