渗透测试的了解


概述

渗透测试(Penetration Testing),就是一种通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法


一、渗透测试分类

1. 黑盒测试/外部测试

黑盒测试(Black-box Testing)也称为外部测试(External Testing)没有任何目标网络内部拓 扑等相关信息。他们完全模拟真实网络环境中的外部攻击者,采用流行的攻击技术与工具, 有组织、有步骤地对目标组织进行逐步渗透和入侵
黑盒测试的缺点是测试较为费时和费力,同时需要渗透测试者具备较高的
技术能力
优点在于,这种类型的测试更有利于挖掘出系统潜在的漏洞,以及脆弱环
节和薄弱点等


2. 白盒测试/内部测试

白盒测试(White-box Testing)也称为内部测试(Internal Testing)白盒测试的实施流程与黑盒测试类似,不同之处在于无须进行目标定位和情报收集。渗透测试人员可以通过正常渠道从被测试机构取得 各种资料,如网络拓扑、员工资料甚至网站程序的代码片段等,也可以和单位其他员工进 行面对面沟通
白盒测试优点是发现和解决安全漏洞所花费的时间 和代价要比黑盒测试少很多
白盒测试的缺点是无法有效地测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对特定攻击的检测效率


3. 灰盒测试/组合测试

灰盒测试(Grey-box Testing)是白盒测试和黑盒测试基本类型的组合,
它可以提供对目标系统更加深入和全面的安全审查。组合之后的好处就是
能够同时发挥这两种渗透测试 方法的优势


二、渗透测试-目标分类

1、主机操作系统渗透

对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。

2、数据库系统渗透

对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应用系统进行渗透测试。

3、应用系统渗透

对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。

4、网络设备渗透

对各种防火墙、入侵检测系统、网络设备进行渗透测试


三、渗透测试过程(七个阶段)

1. 前期交互阶段(Pre-Engagement Interaction)

在前期交互(Pre-Engagement Interaction)阶段,渗透测试团队与客户组织进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件以及服务合同细节

2. 情报搜集阶段(Information Gathering)

在目标范围确定之后,将进入情报搜集(Information Gathering)阶段,渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关目标组织网络拓扑、系统配置与安全防御措施的信息。

3. 威胁建模阶段(Threat Modeling)

在搜集到充分的情报信息之后,渗透测试团队的成员们停下敲击键盘,大家聚到一起针对获取的信息进行威胁建模(Threat Modeling)与攻击规划。这是渗透测试过程中非常重要,但很容易被忽视的一个关键点

4. 漏洞分析阶段(Vulnerability Analysis)

在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访
问控制权,即漏洞分析(Vulnerability Analysis)阶段。

5. 渗透攻击阶段(Exploitation)

渗透攻击(Exploitation)是渗透测试过程中最具有魅力的环节。在此环节中,渗透测试团队需要利用他们所找出的目标系统安全漏洞,来真正入侵系统当中,获得访问控制权。

6. 后渗透攻击阶段(Post Exploitation)(清除痕迹)

后渗透攻击(Post Exploitation)是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。后渗透攻击(Post Exploitation)是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。

7. 报告阶段(Reporting)

渗透测试过程最终向客户组织提交,这份报告凝聚了团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案


四、渗透测试所用的工具

4.1nmap

Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

基本功能

(1)探测目标主机是否在线
(2)扫描主机端口,嗅探所提供的网络服务
(3)推断主机所用的操作系统 漏洞扫描

优点

  • 灵活
    支持数十种不同的扫描方式,支持多种目标对象的扫描

  • 强大
    Nmap可以用于扫描互联网上大规模的计算机

  • 可移植
    支持主流操作系统:Windows/Linux/Unix/MacOS等等;源码开放,方便移植

  • 简单
    提供默认的操作能覆盖大部分功能,基本端口扫描nmap targetip,全面的扫描nmap –A targetip

  • 自由
    Nmap作为开源软件,在GPL License的范围内可以自由的使用

  • 文档丰富
    Nmap官网提供了详细的文档描述。Nmap作者及其他安全专家编写了多部Nmap参考书籍

  • 社区支持
    Nmap背后有强大的社区团队支持


4.2Metasploit(MSF)

Metasploit框架(Metasploit Framework, MSF)是一个开源工具, 旨在方便渗透测试,它是由Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发、使用定制的工具模板。

4.2.1 Metasploit模块介绍

Auxiliaries (辅助模块)

该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。

Exploit (漏洞利用模块)

漏洞利用是指由渗透测试者利用一个系统、应用或者服务中的安全漏洞进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、Web应用程序攻击,以及利用配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种POC验证程序,用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。

Payload (攻击载荷模块)

攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码,在Metasploit框架中可以自由地选择、传送和植入。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等。

Post (后期渗透模块)

该模块主要用于在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、实施跳板攻击等。

Encoders (编码工具模块)

该模块在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件检测出来。

使用MSF渗透测试时,可以综合使用以上模块,对目标系统进行侦察并发动攻击,大致的步骤如下所示。

  • 扫描目标机系统,寻找可用漏洞。
  • 选择并配置一个漏洞利用模块。
  • 选择并配置一个攻击载荷模块。
  • 选择一个编码技术,用来绕过杀毒软件的查杀。
  • 渗透攻击。

渗透测试的意义

渗透测试是站在第三者的角度来思考企业系统的安全性的,通过渗透测试可以发觉企业潜在却未纰漏的安全性问题。企业可以根据测试的结果对内部系统中的不足以及安全脆弱点进行加固以及改善,从而使企业系统变得更加安全,减低企业的风险

猜你喜欢

转载自blog.csdn.net/G6_12/article/details/131077650