渗透测试操作手册

渗透测试操作手册

渗透测试操作手册

渗透测试是测试人员结合各种安全测试技术,模拟真实的黑客,对评测目标进行入侵攻击,最大程度的挖掘业务系统潜在的安全威胁(包括系统存在的漏洞、脆弱点、网站的不安全因素等)。渗透测试可用用了评估评测目标是否存在可以被黑客利用的漏洞,以及该漏洞引起的风险大小,让企业先于攻击者发现存在的问题,为用户制定完善的安全措施与应对方案提供科学有效的依据。

完整的渗透测试包含以下几个过程:

1. 确定目标

2. 信息收集

3. 主机测试

4. Web测试

5. 数据库测试

6. 业务安全测试

7. 信息收集整理

8. 形成报告

1. 确定目标

第一、确定测试目标的范围,ip,域名,内外网。

第二、确定能渗透到什么程度、什么时间测试、能否进行修改上传操作、能否进行权限提升操作等。

第三、明确渗透需求,是针对web应用的漏洞(新上线程序)?还是针对业务逻辑漏洞(针对业务的)?还是针对人员权限管理漏洞(针对人员、权限)等等。

2.信息收集

信息收集是安全测试工作的基础,信息收集是否完善、准确,直接影响到测试效率及测试结果准确性。

信息收集包括客户提供的基础信息、主动信息收集和被动信息收集。

2.1客户提供信息

安全测试工作开展前,需要客户提供基础的测试信息,包括以下内容:

1.内外网IP

2.内外网URL

3.测试账号(高低权)

4....

2.2被动信息收集

被动信息搜集,指通过客户提供的基础信息,如域名、IP等,通过各种渠道获取开源情报(OSINT)。

常用的开源情报获取工具有Recon-NG、Discover、SpiderFoot等。

2.3主动信息收集

主动信息收集主要是通过扫描确认目标安装的操作系统、网络服务、软件版本等,并发现潜在的漏洞。安全测试过程中,需要选择正确的扫描工具,从内部及外部网络对指定的网络进行扫描。

2.4被动信息搜集工具

•DataSploit

•Recon-NG

•Discover

•SpiderFoot

•003Recon

2.5主动信息搜集工具

2.5.1端口扫描

•Nmap(Nmap扫描结果可以输出XML文件,使用Python脚本提取需要的信息生成Excel文件,便于查看)

•Masscan

•Sparta

2.5.2HTTP截图

•EyeWitness

3. 主机测试

3.1主机漏洞扫描:

主要是进行主机漏洞扫描,服务器漏洞扫描;主要使用绿盟极光漏扫,可使用Nessus、Openvas等辅助检查。漏扫扫描时扫描端口设置为0-65535,快速全面的发现各类主机服务问题。

工具:绿盟极光漏扫、Nessus等。

3.2系统服务攻击测试:

主要测试为SSH、SMB、RDP、SNMP、FTP。下面将对其分别进行介绍:

3.2.1 SSH主要测试:

弱口令暴力破解:检查是否存在易破解的弱账号弱密码。工具:nmap、hydra、medusa等

使用弱加密算法:较低版本的SSH,可能存在使用弱加密算法的问题。工具:nmap --script ssh2-enum-algos、nmap --script ssh-auth-methods

3.2.2 SMB主要测试:

弱口令暴力破解:检查是否存在易破解的弱账号弱密码。工具:nmap、hydra等例:nmap -p 445 --script smb-brute

SMB漏洞利用:其分析要点是验证是否存在smb漏洞,如ms08-067、ms17-010可直接获取Windows shell。工具:msf、nmap script 例:nmap --script smb-vuln-ms17-010 -p 445

3.2.3 RDP主要测试:

弱口令暴力破解:检查是否存在易破解的弱账号弱密码。工具:hydra、medusa

RDP漏洞:MS12-020漏洞利用成功后会导致服务器蓝屏,生产环境严禁利用该漏洞。所用工具:msf、nmap script

3.2.4 SNMP主要测试:

默认字符串扫描。工具:hydra、nmap script

3.2.5 FTP主要测试:

弱口令暴力破解:检查是否存在易破解的弱账号弱密码。工具:hydra、nmap script

匿名访问:所使用工具为hydra、nmap script

FTP跨目录访问:服务端配置不当,可能导致FTP访问系统所有文件

4. Web测试

4.1 Web漏洞扫描:

使用Web扫描工具对Web站点进行扫描,用于快速发现站点已知漏洞,获取基础信息用于人工渗透测试。工具:Awvs、Sparker、Appscan等

