您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试技术 > 其他相关 > 正文

漫谈信息安全设计与治理之渗透测试

发表于:2017-01-13 作者: 来源:
大家新年好!话说“大众创业,万众创新”之风已吹到了我的身边,比如说我的大表哥就从其供职的公司独立出来,开创了一家只有“一兵一将”的小公司。深谙信息安全重要性的他lobby我去当其“独立安全顾问”,就是不拿工资的那种。鉴于他延用的是其母公司的原有IT系统和资源,而并非从零开始,所以受命后我给他端上了一碗“鸡汤”:要想让你当前的系统能“保值”且继续“发光发热”,而且能辅助和促进新公司以正螺旋的轨迹健康发展,那么我们要学会一边奔跑一边思考,如今正值年关,就让我们从一次渗透测试开始吧。他一脸蒙圈的望着我:怎么做渗透测试?好吧。我来科普一下它的基本流程要点吧。

一.普通搜集

俗话说:“不怕贼偷就怕贼惦记”。一旦攻击者eye on you了,他们一般会对你的系统进行被动和主动收集两种方式。

被动收集,也称“外围信息搜集”,咱们可以理解为“隔山打牛”,也就是在不触碰目标系统的情况下,“曲线而婉约”的通过公共查询或搜索引擎的手段来获取外围信息。如网站域名、IP地址(如使用dig命令)、也可配合使用Google Hacking和在Google地址后面追加各种参数来 Find Subdomains、Find Vhosts、以及使用 ICMP Ping和Whois Lookup等工具。相信有一定编程基础的童鞋很快就能复制出基于Baidu和Bing的信息搜集脚本了吧。

而其中最普遍的当属Whois,它可用来查询那些由区域互联网注册机构所持有的,已在互联网上注册了的服务器资源信息 (IP地址或域名等)。通过运行该工具,可以获得的信息包括:所有者公司的名称、地址(一般是国家或区域)、特定的真实IP地址及其所隶属的IP范围、联系电话号码、电子邮件、管理员姓名以及域名服务器等。

Whois一般是以命令行的字符呈现的,如果要基于网页的形式,他们可以通过运用Netcraft.com网站。其操作非常简单,只要输入要查询的网站地址便可,如下图所示。

【廉环话】漫谈信息安全设计与治理之渗透测试

另外,如果其目标是邮件服务器的话,他们则可以运用NSLookup工具来进一步收集到其服务器更多的信息。

主动收集,则需要和目标系统进行直接互动和简单“过招”,比如说对其端口进行扫描等,不过这样有时候会被目标系统的IDS或IPS所发现到。

他们常用的是带有参数的Nmap来进行活跃主机的判断、操作系统的识别(如大家所熟知的:Windows大小写不敏感而Linux则敏感)、服务类型和端口的扫描等。当然也可以用到Metasploit辅助模块中的SYN。而如果锁定的目标系统是在其DMZ区里,则可用Back Track 5的Autoscan图像界面来扫描。

在扫描到系统的常见服务和端口后,他们就可以进行弱口令的猜测和传输明文的嗅探了。他们甚至可以运用工具获取服务器远程访问的权限。常言道:“没有笨黑客只有懒黑客”。只要他们够执着,什么C段网站、服务器系统版本、容器版本(如IIS、APACHE、NGINX、LIGHTTPD、TOMCAT等)、程序版本、数据库类型、二级域名甚至是使用的防火墙等蛛丝马迹都可以通过各种工具的联合使用被发掘到。

二.进阶搜集

攻击者经常会到各种社会工程学库里去查找是否有与目标系统相关的泄露的密码。大家都知道,去年底的某东密码泄漏事件,更使得各类密码更为唾手可得了。一旦获取了某些泄露的密码、生成专用字典,他们就可以尝试着登录到目标的管理后台。

攻击者也会利用目标系统域名邮箱作为关键词,去放入各大搜索引擎进行进一步的信息搜集。利用搜到的关联信息,他们可以找出使用类似命名规则的其他网站的邮箱地址,进而得到常用的社交网站和APP的账号。而基于那些社交账号,进行进阶式的搜索出相关微博、微信甚至是推文中包含此关键字的内容,最终以信息链的方式发现目标系统管理员的密码设置习惯。

