渗透测试的概念
渗透测试是通过完全模拟恶意黑客的攻击方法技术,来评估计算机系统安全的一种评估方法。可以对被测计算机系统安全做深入的探测和评估,这个过程包括对系统任何弱点、技术缺陷或漏洞的主动分析,发现和挖掘系统中存在的漏洞及系统中最薄弱的环节,然后输出渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。
网络渗透测试是一种网络评估方案,能够独立地检查你的网络策略,被网络安全专业人员用来评估现有网络安全的完整性和有效性。选择不影响业务系统正常运行的攻击方法渐进并逐步深入的进行测试,通过对公司的数字资源和网络进行分析和扫描,对现有网络安全实施构成威胁的风险因素所进行的详细安全评估。检测出任何存在的漏洞。一旦发现漏洞,就会对其进行检查,以确定黑客是否可以通过渗透测试利用这些漏洞,证明网络防御按照预期计划正常运行而提供的一种机制。
渗透测试不等同于风险评估,可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别、风险分析,除此之外,也还包含了人工审查以及后期的优化部分。
渗透测试的目的
渗透测试能够帮助管理人员直观的了解系统可能出现的问题,能够知道入侵者可能利用的计算机系统和网络中漏洞和途径并了解系统和网络安全强度,帮助用户理解黑客的突破点,比黑客更早发现问题并解决问题。
渗透测试与入侵的区别:
渗透测试:出于保护的目的,更全面的找出目标的安全隐患。
入侵:不择手段的窃取或取得目标的最大权限并予以控制。(是具有破坏性的)
测试的内容涵盖
渗透测试分类
渗透测试可以从不同的维度进行分类,
按信息获取方式分类
黑盒渗透(BlackBox ) | 从目标网络的外部进行渗透模拟的,除了被测试目标的已知公开信息外,不提供任何其他信息 |
白盒渗透(White Box ) | 渗透测试者可以通过正常的渠道,向请求测试的机构获得目标网络系统的各种资料,包括网络拓扑结构、用户账户、操作系统、服务器类型、网络设备、代码片段等信息 |
灰盒测试(Gray Box ) | 介于二者之间,通常适用于有时限要求的组织,被测者提供有效信息,测试者可以集中于风险更大的系统上,节省前期的信息收集时间。 |
按目标对象分类
主机操作系统渗透 | 对目标网络中的Windows、Linux、Unix 等操作系统主机进行渗透测试 |
数据库渗透测试 | 对MS-SQL、Oracle、MySQL 等数据库系统进行渗透测试, |
网站程序渗透 | 渗透的目标网络系统都对外提供了Web 网页、E-Mail 邮箱等网络程序应用服务 |
网络设备渗透 | 对各种硬件防火墙、入侵检测系统、路由器和交换机等网络设备进行渗透测试 |
按网络环境分类
外网 | 模拟客户内部违规操作者的行为,在内网对目标进行渗透测试 |
内网 | 模拟对内部状态一无所知的攻击者的行为(包括对网络设备的远程攻击,口令管理安全测试,防火墙规则试探和规避,web及其他开放应用服务的安全测试等),从外网对目标进行渗透测试。 |
针对Web服务体系架构的渗透测试
服务器渗透测试 | 对服务器自身的安全性(如操作系统、数据库是否存在弱口令等)进行检测。 |
中间件渗透测试 | 对Apache. lI、Tomcat. Nginx等Web中间件的漏洞(如配置缺陷、文件解析、反序列化漏洞等)进行检测。 |
Web应用渗透测试 | 对CMS、Blog等Web应用程序的漏洞(如SQL注入、XSS、CSRF、文件上传与解析、文件包含、命令执行等)进行检测。 |
业务逻辑渗透测试 | 对业务逻辑安全性(如验证逻辑问题、会话管理问题、权限控制问题等)进行检测。 |
渗透测试主要做什么
步骤一:明确目标
1、确定范围:规划测试目标的范围,以至于不会出现越界的情况。
2、确定规则:明确说明渗透测试的程度、时间等。
3、确定需求:渗透测试的方向是web应用的漏洞?业务逻辑漏洞?人员权限管理漏洞?还是其他,以免出现越界测试。
步骤二:信息收集
信息收集分为被动收集和主动收集两种方式。
被动信息收集:利用第三方的服务对目标进行访问:Google搜索、Shodan搜索、其他综合工具,被动信息收集是指京可能多低收集与目标相关的信息
主动信息收集:通过直接扫描目标主机或者网站,主动方式能获取更多的信息,目标系统可能会记录操作信息。
在信息收集中,需要收集的信息:目标主机的DNS信息、目标IP地址、子域名、旁站和C段、CMS类型、敏感目录、端口信息、操作系统版本、网站架构、漏洞信息、服务器与中间件信息、邮箱、人员、地址等。
首先可以先进行被动收集,确定网络范围内目标,与目标相关的人员的邮箱,地址等信息,然后在选择出重点渗透的目标,在针对性的进行主动信息收集。
步骤三:漏洞探索
漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的下访问或破坏系统。
漏洞分类:
按照漏洞的形成原因,漏洞大体上可以分为程序逻辑结构漏洞、程序设计错误漏洞、开放式协议造成的漏洞和人为因素造成的漏洞。
按照漏洞被人掌握的情况,漏洞又可以分为已知漏洞、未知漏洞和0day等几种类型。
漏洞挖掘技术是指对未知漏洞的探索,综合应用各种技术和工具,尽可能地找出软件中的潜在漏洞;漏洞分析技术是指对已发现漏洞的细节进行深入分析,为漏洞利用、补救等处理措施作铺垫。
漏洞挖掘是一个多种漏洞挖掘分析技术相互结合、共同使用和优势互补的过程。目前漏洞挖掘分析技术有多种,主要包括手工测试技术(manual testing)、Fuzzing技术、比对和二进制比对技术(Diff and BinDiff)、静态分析技术(static analysis)、动态分析技术(runtime analysis)等。
步骤四:漏洞验证
将上述中发现有可能可以成功利用的全部漏洞都验证一遍,结合实际情况搭建模拟环境进行实验,成功后再引用于目标。
验证方法如下:
自动化验证 | 结合自动化扫描工具提供的结果 |
手工验证 | 根据公开的资源进行手工验证 |
试验验证 | 自己搭建模拟环境进行验证 |
登录猜解 | 可以尝试一下登录口的账号密码的发现 |
业务逻辑漏洞 | 如发现业务逻辑漏洞,进行验证 |
步骤五:信息分析
为下一步实施渗透做准备
1、精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
2、绕过防御机制:是否有防火墙等设备,如何绕过
3、定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
4、绕过检测机制:是否有检测机制,流量监控,杀毒软件 ,恶意代码检测等(免杀)
5、攻击代码:经过试验得来的代码,包括不限于XSS代码,SQL注入语句等
步骤六:获取所需
1、实施攻击,根据前几步的结果,进行攻击
2、获取内部信息:基础设施(网络连接,vpn,路由,拓扑等)
3、进一步渗透:内网入侵,敏感目标
4、持续性存在:一般我们对客户做渗透不需要,但真实的环境中,我们会做rookit、后门,添加管理账号。驻扎手法。
5、清理痕迹:清理相关日志(访问,操作),上传文件等
步骤七:信息整理
1、整理渗透工具:整理渗透过程中用到的代码,poc、exp等
2、整理收集信息:整理渗透过程中收集到的一切信息
3、整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱的位置信息
(为了形成报告,形成测试结果使用)
步骤八:形成报告
该步骤将汇总在目标中发现的每个漏洞。进一步地,根据通用漏洞评分系统CVSS定义的严重性级别列出。(CVSS是一个用于漏洞评估的开放的标准)
1、按需整理:按照之前第一步跟客户确定好的范围和需求来整理资料,并将资料形成报告
2、补充介绍:要对漏洞成因、验证过程和带来的危害进行分析
3、修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
所使用的工具介绍
经过调研,主要有17个,具体介绍暂时先看
https://zhuanlan.zhihu.com/p/345706220?utm_medium=social&utm_oi=711988636010168320
1)Nmap、2) Aircrack-ng、3)Wifiphisher、4) Burp Suite、5) OWASP ZAP、6) SQLmap、7)CME(CrackMapExec)、8) Impacket、9)PowerSploit、10)Luckystrike、11)BeEF(浏览器漏洞利用框架)、12)THC-Hydra、13) Immunity Debugger、14)社会工程工具箱(SET)、15)Metasploit、16)渗透测试工具速查表、17)SecLists
下面我就辅助工具做如下分类
1. 信息收集与侦查
这是黑盒测试最关键的阶段,渗透测试人员将尝试识别相关系统或应用程序,并尽可能多地收集信息。常用的Web渗透测试工具:
类型 | 工具 |
端口扫描 | Amap 、Nmap |
DNS/子域名识别 | dnsenum、dnsmap、dnswalk、Fierce、dnscan、Sublist3r |
技术识别 | BlindElephant、Wappalyzer、WhatWeb |
内容管理系统识别 | WPScan、Joomscan、CMScan、Drupscan |
2. 枚举
测试人员将扫描在上一阶段中识别的每个应用、系统或网络,以查找不同的攻击面。在该阶段中,重点枚举出web应用的文件、目录、网络设备、端口以及服务等等,进而帮助测试人员识别可能的攻击切入点(攻击媒介)。这些切入点通常是测试人员获取目标系统的访问权限、入侵系统路径的重要方法。常有的媒介有:钓鱼邮件、尚未修补的漏洞等等。手工枚举过程繁琐,所以常借助一些工具来完成。
类型 | 工具名称 |
文件/目录 | Dirsearch、dirb、dirbuster、Metasploit框架、BurpSuite、gobuster |
HTTP协议 | Nmap、BurpSuite、Metasploit框架(MSF)、wfuzz |
3. 漏洞评估与分析
在确定攻击媒介之后,接下来就是漏洞扫描,对web漏洞进行分析与评估,常用的扫描分析工具有:
类型 | 名称 |
系统与网络 | Nexpose、Nessus、OpenVAS |
web应用 | AppSpider、Nikto、Acunetix、BurpSuite、Nessus |
4. 漏洞利用
该阶段主要是为了证明前一步骤发现的漏洞是否能被真正利用,通常可以借助Metasploit Framework和Canvas自动进行漏洞利用。