
第1章 攻击路径及流程
1.1 攻击路径
随着互联网的高速发展及5G时代的到来,互联网已经逐渐成为网络应用的主要载体,用户可以通过互联网浏览网页、购物、办公、娱乐等,科技的发展给人们的生活带来了极大的便利,但是网络安全相关的攻击也愈演愈烈,攻击者利用互联网应用本身存在的漏洞进行数据获取、信息系统破坏的安全事件层出不穷,给国家安全、企业利益和个人隐私安全等带来了极大的危害。
互联网场景下的攻击方式多种多样,攻击者可以对目标的任意系统开放的任何端口或服务进行攻击,大致分为以下几种攻击路径:
(1)互联网Web应用系统攻击。
(2)互联网旁站攻击。
(3)互联网系统与服务攻击。
(4)移动App应用攻击。
(5)社会工程学攻击。
(6)近源攻击。
(7)供应链攻击。
本节将根据如图1‑1所示的某公司网络拓扑,对以上各种攻击路径进行介绍。
1.1.1 互联网Web应用系统攻击
Web应用系统一向是互联网攻击的重灾区,在企业中更是占据着十分重要的地位。Web1.0时代人们通过将WebShell(可执行脚本)上传到目标服务器获取权限,比较典型的是文件上传漏洞。但这时人们还没十分在意Web安全,直至SQL注入的出现才彻底改变了Web安全的地位,现在Web安全也在网络安全中占据着极其重要的地位。
开放式Web应用程序安全项目(Open Web Application Security Project,OWASP)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息,其目的是协助个人、企业和机构来发现和使用可信赖的软件。
Web安全攻击的方式多种多样,表1‑1中的漏洞类型是OWASP组织在公开发布的2017年版的《OWASP Top 10》中介绍的前10大Web安全漏洞,主要基于超过40家专门从事应用程序安全业务的公司提交的数据,以及500位以上的个人完成的行业调查。这些数据包含了从数以百计的组织、超过10万个实际应用程序和API中收集的漏洞。前10大Web安全漏洞是根据这些数据选择和优先排序,并结合了对可利用性、可检测性和影响程度的一致性评估而选出的。

图1‑1 某公司网络拓扑
表1‑1 2017年版的《OWASP Top 10》

续表

从2017年版的《OWASP Top 10》中可以看出,注入仍然是十大安全漏洞之首,下面将根据如图1-1所示的某公司网络拓扑来讲解攻击者针对Web应用系统的攻击路径。
通过图1-1了解到某公司存在Web应用服务器,通过浏览器打开服务器的80端口,发现运行的是网站服务,如图1-2所示。

图1‑2 网站服务
根据Logo及“Prowed by UsualToolCMS”版权信息,可以快速确定其为一套网上开源的CMS(Content Management System,内容管理系统)。接下来通过信息收集发现该CMS的相关漏洞,发现其存在OWASP Top 10中的SQL注入漏洞,UsualToolCMS相关漏洞如图1-3所示。

图1‑3 UsualToolCMS相关漏洞
构造如下数据包,利用SQLMap注入工具成功获得数据(注:此章节只涉及渗透测试流程,具体Web安全相关漏洞的原理及利用方式在《Web安全原理分析与实践》一书中已经通过具体案例进行了详细的讲解,此处不再详述)。

利用SQLMap注入,得到数据库相关信息,SQLMap注入结果如图1-4所示。

图1‑4 SQLMap注入结果
接着通过扫描获得了网站后台,并通过SQL注入获取账号密码,登录到此网站的后台中,网站后台如图1-5所示。

图1‑5 网站后台
进入后台往往会重点关注下面这些点:
(1)是否存在文件上传点,文件名是否可控。
(2)是否存在备份数据库,数据库名是否可控。
(3)是否存在修改模板,修改内容是否可控。
(4)是否存在配置上传类型等选项。
(5)各种系统配置,如网站名、简介等。
根据上面提到的点,我们可以发现存在模板配置,并且模板文件名及内容均可控,模板配置如图1-6所示。

图1‑6 模板配置
通过抓包修改,最终可以获取网站的WebShell,获得网站的控制权,如图1-7所示。通过WebShell,攻击者可以进一步对内网其他系统进行渗透(此内容会在之后的章节中讲到)。

