1.1 确定目标
在信息收集阶段中,我们需要明确测试的目标,这包括确定要测试的网站、应用程序或系统以及测试的目的。我们需要收集有关目标的所有信息,例如目标的IP地址、URL、操作系统、Web服务器、应用程序和框架等。我们可以使用以下工具来收集信息:
(资料图片仅供参考)
| 工具名称 | 说明 |
|---|---|
| Nmap | 用于扫描目标系统的端口和服务 |
| Whois | 用于查找目标域名的所有者信息 |
| Recon-ng | 用于收集目标的信息和资产 |
| Shodan | 用于搜索与目标相关的设备和服务 |
| Google Hacking Database | 用于搜索与目标相关的敏感信息和漏洞 |
| Social Engineering Toolkit | 用于利用社交工程学攻击目标 |
通过这些工具,我们可以收集尽可能多的信息,以便我们能够更好地了解目标并进行下一步的测试。
1.2 收集目标信息
收集目标域名及IP地址:
| 域名/IP地址 | 备注 |
|---|---|
| www.example.com | 主站 |
| mail.example.com | 邮件系统 |
| ftp.example.com | FTP服务器 |
收集目标子域名:
| 子域名 | 备注 |
|---|---|
| www.example.com | 主站 |
| mail.example.com | 邮件系统 |
| ftp.example.com | FTP服务器 |
收集目标网站备案信息:
| 网站备案信息 | 备注 |
|---|---|
| 网站名称:Example | |
| 网站备案号:京ICP备12345678号 | |
| 网站备案时间:2020年01月01日 |
收集目标网站SSL证书信息:
| SSL证书信息 | 备注 |
|---|---|
| 证书颁发机构:Let’s Encrypt | |
| 证书有效期:2021年01月01日至2022年01月01日 | |
| 证书类型:DV SSL证书 |
1.3 分析目标信息- 确定目标网站的IP地址和端口号
表格示例:
| 目标信息 | 收集方法 |
|---|---|
| IP地址和端口号 | 使用ping命令和端口扫描工具 |
| 服务器类型和操作系统 | 使用指纹识别工具和漏洞扫描工具 |
| 子域名和子目录信息 | 使用子域名枚举工具和目录扫描工具 |
| 敏感目录和敏感文件信息 | 使用目录扫描工具和文件泄露检测工具 |
| 管理员信息和系统架构信息 | 使用搜索引擎和社交媒体 |
| 第三方组件和插件信息 | 使用漏洞扫描工具和指纹识别工具 |
| 漏洞信息和历史安全事件信息 | 使用漏洞库和搜索引擎 |
| 备份文件和日志文件信息 | 使用目录扫描工具和文件泄露检测工具 |
| 社交媒体信息和员工信息 | 使用搜索引擎和社交媒体 |
2.1 确定漏洞扫描范围
2.2 选择合适的漏洞扫描工具
使用Nessus进行漏洞扫描,命令如下:
nessus -h -p 使用OpenVAS进行漏洞扫描,命令如下:
openvas-cli -h -p 使用Nmap进行漏洞扫描,命令如下:
nmap -sV --script=vuln 使用Burp Suite进行漏洞扫描,步骤如下:
使用Metasploit进行漏洞扫描,命令如下:
msfconsoleuse auxiliary/scanner/http/xxxset RHOSTS set RPORT run 2.3 进行漏洞扫描- 使用常用漏洞扫描器进行扫描,如Nessus、OpenVAS等
表格示例:
| 漏洞名称 | 漏洞类型 | 验证结果 |
|---|---|---|
| SQL注入漏洞 | 注入漏洞 | 存在 |
| XXE漏洞 | XML解析漏洞 | 不存在 |
| CSRF漏洞 | 跨站请求伪造漏洞 | 存在 |
| … | … | … |
3.1 确定攻击目标
确定攻击目标是漏洞利用阶段的第一步,攻击者需要明确攻击目标,包括目标的IP地址、操作系统版本、Web服务器版本、应用程序版本等信息。攻击者可以通过搜索引擎、WHOIS查询、端口扫描等方式获取目标信息。例如,使用nmap工具进行端口扫描:
nmap -sS -p 1-65535 -T4 target_ip扫描结果可以得到目标主机的开放端口和服务类型,从而确定目标的操作系统和Web服务器版本。
3.2 选择合适的漏洞利用工具
选择合适的漏洞利用工具:
| 工具名称 | 用途 | 示例 |
|---|---|---|
| Metasploit | 自动化漏洞利用框架 | use exploit/windows/smb/ms08_067_netapi |
| sqlmap | 自动化SQL注入工具 | python sqlmap.py -u "http://example.com/?id=1" --dbs |
| Burp Suite | 综合性的渗透测试工具 | 拦截并修改HTTP请求 |
| Nmap | 端口扫描工具 | nmap -sS -p 1-65535 example.com |
| Hydra | 暴力破解工具 | hydra -l admin -P password.txt example.com http-post-form "/login.php:user=^USER^&pass=^PASS^:Invalid username or password" |
3.3 进行漏洞利用- 选定目标漏洞:根据前面的漏洞扫描和漏洞验证,选定一个可利用的漏洞作为攻击目标。
| 选定目标漏洞 | 收集目标信息 | 编写漏洞利用代码 | 运行漏洞利用代码 | 清理痕迹 |
|---|---|---|---|---|
| Web应用程序中的SQL注入漏洞 | 获取数据库类型、版本、表结构等信息 | 编写SQL注入语句 | 将SQL注入语句插入到Web应用程序中 | 删除日志、清理服务器上的恶意文件等 |
4.1 提升权限
4.1 提升权限
在提权阶段,我们会使用各种技术手段提升我们的权限,以便更深入地访问目标系统。
以下是一些常见的提权方法:
| 方法 | 描述 |
|---|---|
| 提升进程权限 | 利用漏洞或者提权工具将当前进程的权限提升为系统管理员权限或者其他高权限 |
| 利用服务漏洞 | 利用服务程序存在的漏洞,提升权限 |
| 利用系统漏洞 | 利用系统存在的漏洞,提升权限 |
| 利用系统配置错误 | 利用系统配置错误,提升权限 |
| 利用社会工程学 | 利用社会工程学手段,获取管理员权限 |
在实际操作中,我们需要根据具体情况选择适合的提权方法,并且需要注意提权过程中的隐蔽性,尽量避免被目标系统检测到。
4.2 寻找敏感信息- 在网站中搜索常见的敏感文件,如/etc/passwd、/etc/shadow等,尝试读取其中的内容。
5.1 删除日志
rm -rf /var/log/*表格:
| 命令 | 说明 |
|---|---|
| rm -rf /var/log/* | 删除/var/log/目录下的所有文件和子目录 |
5.2 清除痕迹- 清除浏览器缓存和历史记录,尤其是敏感信息的访问记录;
表格示例:
| 清除痕迹方法 | 说明 |
|---|---|
| 清除浏览器缓存和历史记录 | 清除敏感信息的访问记录 |
| 删除临时文件和日志文件 | 清除系统中产生的临时数据 |
| 清除操作系统的事件日志 | 防止被攻击者发现测试痕迹 |
| 删除测试过程中产生的临时文件和日志文件 | 防止被攻击者发现测试痕迹 |
| 删除测试过程中通过漏洞获取到的文件和数据 | 防止被攻击者发现测试痕迹 |
| 在目标系统上留下的任何测试痕迹都应该被清除 | 防止被攻击者发现测试痕迹 |
6.1 汇总测试结果
| 漏洞名称 | 漏洞等级 | 漏洞描述 | 漏洞证明 | 建议 |
|---|---|---|---|---|
| SQL注入 | 高 | 在登录页面找到SQL注入漏洞 | ’ or 1=1 – | 对输入进行过滤或者使用预编译语句 |
| XSS | 中 | 在搜索框中发现反射型XSS漏洞 | <script>alert(‘XSS’)</script> | 对输入进行过滤或者使用转义字符 |
| 文件上传 | 低 | 在文件上传功能中发现文件类型没有限制 | 尝试上传一个php文件 | 对上传文件进行类型限制和内容过滤 |
6.2 分析测试结果
对测试结果进行分类整理,包括高、中、低风险漏洞的数量及详细信息。
根据测试结果提出相应的修复建议,包括修复方案、修复优先级等。
将测试结果和修复建议整理成报告形式,包括漏洞概述、风险评估、修复建议等内容。
报告中应包含详细的测试过程、测试结果、修复建议等信息,同时应当简明扼要,便于相关人员理解和操作。
表格:
| 漏洞类型 | 风险等级 | 漏洞描述 | 修复建议 |
|---|---|---|---|
| SQL注入 | 高 | 通过输入特定字符,可对数据库进行非法操作 | 对输入内容进行过滤和转义处理 |
| XSS | 中 | 可以在网页中注入恶意脚本,获取用户信息 | 对用户输入的内容进行过滤和转义处理 |
| CSRF | 中 | 利用用户已登录的身份,进行恶意操作 | 增加token验证机制 |
| 文件上传漏洞 | 低 | 可以上传恶意文件,进行攻击 | 对上传文件进行类型和大小的限制 |
6.3 撰写测试报告- 撰写测试报告应包括以下内容:
表格示例:
| 测试概述 | 测试环境 | 测试过程 |
|---|---|---|
| 对测试的目的、范围、方法、工具、时间等进行简要描述。 | 描述测试所使用的环境,包括硬件、软件、网络等。 | 详细描述测试的具体过程,包括测试的步骤、测试结果、发现的问题等。 |
| 漏洞评估 | 总结与建议 | 附录 |
|---|---|---|
| 对发现的漏洞进行评估,包括漏洞的危害程度、影响范围、修复建议等。 | 对整个测试过程进行总结,提出改进建议和安全加固措施。 | 包括测试的详细数据、测试的截图、漏洞的复现步骤等。 |
标签: