安全测试工具Metasploit与漏洞扫描

发表于:2017-2-28 10:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:kaitoulee    来源:51Testing软件测试网采编

  一、漏洞及漏洞发掘方法
  漏洞,是指在硬件、软件、协议实现或系统安全策略上存在缺陷,攻击者能够在未授权的情况下对系统进行访问或破坏。它会成为入侵者侵入系统和植入恶意软件的入口,影响系统用户的切身利益。漏洞与目标系统的操作系统版本、软件版本以及服务设置密切相关。研究漏洞必须要了解当前计算机系统及其安全问题的最新发展动态。常见的漏洞包括缓冲区溢出漏洞、跨站脚本漏洞(XSS)、SQL注入漏洞、数据库漏洞以及WEB应用漏洞等。
  常见的漏洞发掘方法分为以下几种。
  ·  黑盒攻击(Fuzzing):即通过注入数据进行自动化测试
  ·  获取攻击对象的源代码进行审计:网络上有很多源代码审计工具可供使用,如Fortify。
  ·  反汇编审计:如果无法获取到源代码,可以基于汇编码进行反汇编审计。IDA是一款常用的反汇编软件。
  ·  动态跟踪分析:通过记录程序在不同条件下执行操作(如文件操作),分析这些操作序列是否存在问题。
  ·  补丁比较:厂商软件的问题通常都会在补丁中解决,如微软Windows操作系统会不定期发布补丁程序,通过对比补丁前后文件的源码(或反汇编码)就能了解漏洞的具体细节。
  目前,针对常用的漏洞发掘方法已经开发出了很多漏洞扫描工具。漏洞扫描工具是一种能在计算机、信息系统、网络及应用软件中查找安全弱点的程序。通过对目标系统进行探测,向目标系统发送数据,并将反馈结果与漏洞特征库进行匹配,分析出目标系统上存在的安全漏洞。比较常用的漏洞扫描工具有Metasploit、Nmap、NeXpose、Nessus、Xscan等。
  二、Metasploit Framework工具简介
  Metasploit Framework是一个强大的开源平台,为渗透测试、shellcode 编写和漏洞研究提供了一个可靠环境。它集成了各种常见的溢出漏洞和shellcode ,并且不断更新。当前版本收集了上千个实用的溢出攻击程序及一些辅助工具,操作简单,易用性好。当然,它不只是一个简单的收集工具,还提供了所有的类和方法,以便开发人员使用这些代码方便快速的进行二次开发。漏洞扫描只是Metasploit Framewotk众多功能中的一种,本文只介绍它的漏洞扫描功能。
  Metasploit Framework的总体架构如图1所示,它包含Exploit、Auxiliary、Payload等多个模块:
  ·  Exploit是攻击模块,基本上目前所有的操作系统在Metasploit Framework上均有对应的攻击模块;
  ·  Auxiliary是辅助模块,用途非常广泛,它可以作为扫描器、拒绝服务攻击工具、Fuzz测试器,以及其他类型的工具;
  ·  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扫描出的数量有明显的差异。通过对不同工具的扫描结果进行对比分析,对了解扫描工具本身,和更精确地确定目标系统存在的漏洞都是非常有帮助的。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号