图1‑7 获取网站WebShell
1.1.2 互联网旁站攻击
旁站是指同一服务器中的不同站点,旁站攻击则是指针对同一服务器的不同站点进行渗透的方法。
在攻击过程种目标站点往往比较难以攻破,所以也就衍生出了几种经典的攻击手法:
(1)旁站攻击。
(2)子域名攻击。
(3)C段攻击。
这里我们将重点讲解旁站攻击,一般获取旁站的手法分为以下几种:
(1)IP反查。
(2)端口扫描。
(3)二级站点。
其中IP反查为最常见的手法,针对IP反查的攻击手法一般有如下步骤:
(1)获取站点的真实IP。
(2)通过查询接口根据IP反查绑定的域名。
(3)对旁站进行渗透并GetShell。
(4)通过旁站的Shell进行提权,获取服务器权限。
回看如图1-1所示的某公司网络拓扑,假设我们无法攻击目标Web应用服务器网站,这时便可通过旁站进行攻击,攻击方法如下。
(1)通过对域名进行反查,获取网站真实IP,如图1-8所示。

图1‑8 域名反查获取IP
(2)对此IP进行反查,找到旁站域名“fu****.com”,如图1-9所示。

图1‑9 IP反查获取旁站
(3)通过对“fu****.com”进行常规的Web渗透,发现此域名的网站存在大量的高危漏洞,通过高危漏洞进行Web渗透,最终获取网站的Webshell,如图1-10所示。
(4)因为“fu****.com”域名的网站与目标网站在同一服务器中,可以通过“fu****.com”域名上传的Webshell对目标网站进行控制,如图1-11所示。

图1‑10 获取旁站Webshell

图1‑11 控制目标网站
1.1.3 互联网系统与服务攻击
针对端口的渗透是互联网安全中一直存在的攻击方式,安全管理员往往通过防火墙、路由器等对端口做安全策略以防止针对端口的入侵,真实场景中很多管理员因为配置错误导致很多存在高危漏洞的端口暴露在外面,这样就给了攻击者可乘之机。
服务器运行的不同服务对应不同的端口,对端口渗透就是对服务的渗透,在对端口渗透之前首先判断目标开启了哪些端口,这些端口运行的是什么样的服务,其次判断这些服务是否存在漏洞,最后进行渗透。
针对不同的端口和不同的服务会有不同的攻击手法,表1‑2中列举了常见端口与服务的攻击手法。
表1‑2 常见端口与服务的攻击手法

续表

续表

通过端口扫描如图1-1所示的某公司网络拓扑外网所在IP,得知公司外网IP开放21、23、1433、3389、8888等端口,下面针对扫描出来的端口进行渗透攻击。
通过对这些端口进行暴力破解,成功获得3389端口的账户名、密码,如图1-12所示。

图1‑12 获取3389端口的账户名、密码
通过上面暴力破解获取的用户名、密码信息,连接远程桌面,如图1-13所示,这样就获取到了目标服务器的控制权。

图1‑13 连接远程桌面
1.1.4 移动App应用攻击
随着智能手机及4G网络的普及和金融科技的深入发展,人们的生活已经被逐步改变,使用手机支付、办公、购物、娱乐等成为主流方式。根据中国互联网络信息中心发布的第44次《中国互联网络发展状况统计报告》,截至2019年6月,我国网民规模达8.54亿,我国手机网民规模达8.47亿,较2018年底增长2984万,网民使用手机上网的比例达99.1%。
随着移动终端在日常生活中承担的数字金融业务越来越多,其安全性越来越受到重视。移动技术的发展主要由消费用户决定。消费用户对于安全级别的要求较低,决定了移动技术在大规模应用于企业市场前期时就已经存在了大量的安全风险问题。
移动安全面临的安全问题,除了移动设备系统本身的漏洞之外,随着移动市场的扩大、移动设备的普及,App也爆发性的增长,在海量的App中,App面临着各种各样的威胁,带来新的安全风险,增大了信息安全的攻击面,攻击者针对企业和目标就有了更多的攻击路径。
移动App系统存在的漏洞主要是App本身的漏洞和与App后端的接口服务相关的漏洞。
与App后端的接口服务相关的漏洞攻击面跟传统的漏洞攻击面是一样的,一方面是Web类的漏洞,另一方面是系统、服务方面的漏洞攻击者利用与App后端的接口服务相关的漏洞进行攻击。
App主要在组件、数据存储等方面存在漏洞,类似《OWASP Top 10》,也有人统计了App漏洞的Top 10,2017年度移动App安全漏洞与数据泄露现状报告如表1‑3所示。
一般常规的App渗透测试除了《OWASP Top 10》中介绍的前十大Web安全漏洞及攻击手法外,还存在着其他更有特点的漏洞及利用手法。
表1‑3 2017年度移动App安全漏洞与数据泄露现状报告

