0

我需要每秒访问一个 http 服务器以获得一个 ack 回复,每秒钟重复一次,持续不同的时间长度,并将回复输出到一个文本文件中,其中包含响应时间等信息(以毫秒为单位)。这基本上是为了检查延迟,但出于我的目的,我需要使用 syn/syn-ack 来完成。

我已经到了某个地方

nmap -sS 1.1.1.1 -p 80 -o test.txt -v

这可以很好地在屏幕上输出,但不能输出到文本文件中——我如何将 nmap 运行到文件中的所有输出获取?

另外,不确定如何每秒运行一次 - nmap 是否有重复标志?还是我应该把它放在一个 bash 脚本中?

4

1 回答 1

1

这个命令可能做的比你想要的要多。每次运行它时,Nmap 都会执行以下操作:

  1. 对目标进行反向 DNS (PTR) 查找
  2. 发送主机发现探测以确保目标已“启动”。如果您是 root,这是一组 4 个 ICMP 和 TCP 探测。如果不是,则为 2 个 TCP 连接调用。
  3. 向端口 80 发送 TCP SYN 探测。如果您以 root 身份运行,则顺序为 SYN、SYN/ACK、RST。否则为 SYN、SYN/ACK、ACK、RST/ACK。

因此,您可以使用一些有用的标志来减少这种开销,并更具体地说明您的要求。

nmap -n -sn -PS80 1.1.1.1

此命令将跳过反向 DNS 查找 ( -n) 并使用主机发现阶段来查找延迟。-sn跳过端口扫描并-PS80说使用 TCP SYN 到端口 80 进行主机发现。TCP 握手是否完成取决于你是否有 root 权限。

nmap -n -Pn -p 80 1.1.1.1

此命令将发送与之前完全相同的探测,但会将输出显示为端口扫描,而不仅仅是主机发现扫描。

要重复扫描,您必须将其放入 shell 循环中。最好为此使用专用工具,但我不知道哪个最好。Nmap 带有一个名为Nping的工具,它可以发送重复探测并报告往返时间,但我无法让它显示每个数据包;它只是在最后给出一个总结。使用hping可能会有更好的运气。

于 2014-03-04T17:51:30.110 回答