暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

浅谈渗透测试

近几年,我们的互联网生活中多了一词——“互联网金融”。将钱存进余额宝,用微信支付都是在参与着互联网金融活动。互联网金融不是互联网和金融业的简单结合,而是在实现安全、移动等网络技术水平上,被用户熟悉接受后,适应新的需求而产生的新模式及新业务。互联网金融的崛起对传统银行业发展带来了巨大冲击,新时期背景下传统银行业强化创新发展,提出“电子银行”的概念,随着银行业对计算机网络系统的依赖程度增加,金融产品不断创新,网点不断增加,安全管理问题也变得越来越重要,安全是电子银行业务发展的生命线。


银保监会在《电子银行业务管理办法》中要求银行不长于两年进行一次电子银行系统安全评估。电子银行安全评估一般从电子银行系统入手,分别针对安全管理、技术安全、业务安全三个层面进行剖析。在技术安全层面可通过多种技术手段进行安全评估,其中渗透测试是重要手段之一。


渗透测试对于确保安全至关重要,它是企业从外部角度测试其网络安全性的一种方式。渗透测试人员在合法合规的条件下进行渗透测试,在此过程中毁坏系统软件并浏览本不该获得的数据信息。测试人员模拟黑客攻击目标系统,可以帮助企业发现其网络哪里存在安全故障。



渗透测试

渗透测试是一项在计算机系统上进行的授权模拟攻击,旨在对其安全性进行评估。简言之,整个渗透测试的过程就是渗透人员模拟恶意黑客的攻击手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的报告,可以清晰知晓系统中存在的安全隐患和问题。


渗透测试是一个渐进并且逐步深入的过程,有可能影响业务系统的正常运行,故一般选择对业务最少影响的通用方法测试 。



测试基本流程

一般来说所有的测试方法可根据测试人员对目标系统信息的了解程度分为:黑盒、白盒和灰盒测试方法。以黑盒测试方法为例,测试的基本流程如下图所示,其中信息收集是整个渗透测试最重要阶段之一,可让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间,通常这个阶段占据整个渗透测试时间的40%~60%。

1

 目标定位 

这个阶段主要是确定渗透测试的测试计划、范围、边界和目标。


2

 信息收集 

这个阶段主要是尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。收集的方法包括公开来源信息查询、Google Hacking、社会工程学等。主要收集以下几类信息:


(1)收集域名信息

whois查询:标准的互联网协议,可用于查询网络注册信息、注册的域名、IP地址等信息。目前有很多网页接口简化的线上查询工具,可以一次向不同的数据库查询,如https://whois.chinaz.com等。


备案信息查询:国家信息部对网站的一种管理,为了防止在网上从事非法的网站经营活动的发生,如天眼查http://tianyancha.com。

(2)收集敏感信息

在互联网上查询与目标网站有关的任何信息,如Google是一款强大的搜索引擎,渗透者可以构造特殊的关键字语法来搜索互联网上的一些敏感页面、敏感目录、网站内可下载的文件、可能出现的sql注入点和文件上传点、未授权访问页面等。


(3)收集子域名信息

在线子域名收集:比较常见的在线子域名搜索(爆破)的网站有:http://z.zcjun.com/、在线子域名查询https://phpinfo.me/domain/等。


利用工具:扫描工具有oneforall、layer子域名挖掘机、SubDomainsBrute等。


(4)收集端口常用信息

一个网站可能会开放多个不同的端口,渗透者可以通过同一网站的不同端口进行测试,常见的如SSH服务端口号22可能存在弱口令暴力破解、HTTP端口80是常见的web漏洞、MySQL数据库端口3306可能存在弱口令暴力破解、Redis数据库端口6379可能存在Redis未授权访问漏洞。端口扫描方法可分为在线端口扫描和利用工具扫描,其中扫描工具有nmap和masscan,在线端口扫描网站有http://tool.cc/port/、http://coolaf.com/tool/port等。


(5)指纹识别

是指通过关键特征,识别出目标的CMS系统、服务器、开发语言、操作系统、CDN、WAF的类别版本等。在渗透测试中,只有识别出相应的web容器或CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作,常见的网站指纹识别工具有whatweb等。


(6)查找真实IP

渗透者可以使用Windows下nslookup命令或多地ping查询或工具帮助检测目标网站是否使用了CDN(内容分发网络,是在网络各处放置节点服务器在现有的互联网基础之上构建一层智能虚拟网络。使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度)。然后通过扫描网站测试文件或分站域名ping二级域名获取分站IP等方法绕过CDN寻找真实的IP,最后可通过尝试直接访问IP等方法验证获取到的IP。


(7)收集敏感目录文件

渗透者可以扫描网站目录结构,判断是否可以遍历目录或是否存在敏感文件泄露。针对网站目录的扫描可分为在线网站扫描和利用工具扫描,其中扫描工具有DirBuster、wwwscan等,在线扫描网站有WebScan、dirsearch等。


(8)社会工程学

不常用但可能有用的方法,如取得信任和欺骗、利用信息的不对称、在网络上搜寻蛛丝马迹、拼凑碎片化的信息、社工库的利用或密码心理学等。在Kali Linux中包含一个非常流行的工具包—社会工程学工具包(Social Engineer Toolkit, SET)。利用这个工具包,再加上使用者的“演技”,常常会让受害者在不知不觉中就掉入陷阱。


3

 漏洞探测 