通过如图1-1所示的某公司网络拓扑,我们了解到公司除了Web应用服务器之外,还存在移动App应用服务器,通过下载App进行反编译,发现其中存在Activity公开组件暴露的漏洞,通过此漏洞可以绕过密码验证,直接进入登录之后的页面。
“android:exported”是Android的四大组件Activity、Service、Provider、Receiver中都会有的一个属性。它的主要作用为是否支持其他应用调用当前组件,如果包含有“intent-filter”,默认值为true,没有“intent-filter”,默认值为false。
在Activity中该属性用来表示当前Activity是否可以被另一个Application的组件启动:true表示允许被启动,false表示不允许被启动。
本案例中的程序就是因为Activity的属性“android:exported”设置为true,可以利用此漏洞,对此Activity进行直接调用,绕过了密码的验证,登录到App应用的后台页面。该漏洞的利用过程如下。
(1)正常的程序逻辑下,在进入后台页面前需要输入密码,如果没有密码则无法进入后台的页面,登录界面如图1-14所示。

图1‑14 登录界面
(2)利用反编译工具判断是否存在Activity组件暴露的漏洞,反编译完成后发现PWList Activity的“android:exported”设置为true,说明PWList的这个Activity允许被外部程序调用,“android:exported”属性如图1-15所示。

图1‑15“android:exported”属性
(3)利用工具绕过密码验证,使用adb命令进行攻击,代码如下。

启动Activity组件,如图1-16所示。

图1‑16 启动Activity组件
执行完成后发现已经绕过密码的验证,直接进入了后台页面中,后台页面如图1-17所示。

图1‑17 后台页面
上文所述就是通过App进行攻击的过程,App的功能与App应用服务器的接口也可能会有交互,通过接口进行渗透也是常见的攻击方式。
1.1.5 社会工程学攻击
社会工程学在20世纪60年代左右作为正式的学科出现,广义社会工程学的定义是:建立理论并通过利用自然的、社会的和制度上的途径来逐步地解决各种复杂的社会问题。在计算机科学中,社会工程学指的是通过与他人的合法交流,来使其心理受到影响,做出某些动作或者透露一些机密信息。这通常被认为是一种欺诈他人以收集信息、行骗和入侵计算机系统的行为。
社会工程学攻击,是一种利用“社会工程学”来实施的网络攻击行为。
美国前头号黑客凯文·米特尼克被认为是社会工程学的大师和开山鼻祖,其编写的《欺骗的艺术》就是社会工程学攻击安全著作。凯文·米特尼克说过,人为因素才是安全的软肋。很多企业、公司在信息安全上投入大量的资金,最终却导致数据泄露,往往是人的原因。对于黑客们来说,一个用户名、一串数字、一串英文代码等几条线索,通过社会工程学攻击手段,加以筛选、整理,就能把你的所有个人情况信息、家庭状况、兴趣爱好、婚姻状况、你在网上留下的一切痕迹等信息全部掌握得一清二楚。一种无须依托任何黑客软件,更注重研究人性弱点的黑客手法正在兴起,这就是社会工程学黑客技术。
所有社会工程学攻击都建立在使人决断产生认知偏差的基础上。有时候这些偏差被称为“人类硬件漏洞”,一般来讲,常见的社会工程学的攻击手法主要有以下几种:
(1)互联网公开信息检索:社工库检索、搜索引擎检索。
(2)人员伪装:伪造工牌、拨打电话。
(3)钓鱼邮件:广撒网式钓鱼、鱼叉式钓鱼、水坑式钓鱼、捕鲸式攻击。
(4)钓鱼短信:中奖短信、伪装熟人短信、换号诈骗。
(5)钓鱼Wi-Fi:伪造Wi-Fi、Wi-Fi攻击。
本节我们将介绍其中一种,让我们一起回到如图1-1所示的某公司网络拓扑,通过端口探测我们发现目标主机开放8888端口,通过进一步识别发现运行的是Web服务,访问此服务,发现为内部技术分享博客,如图1-18所示。

