第7章 信息搜集

本章知识点

本章节将介绍Nmap的NES脚本,脚本是用Lua程序创作的,目前已有好几百种。lua的易用性也让更多的用户加入脚本的创作当中来,本章节通过对Nmap信息搜集脚本的使用让大家了解Nmap的高级技法。

本章脚本

表7.1所示为本章节所需Nmap命令表,为方便读者查阅,笔者特此整理。

表7.1 本章所需选项

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

在进行渗透测试的时候,首先要做的是对目标进行尽可能全面的信息搜集,在渗透测试中必不可少的就是信息搜集,这是作为渗透思路及方法的铺垫。

信息搜集的方法很多,我们手工也可以对网站进行搜集,也可以借助一些工具对目标站点进行信息搜集,Nmap就是一个不错的选择。Nmap内置了很多插件,可供我们进行信息搜集,可不仅仅是一个端口扫描器这么简单。

表7.2所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——IP信息搜集。

表7.2 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

我们首先打开Shell终端,运行以下命令“nmap --script ip-geolocation-* 目标”。

root@Wing:~# nmap --script ip-geolocation-* www.0day.co

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 16:03 CST
Nmap scan report for www.0day.co (210.209.122.11)
Host is up (0.013s latency).
Not shown: 998 filtered ports
PORT  STATE SERVICE
80/tcp open http
443/tcp open https

Host script results:
| ip-geolocation-geobytes: 
|  latitude: 22.283
|  longitude: 114.15
|  city: Hong Kong
|  region: Hong Kong (SAR)
|_ country: Hong Kong (SAR)
|_ip-geolocation-geoplugin: ERROR: Script execution failed (use -d to debug)
|_ip-geolocation-maxmind: ERROR: Script execution failed (use -d to debug)

Nmap done: 1 IP address (1 host up) scanned in 52.66 seconds
root@Wing:~# 


从以上返回来的信息中,我们可以获取目标域名的IP地址,并且还可以确定该IP地址为一个香港地区IP,这个IP的开放端口有80端口、443端口。可以说我们已经初步确定了目标域名的IP及目标主机的端口情况,但需要注意的是,如果目标域名使用了CDN,那么这个方法是无效的,我们获取的只是目标域名的CDN的相关情况,并不是目标域名所对应的真正的IP地址。

 

Nmap很早就提供了script脚本,这些脚本包含着不同的功能,现在的脚本允许用户自定义开发。

表7.3所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——WHOIS查询。

表7.3 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

WHOIS(读作“Who is”,而非缩写)是用来查询互联网中域名的IP以及所有者等信息的传输协议。早期的WHOIS查询多以命令行接口(Command Line)存在,但是现在出现了一些基于网页接口的简化在线查询工具,甚至可以一次向不同的数据库查询。网页接口的查询工具仍然依赖WHOIS协议向服务器发送查询请求,命令行接口的工具仍然被系统管理员广泛使用。

WHOIS通常使用TCP协议43端口。每个域名或IP的WHOIS信息由对应的管理机构保存,例如,以.com结尾的域名的WHOIS信息由.com域名运营商VeriSign管理,中国国家顶级域名.cn由CNNIC管理。

通常情况下,域名或IP的信息可以由公众自由查询获得,具体的查询方法是登录由管理机构提供的WHOIS服务器,输入待查询的域名进行查询。

使用命令“nmap --script whois 目标”即可查询目标域名whois信息。

root@Wing:~# nmap --script whois www.0day.co

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 16:10 CST
Nmap scan report for www.0day.co (210.209.122.11)
Host is up (0.0063s latency).
Not shown: 998 filtered ports
PORT  STATE SERVICE
80/tcp open http
443/tcp open https

Host script results:
| whois: Record found at whois.apnic.net
| inetnum: 210.209.122.0 - 210.209.122.255
| netname: NWTCRS-HK
| descr: NWT CRS Dynamic Pool
| country: HK
| person: Ivan Wong
|_email: ivanwong@newworldtel.com

Nmap done: 1 IP address (1 host up) scanned in 69.23 seconds
root@Wing:~# 


从返回的数据来看,我们可以确定目标域名的IP地址及其开放的端口,也搜集到了域名提供商的网址以及域名解析地址和E-mail地址。在使用whois查询的时候要切记whois都是小写字母。查询到的结果仅供参考,大部分的网站现在都启用了whois保护,对于域名所有者的姓名、电话等都会隐藏,我们可以查询该域名的历史whois,历史whois可能还没有启用whois保护。我们还可以启用其他的几个whois查询脚本。

root@Wing:~# nmap --script whois --script-args whois.whodb=nofollow www.0day.co

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 16:34 CST
Nmap scan report for www.0day.co (210.209.122.11)
Host is up (0.012s latency).
Not shown: 998 filtered ports
PORT  STATE SERVICE
80/tcp open http
443/tcp open https

Host script results:
|_whois: ERROR: Script execution failed (use -d to debug)