4.2 Web平台攻击测试:

主要测试HTTP方法、版本信息泄露、框架漏洞、反序列化、DOS攻击、管理后台弱口令。下面将对其分别介绍:

HTTP方法:测试是否使用不安全的HTTP方法。一般情况下,只允许开发GET/POST/HEAD三类基本方法。工具:Burpsuite/ZAP

版本信息泄露:测试HTTP返回数据或报错信息是否泄露Web服务软件版本信息。工具:Burpsuite/ZAP

框架漏洞:测试Web框架存在的漏洞,如Struts2框架存在大量远程命令执行漏洞。工具:K8shack2等Struts 2利用工具、Struts 2批量检测脚本

反序列化:Weblogic、Jboss、Websphere等使用Java技术的Web容器,低版本中存在反序列化漏洞。工具:Weblogic反序列化、Jboss反序列测试工具等、Burpsuite插件

DOS攻击:测试服务端是否存在DOS攻击风险。Apache httpd默认配置是否存在slowhttpdos攻击漏洞。工具:slowhttpdos

管理后台弱口令:测试Web管理后台是否存在弱口令或默认口令。管理后台弱口令,可导致攻击者直接上传webshell,获取服务器控制权限。工具:Burpsuite/ZAP、Weblogic管理密码破解脚本等。

4.3 Web认证测试:

主要测试账号及口令猜解、数据提交方式、认证绕过、令牌重放、验证码安全、Cookie安全。下面将对其详细介绍:

账号及口令猜解:测试是否对设置登陆错误次数阈值。工具:Burpsuite/ZAP

数据提交方式:测试数据提交方法及内容是否安全。登陆信息应加密提交;重要信息使用POST方法提交。工具:Burpsuite/ZAP

认证绕过:测试是否可以不需要密码登陆系统。在登录表单中输入'or'='or'等语句实现SQL注入,包括:

a' or 'a' = 'a

1 or 2=2

……

关键是构造的字符串能否被直接带入查询语句。工具:Burpsuite/Firefox + Hackbar

令牌重放:测试令牌是否可重复使用。

1.通过浏览器访问目标网站;

2.通过Firebug查看HTTP的POST和GET数据包,检查有无Cookie和Session等信息;

3.使用Hackbar插件复制或修改Cookie、Session等字符串重新访问授权页面;

工具:Burpsuite/Firefox + Hackbar

验证码安全:包括测试短信验证码过期时间以及是否可枚举(短信验证码位数短及有效期过长,存在暴力破解验证码的风险)、验证码重复使用、验证码客户端回显、验证码绕过(验证码未在服务器做校验)、测试图形验证码是否可识别(验证码过于简单,可能被机器自动识别)。使用工具:Burpsuite/ZAP、PKAV Fuzzing(测试图形验证码是否可识别所用工具)

Cookie安全:测试cookie是否测试httponly。添加httponly属性,可防止cookie被Javascript读取。工具;浏览器

4.4 Session安全:

主要测试连接超时限制和httponly。下面将对其进行详细介绍:

连接超时限制:检查是否设置连接超时。一般设置最大时长为5分钟。

Httponly:Cookie是否设置httponly。阻止JS操作Cookie,以防止XSS获取cookie信息。工具:Burpsuite/ZAP

4.5 Web授权测试:

主要测试未授权访问、水平越权和垂直越权。下面将对其进行详细介绍:

未授权访问:测试Web目录是否可以未授权访问。工具:Burpsuite/ZAP

水平越权:测试账号是否可获取同级别其它账号功能权限。工具:Burpsuite/ZAP

垂直越权:测试是否存在低权账号可使用高权账号功能。工具:Burpsuite/ZAP

4.6 输入输出:

主要测试XSS、命令执行和SQLi。下面将对其进行详细介绍:

XSS:测试是否存在XSS漏洞。工具:Burpsuite + 插件

命令执行:测试是否可执行系统命令。工具:Burpsuite/ZAP

SQLi:测试是否存在SQLi漏洞。工具:SQLmap、Burpsuite

4.7 文件上传下载:

主要测试任意文件上传和任意文件下载。下面将对其进行详细介绍:

任意文件上传:测试是否可以上传Webshell脚本文件。文件上传校验不严格,可导致攻击者上传Webshell,获取服务器权限。工具:Burpsuite/ZAP

