【问题标题】:try to save nmap result to txt file尝试将nmap结果保存到txt文件
【发布时间】:2019-05-27 10:13:34
【问题描述】:

我尝试将 nmap 扫描的结果保存到 txt 文件。我用这个命令

nmap -n -Pn -p T:3389 -T5 -sS -iR 0 | grep "scan" | awk '{ print $5 }' > test.txt

cat test.txt

输出如下所示:

xx.xx.xx.xx
xx.xx.xx.xx
xx.xx.xx.xx
xx.xx.xx.xx
xx.xx.xx.xx
xx.xx.xx.xx

它运行良好。

我只想扫描打开的端口,为此我尝试使用--open 选项,如下所示:

nmap -n -Pn -p T:3389 --open -T5 -sS -iR 0 | grep "scan" | awk '{ print $5 }' > test.txt

它不起作用,test.txt 是空的。我尝试使用tail -f test.txt 来查看实时结果,但它不起作用。有人可以解释一下我在做什么,错了吗?

我期待着第一次看到结果。

xx.xx.xx.xx
xx.xx.xx.xx
xx.xx.xx.xx
xx.xx.xx.xx
xx.xx.xx.xx
xx.xx.xx.xx

在我想添加端口号之后所有的ip都是这样的

xx.xx.xx.xx:3389
xx.xx.xx.xx:3389
xx.xx.xx.xx:3389
xx.xx.xx.xx:3389
xx.xx.xx.xx:3389
xx.xx.xx.xx:3389

为此我想使用sed -i s/$/:3389/ test.txt

我想知道是否有可能只用一个命令得到这个结果。

我尝试这样的事情:

nmap -n -Pn -p T:3389 --open -T5 -sS 192.168.0.1/24 | grep "scan" | awk '{ print $5 }' > test.txt; sed -i s/$/:3389/ test.txt

cat test.txt 这是结果:

192.168.0.2:3389
192.168.0.16:3389
addresses:3389

我不知道为什么地址:3389 出现在末尾。但这有效。

我想得到相同的结果,但使用这个命令:

nmap -n -Pn -p T:3389 --open -T5 -sS -iR 0 | grep "scan" | awk '{ print $5 }' > test.txt; sed -i s/$/:3389/ test.txt

我尝试了这个命令,但没有工作。我想在 bash 脚本中使用这个命令。感谢您提供任何帮助或建议。

nmap -n -Pn -p T:3389 --open -T5 -sS -iR 0

这是输出:

    Nmap scan report for 187.3.104.223
    Host is up (0.29s latency).

    PORT     STATE SERVICE
    3389/tcp open  ms-wbt-server

    Nmap scan report for 118.89.215.203
    Host is up (0.29s latency).

    PORT     STATE SERVICE
    3389/tcp open  ms-wbt-server

【问题讨论】:

  • 你确定端口是开放的?
  • 如果我只使用这个命令nmap -n -Pn -p T:3389 --open -T5 -sS -iR 0 它可以工作,但如果我尝试将结果保存在 txt 文件中。它不起作用
  • nmap -n -Pn -p T:3389 --open -T5 -sS -iR 0 的输出是什么?可能输出中没有scan 字,或者awk 命令选择了错误的列。我们无法判断您是否不显示输出。
  • nmap -n -Pn -p T:3389 --open -T5 -sS -iR 0 187.3.104.223 的 Nmap 扫描报告主机已启动(0.29 秒延迟)。 PORT STATE SERVICE 3389/tcp open ms-wbt-server Nmap 扫描报告 118.89.215.203 主机已启动(0.29 秒延迟)。端口状态服务 3389/tcp 打开 ms-wbt-server。在输出中是扫描Nmap scan report for 187.3.104.223
  • -iR 表示“扫描随机地址”。无法保证您会在任何一致的时间内获得结果,因为您可能会扫描数千个地址,然后才能找到打开 3389 的地址。

标签: bash output nmap


【解决方案1】:

我找到了让它工作的方法。这是命令:

nmap -n -Pn -p T:3389 -T5 -sS -iR 5000 --open | grep scan | grep -v addresses | awk '{print $5}' | sed 's/$/:3389/' > test

cat test

输出:

35.190.27.36:3389
35.214.139.176:3389
132.190.70.226:3389
109.228.13.61:3389
103.10.175.4:3389
113.134.99.14:3389
35.168.9.215:3389
167.93.112.130:3389
115.220.6.216:3389
137.32.209.1:3389
35.206.198.136:3389

如果需要,我可以更改-iR 5000,它仍然有效。它不适用于 0

如果有人需要,我希望对您有所帮助。谢谢大家

【讨论】:

    【解决方案2】:

    “地址”来自 Nmap 输出的摘要结尾行,第 5 个单词:

       Nmap done: 256 IP addresses (10 hosts up) scanned in 3.12 seconds
    

    要从输出运行中删除地址:

       nmap -n -Pn -p T:3389 --open -T5 -sS -iR 0 |grep scan|grep -v addresses|awk '{print $5}' | sed 's/$/:3389/' > test.txt
    

    如果它不是您期望/想要得到的,请发布您的输出

    【讨论】:

    • 它不起作用,我在 test.txt 中没有得到任何东西。但如果我删除 --open 它会完美运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多