我试图运行此代码:
os.system("""gnome-terminal -e 'bash -c "arpspoof -i " + inter + " -t " + target + " " + gateway" ' """)
,错误是:
"无法解析参数:参数" - 命令/ -e"不是有效命令:文本在找到"的匹配引号之前结束。 (文字是' bash -c" arpspoof -i" + inter +" -t" + target +"" + gateway&#34 ;')"
这是我的整个代码:
import os
import time
def drift():
global gateway
gateway = raw_input("Gateway IP > ")
time.sleep(0.5)
global target
target = raw_input("Target IP > ")
time.sleep(0.5)
global inter
inter = raw_input("Interface > ")
drift()
os.system("""gnome-terminal -e 'bash -c "arpspoof -i " + inter + " -t " + target + " " + gateway" ' """)
所以对于那些不了解" Driftnet"是,它是一个MITM攻击程序来拾取图片。要进行设置,您必须输入一个终端
" arpspoof -i -t"
然后打开一个新的终端并键入相同的东西,但是网关IP和目标IP的顺序切换,以诱使你的目标认为你是路由器。
我希望我的程序询问网关IP,目标IP,接口,然后运行 " arpspoof -i -t"
然后打开一个新的终端并键入相同的东西,除了将网关IP和目标IP的顺序切换到目标首先的位置,网关是第二个,而无需用户输入任何东西,我就是尝试使用os.system("""gnome-terminal -e 'bash -c "arpspoof -i " + inter + " -t " + target + " " + gateway" ' """)
来执行此操作,但它会返回错误:
"无法解析参数:参数" - 命令/ -e"不是有效命令:文本在找到"的匹配引号之前结束。 (文字是' bash -c" arpspoof -i" + inter +" -t" + target +"" + gateway&#34 ;')"
感谢。
答案 0 :(得分:2)
问题在于您尝试在三引号字符串中添加字符串。您似乎试图将变量的值放入三重引号字符串中,但实际上是将文字字符串gnome-terminal -e 'bash -c "arpspoof -i " + inter + " -t " + target + " " + gateway" '
传递给os.system()
。
您需要做的是使用format
。
os.system("""gnome-terminal -e 'bash -c "arpspoof -i {inter} -t {target} {gateway}" ' """.format(inter=inter, target=target, gateway=gateway))