什么是渗透测试
渗透测试,是通过模拟恶意攻击者进行攻击,来评估系统安全的一种评估方法;我们会从攻击的角度判断软件系统是否安全。
一般地,测试者会使用某些测试工具或者人工模拟攻击者的输入,找出运行时刻目标系统所存在的安全漏洞。
优缺点分析
优点
- 找出来的问题都是真实的,也是较为严重的。
缺点
- 只能到达有限的测试点,覆盖率较低。
分类
黑盒测试
- 依靠测试人员的能力探测获取目标系统的信息,通常不需要找出目标系统的所有安全漏洞;
- 测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对检测特定攻击的效率。
白盒测试
见白盒渗透测试简介1-2
黑盒渗透测试流程
前期交互
确认渗透测试的范围、目标、限制条件及服务合同细节
情报搜集
利用各种信息来源与搜集方法,获取目标网络拓扑、系统配置与安全防御措施等信息
威胁建模
针对获取的信息进行威胁建模与攻击规划
漏洞分析
在确认出最可行的攻击通道之后,需要考虑如何取得目标系统的访问控制权限。在该阶段, 渗透测试人员需要综合分析前几阶段获取并汇总的情报信
息,找出可以实施渗透攻击的攻击点,并进行验证
渗透攻击
利用找到的目标系统安全漏洞,入侵系统,获取访问控制权限
后渗透攻击
保持对目标的持续控制权,利用被控制目标对目标组织环境进行进一步渗透攻击
报告
渗透测试最终向客户提交的交付物——测试报告
相关工具
情报搜集类
百度、社工库、whois、github、nmap等
威胁建模类
Threat Modeling Tools、Threat Dragon、viso、excle
漏洞分析类
绿盟远程评估、启明的天镜、APPSCAN、AWVS、NESSUS、漏洞扫描脚本、专项测试工具等
渗透攻击类
metasploit、searchsploit、sqlmap、wireshark、aircrack-ng等
后渗透攻击类
netcat(nc)、msfvenom、metasploit、各种木马
前期交互
情报搜集
一般情况下,不对整体目标渗透(尤其是非法资源获取风险),在独立的测试环境中只针对软件渗透测试。
nmap扫描
使用nmap进行轻量扫描。
搜索引擎探索
通过搜索引擎收集情报, 国内某重要预警系统叫jopens:
通过文档获取有价值的文件
其它的一些情报搜集方法包括:
- 论坛博客搜集
- 目标泄露信息
- 社工攻击
- 主机信息搜集(“后”情报搜集)
威胁建模
通过分析用户与系统的关系,发现潜在的威胁关系
重点在于分析,利用一些辅助工具如Threat Dragon、微软Threat Modeling Tools威胁建模工具、XMind脑图等进行威胁建模。
常见威胁
种类 | 描述 | 威胁子类 |
---|---|---|
软硬件故障 | 对业务实施或系统运行产生影响的设备硬件故障、通讯链路中断、系统本身或软件缺陷等问题 | 设备硬件故障、传输设备故障、存储媒体故障、系统软件故障、应用软件故障、数据库软件故障、开发环境故障等 |
物理环境影响 | 对信息系统正常运行造成影响的物理环境问题和自然灾害 | 断电、静电、灰尘、潮湿、温度、鼠蚁虫害、电磁干扰、洪灾、火灾、地震等 |
无作为或操作失误 | 应该执行而没有执行相应的操作、或无意执行了错误的操作 | 维护错误、操作失误等 |
管理不到位 | 安全管理无法落实或不到位,从而破坏信息系统正常有序运行 | 管理制度和策略不完善、管理规程缺失、职责不明确、监督管控机制不健全等 |
恶意代码 | 故意在计算机系统上执行恶意任务的程序代码 | 病毒,特洛伊木马、蠕虫、陷门、间谍软件、窃听软件等 |
越权或滥用 | 通过采用一些措施,超越自己的权限访问了本来无权访问的资源,或者滥用自己的权限,做出破坏信息系统的行为 | 非授权访问网络资源、非授权访问系统资源、滥用权限;非正常修改系统配置或数据、滥用权限泄露秘密信息等 |
网络攻击 | 利用工具和技术通过网络对信息系统进行攻击和入侵 | 网络探测和信息采集、漏洞探测、嗅探(账号、口令、权限等)、用户身份伪造和欺骗、用户或业务数据的窃取和破坏、系统运行的控制和破坏等 |
物理攻击 | 通过物理的接触造成对软件、硬件、数据的破坏 | 物理接触、物理破坏、盗窃等 |
泄密 | 信息泄露给不应了解的他人 | 内部信息泄露、外部信息泄露等 |
篡改 | 非法修改信息、破坏信息的完整性使系统的安全性减低或信息不可用 | 篡改网络配置信息、篡改系统配置信息、篡改安全配置信息、篡改用户身份信息或业务数据信息等 |
抵赖 | 不承认收到的信息和所做的操作和交易 | 原发抵赖、接受抵赖、第三方抵赖等 |
漏洞分析
Nmap扫描
相关操作实例可以上网自行搜索练习
主动验证
使用开源工具DIRMAP
口令猜测与嗅探
使用burpsuite intruder功能对关键字符进行爆破
扫描字典
App漏洞扫描
App漏洞分析工具,如Mobile-Security-Framework-MobSF
被动验证
burpsuite基于代理方式获取和修改数据;
burpsuite通过设置代理方式,浏览器向信任地址发送通信数据;
Wireshark抓包分析协议。启动wireshark,选择网卡,镜像显示网络数据。
专项测试工具
- https加密方式验证:对于高安全性系统往往需要检查加密算法是否符合要求
- SSL加密算法检查工具:sslciphercheck
简单的控制台应用程序,用作于检查SSL加密支持,C#开发,需要.net4.0。它不仅能够
检索和提取证书中包含信息,而且支持Server Gated Cryptography (SGC),常用于检
测SSL和TLS协议检测 - 检查命令:sslciphercheck.exe -h XX.XX.XX.XX -p 443
如果是白色的 Unsupported 就是不支持的意思,如果是红色的 supported 就是存
在问题,supported 的是绿色的,表明是支持的加密方式。
协议检测工具
下节预告
主要介绍渗透攻击和后渗透攻击的含义,并列举一些简单示例,如shiro反序列化漏洞和Tomcat AJP漏洞。同时,对渗透测试的报告进行总结。