APP下载

基于web 安全的渗透测试技术探讨

2019-11-22

四川职业技术学院学报 2019年5期
关键词:测试报告痕迹漏洞

巫 冬

(四川职业技术学院 计算机科学系,四川 遂宁 629000)

在web 应用保护的实践中,渗透测试的重要性不断提升。作为一种模拟恶意黑客攻击的评估方法,渗透测试可用于计算机网络系统安全评估,例如系统漏洞、技术缺陷、弱电均可通过评估得以明确[1]。为保证渗透测试技术较好服务于web 应用,正是本文围绕基于web 安全的渗透测试技术开展具体研究的原因所在。

1 渗透测试的定义、目的、分类、手段

1.1 定义

所谓渗透测试,指的是通过模拟攻击者思维及方法对系统安全进行的主动分析,通过分析即可明确系统可能存在的技术缺陷、可能被人利用的安全漏洞以及任何弱点。相较于常用的评估手段,基于web 安全的渗透测试需基于攻击者角度展开,并灵活运用已有的漏洞发掘手法及相关安全漏洞。[2]

1.2 目的

通过渗透测试,可全面检测和评估系统安全,并在攻击者找到漏洞前对其进行修复,由此可以避免信息外泄等安全事件的出现。在基于渗透测试的安全问题识别过程中,系统的安全状况可得到明确展示,相关单位结合评估结果落实针对性的操作规划,攻击及误用的威胁可得到较好控制。作为前瞻性的防御措施,渗透测试可实现更具意义的安全防护,满足系统的安全需要。

1.3 分类

渗透测试可细分为白盒测试与黑盒测试,如图1 所示。

图1 渗透测试框图

此外,渗透测试还可以基于目标分为四类,即围绕操作系统、数据库、应用程序、网络设备分别开展的渗透测试,四类渗透测试各自具备一定特点。[3]

1.4 手段(如图2 所示)

图2 渗透测试手段框图

2 渗透测试项目的工作流程

2.1 基本流程(如图3 所示)

图3 基本流程图

2.2 各环节要点(如图4 所示)

图4 环节要点图

3 渗透测试流程

在一次完整的渗透测试中,基本流程可概括为:“确定目标→信息收集→漏洞探索→漏洞利用→内网转发→内网渗透→痕迹清除→撰写渗透测试报告”,具体流程要点如下。

3.1 信息收集

在具体的信息收集中,可根据网站的URL 明确其相关信息,具体的信息收集可围绕Google Hacking、主机扫描、整站分析、端口扫描、后台目录及敏感目录、网站漏洞扫描、dns 域名信息收集、C 段和旁站扫描展开。以网站敏感目录和文件的扫描为例,需扫描网站目录结构,明确是否存在敏感文件泄漏,或是否可以遍历目录;而在网站漏洞扫描中,需合理应用Nessus、AWVS 等扫描器,最终完成漏洞探测。

3.2 漏洞探索

漏洞探测需基于足够的信息展开,明确网站是否存在web 漏洞,围绕SQL 注入、XSS 跨站脚本、CSRF跨站请求伪造、越权访问漏洞、文件解析漏洞、XXE 漏洞等进行针对性探测,并合理利用Nessus、AppScan、AWVS、Owasp-Zap 等工具[4]。以SQL 注入的判断为例,SQL 注入的步骤可简单概括为:“SQL 注入判断→寻找注入点→判断数据库类型→实施注入并提升权限”,服务器变量、Cookie、用户输入等需要在SQL 注入攻击过程中得到充分利用。以GET 注入漏洞为例,主要环节包括判断整型参数、判断字符串型参数,针对性的判断直接影响渗透测试的推进[5]。

3.3 漏洞利用

在探测到网站的漏洞后,便需要针对性利用漏洞,但基于单一的漏洞往往很难获取网站webshell,因此渗透测试需结合多个漏洞以获得webshell,SQL 注入、抓包改包工具、XSS 跨站脚本等工具需得到充分利用[6]。在获得webshell 后,需进行提权,如SUID 提权(Linux),系统溢出漏洞提权、第三方软件提权、数据库提权。以数据库提权为例,可利用MySQL 数据库、SQL Server 等实现提权。

3.4 内网转发

在获取Webshell 后,如渗透测试还需要进一步探测内网主机信息,便需要开展内网转发。渗透测试过程不能直接与内网主机进行通信,因此需借助webshell 网站的服务器,如结合proxychains 代理链的reGeorg、EW、Ssocks,Netsh、LCX 也需要在其中发挥关键作用[7]。

3.5 内网渗透

在实现与内网主机的通信后,即可进一步开展内网渗透,为探测在线主机,需进行内网主机的扫描,扫描可采用nmap,明确其开放的端口、使用的操作系统等信息。Windows 系统属于内网用户使用最多的系统,Windows7 则属于其中代表,由此开展的内网渗透可围绕MS17_010 等漏洞展开,如存在这一漏洞,即可应用Metasploit 完成内网渗透,由此找到域控服务器获取权限,即可最终实现所有用户主机的登录。在Metasploit 的具体应用中,具体流程可概括为:“进入框架→使用search 命令→查找漏洞→使用use 模块→查看模块信息→攻击载荷设置→查看需配置参数→设置参数→攻击→进入后渗透阶段”。

3.6 痕迹清除

在完成渗透测试目标后,必须清除痕迹,逐步掩盖网络痕迹和清除日志。在网络痕迹的掩盖过程中,可使用代理或多层代理来实现真实IP 地址掩盖,也可以运用ProxyChains 等代理链工具。在日志的清除中,不同系统存在不同的日志清除方式,Linux 系统需删除“/var/log”下文件,Windows 系统则需要删除Log 文件或安装Clearlogs 工具进行清理。

3.7 撰写渗透测试报告

在渗透测试完成后,测试人员需结合测试成果进行渗透测试报告的撰写,明确系统存在的漏洞和修补漏洞的方法,客户根据渗透测试报告针对性修复漏洞,web 安全由此得到较好保障。

4 结语

综上所述,基于web 安全的渗透测试技术具备较高实用价值。在此基础上,本文涉及的基本流程、各环节要点、信息收集、漏洞探索、漏洞利用、内网转发、内网渗透、痕迹清除、撰写渗透测试报告等内容,提供了可行性较高的渗透测试技术运用路径。为更好保证web 安全,各类新型技术的应用必须得到重点关注,如近年来广受业界关注的网络安全漏洞实时侦测技术。

猜你喜欢

测试报告痕迹漏洞
漏洞
关于户外体育游戏对幼儿体能影响的调查研究
小偷留下来的痕迹
百变星君:ROLLINGSTONE 变色龙紫破风车架测试报告
三明:“两票制”堵住加价漏洞
漏洞在哪儿
SSAB Hardox悍达450材料轻型自卸车厢体测试报告
高铁急救应补齐三漏洞
浅谈软件测试工作的开展流程
积淀岁月的痕迹