Nmap done: 1 IP address (1 host up) scanned in 25.81 seconds
root@Wing:~# 


不同的脚本返回的结果也不尽相同。

如果目标域名比较多,我们可以使用列表的方式进行查询。

root@Wing:~# nmap -sn --script whois -v -iL host.txt

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 16:39 CST
NSE: Loaded 1 scripts for scanning.
NSE: Script Pre-scanning.
Initiating Ping Scan at 16:39
Scanning 3 hosts [4 ports/host]
Completed Ping Scan at 16:39, 0.01s elapsed (3 total hosts)
Initiating Parallel DNS resolution of 3 hosts. at 16:39
Completed Parallel DNS resolution of 3 hosts. at 16:39, 2.16s elapsed
NSE: Script scanning 3 hosts.
Initiating NSE at 16:39
Completed NSE at 16:39, 5.88s elapsed
Nmap scan report for www.0day.co (210.209.122.11)
Host is up (0.0031s latency).

Host script results:
| whois: Record found at whois.apnic.net
| inetnum: 210.209.122.0 - 210.209.122.255
| netname: NWTCRS-HK
| descr: NWT CRS Dynamic Pool
| country: HK
| person: Ivan Wong
|_email: ivanwong@newworldtel.com

Nmap scan report for www.google.com (74.125.128.103)
Host is up (0.0036s latency).
Other addresses for www.google.com (not scanned): 74.125.128.106 74.125.128.105 74.125.128.99 74.125.128.104 74.125.128.147
rDNS record for 74.125.128.103: hg-in-f103.1e100.net

Host script results:
| whois: Record found at whois.arin.net
| netrange: 74.125.0.0 - 74.125.255.255
| netname: GOOGLE
| orgname: Google Inc.
| orgid: GOGL
| country: US stateprov: CA
| 
| orgtechname: Google Inc
|_orgtechemail: arin-contact@google.com

Nmap scan report for www.facebook.com (59.24.3.173)
Host is up (0.0034s latency).

Host script results:
| whois: Record found at whois.apnic.net
| inetnum: 59.0.0.0 - 59.31.255.255
| netname: KORNET
| descr: KOREA TELECOM
| country: KR
| person: IP Manager
|_email: kornet_ip@kt.com

NSE: Script Post-scanning.
Read data files from: /usr/bin/../share/nmap
Nmap done: 3 IP addresses (3 hosts up) scanned in 8.18 seconds
      Raw packets sent: 12 (456B) | Rcvd: 3 (120B)
root@Wing:~# 


 

有时候whois查询到的信息并不准确,我们更热衷于查询whois的历史记录。

表7.4所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——搜集E-mail信息。

表7.4 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

E-mail是我们日常用的方便的通信工具,上一次Metasploit网站被黑客攻破的原因正是因为黑客向Metasploit管理员发送了一封邮件导致的,邮件可能包含恶意代码或者恶意程序。当然,这必须要正确地搜集到目标E-mail,本小节将演示如何有效搜集E-mail信息。

使用命令“map --script http-email-harvest 目标”即可进行Email查询。

root@Wing:~# nmap --script http-email-harvest www.0day.co

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 17:10 CST
Nmap scan report for www.0day.co (210.209.122.11)
Host is up (0.018s latency).
Not shown: 998 filtered ports
PORT  STATE SERVICE
80/tcp open http
443/tcp open https
| http-email-harvest:
| Spidering limited to: maxdepth=3; maxpagecount=20
|  root@0day.co
|_ admin@0day.co

Nmap done: 1 IP address (1 host up) scanned in 79.60 seconds
root@Wing:~# 


默认情况下,http-email-harvest脚本会对端口进行扫描,这将会花费很长的时间,如果您不想让其进行端口扫描或者只对指定的端口进行扫描,可以使用-p参数指定一个端口。

从结果可以看出Nmap可以成功地分析出有关网站的Email。

表7.5所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——IP反查。

表7.5 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

使用命令“nmap -sn --script hostmap-ip2hosts 目标”进行IP反查,IP反查可以将所有绑定到该IP的域名显示出来,这样我们就可以很清楚地知道有几个站点在同一个服务器上。

root@Wing:~# nmap -sn --script hostmap-ip2hosts www.0day.co

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 17:22 CST
Nmap scan report for www.0day.co (210.209.122.11)
Host is up (0.00090s latency).

Host script results:
|  hosts:
|   xxx.org
|   xxx.com
|   xxx.com
|   xxx.net
|   xxxx.cc
|_ filename: output_nmap.orgip=210.209.122.11

Nmap done: 1 IP address (1 host up) scanned in 18.24 seconds


IP反查会查询绑定在这一个IP上的所有域名,如果是单一的IP则不会有结果,如果目标使用的是虚拟主机则会显示结果;如果目标使用了CDN也会显示相关结果,但是这个结果是不准确的,此时查询的IP并不是真正的IP。