任意文件下载:测试是否可下载系统文件。Web服务器配置不当,可能导致攻击者下载任意系统文件。工具:Burpsuite/ZAP

4.8 目录遍历:

4.9 敏感数据泄露:

主要测试个人隐私信息泄露、服务器信息泄露、凭证泄露和备份文件泄露。下面将对其进行详细介绍:

个人隐私信息泄露:测试HTTP返回页面源码是否泄露个人隐私信息。工具:Burpsuite/ZAP

服务器信息泄露:测试HTTP返回页面源码中是否泄露内网服务器信息。工具:Burpsuite、浏览器

凭证泄露:测试是否存在短信验证码、Token等泄露。如密码找回的Token、验证码等信息返回的客户端,可导致任意账号密码重置。工具:Burpsuite/ZAP

备份文件泄露:测试服务器是否泄露源码备份文档等敏感信息。通过备份文件可能泄露源码、代码中保存的IP/账号等。工具:Brupsuite、敏感文件测试脚本。

5. 数据库测试

5.1 Oracle:

主要测试口令破解、Oracle默认口令猜解、OracleSid破解和Oracle TNS安全检查。下面将对其进行详细介绍:

口令破解:检测是否使用弱口令。需知道SID后破解用户密码。工具:Oracle Password Auditor

Oracle默认口令猜解:测试是否存在默认用户名scott 默认密码tiger。

OracleSid破解:使用工具猜解存在的SID。在Oracle中,SID是System IDentifier的缩写。SID是一个数据库的唯一标识符。当用户希望远程连接Oracle数据库时,则需要知道SID、用户名、密码及服务器的IP地址。工具:SidGuess

Oracle TNS安全检查:测试TNS安全、是否泄露数据库版本等。根据版本的不同,TNS listener可能较易受到多种类型的缓冲区溢出攻击,这些攻击可以在不提供用户ID和口令的情况下被利用。例如:在oracle 9i中,当客户机请求某个过长的service_name时,很容易受到溢出攻击。当listener为日志构建错误消息之后,service_name的值会被复制到某于栈结构的缓冲区内,从而引起溢出—覆盖保存值将返回栈中的地址。这种做法可以使攻击者获得控制权。工具:tnscmd。

5.2 MySQL

主要测试为密码破解,检测是否使用弱口令。工具:msf、nmap script

5.3 SQL Server

主要测试密码破解和空口令用户检查。下面将对其进行详细介绍:

密码破解:检测是否使用弱口令。工具:hydra

空口令用户检查:检查使用使用空口令。工具:hydra

5.4 弱口令

主要测试弱口令检测:检测MySQL、MSSql、Postgresql、Oracle是否存在弱口令。脚本地址:。工具:DBScanner(Python脚本)

5.5 未授权访问

主要测试未授权访问,检测Redis、Mongodb、Memcached是否存在未授权访问。脚本地址:。工具:DBScanner(Python脚本)

6. 业务安全

6.1业务授权访问模块:

主要测试非授权访问和越权访问。下面将对其进行详细介绍:

非授权访问:测试是否可在未通过认证授权的情况下直接访问需要认证访问的页面。工具:Burpsuite/ZAP

越权访问:测试是否存在水平越权或垂直越权。工具:Burpsuite/ZAP

6.2 业务办理安全:

主要测试订单IP篡改测试、手机号码篡改测试、用户ID篡改测试、邮箱和用户篡改测试、商品篡改测试、竞争条件测试、商品支付金额和商品订购数量篡改测试。业务办理安全问题将可能造成0元购物、使用他人账号购物等各种问题。工具:Burpsuite/ZAP

6.3 密码找回模块测试:

主要测试验证码客户端回显、验证码暴力破解、接口参数账号修改、Response状态值修改、Session覆盖测试、密码找回流程绕过测试和弱Token设计缺陷测试。密码找回模块安全问题可造成重置任意用户密码。工具:Burpsuite/ZAP

6.4 业务接口调用测试:

主要测试接口调用重放测试、接口调用遍历测试、接口调用参数篡改测试、接口未授权访问、Callback自定义测试和WebService测试。工具:Burpsuite/ZAP。

7. 信息收集整理

整理渗透工具:整理渗透过程中用到的代码,poc,exp等

整理收集信息:整理渗透过程中收集到的一切信息

整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息

目的:为了最后形成报告,形成测试结果使用

8. 形成报告

按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告

补充介绍:要对漏洞成因,验证过程和带来危害进行分析

修补建议:当然要对所有产生的问题提出合理高效安全的解决办法