玩微信“跳一跳”我竟然领悟了渗透攻击与测试的诀窍!
注:最近我和小伙伴们都爱上了小游戏“跳一跳”,不过我在玩的时候却突然从它联想到了渗透攻击与测试。在此,我将来探究一下它们之间的“联系”。 现如今,各类初创型公司都在迅速迭代和发展之中。对于支撑业务的 IT 系统,信息安全部门需要经常通过各种工具和手段来进行自查、分析和管控。 然而,我们时常会被建议去进行各种针对某些特定服务和应用的专项渗透测试,却往往缺乏一个全面的攻击视图和测试流程。 有过渗透经验的小伙伴都知道,攻击者通常就像在玩“跳一跳”小游戏那样,一步一步地跳进了我们的系统内部。 下面让我从一张逻辑图出发,基于企业渗透攻击与测试的典型框架,来和大家一起探究“跳一跳”在这里的新“玩法”。 “黑盒”式攻击上一步的位置,决定着下一步的跳法“网鱼”式搜集:不积跬步,无以至千里 俗话说:“不怕贼偷就怕贼惦记”。攻击者一般会对你的系统进行被动和主动收集两种方式。 侧面收集,也称“外围信息搜集”,我们可以理解为“隔山打牛”,也就是在不触碰目标系统的情况下,“曲线而婉约”地通过公共查询或搜索引擎的手段来获取外围信息。 如网站域名、IP 地址(如使用 dig 命令)、也可配合使用 GoogleHacking 和在 Google 地址后面追加各种参数来 Find Subdomains、Find Vhosts、以及使用 ICMP Ping 和 Whois Lookup 等工具。 相信你一定也能复制出基于 Baidu 和 Bing 的信息搜集脚本。 上述 Whois 工具最为普遍,它可用来查询那些由区域互联网注册机构所持有的,已在互联网上注册了的服务器资源信息 (IP 地址或域名等)。 通过运行该工具,可以获得的信息包括:所有者公司的名称、地址(一般是国家或区域)、特定的真实 IP 地址及其所隶属的 IP 范围、联系电话号码、电子邮件、管理员姓名以及域名服务器等。 Whois 一般是以命令行的字符呈现的,如果你要基于网页的形式,则可以使用 Netcraft.com 网站,其操作非常简单,只要输入要查询的网站地址便可。 有时候,攻击者的目标是邮件服务器,那么他们会运用 NSLookup 工具,来进一步收集到服务器更多的信息。 正面收集,则需要和目标系统进行直接互动和简单“过招”,比如说对其端口进行扫描等,不过这样有时候会被目标系统的 IDS 或 IPS 发现。 攻击者可以通过诸如 https://pentest-tools.com 之类的在线工具实施,或使用带有参数的 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 跨站伪造请求、文件包含攻击(利用浏览器获取远程文件)和命令执行(远程执行命令)等。 除了上述提到的 pentest-tools.com 所提供的在线 Web 应用扫描和 Metasploit 相应模块之外,常用的免费工具还有扫描神器--W3AF。 它可以通过其自身 WebSpider 插件的发现模块、暴力破解模块、审计模块和攻击模块的组合来进行渗透。 另外,攻击者还可能会使用开源渗透工具—SQLMAP,来获得不同数据库的指纹信息,并从数据库中提取他们感兴趣的用户名/密码等数据。 服务端渗透攻击:只有步步为营,才能长驱直入 从典型的企业网络架构来说,当攻击者成功拿下 Web 应用服务器之时,也就意味着进入了 DMZ 区域。接下来,他们会通过路由交换,向着具有各种功能的服务器长驱直入。 一般而言,攻击者在此所用到的渗透攻击,是对于如下三种网络服务的探测与利用:
客户端渗透攻击:步子太大会栽下去,太小则跨不过去 虽然在客户端上作祟相对于攻击服务器端来说,可能并非是攻击者的主要目的。但是往往他们会抱有“既来之、则破之”的心态,进行顺手破坏。 不过客户端不像服务器那样会开放过多的端口和服务,而且一般默认开启了个人防火墙并安装了反病毒软件,因此攻击者不大可能通过发送恶意数据包给目标客户端,让客户端自动执行触发,从而获得权限。 他们在此通常需要通过构造畸形数据,使得用户在使用含有漏洞缺陷的应用程序处理数据时发生错误,进而执行内嵌于数据中的恶意代码。 例如:针对浏览器的 Javascript 攻击、第三方插件的攻击、Office 软件的攻击、Adobe 阅读器的攻击等,并最终获得目录结构和敏感文件等信息。 而在技术实现上,他们甚至会用到针对 DEP 和 ASLR 的堆喷射、ROP、JIT Spraying 等。 无线网络渗透攻击:不求跳得快,只求站得稳 如今移动互联已经在企业中非常普及了,通过无线网络这一无形的入口,企业的服务和数据迅速突破了有形的系统架构。与此同时,攻击者也会与时俱进,另辟蹊径来开展无线渗透攻击。 总的说来,他们的主要步骤和套路是:
“白盒”式测试过犹不及,每一步跳跃都要掌握好力度上面我们模拟的是一个对于目标系统完全陌生的攻击者,在进行“黑盒”式攻击时所涉及到的方面和步骤。 而企业的专业技术人员也应该定期与审计师协作,基于对系统架构与企业环境有所了解的情况下,进行所谓的“白盒”式测试。 那么,我们下面来看看这些“白帽子”的渗透测试又有哪些细微的不同之处呢? 内部攻击测试 运用普通的外界电脑(模拟带入内网的访客)和企业内部的标准电脑两种方式,使用各种工具对选定内网 IP 地址范围进行扫描和尝试性的攻击。 外部攻击测试 通过互联网的远程方式,运用各种工具对企业公网范围的IP地址进行扫描(或称:战争拨号),并做尝试性的攻击。 Web 应用安全评估 选定足够数量的 Web 应用页面,通过远程方式进行用户帐号、目录结构以及脚本注入/执行等相关测试。 社会工程与安全意识
设备/设施的物理访问 运用尾随或当面说服等伎俩进入机房后,展开如上所列的内部攻击测试。 (编辑:ASP站长网) |