该脚本调用的是其他网站的接口,如果访问不到该网站或者该网站无法正常运行,Nmap会进行提示。

 

我们会利用多种方式绕过CDN从而获得目标的真实IP,例如捕获目标主机发送的邮件,或者历史解析记录。

表7.6所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——DNS信息搜集。

表7.6 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

域名系统(Domain Name System,DNS)是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

DNS系统中,常见的资源记录类型包括以下几种。

① 主机记录(A记录):RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。

② 别名记录(CNAME记录):RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。

③ IPv6主机记录(AAAA记录):RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。

④ 服务位置记录(SRV记录):RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname)、端口(port number)等。

⑤ NAPTR记录:RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。

DNS通过允许一个名称服务器把它的一部分名称服务(众所周知的zone)“委托”给子服务器,从而实现了一种层次结构的名称空间。此外,DNS还提供了一些额外的信息,例如系统别名、联系信息以及哪一个主机正在充当系统组或域的邮件枢纽。

任何一个使用IP的计算机网络可以使用DNS来实现自己的私有名称系统。尽管如此,当提到在公共的Internet DNS系统上实现的域名时,术语“域名”是最常使用的。

这是基于504个全球范围的“根域名服务器”(分成13组,分别编号为A至M)。从这504个根服务器开始,余下的Internet DNS命名空间被委托给其他的DNS服务器,这些服务器提供DNS名称空间中的特定部分。

使用命令“nmap --script dns-brute目标”进行DNS信息搜集。

root@Wing:~# nmap --script dns-brute www.xxxx.com

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 17:30 CST
Nmap scan report for nmap (221.192.153.46)
Host is up (0.00017s latency).
All 1000 scanned ports on nmap (221.192.153.46) are filtered

Host script results:
|_dns-brute: Can't guess domain of "nmap"; use dns-brute.domain script argument.

Nmap scan report for www.xxxx.com (xxx.237.1.160)
Host is up (0.024s latency).
Other addresses for www.xxxx.com (not scanned): xxx.10.91.49
rDNS record for xxx.237.1.160: hkhdc.laws.ms
Not shown: 994 filtered ports
PORT   STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
80/tcp  open  http
5900/tcp open  vnc
8080/tcp open  http-proxy
10082/tcp closed amandaidx

Host script results:
| dns-brute: 
|  DNS Brute-force hostnames
|   www.xxxx.com - xxx.237.1.160
|   corp.xxxx.com - xxx.10.91.49
|   corp.xxxx.com - xxx.237.1.160
|   whois.xxxx.com - xxx.237.1.160
|   whois.xxxx.com - xxx.10.91.49
|   ldap.xxxx.com - xxx.10.91.49
|   ldap.xxxx.com - xxx.237.1.160
|   mx0.xxxx.com - xxx.237.1.160
|   mx0.xxxx.com - xxx.10.91.49
|   linux.xxxx.com - xxx.10.91.49
|   linux.xxxx.com - xxx.237.1.160
|   mx1.xxxx.com - xxx.10.91.49
|   mx1.xxxx.com - xxx.237.1.160
|   mail.xxxx.com - xxx.237.1.160
|   mail.xxxx.com - xxx.10.91.49
|   server.xxxx.com - xxx.10.91.49
|   server.xxxx.com - xxx.237.1.160
|   citrix.xxxx.com - xxx.237.1.160
|   citrix.xxxx.com - xxx.10.91.49
|   ftp0.xxxx.com - xxx.237.1.160
|   ftp0.xxxx.com - xxx.10.91.49
|   cms.xxxx.com - xxx.10.91.49
|   cms.xxxx.com - xxx.237.1.160
|   erp.xxxx.com - xxx.10.91.49
|   erp.xxxx.com - xxx.237.1.160
|   ops.xxxx.com - xxx.237.1.160
|   ops.xxxx.com - xxx.10.91.49
|   host.xxxx.com - xxx.237.1.160
|   host.xxxx.com - xxx.10.91.49
|   pbx.xxxx.com - xxx.10.91.49
|   pbx.xxxx.com - xxx.237.1.160
|   log.xxxx.com - xxx.10.91.49
|   images.xxxx.com - xxx.10.91.49
|   images.xxxx.com - xxx.237.1.160
|   internal.xxxx.com - xxx.237.1.160
|   internal.xxxx.com - xxx.10.91.49
|   internet.xxxx.com - xxx.237.1.160
|_  internet.xxxx.com - xxx.10.91.49

Nmap done: 2 IP addresses (2 hosts up) scanned in 193.31 seconds
root@Wing:~# 


同过对脚本dns-brute的调用可以查询到目标域名所有地址,当然这是基于暴力破解的,并不是所有的域名都可以被暴力破解出来。