接下来,攻击者可以进一步通过查找网上已经曝光出的各种程序漏洞来尝试着判断目标网站的CMS(CONTENT MANAGEMENT SYSTEM,即内容管理系统)了。多说一句:对我们信息安全测试人员来说,也同样可以利用某些代码的开源特性,下载其相对应的源码进行代码的原始审查和比对。

三. Web服务渗透

因为门户网站大多都是有前端防火墙所保护的,那么攻击者要绕过它的话,就只能通过浏览器HTTP/S(防火墙一般都被配置为允许HTTP/S的流入)的方式来进行攻击了。Web渗透攻击包括:SQL注入、XSS跨站脚本、CSRF跨站伪造请求、文件包含攻击(利用浏览器获取远程文件)和命令执行(远程执行命令)等。所用到的工具有扫描神器--W3AF等。它可以通过其自身WebSpider插件的发现模块、暴力破解模块、审计模块和攻击模块的组合来进行渗透。

四.网络服务渗透

当攻击者进入DMZ的某台服务器后,一般会“贼心不死”的继续攻克其他设备以及进一步延伸到内网。这就是针对DMZ服务器上开启的网络服务进行的渗透,网络服务可以大致分为三种:

· 一是Windows/Unix/Linux自带的系统网络服务,如Windows系统下的NetBIOS服务(UDP-137/138端口和TCP-139端口)、SMB服务(共享打印机)以及MSRPC服务(网络调用远程主机上的服务进程中的过程)和RDP服务(远程桌面服务);

· 二是针对Windows系统上微软的网络服务,如IIS服务、SQLServer服务等;

· 三是第三方的网络服务,如提供HTTP服务的Apache、IBM WebSphere、Tomcat等;提供数据库服务的Oracle、MySQL等;提供FTP服务的Serv-U和FileZilla等。

五.客户端渗透攻击

这部分主要是在获得了DMZ区里某个服务器的管理权限后,攻击者继续以此为跳板,获得内网各类客户端的权限。由于客户端不像服务端有开放过多的端口和服务,而且一般默认打开了个人防火墙并安装了反病毒软件,因此攻击者不大可能像渗透服务端时那样发送恶意数据包给目标客户端,让客户端自动执行触发之从而获得权限,所以攻击者在此通常需要通过构造畸形数据,使得用户在使用含有漏洞缺陷的应用程序处理数据时发生错误,进而执行了内嵌于数据中的恶意代码。例如:针对浏览器的Javascript攻击、第三方插件的攻击、Office软件的攻击、Adobe阅读器的攻击等。并最终获得目录结构和敏感文件等信息。而在技术实现上有针对DEP和ASLR的堆喷射、ROP、JIT Spraying等。

六.BYOD渗透攻击

如今移动互联已经非常普及了,我们去年的漫谈中曾花过两个篇幅谈BYOD相关安全,所以我们在渗透攻击测试时也不应忽视攻击者运用BYOD的场景。总的说来,其攻击的主要步骤是:

·在可以接受wifi信号的位置,攻击获得AP的接入口令;

·进入AP后利用漏洞获得AP的管理权;

·利用AP的管理权引导流量,制造钓鱼攻击劫持用户流量;

·渗透进入用户客户端,如笔记本、Pad、手机等。

是不是感觉很简单很粗暴?对,原理都是那些,只不过被移植到了无线的环境中而已。

记得上次在16年末给大家留了个悬念,说:“每个人。。。见到一座山,就想知道山后面是什么。”结果可爱的小伙伴神扒了一下,并根据其下句:“我很想告诉他,可能翻过山后面,你会发现没什么特别。回望之下,可能会觉得这一边更好。”来推断我就此封笔了。唉,我承认自己当时文艺得过火了,其实应该用《终结者》的经典台词来直接表达:“I'll be back!”。所以今年伊始,我就忙着以此新的漫谈告诉大家:“巨廉哥又杀回来了!”崭新的“一起(17)”年来到了,各位奋战在信息安全第一线的伙伴们,May the force be with you!