Metasploit wmap_run -e执行卡在[*] Using code '404' as not found的解决问询
解决Metasploit卡在
[*] Using code '404' as not found的问题 这个问题我在社区里见过不少渗透测试工程师和开发者遇到,不管是Kali还是macOS环境下的表现都一致,结合实际排查经验,我整理了原因分析和解决办法:
可能的触发原因
- 网络资源加载阻塞:Metasploit的部分模块会在运行时从官方远程源拉取辅助资源(比如payload模板、漏洞特征片段),如果网络连接不畅、资源源无法访问,程序就会卡在等待响应的环节,刚好停在这个404提示的位置。
- 本地缓存损坏:Metasploit会缓存模块数据和常用资源,一旦缓存文件损坏或不完整,模块加载时就会触发异常等待,表现为停滞在该提示。
- 模块版本不兼容:如果你手动添加了第三方模块,或者系统更新后Metasploit组件版本错位,可能导致模块加载逻辑出错,进而出现卡死。
分步解决方法
1. 先排查网络问题
首先确认你的系统能正常访问Metasploit依赖的资源服务器,你可以执行ping raw.githubusercontent.com测试连通性。如果网络受限:
- 切换到稳定的网络环境,或者配置好可用的代理
- 尝试以离线模式启动msfconsole:
msfconsole -n,这个参数会禁用网络检查,看看是否能正常进入控制台
2. 重置Metasploit缓存
缓存损坏是最常见的诱因,执行以下命令清理并重建缓存:
msfdb reinit msfconsole -q -x "reload_all; exit"
msfdb reinit会重置Metasploit的数据库缓存,reload_all命令会重新加载所有模块并生成新的本地缓存,完成后再启动msfconsole测试。
3. 更新Metasploit到最新版本
版本不兼容也可能导致这个问题,直接更新到最新稳定版:
- Kali Linux系统:
sudo apt update && sudo apt install --only-upgrade metasploit-framework
- macOS(Homebrew安装):
brew update && brew upgrade metasploit
更新完成后重启msfconsole,看看问题是否消失。
4. 排查第三方模块冲突
如果你手动添加过第三方模块,先暂时移除这些模块(通常存放在~/.msf4/modules目录下),然后启动msfconsole测试。如果问题解决了,说明是第三方模块的兼容性问题,你可以尝试更新该模块,或者替换为官方兼容的版本。
内容的提问来源于stack exchange,提问作者NDiaz
相关产品推荐
相关产品推荐