该脚本的默认线程是5,如果是扫描一个大型的网站,速度可能会较慢,可以设置一下扫描线程,nmap--script dns-brute dns-brute.threads=10 www.xxx.com,设置10个线程时相应的扫描速度会增加很多。如果需要查询多个域名我们也可以指定一个列表:nmap --script dns-brute dns-brute. threads=10,dns-brute.hostlist www.badu.com。

表7.7所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——检索系统信息。

表7.7 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

使用命令“nmap -p 445 目标 --script membase-http-info”即可进行检索系统信息。

root@Wing:~# nmap -p 445 192.168.126.131 --script membase-http-info

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 17:54 CST
Nmap scan report for 192.168.126.131
Host is up (0.00027s latency).
PORT  STATE SERVICE
445/tcp open microsoft-ds
| membase-http-info:
|  Hostname        192.168.126.131:8091
|  OS           x86_64-unknown-linux-gnu
|  Version        1.7.2r-20-g6604356
|  Kernel version    2.14.4
|  Mnesia version    4.4.19
|  Stdlib version    1.17.4
|  OS mon version    2.2.6
|  NS server version  1.7.2r-20-g6604356
|  SASL version     2.1.9.4
|  Status         healthy
|  Uptime         21465
|  Total memory      522022912
|  Free memory      41779200
|_ Server list      192.168.126.131:11210

MAC Address: 00:0C:29:E0:2E:76 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
root@Wing:~#


使用membase-http-info脚本可以轻易地了解目标系统的详细信息,该脚本配合前面章节学到的几个参数会有更好的收获。

表7.8所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——后台打印机服务漏洞。

表7.8 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

使用命令“nmap --script smb-security-mode.nse -p 445 目标”检查打印机服务漏洞。

root@Wing:~# nmap --script smb-security-mode.nse -p 445 192.168.126.128

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 18:02 CST
Nmap scan report for 192.168.126.128
Host is up (0.00021s latency).
PORT  STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:D3:9D:B9 (VMware)

Host script results:
| smb-security-mode: 
|  Account that was used for smb scripts: guest
|  User-level authentication
|  SMB Security: Challenge/response passwords supported
|_ Message signing disabled (dangerous, but default)

Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
root@Wing:~# 


使用smb-security-mode.nse脚本可以后台打印机服务漏洞,使用该脚本时我们需要手动指定端口。

表7.9所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——系统漏洞扫描。

表7.9 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

使用命令“nmap --script smb-check-vulns.nse -p 445 目标”进行扫描目标系统漏洞。

root@Wing:~# nmap --script smb-check-vulns.nse -p445 192.168.126.128

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 18:22 CST
Nmap scan report for 192.168.126.128
Host is up (0.00027s latency).
PORT  STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:D3:9D:B9 (VMware)

Host script results:
| smb-check-vulns: 
|  MS08-067: CHECK DISABLED (add '--script-args=unsafe=1' to run)
|  Conficker: Likely CLEAN
|  regsvc DoS: CHECK DISABLED (add '--script-args=unsafe=1' to run)
|  SMBv2 DoS (CVE-2009-3103): CHECK DISABLED (add '--script-args=unsafe=1' to run)
|  MS06-025: CHECK DISABLED (add '--script-args=unsafe=1' to run)
|_ MS07-029: CHECK DISABLED (add '--script-args=unsafe=1' to run)

Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds
root@Wing:~# 


通过调用smb-check-vulns.nse脚本可以对SMB漏洞进行扫描,即使不调用大型的扫描工具也可以轻易地完成这个过程。还可以使用U:或者T:进行配合,这样会得到意想不到的效果。

表7.10所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——扫描Web漏洞。

表7.10 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

使用命令“nmap -p80 --script http-stored-xss.nse 目标”即可扫描目标Web漏洞。

root@Wing:~# nmap -p80 --script http-stored-xss.nse www.XXX.com

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 18:17 CST

root@Wing:~# nmap -sV --script=http-sql-injection www.XXX.com

Starting Nmap 6.40 ( http://nmap.org

 ) at 2014-06-12 18:18 CST
Nmap scan report for www.2cto.com (27.221.20.217)
Host is up (0.027s latency).
Not shown: 999 filtered ports
PORT  STATE SERVICE VERSION
80/tcp open http  nginx 1.4.3.6

Service detection performed. Please report any incorrect results at http://nmap.org/submit/

 .
Nmap done: 1 IP address (1 host up) scanned in 99.32 seconds
root@Wing:~# 


Nmap下提供了很多的Web漏洞的检测脚本,其中,http-stored-xss.nse脚本可以帮助我们发现网站的XSS(跨站脚本攻击)漏洞,http-sql-injection脚本可以帮助我们发现SQL注入漏洞。在TOP漏洞的排行里,XSS与SQL近些年一直高居榜首,Nmap的脚本可以非常轻松地完成对这两个漏洞的扫描。

表7.11所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——通过Snmp列举Windows服务/账户。

表7.11 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

使用命令“nmap -sU -p 161 --script=snmp-win32-services目标”即可通过Snmp服务对目标系统的服务或账户进行列举。

