Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹
Nmap工具的准备工作
当用户对Nessus工具有清晰的认识后,即可使用该工具实施扫描。但是,在扫描之前需要做一些准备工作,如探测网络中活动的主机、主机中运行的服务及主机的操作系统等。当用户对一个主机比较熟悉后,进行扫描也就非常容易了。因为对于Nessus工具,针对不同的系统、漏洞都提供了相应的插件。如果用户对目标主机很了解的话,使用Nessus工具扫描目标就不会像个无头苍蝇似的瞎扫描。而且,可以更容易获取到非常有价值的信息了。本章将介绍实施网络扫描之前的一些准备工作。
Nmap工具发现主机
发现主机就是探测网络中活动的主机。发现主机是实施网络渗透测试的基础。因为用户只有先确定目标主机是活动的,才可以实施扫描。否则,执行的操作也是浪费时间。 其中,用户用于发现主机的工具有很多,如Nmap、Scapy、Wireshark等。下面将介绍使用Nmap和Wireshark抓包的方法,实施主机发现操作。
使用Nmap工具
Nmap是一款免费开放的网络扫描和嗅探工具。该工具可以用来扫描电脑上开放的端口、运行的服务及操作系统等。下面将介绍使用Nmap工具实施发现主机。
【示例2-5】使用Nmap工具扫描192.168.1.0/24网络中活动的主机。执行命令如下所示:
- Starting Nmap 6.47 ( http://nmap.org ) at 2015-07-02 11:20 CST
- Nmap scan report for localhost (192.168.1.1)
- Host is up (0.00048s latency). #主机是活动的
- MAC Address: 14:E6:E4:84:23:7A (Tp-link Technologies CO.)
- Nmap scan report for localhost (192.168.1.100)
- Host is up (0.089s latency).
- MAC Address: 8C:BE:BE:72:D2:64 (Xiaomi Technology Co.)
- Nmap scan report for localhost (192.168.1.101)
- Host is up (0.00015s latency).
- MAC Address: 00:E0:1C:3C:18:79 (Cradlepoint)
- Nmap scan report for localhost (192.168.1.103)
- Host is up (0.00061s latency).
- MAC Address: 00:0C:29:F8:2B:38 (VMware)
- Nmap scan report for localhost (192.168.1.104)
- Host is up (0.00091s latency).
- MAC Address: 00:0C:29:2A:69:34 (VMware)
- Nmap scan report for localhost (192.168.1.105)
- Host is up (0.00096s latency).
- MAC Address: 00:0C:29:DC:09:2A (VMware)
- Nmap scan report for localhost (192.168.1.106)
- Host is up (0.32s latency).
- MAC Address: 14:F6:5A:CE:EE:2A (Xiaomi)
- Nmap scan report for localhost (192.168.1.109)
- Host is up (0.00060s latency).
- MAC Address: 00:0C:29:E9:E3:A6 (VMware)
- Nmap scan report for localhost (192.168.1.108)
- Host is up.
- Nmap done: 256 IP addresses (9 hosts up) scanned in 2.78 seconds
从输出信息的最后一行可以看到,192.168.1.0/24网络中共有九台活动的主机。在输出信息中,显示了活动主机的IP地址、MAC地址、及MAC地址的生产厂商。例如主机192.168.1.1的MAC地址为14:E6:E4:84:23:7A,生成厂商为Tp-link Technologies CO。由此,可以猜测该主机可能是一个Tp-link路由器。
Wiresshark抓包
抓包就是利用抓包工具,捕获网络中的所有数据包。但是,如果仅使用工具抓包的话,只能抓取本机的数据。此时,用户需要通过集线器或端口镜像方法来捕获数据包。下面将介绍这两种方式捕获数据包的环境配置。
1.使用集线器
集线器的英文称为Hub,是“中心”的意思。集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。由于集线器在发送数据时,是没有针对性的,而是采用广播方式发送。也就是说,当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。因此,用户可以在局域网的某一主机上开启抓包工具,即可捕获到其它主机上传输的所有数据,如图2.1所示。
图2.45 使用集线器捕获包的环境配置
以上就是使用集线器,在有线局域网中捕获数据包的配置环境。上图表示整个局域网中,有三台主机同时连接在一个集线器上。此时,用户可以在任意一台上运行抓包工具(如Wireshark),即可捕获到其它两台主机上的数据包。如果用户无法捕获到其它主机发送的数据,则说明这些主机不在线。
下面是通过集线器捕获到的数据包,如图2.2所示。
图2.46 捕获的数据包
从该界面可以看到,共显示了七列,分别表示No(包编号)、Time(时间)、Source(源地址)、Destination(目标地址)、Protocol(协议)、Length(长度)和Info(信息)。这里用户应该关心的是Source(源地址)列。该列显示的是所有发送请求的主机地址。那么,用户应该如何判断这些地址,那个是本地局域网中活动主机的地址呢?首先,用户先确定本机的IP地址,即可找出局域网中活动主机的地址。在Window系统中,使用ipconfig命令查看主机的IP地址。在Linux系统中,使用ifconfig命令查看。本机中的IP地址信息如下所示:
- C:\Users\Administrator>ipconfig
- Windows IP 配置
- 以太网适配器 本地连接:
- 连接特定的 DNS 后缀 . . . . . . . :
- 本地链接 IPv6 地址. . . . . . . . : fe80::f898:1066:74a5:e126%11
- IPv4 地址 . . . . . . . . . . . . : 192.168.1.105
- 子网掩码 . . . . . . . . . . . . : 255.255.255.0
- 默认网关. . . . . . . . . . . . . : 192.168.1.1
从输出信息中,可以看到本机的IP地址为192.168.1.105。由此,可以说明当前主机所在的网络为192.168.1.0/24。所以,局域网中其它主机的地址是在192.168.1.0/24范围内。此时,用户可以对捕获包中的Source列进行排序,然后找出192.168.1.0/24范围内的地址,也就是该网络中活动主机的地址。单击列名Source即可进行排序,如图2.3所示。
图2.47 Source列排序后显示界面
从该界面显示的结果中,可以看到Source列有三个属于192.168.1.0/24范围内的IP地址。如192.168.1.1、192.168.1.104和192.168.1.105。也就是说,该网络中这三台主机是活动的。
2.使用端口镜像
端口镜像是路由器和交换机提供的一种功能。当在交换机或路由器上开启端口镜像功能的话,将会将一个或多个源端口的数据流量转发到某一个指定端口来实现对网络的监听,指定端口称之为“镜像端口”或“目的端口”。简单的说,就是其它端口的数据都会被转发到镜像端口上。此时,在镜像端口连接的主机上开启抓包工具,即可捕获到其它主机的数据包。其中,使用端口镜像捕获数据的环境如图2.4所示。
图2.48 使用路由器的端口镜像功能捕获数据包
按照以上环境配置好网络,即可开始捕获数据包。如果捕获到局域网中其它主机的包,则说明该主机在线。否则,不在线。具体分析方法和前面介绍使用集线器的方法相同。
Nmap工具端口扫描
当确定网络中活动的主机时,用户可以使用Nmap探测该主机上开启了哪些端口,以方便后面进行网络扫描。
【示例2-6】对目标主机RHEL 6.4进行端口扫描。执行命令如下所示:
- root@localhost:~# nmap 192.168.1.104
- Starting Nmap 6.47 ( http://nmap.org ) at 2015-07-02 11:30 CST
- Nmap scan report for localhost (192.168.1.104)
- Host is up (0.00051s latency).
- Not shown: 988 filtered ports
- PORT STATE SERVICE
- 21/tcp open ftp
- 22/tcp open ssh
- 25/tcp open smtp
- 53/tcp open domain
- 80/tcp open http
- 111/tcp open rpcbind
- 139/tcp open netbios-ssn
- 443/tcp closed https
- 445/tcp open microsoft-ds
- 631/tcp open ipp
- 3306/tcp open mysql
- 5432/tcp closed postgresql
- MAC Address: 00:0C:29:2A:69:34 (VMware)
- Nmap done: 1 IP address (1 host up) scanned in 5.04 seconds
从输出信息中,可以看到目标主机中开放的端口,及端口对应的服务。例如,21端口的服务是FTP、22端口的服务是SSH服务。
【示例2-7】扫描目标主机Windows XP中开放的端口。执行命令如下所示:
- root@localhost:~# nmap 192.168.1.109
- Starting Nmap 6.47 ( http://nmap.org ) at 2015-07-02 14:22 CST
- Nmap scan report for localhost (192.168.1.109)
- Host is up (0.00049s latency).
- Not shown: 989 closed ports
- PORT STATE SERVICE
- 21/tcp open ftp
- 25/tcp open smtp
- 80/tcp open http
- 135/tcp open msrpc
- 139/tcp open netbios-ssn
- 443/tcp open https
- 445/tcp open microsoft-ds
- 1025/tcp open NFS-or-IIS
- 1027/tcp open IIS
- 3389/tcp open ms-wbt-server
- 5000/tcp open upnp
- MAC Address: 00:0C:29:E9:E3:A6 (VMware)
- Nmap done: 1 IP address (1 host up) scanned in 0.39 seconds
从输出信息中,可以看到目标主机中开放的端口,如21、25、80等。
Nmap工具指纹识别
指纹识别是识别系统的一个典型模式,包括指纹图像获取、处理、特征提取和比对等模块。通常,指纹识别包括服务指纹信息和操作系统指纹信息。其中,服务指纹信息包括服务端口、服务名、版本及提供商等;操作系统指纹信息包括系统的版本、内核版本等。通过指纹识别,根据获取的信息可以判断出该主机是否存在漏洞,以便用户在后面实施扫描。
【示例2-8】识别目标主机RHEL 6.4中,所有服务的指纹信息。执行命令如下所示:
- root@localhost:~# nmap 192.168.1.104 -sV
- Starting Nmap 6.47 ( http://nmap.org ) at 2015-07-02 14:26 CST
- Nmap scan report for localhost (192.168.1.104)
- Host is up (0.00053s latency).
- Not shown: 988 filtered ports
- PORT STATE SERVICE VERSION
- 21/tcp open ftp vsftpd 2.2.2
- 22/tcp open ssh OpenSSH 5.3 (protocol 2.0)
- 25/tcp open smtp Postfix smtpd
- 53/tcp open domain
- 80/tcp open http Apache httpd 2.2.15 ((Red Hat))
- 111/tcp open rpcbind 2-4 (RPC #100000)
- 139/tcp open netbios-ssn Samba smbd 3.X (workgroup: MYGROUP)
- 443/tcp closed https
- 445/tcp open netbios-ssn Samba smbd 3.X (workgroup: MYGROUP)
- 631/tcp open ipp CUPS 1.4
- 3306/tcp open mysql MySQL 5.1.66
- 5432/tcp closed postgresql
- MAC Address: 00:0C:29:2A:69:34 (VMware)
- Service Info: Host: mail.benet.com; OS: Unix #主机名为mail.benet.com;操作系统为Unix
- Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
- Nmap done: 1 IP address (1 host up) scanned in 16.16 seconds
从输出信息中可以看到显示了四列信息,分别是PORT(端口)、STATE(状态)、SERVICE(服务)和VERSION(版本)。从VERSION列可以看到服务的版本和提供商。例如,FTP服务的端口为21,版本为2.2.2、提供商是vsftpd。
【示例2-9】对目标主机Windows XP实施操作系统指纹识别。执行命令如下所示:
- root@localhost:~# nmap -O 192.168.1.109
- Starting Nmap 6.47 ( http://nmap.org ) at 2015-07-02 14:54 CST
- Nmap scan report for localhost (192.168.1.109)
- Host is up (0.00028s latency).
- Not shown: 989 closed ports
- PORT STATE SERVICE
- 21/tcp open ftp
- 25/tcp open smtp
- 80/tcp open http
- 135/tcp open msrpc
- 139/tcp open netbios-ssn
- 443/tcp open https
- 445/tcp open microsoft-ds
- 1025/tcp open NFS-or-IIS
- 1027/tcp open IIS
- 3389/tcp open ms-wbt-server
- 5000/tcp open upnp
- MAC Address: 00:0C:29:E9:E3:A6 (VMware)
- Device type: general purpose #设备类型
- Running: Microsoft Windows 2000|XP #运行的操作系统
- OS CPE: cpe:/o:microsoft:windows_2000::- cpe:/o:microsoft:windows_2000::sp1 cpe:/o:microsoft:windows_2000::sp2 cpe:/o:microsoft:windows_2000::sp3 cpe:/o:microsoft:windows_2000::sp4 cpe:/o:microsoft:windows_xp::- cpe:/o:microsoft:windows_xp::sp1 #操作系统中央处理单元
- OS details: Microsoft Windows 2000 SP0 - SP4 or Windows XP SP0 - SP1 #操作系统详细信息
- Network Distance: 1 hop #网络距离
- OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
- Nmap done: 1 IP address (1 host up) scanned in 1.91 seconds
以上输出信息显示了操作系统相关的信息。如开放的端口、设备类型、运行的操作系统类型、中央处理单元及网络距离等。例如,设备类型为general|purpose、运行的操作系统为Microsoft Windows 2000/XP等。从操作系统详细信息行,可以看到该系统的补丁包可能是Windows 2000 SP0-SP4或Windows XP SP0-SP1。
(评估设置)、REPORT(报告设置)、ADVANCED(高级设置)、Credentials(证书)和Plugins(插件)进行设置。这些设置选项可以前面介绍的策略配置项是相同的,所以这里不再赘述。下面将介绍一下Schedule和Email Notifications选项的设置。其中,Schedule选项的设置界面如图4.33所示。
图2.49 Schedule配置
该界面是用来设置是否启用Schedule功能,默认是禁用的。如果用户希望启用该功能的话,则单击图标。启用后,显示界面如图4.34所示。
图2.50 设置Schedule
从该界面可以看到启用Schedule后,有三个配置项可进行设置。下面将对每个配置项的含义进行介绍,如下所示:
- q Launch:该选项是用来设置启动Schedule的时间。默认是Once,表示一次。用户还可以选择设置Daily(每天)、Weekly(每周)、Monthly(每月)或Yearly(每年)。
- q Starts On:该选项表示Schedule功能的开启时间。
- q Timezone:该选项是用来设置时区的。
- q Summary:显示了以上配置的摘要信息。
以上功能配置完后,单击Save按钮保存。Email Notifications选项的配置界面如图4.35所示。
图2.51 Email Notifications设置
该界面是用来设置是否启用邮件通知。但是,如果要配置该选项,则需要配置SMTP服务,否则将不会向邮件接收者发送通知。
本文选自:Nessus漏洞扫描基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!