图1‑18 内部技术分享博客
通过对博客的翻阅,我们获取了目标的常用ID为“James”,然后进一步通过搜索引擎获取了其QQ为“83*****”,接着我们通过大数据检索进一步获取信息,如图1-19所示。

图1‑19 大数据检索
通过其泄露的密码信息,进行撞库攻击,成功登录博客后台,如图1-20所示。

图1‑20 登录博客后台
通过此网站后台存在的漏洞进行攻击,获得网站的Webshell,如图1-21所示。

图1‑21 获得Webshell
上文所述就是典型的社会工程学攻击,攻击者之所以能够登录到后台中,并不是通过应用存在的漏洞攻击实现的,而是对此博客的博主进行社会工程学攻击,通过其泄露的常用的用户名、密码信息,进行撞库攻击,并登录博客后台的。
1.1.6 近源攻击
近源攻击是近几年来比较流行的一种攻击方式,是指攻击者靠近攻击目标发起的攻击行为,常见的如:Wi-Fi攻击、蓝牙攻击、人机接口攻击、物理攻击、ZigBee攻击等。
与传统的互联网链路的攻击方式不同,互联网链路的安全防护都做得比较完善,会有防火墙、WAF、IDS等防护检测机制,而近源攻击一般是对靠近目标企业或者在目标企业内部的Wi-Fi、蓝牙、人机接口等直接发起攻击,这些位于企业内部的相关无线通信设备及人机接口设备有大量容易被忽视的脆弱点,攻击者通过近源攻击可以轻而易举地进入内网中。常见的近源攻击如下。
(1)Wi-Fi攻击:无线Wi-Fi攻击、Wi-Fi钓鱼、无线设备攻击等。
(2)物理攻击:门锁攻击、HID攻击等。
(3)人机接口攻击:BadUSB、键盘记录器、HDMI嗅探等。
(4)蓝牙攻击:蓝牙重放攻击、蓝牙DDoS攻击、蓝牙MITM攻击、蓝牙数据嗅探等。
(5)ZigBee攻击:ZigBee窃听攻击、ZigBee密钥攻击等。
企业统一部署的Wi-Fi在身份认证、安全性方面一般是比较规范的,但是存在个别人员违反安全规定私自创建Wi-Fi的情况,如果这些私自创建的Wi-Fi使用弱加密算法或者弱口令,就给了黑客可乘之机。随着近源攻击的流行,针对Wi-Fi攻击的工具和手法也越来越多。本节以Wi-Fi攻击为例,给大家讲述攻击者如何通过近源攻击进入内网。
早在2016年的黑帽安全技术大会上,搭载黑客软件的定制无人机“Danger Drone”就已经亮相,一架价值500美元的定制设备,搭载配置黑客最常用的软件树莓派。在没有获取进入目标单位授权的情况下,攻击者可以通过“Danger Drone”黑客无人机在目标单位的周围近距离飞行,尝试查找是否存在有脆弱性的Wi-Fi,然后通过Wi-Fi的漏洞进行攻击,进入内网,然后实施下一步攻击。由此可见,跟传统的攻击链路不同,通过近源攻击的方式更容易进入内网。
攻击者通过多种不同的方式进入目标企业的内部或者使用上述“Danger Drone”黑客无人机在目标单位的周围近距离飞行,尝试查找是否存在有脆弱性的Wi-Fi进行攻击。
首先要进行扫描,查看是否存在私自搭建的Wi-Fi;使用命令“airodump-ng wlan0mon”进行探测,发现存在多个Wi-Fi,我们首先对SSID为“wifi”的无线网进行攻击,扫描Wi-Fi如图1-22所示。