root@Wing:~# nmap -sU -p 161 --script=snmp-win32-services 192.168.126.128

| snmp-win32-services:
|  Apache Tomcat
|  Application Experience Lookup Service
|  Application Layer Gateway Service
|  Automatic Updates
|  COM+ Event System
|  COM+ System Application
|  Computer Browser
|  Cryptographic Services
|  DB2 - DB2COPY1 - DB2
|  DB2 Management Service (DB2COPY1)
|  DB2 Remote Command Server (DB2COPY1)
|  DB2DAS - DB2DAS00
|_ DCOM Server Process Launcher

nmap -sU -p 161 --script=snmp-win32-users 192.168.126.128

| snmp-win32-users:
|  Administrator
|  Guest
|  IUSR_EDUSRV011
|  IWAM_EDUSRV011
|  SUPPORT_388945a0
|  Wing
|  SQL
|  hack
|_ patrik

Service detection performed. Please report any incorrect results at http://nmap.org/submit/

 .
Nmap done: 1 IP address (1 host up) scanned in 99.32 seconds
root@Wing:~# 


Nmap提供的snmp-win32-services脚本可以轻易地通过Snmp服务获取目标正在运行着的服务,通过snmp-win32-users脚本则可以看到目标的所有账户。尤其是在Nmap无法从端口判断服务的时候不妨用这两个脚本对目标进行测试。

表7.12所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——枚举DNS服务器的主机名。

在渗透测试时需要暴力破解出该域名下的子域名与DNS服务器的主机名,在Nmap中使用dns-brute脚本即可达到我们的要求。

表7.12 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

使用命令“nmap --script dns-brute --script-args dns-brute.domain=baidu.com”即可发起对baidu.com子域名的枚举。

root@Wing:~# nmap --script dns-brute --script-args dns-brute.domain=baidu.com

Starting Nmap 6.47 ( http://nmap.org

 ) at 2015-06-28 16:03 CST
Pre-scan script results:
| dns-brute: 
|  DNS Brute-force hostnames: 
|   stats.baidu.com - 123.129.254.15
|   host.baidu.com - 123.129.254.15
|   mx.baidu.com - 61.135.163.61
|   devel.baidu.com - 221.192.153.42
|   svn.baidu.com - 10.65.211.174
|   mx0.baidu.com - 123.129.254.15
|   development.baidu.com - 123.129.254.15
|   administration.baidu.com - 221.192.153.42
|   syslog.baidu.com - 221.192.153.42
|   mx1.baidu.com - 61.135.163.61
|   devsql.baidu.com - 123.129.254.15
|   ads.baidu.com - 10.42.4.225
|   test.baidu.com - 180.76.134.214
|   mysql.baidu.com - 221.192.153.42
|   devtest.baidu.com - 123.129.254.15
|   adserver.baidu.com - 123.129.254.15
|   test1.baidu.com - 221.192.153.42
|   news.baidu.com - 61.135.185.119
|   dhcp.baidu.com - 123.129.254.15
|   alerts.baidu.com - 221.192.153.42
|   test2.baidu.com - 123.129.254.15
|   noc.baidu.com - 123.129.254.15
|   direct.baidu.com - 123.129.254.15
|   alpha.baidu.com - 123.129.254.15
|   ns.baidu.com - 123.129.254.15
|   dmz.baidu.com - 123.129.254.15
|   testing.baidu.com - 123.125.65.117
|   testing.baidu.com - 123.125.112.68
|   ap.baidu.com - 221.192.153.42
|   ns0.baidu.com - 123.129.254.15
|   dns.baidu.com - 202.108.22.220
|   upload.baidu.com - 123.129.254.15
|   http.baidu.com - 221.192.153.42
|   apache.baidu.com - 123.129.254.15
|   dns0.baidu.com - 123.129.254.15
|   ns1.baidu.com - 202.108.22.220
|   id.baidu.com - 106.120.159.12
|   app.baidu.com - 123.125.112.120
|   app.baidu.com - 61.135.185.124
|   dns1.baidu.com - 220.181.38.10
|   vnc.baidu.com - 221.192.153.42
|   ns2.baidu.com - 61.135.165.235
|   images.baidu.com - 112.80.248.122
|   apps.baidu.com - 123.125.115.49
|   voip.baidu.com - 111.206.45.40
|   ns3.baidu.com - 220.181.37.10
|   dns2.baidu.com - 123.129.254.15
|   info.baidu.com - 123.125.114.22
|   appserver.baidu.com - 123.129.254.15
|   vpn.baidu.com - 61.135.165.126
|   ntp.baidu.com - 10.48.28.94
|   aptest.baidu.com - 123.129.254.15
|   web.baidu.com - 10.48.30.87
|   ops.baidu.com - 123.125.114.197
|   internet.baidu.com - 61.135.185.119
|   en.baidu.com - 123.129.254.15
|   web2test.baidu.com - 221.192.153.42
|   oracle.baidu.com - 123.129.254.15
|   intra.baidu.com - 123.129.254.15
|   erp.baidu.com - 10.42.7.18
|   backup.baidu.com - 123.129.254.15
|   whois.baidu.com - 221.192.153.42
|   owa.baidu.com - 123.129.254.15
|   intranet.baidu.com - 123.129.254.15
|   beta.baidu.com - 123.129.254.15
|   wiki.baidu.com - 10.42.7.70
|   pbx.baidu.com - 123.129.254.15
|   blog.baidu.com - 123.129.254.15
|   ipv6.baidu.com - 220.181.57.216
|   ipv6.baidu.com - 123.125.114.144
|   ipv6.baidu.com - 220.181.57.217
|   www.baidu.com - 61.135.169.121
|   www.baidu.com - 61.135.169.125
|   s3.baidu.com - 123.125.115.180
|   ipv6.baidu.com - 2400:da00:0:0:0:dbf:0:100
|   cdn.baidu.com - 10.42.231.41
|   lab.baidu.com - 61.135.185.144
|   lab.baidu.com - 123.125.112.77
|   www2.baidu.com - 123.125.114.29
|   secure.baidu.com - 123.129.254.15
|   chat.baidu.com - 123.129.254.15
|   ldap.baidu.com - 123.129.254.15
|   xml.baidu.com - 221.192.153.42
|   server.baidu.com - 221.192.153.42
|   citrix.baidu.com - 123.129.254.15
|   linux.baidu.com - 10.99.31.43
|   shop.baidu.com - 123.125.112.68
|   shop.baidu.com - 123.125.65.117
|   cms.baidu.com - 10.26.7.93
|   local.baidu.com - 123.125.115.105
|   sip.baidu.com - 61.135.165.108
|   corp.baidu.com - 123.129.254.15
|   log.baidu.com - 10.26.39.14
|   eshop.baidu.com - 123.129.254.15
|   smtp.baidu.com - 221.192.153.42
|   crs.baidu.com - 123.125.114.59
|   mail.baidu.com - 61.135.163.38
|   exchange.baidu.com - 123.129.254.15
|   sql.baidu.com - 10.26.5.23
|   cvs.baidu.com - 123.129.254.15
|   mail2.baidu.com - 123.129.254.15
|   f5.baidu.com - 123.129.254.15
|   database.baidu.com - 123.129.254.15
|   mail3.baidu.com - 202.108.22.171
|   fileserver.baidu.com - 221.192.153.42
|   db.baidu.com - 61.135.186.206
|   mailgate.baidu.com - 123.129.254.15
|   firewall.baidu.com - 221.192.153.42
|   main.baidu.com - 123.129.254.15
|   squid.baidu.com - 221.192.153.42
|   dev.baidu.com - 61.135.185.212
|   forum.baidu.com - 123.129.254.15
|   manage.baidu.com - 123.129.254.15
|   ssh.baidu.com - 123.129.254.15
|   ftp.baidu.com - 221.192.153.42
|   mgmt.baidu.com - 123.129.254.15
|   ssl.baidu.com - 10.42.7.217
|   ftp0.baidu.com - 123.129.254.15
|   mirror.baidu.com - 10.11.250.228
|   git.baidu.com - 10.42.4.104
|   stage.baidu.com - 123.129.254.15
|   mobile.baidu.com - 123.125.112.120
|   mobile.baidu.com - 61.135.185.124
|   gw.baidu.com - 123.129.254.15
|   help.baidu.com - 123.125.112.108
|   helpdesk.baidu.com - 123.129.254.15
|   home.baidu.com - 123.125.114.197
|   monitor.baidu.com - 10.94.25.52
|   mssql.baidu.com - 123.129.254.15
|_  mta.baidu.com - 123.129.254.15
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 9.61 seconds
root@Wing:~# 


从以上输出的结果可以得知,所有有关的子域名及服务器都被dns-brute脚本枚举出来。该脚本可以使用“dns-brute.threads=线程”指定线程来加快或减少破解速度,使用dns-brute. hostlist=./hostfile.txt指定一个需要枚举的列表。

表7.13所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——HTTP信息搜集。

表7.13 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

使用Nmap可以扫描HTTP的版本,从而得知当前版本的漏洞,例如,Apache、IIS7、Nginx的畸形漏洞在相应的低版本中都会存在,使用Nmap可以非常简单地发现这些漏洞。

使用-sV选项即可对HTTP版本进行探测。

root@Wing:~# nmap -sV -p 80 www.0day.com

Starting Nmap 6.47 ( http://nmap.org

 ) at 2015-06-28 16:18 CST
Nmap scan report for www.0day.co (210.209.122.120)
Host is up (0.0065s latency).
PORT  STATE SERVICE VERSION
80/tcp open http  ASERVER/1.2.9-3

Service detection performed. Please report any incorrect results at http://nmap.org/submit/

 .
