如何快速获取给定网络服务器的信息?

如何快速获取给定网络服务器的信息?
$ time nmap -q -sV -P0 -p80 google.com | fgrep '80/tcp open'
80/tcp open  http    Google httpd 2.0 (GFE)

real    0m6.563s
user    0m0.280s
sys 0m0.016s
$ 

有没有快点获取有关网络服务器信息的方法?

Google httpd 2.0 (GFE) 就足够了

答案1

好吧,这取决于您正在寻找哪个“信息”。假设您知道正在运行的 HTTP(S) 服务和版本(IIS / Apache / nginx),那么您可以了解底层操作系统是什么。

您查找的信息越多,扫描所需的时间就越长(如果您触发 IDS,则扫描可能需要很长时间):

使用 nmap(快速):

$ nmap -PN -sV -n -T4 --host-timeout 20s -p80 www.website.tld

使用 nmap(速度较慢,但​​信息更多)

$ nmap -PN -n -sU -sS -A www.website.tld

-A 相当于 -sV -O -T4(版本检测/操作系统检测/激进计时)

答案2

对于大多数 HTTP 服务器,Nmap 只是获取服务器标头,因此这就足够了。要获取该信息,请尝试以下操作:

printf "HEAD / HTTP/1.0\r\nHost: $TARGET\r\n\r\n" | nc $TARGET 80 | awk '$1=="Server:"{$1="";print}'

否则,如果您想使用 Nmap,有一些方法可以加快速度。

  • 用于-n避免进行名称解析
  • 使用--version-light--version-intensity 0来减少发送的探测数量。这不会对大多数 HTTP 服务器产生影响,因为默认探测通常是匹配的。
  • 用于-Pn跳过主机发现。您已经有了这个 as -P0,它可以工作,但语法较旧。

总之,这些将节省几毫秒。不幸的是,您看到的 6 秒是 Nmap 等待服务器首先发送数据的时间。 Nmap 以特定顺序尝试服务检测探针:首先是 NULL 探针(等待服务器首先发送),然后是“针对”正在扫描的端口的任何探针,然后是稀有度小于版本强度的任何其他探针(默认) 7).探测器及其端口和稀有性在nmap-service-probes文件中定义,您可以编辑该文件。不过,这是一个全局设置,因此如果您对其进行编辑,Nmap 对于一般版本检测的用处将会降低。找到该Probe TCP NULL行,并将totalwaitms其下方的值更改为较小的值,例如100。它应该看起来像这样:

# This is the NULL probe that just compares any banners given to us
##############################NEXT PROBE##############################
Probe TCP NULL q||
# Wait for at least 6 seconds for data.  It used to be 5, but some
# smtp services have lately been instituting an artificial pause (see
# FEATURE('greet_pause') in Sendmail, for example)
totalwaitms 100

为了避免弄乱 Nmap 的所有其他扫描,请复制该nmap-service-probes文件并使用该选项引用其位置--datadir。这是我得到的结果:

$ time nmap -Pn -sV -n -p80 $TARGET --datadir=. | grep '^80/tcp'
80/tcp open  http    Google httpd 2.0 (GFE)

real    0m0.753s
user    0m0.472s
sys     0m0.032s

答案3

怎么样:

wget -q -O /dev/null -S www.google.com

相关内容