内部渗透测试究竟应该怎么搞?
2016-05-10 51CTO.com 编辑:布加迪编译
【51CTO.COM 快译】想查明你的网络在黑客攻击面前多么不堪一击,最好的办法就是请外部专家对它进行一次渗透测试。当然,你得请具备相应资质的第三方来帮助进行渗透测试。
可是请第三方进行渗透测试有两大缺点:
·费用高昂
·一旦你对自己的基础设施进行了变动,或者发现了影响基础设施的新安全漏洞,第三方渗透测试实际上“过时”了。
想避开这两个问题,一个办法就是自己执行渗透测试。
在继续探讨之前,有必要指出:自己执行渗透测试的效果比不上从外面请来专家,因为专家渗透测试需要经验、技能和创造力。可能只有专业的渗透测试人员(和专家黑客)才具备这些素质。即便你的安全团队有渗透测试方面的经验,但是许多专家还是认为,第三方以全新的视角打量你的网络,更有可能发现潜在问题。熟悉自己的网络实际上会让你看不到可能存在的安全漏洞。
不过,能够自行执行渗透测试仍是个好主意,因为只要你购买新设备、安装新软件,或者对网络进行其他的重大变动,你都可以运行测试,让你注意之前忽视的明显的安全漏洞。
内部渗透测试就好比出门之前,房子外面兜一圈,检查一下有没有窗户开着:这是一种明智的防范措施,几乎不需要什么花费。
渗透测试基础:7个步骤
最简单的渗透测试也包括许多步骤:
网络枚举和映射。这一步常常需要扫描端口,搞清楚网络的拓扑结构,并且查明哪些计算机连接到网络,查明它们提供哪些操作系统和服务。可能用来执行这项任务的最流行的工具非开源Nmap工具莫属,有时可通过Zenmap Gui来使用它。
侦察。这一步需要联系网络上的机器,获取来自这些机器的信息,比如它们运行的应用程序。侦察还需要上网搜索关于测试的那家企业组织的信息,比如查清楚IT员工和高管的姓名。这种信息对于实行社会工程学和网络钓鱼演练很有用(参阅下文)。这些人的社交媒体帐户也能透露经常用于密码中的一些信息,比如宠物名称。
网络嗅探。这一步用来检查网络上传输的流量,并且搜寻未加密数据,包括密码或VoIP流量。用于嗅探网络的事实上的标准是Wireshark(http://www.esecurityplanet.com/open-source-security/5-big-improvements-in-wireshark.html),这是另一款开源工具。
安全漏洞扫描。扫描可以发现任何机器有没有不安全的软件版本或者是可以钻空子的其他已知安全漏洞,或者发现任何无线接入点敞开还是存在弱密码。一种流行的开源安全漏洞扫描工具是OpenVAS(http://www.openvas.org)。还可以针对Web服务器使用其他比较专业的扫描工具,寻找安全漏洞,比如跨站脚本(XSS)错误。
专有的安全漏洞扫描工具可以改善开源扫描的效果,让你注意到哪些高危应用程序可能被人钻空子。
这包括:
·Nessus专业版
·Rapid7 Nexpose
·Qualys FreeScan
利用漏洞。渗透测试的这个阶段试图利用任何已知的安全漏洞,以获得系统的控制权。记住这一点很重要:虽然安全漏洞扫描可能会显示安全漏洞,但不是所有的安全漏洞都会被人成功利用,或者未必会导致重大泄密。像Metasploit(https://www.rapid7.com/products/metasploit/download.jsp)这样的漏洞利用框架含有现成漏洞数据库(它可以与安全漏洞进行比对),还有便于你自行制作并利用漏洞的工具。
许多安全系统可识别Metasploit漏洞,并将它们检测出来;值得一提的是,真正的黑客可能会改动自己的漏洞,所以别傻傻地以为:就因为你的安全系统可以防止Metasploit漏洞得逞,你的基础设施就高枕无忧了。
进一步攻击。一旦某个高危系统中招,你可以利用该机器进一步渗透到网络。比如说,如果可以访问某台服务器的密码文件,密码破解工具随后可以获得宝贵的密码。利用从侦察阶段获取的信息,这些密码随后可以用来闯入更多的系统,访问更多的数据。
密码破解工具包括离线的John the Ripper(http://www.openwall.com/john/),可用于处理从你测试的网络获取的密码文件,或者是在线的开源工具Hydra(https://github.com/vanhauser-thc/thc-hydra),这个具有并行运算功能的登录蛮力攻击工具会在很短的时间内尝试多个登录/密码组合,企图登录到ftp等服务。
网络钓鱼/社会工程学。要是不通过欺骗员工来获得访问权,看看有什么可以攻击的,任何渗透测试都是不完整的。这意味着发送网络钓鱼电子邮件,或者仅仅打电话,引诱对方泄露登录信息或其他敏感信息。
手动渗透测试和Linux发行版
想手动执行渗透测试,你就需要许多工具,包括上面所述的那些工具。想在一个地方拥有需要的所有工具,最好的办法就是下载一款开源Linux安全发行版。建议使用的发行版包括如下:
·Kali Linux(https://www.kali.org/downloads/)
·Pentoo(http://www.pentoo.ch/download/)
·Parrot Security OS(http://www.pentoo.ch/download/)
·BackBox(https://backbox.org/download)
·Samurai Web测试框架(https://sourceforge.net/projects/samurai/files/)
这些发行版含有数百个其他开源工具,这些工具可用于网络侦探和枚举、安全漏洞扫描、密码破解、无线安全审查及更多操作。
这些发行版存在的问题是,如果你不熟悉它们含有的工具,就很难知道该从哪里入手。一个解决办法就是接受全面的培训,熟悉安全发行版中含有的一些工具。
培训选项包括:
·Kali Linux渗透测试培训():这种学生自定进度的在线渗透测试课程专为想在渗透测试方面有所深造的网络管理员和安全专业人员设计。提供培训的是Offensive Security,它是Kali Linux的开发者,也是知名渗透测试培训和认证组织之一。
相关链接:https://www.offensive-security.com/information-security-training/penetration-testing-training-kali-linux/
·Metasploit Unleashed:Metasploit Unleashed道德黑客培训课程免费提供,可能是最全面、最深入的指南,面向大名鼎鼎的Metasploit Project渗透测试工具。
相关链接:https://www.offensive-security.com/metasploit-unleashed/
·InfoSec Institute的渗透测试在线培训。InfoSec Institute的渗透测试在线培训是一门全面的在线渗透测试课程,包含100多个模块,在线培训时长超过100个小时。由于需要学习大量材料,大多数学生需要整整60天才能学完课程。
相关链接:http://www.infosecinstitute.com/courses/penetration_testing_online.html
自动化渗透测试
想自行执行渗透测试,比较容易的办法就是使用自动化渗透测试工具,它会为你执行一些或所有这些步骤,你基本上不需要干预,或者使用向导来引导你。
这种方法的好处在于,它能显示你网络上比较直观的问题。另一个好处是,不大在行的黑客可能也会使用这样一些工具,所以在黑客之前运行这些工具,你就能缓解抢在黑客之前找到的任何问题。
不过,这些工具的功能有限。经验老道的黑客或渗透人员可能结合使用多种手法,包括网络钓鱼和社会工程学伎俩,突破你的防线大搞破坏,或者他们可能发现的某个安全漏洞需要非凡的创造力才能加以利用。自动化工具无法同样做到这点。
大多数自动化渗透软件是作为商用产品来提供的。这些软件包括:
·Rapid7 Metasploit(https://www.rapid7.com/products/metasploit/editions.jsp)
·Immunity Canvas(https://www.rapid7.com/products/metasploit/editions.jsp)
·Core Impact Pro(http://www.coresecurity.com/content/core-impact-overview)
渗透测试风险
在你考虑自行执行渗透测试之前,要小心哪里可能会出岔子。无论是手动还是自动,渗透测试都需要对网络进行测试和探测。这可能会降低网络速度,让计算机运行起来慢腾腾,或者导致一个或多个系统崩溃,从而可能干扰正常业务。
原文标题:How to Conduct Internal Penetration Testing