Nmap done: 1 IP address (1 host up) scanned in 13.62 seconds
root@Wing:~# 


从输出的信息得知HTTP版本为ASERVER/1.2.9-3。

HTTP头是HTTP通信协议规定的请求和响应消息都支持的头域内容。

使用命令“nmap -p 80 --script=http-headers 目标地址”即可对目标地址进行HTTP头信息探测。

root@Wing:~# nmap -p 80 --script=http-headers baidu.com

Starting Nmap 6.47 ( http://nmap.org

 ) at 2015-06-28 16:23 CST
Nmap scan report for baidu.com (180.149.132.47)
Host is up (0.031s latency).
Other addresses for baidu.com (not scanned): 220.181.57.217 123.125.114.144
PORT  STATE SERVICE
80/tcp open http
| http-headers: 
|  Date: Sun, 28 Jun 2015 08:23:50 GMT
|  Server: Apache
|  Cache-Control: max-age=86400
|  Expires: Mon, 29 Jun 2015 08:23:50 GMT
|  Last-Modified: Tue, 12 Jan 2010 13:48:00 GMT
|  ETag: "51-4b4c7d90"
|  Accept-Ranges: bytes
|  Content-Length: 81
|  Connection: Close
|  Content-Type: text/html
|  
|_ (Request type: HEAD)

Nmap done: 1 IP address (1 host up) scanned in 0.59 seconds
root@Wing:~# 


从以上输出的结果可以得知服务器时间为Sun, 28 Jun 2015 08:23:50 GMT,服务器HTTP程序为Apache、接受范围、内容长度、连接状态,内容类型为text/html。

掌握目标网站的目录结构是信息搜集中尤为重要的一步,通过Nmap的http-sitemap- generator脚本可以快速获取到信息。

使用命令“nmap -p 80 --script=http-sitemap-generator 目标地址”即可爬行Web目录结构。

root@Wing:~# nmap -p 80 --script=http-sitemap-generator www.baidu.com

Starting Nmap 6.47 ( http://nmap.org

 ) at 2015-06-28 16:28 CST
