『渗透测试基础』| 什么是渗透测试?有哪些常用方法?如何开展?测试工具有哪些?优势在哪里?
1 什么是渗透测试?
- 渗透测试是指由专业的安全人员
模拟黑客
,从系统可能存在的漏洞位置进行攻击测试
,找到隐藏的安全漏洞,从而达到保护系统安全的目的; - 书中有一个例子说的非常不错:
- 这个例子非常好,通俗易懂的简单了解什么是渗透测试。
2 有哪些常用方法?
- 关于渗透测试常用的方法,书中提及到了几种方法,分别是:
2.1 针对性测试
- 针对性测试由公司内部员工和专业渗透测试团队共同完成;
- 内部员工提供安全测试所需要的基础信息,并负责业务层面的安全测试;
- 专业渗透测试团队关注业务以外的、更普适的安全测试;
- 针对性测试属于研发层面的渗透测试;
- 参与这类测试的人员,可得到被测系统的内部资料(部署信息、网络信息、详细架构设计、产品代码等);
- 这种方法也叫“开灯测试”,就是测试人员完全了解系统内部情况的前提下开展的。
2.2 外部测试
- 外部测试时针对外部可见的服务器和设备,模拟外部
攻击者对其进行攻击
,检查它们是否能够被入侵
; - 这里的服务器和设备包括域名服务器、
Web
服务器、防火墙、电子邮箱服务器等; - 如果
入侵
成功,会入侵到系统
的哪一部分,又会泄露多少资料等等; - 由内部测试人员或者专业渗透测试团队在假定完全不清楚系统内部情况的前提下来开展。
2.3 内部测试
- 内部测试指由测试工程师模拟内部人员在内网进行
攻击
,检查内部攻击可以给系统造成什么程度伤害; - 这里测试人员应拥有较高的系统权限,也能查阅各种内部资料等;
- 内部测试主要是防止系统的内部员工对系统进行内部
攻击
。
2.4 盲测
- 盲测是指在严格限制提供给测试执行人员或团队的信息的前提下,由他们来模拟真实者的行为;
- 一般测试人员指被告知被测系统的公开信息;
- 这种测试可能需要相当长的时间进行
侦查
; - 这类测试的效果很大程度上取决于测试人员的
技术水平
; - 盲测由专业渗透测试团队在测试
后期
开展; - 一般需要借助很多攻击工具。
2.5 双盲测试
- 双盲测试也叫“隐秘测试”;
- 测试人员对系统内部知之甚少,且被测试系统内部也只有少数人知道正在进行安全测试;
- 双盲测试可反映软件系统最真实的安全状态;
- 一般由外部专业渗透测试专家团队完成。
3 如何开展渗透测试?
3.1 规划和侦查
- 定义测试的范围和目标;
- 初步确定要使用的工具和方法;
- 明确需要收集的情报信息(如网路和域名、邮件服务器等);
- 主要是为了了解目标的工作方式及潜在的安全漏洞。
3.2 安全扫描
- 静态分析:主要是扫描所有代码进行分析,可使用一些工具,比如
Fortify SCA
、Checkmarx Suite
; - 动态分析:在代码运行时进行扫描,可实时提供应用程序的运行时视图,比静态扫描更准确。
3.3 获取访问权限
- 测试人员将模拟黑客对应用程序进行网络攻击(如SQL注入、跨站脚本攻击等);
- 利用找到的漏洞,通过升级自己的权限、窃取数据、拦截流量等方式了解其对系统造成的伤害。
3.4 维持访问权限
- 查看被发现的漏洞是否可以长期存在于系统中;
- 如果漏洞能够持久化,那么在很长一段时间内入侵者都可对系统进行深入访问或破坏。
3.5 入侵分析
- 将以上分析结果汇总成详细的测试报告;
- 需要注明以下内容:
4 常用的渗透测试工具有哪些?
4.1 Nmap
4.1.1 简介
Nmap
是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端;- 确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统,用以评估网络系统安全;
- 系统管理员可以利用
nmap
来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap
来搜集目标电脑的网络设定,从而计划攻击
的方法。
4.1.2 主要功能
- 探测一组主机是否在线;
- 扫描 主机端口,嗅探所提供的网络服务;
- 推断主机所用的操作系统 。
4.1.3 一些命令
# 以下是部分官方文档中的示例
# 扫描主机scanme中 所有的保留TCP端口
nmap -v scanme.
# 秘密SYN扫描
nmap -sS -O
# 主机列举和TCP扫描
nmap -sV -p
# 随机选择100000台主机扫描是否运行Web服务器(80端口)
nmap -v -iR 100000 -P0 -p 80
4.1.4 基本扫描方式
TCP connect()端口扫描(-sT参数)。
TCP同步(SYN)端口扫描(-sS参数)。
UDP端口扫描(-sU参数)。
Ping扫描(-sP参数)。
4.2 Aircrack-ng
4.2.1 简介
Aircrack-ng
是一个与802.11
标准的无线网络分析有关的安全软件,主要功能有:网络侦测,数据包嗅探,WEP
和WPA/WPA2-PSK破解
;Aircrack-ng
可工作在任何支持监听模式的无线网卡上并嗅探802.11a,802.11b,802.11g
的数据;
4.2.2 aircrack-ng 套件
4.3 sqlmap
4.3.1 简介
sqlmap
是一个自动化的sql
注入工具,其主要功能是扫描、发现并利用给定URL
的SQL
注入漏洞;- 内置了很多绕过插件,支持的数据库有
MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB
。
4.3.2 注入模式
4.3.3 一些命令
# 判断是否存在注入
sqlmap.py -u url
# 判断文本中的请求是否存在注入
sqlmap.py -r MM_test.txt
# 查询当前用户下的所有数据库
sqlmap.py -u url --dbs
# 获取数据库下的表名
sqlmap.py -u url -D security --tables
# 获取表中的字段名
sqlmap.py -u url -D security -T users --columns
# 获取数据库的所有用户
sqlmap.py -u url --users
.......
4.4 Wifiphisher
Wifiphisher
是一个安全工具,具有安装快速、自动化搭建的优点,利用它搭建起来的网络钓鱼攻击WiFi可以轻松获得密码和其他凭证;- 与其它(网络钓鱼)不同,这是社会工程攻击,不包含任何的
暴力破解
,它能轻松获得门户网站和第三方登陆页面的证书或WPA/WPA2
的密钥。
4.5 AppScan
- 这个工具对于每个做渗透测试者来说,应该用的比较多,它的功能非常强大;
AppScan
是一款网络安全测试工具,用于WEB
安全防护的扫描防护;- 扫描器的扫描结果生成
WAF
,对网站漏洞直接防护; - 关于使用等其他介绍,后续再议。
5 渗透测试好处?
- 通过渗透测试,可以识别出主要漏洞,并及时进行修复,以确保系统环境的安全性;
- 因为避免了安全漏洞,所以也就避免了不必要的损失。