这个阶段是当渗透者收集到足够多的信息之后,就可以对网站进行漏洞探测,探测网站是否存在一些常见的web漏洞,如:SQL注入 、XSS跨站脚本 、CSRF跨站请求伪造 、弱口令漏洞、HTTP报头追踪漏洞、文件上传漏洞 、私有IP地址泄露漏洞、未加密登录请求漏洞、敏感信息泄露漏洞、struts2远程命令执行漏洞等。常用的网站漏洞扫描工具有:AWVS、AppScan等。


4

 漏洞利用 

此阶段是当渗透者探测到目标网站存在的漏洞之后,就可以对漏洞进行利用。漏洞利用是利用一切可以利用的工具,采用一切可以采用的方法,找到一切可以找到的漏洞,并通过对漏洞资料的研究分析,从而达到获取网站用户资料、添加用户、甚至入侵网站获得管理权限控制整个目标网站的目的。常见的漏洞利用有:


(1)空白或默认口令

把管理性口令留为空白或使用产品生产商所设置的默认口令。


(2)默认共享密钥

安全服务有时会把用于开发或评估测试目的的默认安全密钥打入软件包内。如果这些密钥不经改变而被用于互联网上的生产环境,那么任何拥有同样的默认密钥的用户都可以使用那个共享密钥资源,以及其中的保密信息。


(3)IP假冒

某个远程机器是你的本地网络上的一个节点,它在你的服务器上寻找弱点,并安装一个后门程序或特洛伊木马来获取对你的网络资源的控制。


(4)应用程序弱点

攻击者在桌面系统和工作站应用程序(如电子邮件客户程序)中寻找缺陷并执行任意编码、插入用于未来攻击行为的特洛伊木马、或者崩溃系统。如果被危及的工作站拥有对整个网络的管理特权,还会发生进一步的漏洞利用。


5

 内网转发 

此阶段是当渗透者获得了目标网站外网服务器的一定权限后发现这台服务器可以直接或间接的访问内网,对内网主机信息进行探测。


一般情况下,内网中的其他机器是不允许外网机器访问,渗透者可以通过端口转发或将这台外网服务器设置为代理,使得渗透者的攻击机可以直接访问与操作内网中的其他机器。常见的内网转发形式有:


(1)反弹shell

是指攻击机监听在某个TCP/UDP端口为服务器,目标机主动发起请求到攻击机监听的端口,并将其命令行的输入输出转到攻击机。常用工具有netcat、bash、socat以及各种脚本。


(2)反弹端口(端口转发)

是指目标服务器的某一个端口不能访问,通过反弹端口,使攻击者能够访问该端口。常用的工具有lcx、利用netsh(windows防火墙)以及ssh隧道等。


(3)反弹代理

是指将攻击者的流量转发到内网其他服务器上,反弹代理之后攻击者就可以访问目标机的所有端口。常用的工具有EarthWorm、reGeorg等


6

 内网横向渗透 

此阶段是渗透者已经攻击到内网,通过肉鸡(被黑客入侵并被长期驻扎的计算机或服务器。可以随意控制,可以是任意系统的设备,对象可以是企业、个人、政府等所有单位)作为跳板(使用肉鸡IP来实施攻击其他目标,以便更好的隐藏自己的身份信息)去获取更多的计算机权限,从而控制整个内网。常用的横向渗透技术如下:

以at&schtasks举例说明:在已知目标系统的用户明文密码的基础上,可以直接在远程主机上执行命令,用法:


(1) at


(2) schtasks


7

 痕迹清除 

此阶段是渗透者渗透进目的网站后清除留下的一部分痕迹。渗透痕迹并不能完全清除,痕迹清除主要是为了增加管理员发现入侵者的时间成本和人力成本。此阶段主要以隐藏自身身份为主,最好的手段是在渗透前挂上代理,渗透后痕迹清除。


针对不同的系统有不同的痕迹清除方法,本节简单介绍Windows系统上的痕迹清除方法。


渗透的系统为Windows系统,有远程桌面权限时手动删除日志:开始->程序->管理工具->计算机管理->系统工具->事件查看器->清除日志


(1)wevtutil


(2)Meterperter


(3)消除recent

在文件资源管理器中点击“查看”—>“选项”—>“常规”—>隐私中点击“清除”或删除C:\Users\Administrator\Recent下所有内容


此阶段是渗透者完成渗透测试之后生成测试产出物。渗透测试报告是渗透测试过程中所有发现的摘要文档,包括但不限于所使用的方法、测试范围、假设以及漏洞的严重程度等,可用于消除已发现的漏洞和风险,防止被黑客攻击。


8

 撰写渗透测试报告 

此阶段是渗透者完成渗透测试之后生成测试产出物。渗透测试报告是渗透测试过程中所有发现的摘要文档,包括但不限于所使用的方法、测试范围、假设以及漏洞的严重程度等,可用于消除已发现的漏洞和风险,防止被黑客攻击。



结语

渗透测试以入侵者的思维方式,模拟使用攻击对手可用的各种手段,对目标系统进行全面深入的渗透入侵和攻击演练。针对银行而言,业务安全是安全的核心所在,若能构建以业务安全为核心的渗透测试机制,在新的安全形势下,会更有效地发现安全问题。


作者 | 马锶霞

视觉 | 王朋玉

统筹 | 郑    洁

文章转载自中国光大银行科技创新实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论