Python 使用子流程运行nmap不会给出所需的输出

Python 使用子流程运行nmap不会给出所需的输出,python,subprocess,nmap,penetration-testing,Python,Subprocess,Nmap,Penetration Testing,我刚刚开始进行渗透测试,我一直在tryhackme.com的房间里工作,我注意到每个房间的第一步都是运行nmap。我还发现了一个名为rustscan的工具,可以用来快速查找所有打开的端口,它允许我将这些端口放入nmap,这节省了很多时间。我正在制作一个python脚本,它接受一个ip,在上面运行rustscan以获得打开的端口,然后在这些端口上运行nmap。问题是,当我运行nmap扫描时,它没有给我预期的输出,因为它比预期的要短得多。我运行的命令与我的程序直接在终端中使用的命令完全相同,并且输出

我刚刚开始进行渗透测试,我一直在tryhackme.com的房间里工作,我注意到每个房间的第一步都是运行nmap。我还发现了一个名为rustscan的工具,可以用来快速查找所有打开的端口,它允许我将这些端口放入nmap,这节省了很多时间。我正在制作一个python脚本,它接受一个ip,在上面运行rustscan以获得打开的端口,然后在这些端口上运行nmap。问题是,当我运行nmap扫描时,它没有给我预期的输出,因为它比预期的要短得多。我运行的命令与我的程序直接在终端中使用的命令完全相同,并且输出完全不同。命令是
nmap-A--reason-Pn-sV-sC--script vuln-T5-p OPENPORTS IP
。在我的脚本中,它看起来像

nmap = Popen(["sudo", "nmap", *nmapArgs, ip], stdout=PIPE, stderr=STDOUT) # Run nmap
out = nmap.communicate()[0] # Get the output
out = GREEN + out.decode("utf-8") + ENDCOLOR # Make output green
print(out)
代码的输出非常短,几乎就好像没有使用我为nmap传递的标志一样

完整的代码可以在这里找到