Nmap scan report for www.baidu.com (61.135.169.125)
Host is up (0.0031s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.121
PORT  STATE SERVICE
80/tcp open http
| http-sitemap-generator: 
|  Directory structure:
|   /
|    Other: 3; ico: 1
|   /cache/sethelp/
|    Other: 1; html: 1
|   /cache/sethelp/img/
|    png: 3
|   /duty/
|    Other: 1
|   /gaoji/
|    html: 1
|   /img/
|    gif: 1; png: 1; svg: 1
|   /js/
|    js: 1
|   /more/
|    Other: 1
|   /search/
|    html: 1
|  Longest directory structure:
|   Depth: 3
|   Dir: /cache/sethelp/img/
|  Total files found (by extension):
|_  Other: 6; gif: 1; html: 3; ico: 1; js: 1; png: 4; svg: 1

Nmap done: 1 IP address (1 host up) scanned in 1.89 seconds
root@Wing:~#


从以上输出的结果可以得知网站的目录结构,可以看到目录下包含的文件有多,Nmap对其都有很详细的统计。

表7.14所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——枚举SSL密钥。

表7.14 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

SSL(Secure Sockets Layer,安全套接层)及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

SSL协议使用密钥对数据进行加密,这样可以最大程度保障数据的安全,通过发送SSLv3/TLS请求可以判断目标服务器支持的密钥算法和压缩方法。

使用命令“nmap -p 443 --script=ssl-enum-ciphers目标”即可枚举SSL密钥。

root@Wing:~# nmap -p 443 --script=ssl-enum-ciphers www.baidu.com

Starting Nmap 6.47 ( http://nmap.org

 ) at 2015-06-28 16:43 CST
Nmap scan report for www.baidu.com (61.135.169.121)
Host is up (0.0034s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.125
PORT  STATE SERVICE
443/tcp open https
| ssl-enum-ciphers: 
|  SSLv3: 
|   ciphers: 
|    TLS_RSA_WITH_AES_128_CBC_SHA - strong
|    TLS_RSA_WITH_AES_256_CBC_SHA - strong
|    TLS_RSA_WITH_RC4_128_SHA - strong
|   compressors: 
|    NULL
|  TLSv1.0: 
|   ciphers: 
|    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|    TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|    TLS_RSA_WITH_AES_128_CBC_SHA - strong
|    TLS_RSA_WITH_AES_256_CBC_SHA - strong
|    TLS_RSA_WITH_RC4_128_SHA - strong
|   compressors: 
|    NULL
|  TLSv1.1: 
|   ciphers: 
|    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|    TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|    TLS_RSA_WITH_AES_128_CBC_SHA - strong
|    TLS_RSA_WITH_AES_256_CBC_SHA - strong
|    TLS_RSA_WITH_RC4_128_SHA - strong
|   compressors: 
|    NULL
|  TLSv1.2: 
|   ciphers: 
|    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
|    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
|    TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|    TLS_RSA_WITH_AES_128_CBC_SHA - strong
|    TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
|    TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
|    TLS_RSA_WITH_AES_256_CBC_SHA - strong
|    TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
|    TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|    TLS_RSA_WITH_RC4_128_SHA - strong
|   compressors: 
|    NULL
|_ least strength: strong

Nmap done: 1 IP address (1 host up) scanned in 1.38 seconds
root@Wing:~# 


从以上输出的结果中可以得知百度支持的密钥算法。其中,SSLv3版本中的密钥算法有:TLS_RSA_WITH_AES_128_CBC_SHA - strong、TLS_RSA_WITH_AES_256_CBC_SHA - strong、TLS_RSA_WITH_RC4_128_SHA - strong。

表7.15所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——SSH服务密钥信息探测。

表7.15 本节所需命令

脚  本

解  释

--script ip-geolocation-*

IP信息搜集

whois

WHOIS查询

http-email-harvest

搜集E-mail信息

hostmap-ip2hosts

IP反查

dns-brute

DNS信息搜集

membase-http-info

检索系统信息

smb-security-mode.nse

后台打印机服务漏洞

smb-check-vulns.nse

系统漏洞扫描

http-stored-xss.nse

扫描Web漏洞

snmp-win32-services

通过Snmp列举Windows服务/账户

dns-brute

枚举DNS服务器的主机名

http-headers/http-sitemap-generator

HTTP信息搜集

ssl-enum-ciphers

枚举SSL密钥

ssh-hostkey

SSH服务密钥信息探测

SSH是英文Secure Shell的简写形式。通过使用SSH,可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP,甚至为PPP提供一个安全的“通道”。

SSH协议是通过密钥的方式把所有传输的数据进行加密从而保证数据的安全,在Nmap脚本中,ssh-hostkey可以查看SSH服务的密钥信息。

使用命令:

root@Wing:~# nmap -p 22 --script ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1

Starting Nmap 6.47 ( http://nmap.org

 ) at 2015-06-28 16:54 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (-2000s latency).
PORT  STATE SERVICE
22/tcp open ssh
| ssh-hostkey: 
|  ssh-dss AAAAB3NzaC1kc3MAAACBANaDh41IQb9ZDrAbyoteJ35K5km2+HBNgdIcRchq8B2nwJpb2U4LYI fQckxwCrR5/KnPbH3qjrtBPFJEAkNVt45fihpr0u2dAauBXmhvI52ik94Tv3IBWngqeNd8bGDN/hGSbTwYHZ+VeeoEs2AvB6TZTwSN6eSJGEGb+XyKj9EhAAAAFQCBJ5KKNO7sx6AspWvgUCxRzxNfFwAAAIAZtaRgXfrkOjJ22k8ab4Jzo8fjqbSNOSnHcTL+KUM5ZwJqa3ZoBJ9eJH9GMbon+JZq9K6OG7/sYYlSjyTOKHQOh4aMtTmg9gLkuXS/c5//sYILKCojQx1FSsBGP+w0qdlYEtp3K8EC6ugl0+i6X8aVyPXeFYK1aGvWovOlhVS35AAAAIAvaYGAw4nxk2fRNoq6RVdufAXg7CtSxvOKxge15BtTb2KSmdOV2gC+XIOF5805Ii0jgUWpeG3adhl+BAzXJGrqyEJ+pNCTkEzBpbfufra17xoDWv9e17lHwlVyq3tXdR4485QOThGmuH/Av49LBDd5vlC9ubzlsRWGKqRZi8iVPQ==
|  ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoSVYjeN/KGlhD8YnHvVPC5NoA/Kc5bR9o59jpdDYhl E/LydODrz1Er928t0zxPIUAIA79nQqRYnSPMX6rslc/+POi1an+c/aVqIZwnqnAoB1doztCE8gTh+6D8JlTavvJmAmH0acanwlFJum2/LA3925EmXBoWz0MGgXj71K5u8fpH3EI30SqlT4S4PiyKLcJ8fZrt3bEmSfSDF2aXA712UddrMxvfAM632c7//3zNS0JTgFWlf9gjqBBWPm5PYAiuldC5WitEWylq/CJ5fySTdB/uPUHH7lVw8MF8ax4lsCsBrd62Yr33Zw0LnjZN9pSDrbxaQJIyFdwI2ndl/Vx
|_ ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMHxS5qBA 7hSQOOSRyXz5nXYpLZaTWtZcFeDbcvDPut+FZgJ2Dmy0b6IluVgF0YX9cfawoILIWgWpyP8feH9QC0=

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
root@Wing:~# 


从以上返回的结果得知,目标主机包含ssh-dss、ssh-rsa、ecdsa-sha2-nistp256 3种加密方式。命令中的参数ssh_hostkey指的是密钥输出的格式,有4种格式,分别是full、bubble、visual和all。