$ 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