1.概述
1.1渗透测试概述
渗透测试(Penetration Test)是指安全工程师尽可能完整摸拟黑客使用的漏洞发现技术和攻击手段,对目标网络/系统/主机/应用的安全性做深入的探测,发现系统最脆弱的环节的过程,渗透测试能够直观的让管理人员知道自己网络面临的问题。
渗透测试是一种专业的安全服务,类似于军队里的“实战演习”或者“沙盘推演”,通过实战和推演,让用户清晰了解目前网络的脆弱性、可能造成的影响,以便采取必要的防范措施。
1.2为客户带来的利益
从渗透测试中,客户能够得到的收益至少有: 1)协助用户发现组织中的安全最短板,协助企业有效的了解目前降低风险的初始任务; 2)一份文档齐全有效的渗透测试报告有助于组织IT管理者以案例说明目前安全现状,从而增强信息安全认知程度,甚至提高组织在安全方面的预算; 3)信息安全是一个整体工程,渗透测试有助于组织中的所有成员意识到自己岗位同样可能提高或降低风险,有助于内部安全的提升; 当然,渗透测试并不能保证发现目标网络中所有的弱点,因此我们不宜片面强调它的重要性。
2.涉及的技术
我们简单介绍渗透测试的各个阶段可能会用到的一些工具。
2.1预攻击阶段
基本网络信息获取
♦Ping目标网络得到IP地址和ttl等信息
♦采用FWtester、hping3等工具进行防火墙规则探测
♦Google、yahoo、baidu等搜索引擎获取目标信息
♦Nmap对网站进行端口扫描并判断操作系统类型
♦Curl获得目标web基本信息
♦Netcraft获取目标可能存在的域名、web及服务器信息
♦Whois结果
♦Tcptraceroute等traceroute的结果
♦……
常规漏洞扫描和采用商用软件进行检测
♦结合使用xscan与Nessu等商用或免费扫描工个进行漏洞扫描
♦采用Solarwind对网络设备等进行发现
♦采用nikto、webinspect等软件对web常见漏洞进行扫描
♦采用如AppDetective之类的商用软件对数据库进行扫描分析
♦……
对Web和数据库应用进行分析
♦采用Webproxy、SPIKEProxy、webscarab、ParosProxy、Absinthe等工具进行分析
♦用Ehtereal进行抓包协助分析
♦用webscan、fuzzer进行SQL注入和XSS漏洞初步分析
♦手工检测SQL注入和XSS漏洞
♦采用类似OScanner工具对数据库进行分析
♦……
对应用分析的注意事项
♦检查应用系统架构、防止用户绕过系统直接修改数据库……
♦检查身份认证模块,防止非法用户绕过身份验证
♦检查数据库接口模块,防止用户获取系统权限
♦检查其他安全威胁
♦……
2.2攻击阶段
基于通用设备、数据库、操作系统和应用的攻击
可以采用各种公开及私有的缓冲区溢出程序代码,
基于应用的攻击
基于Web、数据库或特定的B/S或C/S结构的网络应用程序存在的弱点进行攻击,常见的如SQL注入攻击、跨站脚本攻击等。
口令猜解技术
口令是信息安全里永恒的主题,通过弱口令获取权限者不在少数。进行口令猜解可以用X-scan、Brutus、Hydra、溯雪等工具。
2.3后攻击阶段
口令嗅探与键盘记录
嗅探、键盘记录、木马等软件,功能简单,但要求不被防病毒软件发觉,因此通常需要自行开发或修改。
口令破解
有许多口令破解工具,如L0phtCrack、John the Ripper、Cain等。
2.4其他手法
这里列出的方法,有些可能对用户的网络造成较大的影响(如服务中断),有的则与安全管理密切相关,有的则需要到现场才能进行作业,因此通常情况下较少采用。但可以根据客户的需求状态进行判断。 ♦DoS&DDoS
♦客户端攻击
♦社交工程方法
3.操作中的主要事项
3.1测试前提供给渗透测试者的资料
3.3.1黑箱测试
黑箱测试又被称为所谓的“zero-knowledge testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。
3.1.2白盒测试
白盒测试与黑箱测试恰恰相反,测试者可以通过正常的渠道向被单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的交流。这类测试的目的是模拟企业内部雇员的越权操作。
3.1.3隐秘测试
隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试,因此能够监测网络中出现的变化,但隐性测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得否到位。
3.2攻击路径
测试目标不同,涉及需要采用的技术也会有一定差异,因此下面简单说明在不同位置、攻击路径不同时可能采用的技术。
3.2.1内网测试
内网测试指的是渗透测试人员由内部网络发起测试,这类测试能够模拟企业内部违规操作者的行为。内网测试绕过了防火墙的保护。内部主要可能采用的渗透方式:
♦远程缓冲区溢出;
♦口令猜测;
♦B/S或C/S应用程序测试(如果涉及C/S程序测试,需要提前准备相关客户端软件供测试使用)3.2.2外网测试 ♦对网络设备的远程攻击; ♦口令管理安全性测试; ♦防火墙规则试探、规避; ♦Web及其它开放应用服务的安全性测试。
3.2.3不同网段/vian之间的渗透
这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan进行渗透,这类测试通常可能用到的技术包括:
这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan进行渗透,这类测试通常可能用到的技术包括: ♦对网络设备的远程攻击; ♦对防火墙的远程攻击或规则探测、规则尝试;
3.3实施流程
3.3.1渗透测试流程
3.3.2实施方案制定、客户书面同意
合法性即客户书面授权委托,并同意实施方案是进行渗透测试的必要条件。渗透测试首先必须将实施方法、实施时间、实施人员、实施工具等具体的实施方案提交给客户,并得到客户的相应书面委托和授权。
应该做到客户对渗透测试所有细节和风险的知晓,所有过程都在的控制下进行,这也是专业渗透测试与黑客入侵本质的不同。3.3.3信息收集分析
信息收集是每一步渗透攻击的前提,通过信息收集可以有针对性地制定模拟攻击测试计划,提高模拟攻击的成功率,同时可以有效的降低攻击测试对系统正常运行造成的不利影响。
信息收集的方法包括Ping sweep、DNS Sweep、DNS zone transfer、操作系统指纹判别、账号扫描、配置判别等。信息收集常用的工具包括商业网络安全漏洞扫描软件(例如:极光),免费安全检测工具(例如:NMAP、NESSUS),操作系统内置的许多功能(例如:TELNET、NSLOOKUP、IE等)也可能作为信息收集的有效工具。
3.3.4内部计划制定、二次确认
根据客户设备范围和项目时间计划,并结合前一步的信息收集得到的设备存活情况、网络拓扑情况以及扫描得到的服务开放情况、漏洞情况制定内部的详细实施计划。具体包括每个地址下一步可能采用的测试手段,详细时间安排,并将以下一步工作的计划和时间安排与客户进行确认。
3.3.5取得权限、提升权限
通过初步的信息收集分析,存在两种可能,一种是目标系统存在重在的安全弱点,测试可能直接控制目标系统;另一种是目标系统没有远程重大的安全弱点,但是可以获得普通用户权限,这时可以通过该用户权限进一步收集目标系统信息。接下来尽最大努力取得超级用户权限、收集目标主机资料信息,寻求本地权限提升的机会。这样不停的进行信息收集分析、权限提升的结果形成了整个渗透测试过程。
3.3.6生成报告
渗透测试之后,测试者将会提供一份渗透测试报告。报告将会十分详细的说明渗透测试过程中得到的数据和信息,并且将会详细的纪录整个渗透测试的全部操作。
3.4风险规避措施、
3.4.1渗透测试时间与策略
3.4.1.1时间选择
为减轻渗透测试对网络和主机的影响,渗透测试时间尽量安排在业务量不大的时段或晚上。(时间可以协调)
3.4.1.2攻击策略集选择
为防止渗透测试造成网络和主机的业务中断,在渗透测试中不使用含有拒绝服务的测试策略。
3.4.1.3保守策略选择
对于不能接受任何可能风险的主机系统,如银行票据核查系统、电力调度系统等,可选择如下保守策略: ♦复制一份目标环境,包括硬件平台、操作系统、数据库管理系统、应用软件等。 ♦对目标的副本进行渗透测试。
3.4.2系统备份和恢复
3.4.2.1系统备份
为防止在渗透测试过程中出现的异常发问,所有被评估系统均应在被评估之前作一次完整的系统备份或者关闭正在进行的操作,以便系统发生灾难后及时恢复。
3.4.2.2系统恢复
在渗透测试过程中,如果出现被评估系统没有响应或中断的情况,应当立即停止测试工作,与客户方配合人员一起分析情况,在确定原因后,及时恢复系统,并采取必要的预防措施(比如调整测试策略)之后,确保对系统无影响,并经客户方同意之后才可能继续进行。
3.4.3工程中合理沟通的保证
在工程实施过程中,确定不同阶段的测试人员以及客户方的配合人员,建立直接沟通的渠道,并在工程出现难题的过程中保持合理沟通。
3.4.4系统检测
在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行监控(可能提高渗透测试的成本)。
3.4.4.1测试方自控
由测试者对本次测试过程中的三方面数据进行完整记录
♦操作;
♦响应;
♦分析。
最终形成完整有效的渗透测试报告提交给用户。
3.4.4.2用户监控
可以用三种形式:
♦全程监控:采用类似Ethereal或Sniffer Pro的嗅探软件进行全程抓包嗅探。优点是全过程都能完整记录。缺点是数据量太大,不易分析;需要大容量存储设备。
♦择要监控:对扫描过程不进行建制,仅仅在安全工程师分析数据后,准备发起渗透前,才开启类似Ethereal或Sniffer Pro的嗅探软件进行嗅探。
♦主机监控:仅监控受测主机的存活状态,避免意外情况的发生,目前国内应用比较多的是这种监控手段。
3.5其他
♦测试前将所有工具的漏洞数据库都升级至最新版本;
♦测试时最好通过专门的渗透测试代理服务器进行操作,在代理服务器可以方便进行操作的监控,也能够为客户提供一个专门用于渗透测试的IP地址;
♦后攻击阶段的操作如果确实必要,也应该先知会客户,然后进行操作。
4.渗透测试实施及报表输出
4.1实际操作过程
4.1.1预攻击阶段的发现
♦目标主机系统情况探测
1)操作系统类型
探明:使用windows 2000操作系统,IIS为5.0
2)开放端口
3)可利用服务情况:WEB服务(80),数据库服务(SQL server 2000)
4.1.2攻击阶段的操作
寻找脚本漏洞
存在可以被利用的安全漏洞。
获得远程主机交互界面
寻找上传文件方式:tftp方式、ftp方式
4.1.3后攻击阶段可能造成的影响
攻击者如果成功完成这一步后,可以做的工作包括:获取shell,并尝试提升权限,破解口令,装载木马,口令嗅探等,甚至有可能渗透管理员或企业内部网络的机器等。
♦获得管理员权限
4.2渗透测试报告
详细记录描述渗透测试过程,提出加固建议。
5.结束语
本测试方案用简洁的方式说明了渗透测试的操作过程。
一、项目背景随着信息系统的不断建设和信息设备的不断增多,面对
1、系统安全设计原则 由于在网络环境下,任何用户对任何资源
1.概述1.1渗透测试概述 渗透测试(Penetratio…
项目背景:随着某公司信息化建设的迅速发展,特别是面向全国、面