第1章 渗透测试概述 ?1.信息安全发展史 ?2.信息安全行业的现状 ??????? 2.1渗透测试 ??????????? 2.1.1黑盒测试 ??????????????? 是指在对客户组织的产品一无所知的情况下模拟真实的入侵手段,对用户所需测试的产品进行渗透测试。 ??????????? 2.1.2白盒测试 ??????????????? 是指在拥有客户组织所有的资产信息的情况下进行渗透测试。 ??????? 2.2渗透测试的基本流程 ??????? 渗透测试是处于保护系统的目的,对目标系统进行的一系列测试,模拟黑客入侵的常见方法,从而寻找系统中存在的漏洞。渗透测试的基本流程主要分为8个步骤:明确目标、信息收集、漏洞探测、漏洞验证、?? ?信息分析、获取所需信息、信息整理、报告形成 ??????????? 2.2.1明确目标 ??????????????? 渗透测试团队需要与客户进行沟通,确定目标的范围、限度、需求等,并根据这些内容制定全面、详细的渗透测试方案: ??????????????????? 确定范围 ??????????????????????? 渗透测试目标的IP、域名、内外网、子网、旁站等。 ??????????????????? 确定限度 ??????????????????????? 明确对渗透测试目标允许渗透到什么程度,允许测试的时间段,是否允许进行上传、下载、提取等高危操作。 ??????????????????? 确定需求 ??????????????????????? 列如,探测Web应用服务漏洞(新上线应用)、业务逻辑(针对业务面)、人员权限管理漏洞(针对人员、权限)等。 ?????????? 2.2.2 信息收集 ??????????????? 渗透测试团队可以利用各种方法,获取更多关于目标网络的拓扑、系统配置等信息。搜集信息的方式包括扫描、开放搜索等,利用搜索引擎获得目标后台、未授权页面、敏感URL等。 ??????????????????? 基础信息 ??????????????????????? IP、网段、域名、端口 ??????????????????? 系统信息 ??????????????????????? 操作系统及其版本 ??????????????????? 应用信息 ??????????????????????? 各个端口应用服务,如Web应用、邮件应用等 ??????????????????? 版本信息 ??????????????????????? 所有探测到信息的版本 ??????????????????? 服务信息 ??????????????????????? 高危服务,如文件共享服务等 ??????????????????? 人员信息 ??????????????????????? 域名注册人员信息、管理员信息、用户信息等 ??????????????????? 防护信息 ??????????????????????? 防护设备的信息,如安全狗等 ??????????? 2.2.3漏洞探测 ??????????????? 渗透测试人员需要综合分析前期阶段所搜集到的信息,特别是历史安全漏洞信息、服务信息等找到可以实施渗透的点,利用搜集到的各种系统、应用、服务等信息使用相应的漏洞测试。 ??????????????????? 使用漏洞扫描器,如AWVS、IBM、AppScan等。结合漏洞寻找利用方法,验证Proof Concept。寻找系统补丁信息探测系统漏洞,检验是否没有及时打补丁。检查Webserver漏洞(配置问题)、?? ?Web应用漏洞(开发问题)。检查明文传输、cookie复用等问题。 ??????????? A.漏洞验证 ??????????????? 将漏洞探索过程中发现的有可能成功利用的全部漏洞验证一遍,结合实际情况,搭建模拟环境进行实验,成功后再应用于目标。这个过程需要自动化验证,即结合自动化扫描工具提供的结果手工验证,根?? ?据公开资源进行验证。可以尝试猜登录口的账号、密码等信息的方式。如果发现业务漏洞,则进行验证。在公开资源中寻找系统漏洞,如乌云镜像站、Google Hacking、渗透代码网站、通用应用漏洞、? 厂商漏洞警告等。 ??????????? B.信息分析 ??????????????? 对搜集到的信息进行分析,为下一步实施渗透测试做准备。准备探测到的漏洞利用程序,精准打击目标。包括以下一些手段:·绕过安全防御机制、防火墙等设备。·定制渗透路径,寻找目标突破口。·绕过?? ?检测机制、流量监控、杀毒软件、恶意代码检测(免杀技术)等。 ??????????? C.获得所需信息 ??????????????? 根据前几步结果获取所需信息,包括以下一些手段:·获取内部信息,即基础设施信息(网络架构、拓扑、VPN等)。·进入内网,进行权限维持(一般客户做渗透测试不需要进行此步骤)。·痕迹清理,清?? ?除相关访问操作日志及文件。 ??????????? D.信息整理 ??????????????? 把以上操作的内容总结出来,需要整理如下信息,为最后形成报告和测试结果做好准备:·所用的渗透工具,包括渗透测试过程中用到的代码、POC、EXP等。·搜集的信息,包括渗透测试过程中搜集到的?? ?一切信息。漏洞的信息,包括渗透测试过程中遇到的漏洞、脆弱的位置信息等。 ??????????? E.形成报告 ??????????????? 按照与客户确定好的范围、需求整理渗透测试结果并将资料形成报告。对漏洞成因、验证过程及其危害进行严谨分析,并补充针对漏洞问题的高效修复建议及解决办法。 ?? ??? ?渗透测试的具体方法 ?????????? F.明确目标 ??????????? 明确目标是整个渗透测试实施的基础,通过与客户沟通后确定渗透测试的目的以及范围,有时客户会提供完整、明确的目标范围,但多数情况下客户所提供的渗透测试范围并不完善,仅仅是给了一个主站域名?? ?,本案例就是这样。 ???????? 2.2.4信息搜集 ???????????? A.绕过CDN ??????????????? 通过内部邮件来获取网站真实IP ??????????????????? 大多数情况下,邮件服务系统都是部署在公司内部的,并且没有经过CDN的解析,可以通过目标网站的邮箱注册或者订阅邮件等功能,让网站的邮箱服务器给自己的邮箱服务器发送邮件。查看邮件的原?? ??? ?始邮件头,其中会包含邮件服务器的IP地址,查看域名的历史解析记录当目标网站的域名使用时间较长时,可能在目标网站刚刚使用的时候并没有绑定CDN的服务,CDN的服务是后来加上的。 ???????????? B.子域名地址查询 ??????????????????? CDN的服务收费并不算便宜,所以有许多站长出于省钱的目的,只会为网站的主站和部分流量较大的子站购买CDN的服务,而目标网站服务器可能有许多细小子站或者旁站与目标网站服务器部署在同一?? ??? ?台机器或者C段网段上,这时只需要知道子站或者旁站的IP地址,就可以猜解出网站的真实IP地址。 ????????????? C.国外地址访问 ??????????????????? 国内的CDN服务主要是针对国内的用户访问进行服务,对于国外的访问,则没有多少国内CDN服务商会进行服务。由此,我们通过使用国外的服务器或地址访问目标网站服务,便可得到真实的目标IP地?? ??? ?址。 ???????????? D.主域名查询 ??????????????????? 以前,CDN使用者习惯只对WWW域名使用CDN,优点是这样使用CDN的服务,在维护网站时会更加方便,不需要等待CDN的缓存。所以也可以试一试将目标网站服务器的WWW去掉,直接ping网?? ??? ?站,查看IP是否有变化。 ???????????? E.Nslookup查询 ??????????????????? 通过查询域名的NS、MX、TXT记录,有可能找到真实的目标网站IP地址。NS记录是指域名服务器的记录,用来指定域名由哪台服务器进行解析,使用命令nslookup-qt=nsxxx.com。MX记录mail?? ??? ?服务的权重值,当mail服务器先对域名进行解析时,会查找MX记录,找到权重值较小的服务器进行连通,使用命令nslookup-qt=mx xxx.com。TXT记录一般是为某一条记录设置说明,使用命令?? ??? ?nslookup-qt=txtxxx.com。 ??????? 2.2.5漏洞探测 ??????????? 在搜集完需要的信息之后就可以进行下一步操作:漏洞探测。漏洞探测的目的是找出可能存在的漏洞,然后进行分析验证。一般是通过自动扫描工具结合人工操作以及之前所搜集的信息去挖掘漏洞。 ??????????????? AWVS ??????????????????? 是一款较知名的漏洞扫描工具,通过网络爬虫来测试网站的安全性,监测安全漏洞,使用也较为简单。 ??????????????? NESSUS ??????????????????? 一款全球使用人数非常多的系统漏洞扫描和分析软件,提供了完整的主机漏洞扫描服务,且随时更新漏洞数据库,具有家用版本和商用版本。 ??????????????? AppScan ??????????????????? 安装在Windows系统上,可以对网站等Web应用进行自动化漏洞扫描和安全测试。 ??????? 漏洞验证 ??? 小结
|