图1‑22 扫描Wi-Fi
通过一系列的攻击,最终获取了握手包,将握手包存储到了/root目录下。握手包如图1-23所示。

图1‑23 握手包
使用命令“aircrack-ng -w /root/pass1000.txt /root/wifi-01.cap”对握手包进行暴力破解,如图1-24所示,密码破解成功,密码为“12345678”。

图1‑24 暴力破解
通过对目标企业私自搭建的Wi-Fi进行渗透攻击,最终获取到了Wi-Fi的连接密码,这样就可以通过连接此Wi-Fi进入企业的内网。
1.1.7 供应链攻击
供应链是指围绕核心企业,从配套零件开始,制成中间产品及最终产品,最后由销售网络把产品送到消费者手中,将供应商、制造商、分销商直到最终用户连成一个整体的功能网链结构。
供应链攻击是一种针对开发人员、第三方供应商和合作伙伴的新兴威胁,是对攻击目标的一种迂回式攻击方式。供应链处于攻击目标的上游,大量的第三方服务、产品、软件作为攻击目标的上游产品,影响面极大,因为目标与供应商存在一定的信任关系,使供应链攻击隐蔽性强。
供应链攻击涉及软件、硬件、服务、供应商人员等多个方面。近几年来,针对供应链攻击的事件屡见不鲜,供应链攻击造成的影响越来越大。
下面是关于供应链攻击的几个典型事件。
1.非苹果官方Xcode被植入恶意代码事件
2015年9月大约有40个iOS应用从App Store中下架,因为开发者从非官方途径下载的Xcode带有XcodeGhost 病毒,使编译出的 App 被注入第三方的代码,向指定网站上传用户数据。截止到2015年9月22日凌晨3时,恶意软件XcodeGhost感染了692种(按照版本号计算为858个)应用,其中受影响较大的有微信、网易云音乐、滴滴出行、高德地图等。
Xcode是由苹果公司开发,运行在操作系统Mac OS X上的集成开发工具(IDE),以快速、高效、便捷著称,是目前开发Mac OS和iOS应用程序的最快捷、最普遍的方式,而许多第三方应用商店也推出了各自的非官方版本,虽然Xcode是苹果公司开源免费的,但是由于开发者下载此开发软件慢,所以很多开发人员就从第三方应用商店下载Xcode。正是这些非官方的版本被植入了恶意代码XcodeGhost,被植入恶意程序的苹果App可以在App Store正常下载并安装使用,该恶意代码具有信息窃取行为,并具有恶意远程控制的功能。
非苹果官方Xcode被植入恶意代码是典型的供应链攻击事件,攻击者通过对上游的服务开发工具进行恶意代码植入,正常的开发者使用XcodeGhost开发App就植入了后门,导致大量的App和用户受到影响。
2.棱镜计划(PRISM)
它是一项由美国国家安全局自2007年起开始实施的绝密电子监听计划。该计划的正式名号为“US-984XN”。
PRISM计划能够对即时通信和既存资料进行深度监听。许可的监听对象包括任何在美国以外地区使用参与计划公司服务的客户,或是任何与国外人士通信的美国公民。美国国家安全局在PRISM计划中可以获得的数据包括:电子邮件、视频和语音、影片、照片、VoIP交谈内容、档案传输、登入通知,以及社交网络细节。
棱镜计划会挖掘各大技术公司的数据,美国媒体曝出微软、雅虎、谷歌、Facebook、PalTalk、YouTube、Skype、AOL、苹果都在其中,这是一个影响范围极大的供应链攻击,几乎这9家国际网络巨头的所有用户都受到了影响。
3.Juniper设备NetScreenOS系统后门事件
2015年Juniper网络公司在内部代码审查中发现ScreenOS中未经授权的代码,可以让攻击者获得对NetScreen设备的管理权限和解密VPN连接。Juniper网络公司作为全球领先的联网和安全性解决方案供应商,公司的客户来自全球各行各业,包括主要的网络运营商、企业、政府机构,以及研究和教育机构等,使全球数以万计的用户受到影响。