要求:
1.搭建docker
2.使用小皮面板搭建pikachu靶场
3.使用BP的爆破模块破解pikachu的登陆密码步骤
4.Kail的msf复现永恒之蓝
一.搭建docker
1. Docker介绍
Docker 是容器,可以部分完全封闭。封闭意味:一个物质(放到容器),另一个物质(放到容器)隔离,容器可以保护里面的物质。docker 只是管理容器,包括LXC。
1.1安装docker
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable dockersudo systemctl restart docker
sudo systemctl status dockersudo docker run hello-world
1.2nginx(源码安装):
1.2.1安装依赖的环境
apt-get install gcc
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
sudo apt-get install libssl-dev
1.2. 2安装nginx
tar -xvf nginx-1.21.6.tar.gz
1.2.3编译nginx
cd nginx-1.21.6.tar.gz
# 执行命令
./configure
./configure --prefix=/home/centos/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module
# 执行make命令
make
# 执行make install命令
make install
1.3启动nginx
cd /usr/local/nginx/sbin
# 启动nginx
./nginx
1.4访问nginx
出现这个界面docker搭建成功
二.使用小皮面板搭建pikachu靶场
1.下载 Pikachu 靶场源码:从Pikachu 官方 GitHub 仓库下载源码压缩包
2.配置靶场源码
移动源码压缩包:找到已下载的 Pikachu 靶场源码压缩包,将其复制或剪切到小皮面板的安装目录下,具体路径为该目录中的 www 文件夹内。
解压压缩包:在 www 文件夹中,右键点击刚移动过来的 Pikachu 源码压缩包,选择解压选项(如 “解压到当前文件夹”),完成解压操作。
重命名文件夹:解压后会生成一个名为 “pikachu - master” 的文件夹,右键点击该文件夹,选择 “重命名”,将其名称修改为 “pikachu” 即可。
3.查看数据库账户信息
启动并进入小皮面板:打开小皮面板应用程序,等待界面加载完成后,进入其主操作页面。
找到数据库管理入口:在小皮面板的功能菜单栏中,找到并点击 “数据库” 选项,进入数据库管理界面。
查看默认账户信息:在数据库管理界面中,可直接看到系统默认的数据库用户名和对应的密码。一般情况下,初始设置的用户名和密码均为 “root”,若有过修改则显示修改后的信息。
4.配置数据库连接信息
定位配置文件:打开文件资源管理器,进入 Pikachu 靶场源码目录,找到并进入 pikachu/inc 文件夹。
编辑配置文件:在该文件夹中找到 config.inc.php 文件,右键选择使用文本编辑器(如记事本、VS Code 等)打开。
修改数据库凭证:在打开的文件中,找到与数据库连接相关的配置项,通常为
$dbuser
和$dbpass
变量,将其对应的值修改为在小皮面板中查看到的数据库用户名和密码(默认为root
)。保存修改:完成修改后,点击编辑器的保存按钮或使用快捷键(如 Ctrl+S)保存文件,关闭编辑器。
5.创建网站服务
访问网站管理界面:在小皮面板主窗口中,找到并点击 "网站" 选项卡,进入网站管理页面。
启动网站创建向导:在网站管理界面的左上角,点击 "创建网站" 按钮,系统将弹出网站配置对话框。
配置网站根目录:在对话框的 "路径" 字段中,通过浏览按钮定位并选择之前解压的 pikachu 文件夹所在路径。
自定义网站参数:根据实际需求填写其他配置项,例如:
- 域名:可输入任意本地标识(如
pikachu.test
) - 端口:保持默认值
80
(需确保未被占用) - 其他选项:如 SSL 配置、PHP 版本等可按需调整
- 域名:可输入任意本地标识(如
完成创建:确认所有配置无误后,点击对话框底部的 "确定" 按钮,系统将自动完成网站环境配置。
6.初始化靶场环境
启动靶场安装程序:打开任意浏览器(如 Chrome、Firefox 等),在地址栏中输入
http://127.0.0.1/install.php
,然后按下回车键访问该 URL。执行初始化操作:在打开的页面中,找到并点击 "安装 / 初始化" 按钮。系统将自动执行数据库创建、表结构初始化等操作。
验证安装结果:等待初始化过程完成,页面通常会显示成功提示信息。此时,Pikachu 靶场已准备就绪,可以开始使用。
三.打开Burp中的“代理模块”抓取要拦截的皮卡丘登录页面
1.启动靶场访问
打开浏览器应用:从桌面快捷方式、开始菜单或任务栏中启动您常用的浏览器程序(如 Chrome、Edge 等)。
输入靶场地址:在浏览器的地址栏中输入
http://127.0.0.1/
(或您在小皮面板中配置的自定义域名)。访问靶场首页:按下回车键,浏览器将加载 Pikachu 靶场的主界面,您可以开始浏览和使用各种漏洞测试模块。
2.进入指定暴力破解测试模块
浏览靶场主界面:成功访问 Pikachu 靶场后,在打开的首页中,可看到左侧的功能目录列表。
定位暴力破解分类:在左侧目录里,找到并点击 “暴力破解” 这一分类选项,展开其包含的子模块列表。
选择目标测试项:在展开的子模块中,找到 “基于表单的暴力破解” 选项并点击,即可进入该场景的测试页面,开始相关的安全测试练习。
输入账号与尝试密码
确认测试页面:进入 “基于表单的暴力破解” 测试页面后,可看到包含账号和密码输入框的登录表单。
填写已知账号:在表单的账号输入框中,准确输入已知的账号 “admin”。
尝试任意密码:在密码输入框中,随意输入一组字符作为测试密码(例如 “123456”“abcdef” 等均可),完成后准备进行提交操作。
3.使用 Burp Suite 拦截登录请求
配置 Burp 代理环境:
- 启动 Burp Suite,在 Proxy(代理)选项卡中,确保 Intercept(拦截)功能已开启(状态显示为 “Intercept is on”)
- 配置浏览器代理设置,将 HTTP 代理指向 Burp 默认监听地址:
127.0.0.1:8080
触发请求拦截:
- 返回浏览器中已打开的 Pikachu 靶场 “基于表单的暴力破解” 页面
- 在表单中填写账号(如 admin)和任意密码后,点击页面上的 “Login” 按钮提交登录请求
验证拦截结果:
- 切换回 Burp Suite 界面,在 Proxy > Intercept 选项卡下,可看到拦截到的登录请求数据包
- 该数据包包含表单提交的账号密码参数(通常为 username=admin&password=xxx)
4.配置 Burp Intruder 暴力破解
导入拦截的请求:
- 在 Burp Suite 的 Proxy > Intercept 面板中,确认已拦截到登录请求
- 右键点击请求数据包,选择 "Send to Intruder"(或使用快捷键 Ctrl+I)
- 切换到 Intruder 选项卡,系统会自动加载该请求
配置攻击类型:
- 在 Intruder 的 "Positions" 选项卡中,确保攻击类型设置为 "Cluster bomb" 或 "Pitchfork"(针对多参数攻击)
- 清除默认的所有 § 符号(点击 "Clear §" 按钮)
标记破解位置:
- 定位到请求中的密码参数(如
password=xxx
) - 选中密码值部分(如
xxx
),点击 "Add §" 按钮,将其标记为变量位置 - 如需同时破解用户名,可同样标记用户名参数位置
- 定位到请求中的密码参数(如
验证配置结果:
- 在 "Positions" 选项卡下方的 "Payload positions" 区域,应看到已标记的变量位置(显示为
password=§xxx§
) - 确认无误后,进入下一步配置攻击载荷
- 在 "Positions" 选项卡下方的 "Payload positions" 区域,应看到已标记的变量位置(显示为
字典载入
5.执行暴力破解并定位正确密码
启动攻击任务:
- 在 Burp Intruder 的 "Payloads" 选项卡中,确认已成功载入密码字典(如常见弱口令列表)
- 点击界面右上角的 "Start attack" 按钮,开始执行暴力破解任务,系统会自动用字典中的密码逐一替换标记位置并发送请求
分析攻击结果:
- 攻击结束后,在弹出的结果窗口中,切换到 "Length"(长度)列,按该列排序
- 观察各请求返回的响应长度,通常正确密码对应的响应包长度会与其他错误尝试不同(例如成功登录后返回的页面内容更多)
确认正确密码:
- 找到响应长度与其他条目存在明显差异的那一行
- 查看该行对应的 "Payload" 列,即为暴力破解出的正确密码
6,验证破解结果并登录靶场
返回靶场登录页面:切换回浏览器中的 Pikachu 靶场 “基于表单的暴力破解” 页面,确保登录表单处于可输入状态。
填入破解信息:在账号输入框中再次输入已知的 “admin”,在密码输入框中填写通过 Burp 暴力破解得到的正确密码。
提交登录请求:点击表单中的 “Login” 按钮,提交账号和密码信息。
确认登录结果:若信息正确,页面会跳转至登录成功后的界面(通常会显示欢迎信息或进入后台页面),以此验证破解得到的密码有效。
7.确认破解成功结果
当在 Pikachu 靶场的 “基于表单的暴力破解” 页面中,输入已知账号 “admin” 和通过 Burp 破解出的正确密码并点击 “Login” 后,页面若显示 “login success” 的提示信息,即表明此次暴力破解操作成功,成功获取了该账号对应的正确密码。
四.使用Kail中的msf复现永恒之蓝
1.永恒之蓝(EternalBlue)概述
永恒之蓝是一款由美国国家安全局(NSA)开发的网络攻击武器,主要利用微软 Windows 操作系统的SMB 协议(Server Message Block,服务器消息块)漏洞(CVE-2017-0144) 进行攻击。该漏洞存在于 Windows 系统的文件共享服务中,攻击者可通过向目标设备发送特制的 SMB 数据包,远程执行代码,从而控制被攻击的计算机。
核心特点与危害
- 漏洞原理:SMB 协议在处理某些特定请求时存在缓冲区溢出缺陷,攻击者可构造恶意数据触发漏洞,实现远程代码执行(无需用户交互)。
- 攻击范围:影响 Windows XP、Windows 7、Windows Server 2003/2008 等多个旧版本系统(微软于 2017 年发布补丁 MS17-010 修复)。
- 危害程度:一旦成功利用,攻击者可完全控制目标设备,窃取数据、植入恶意软件(如勒索病毒),甚至组建僵尸网络。
历史影响
- WannaCry 勒索病毒:2017 年,黑客组织利用永恒之蓝漏洞传播 WannaCry,全球超过 150 个国家的医疗机构、企业等遭受攻击,造成巨额损失,成为史上影响最广的网络攻击事件之一。
- 后续衍生攻击:除 WannaCry 外,Petya、NotPetya 等勒索病毒也借鉴了永恒之蓝的攻击方式,持续威胁未打补丁的老旧系统。
防御措施
- 及时打补丁:安装微软发布的 MS17-010 补丁,修复 SMB 协议漏洞。
- 限制服务:关闭不必要的 SMB 服务,或通过防火墙限制 445 端口(SMB 默认端口)的外部访问。
- 系统升级:淘汰 Windows XP、Windows Server 2003 等不再受支持的旧系统,升级至安全版本。
2,准备工作
- 虚拟机:VMware
- 靶机:Windows 7
- 攻击机:Kali
- 工具:Kali中的nmap metasploit(MSF)
3.主机发现操作要点
在进行永恒之蓝漏洞测试的主机发现环节,需特别注意目标主机的防火墙状态:
关闭目标防火墙:进入目标主机的安全设置,暂时关闭系统防火墙(如 Windows 防火墙)。这是因为防火墙可能会拦截端口扫描请求,导致 nmap 无法探测到 445 等关键端口的开放状态,进而影响后续 MSF(Metasploit)对永恒之蓝漏洞的利用。
执行主机发现扫描:在确保防火墙关闭后,使用 nmap 等工具进行网络扫描(例如通过
nmap -sn 目标网段
命令),探测目标主机是否在线及开放的端口信息,为后续漏洞利用确认目标可用性。
4.在 Kali Linux 中使用 Nmap 扫描网段进行主机发现是网络安全测试的基础操作。以下是常用的 Nmap 扫描命令及其用途:
4.4.1. Ping 扫描(快速发现在线主机)
nmap -sn 192.168.1.0/24
- 参数说明:
-sn
:禁用端口扫描,只进行主机发现(通过 ICMPping 或 TCP/UDP 探测)。
- 作用:快速识别网段内哪些 IP 地址正在运行,输出存活主机列表。
4.4.2. ARP 扫描(内网主机发现)
- 参数说明:
-PR
:强制使用 ARP 请求进行扫描(适用于同一局域网内的主机发现,绕过防火墙 ICMP 过滤)。
- 适用场景:在无法 ping 通目标主机时(如防火墙拦截 ICMP),通过 ARP 协议发现内网设备。
详细扫描(获取主机信息
nmap -sS -O -T4 192.168.1.0/24
- 参数说明:
-sS
:TCP SYN 扫描(半开放扫描),快速且隐蔽。-O
:启用操作系统检测(需 root 权限)。-T4
:设置扫描速度(1-5 级,5 最快)。
- 作用:不仅发现在线主机,还能识别开放端口、服务版本及可能的操作系统类型。
输出扫描结果到文件
nmap -sn 192.168.1.0/24 -oN scan_results.txt
- 参数说明:
-oN
:以标准格式保存结果到指定文件(scan_results.txt
)。
- 用途:便于后续分析或导入到其他工具(如 MSF)。
注意事项:
- 权限要求:部分扫描(如 SYN 扫描、操作系统检测)需 root 权限,需使用
sudo
执行命令。 - 防火墙影响:若目标主机开启防火墙,可能漏报部分开放端口,建议先关闭防火墙或使用 ARP 扫描。
- 扫描策略:大规模扫描时,建议使用
-T4
或-T5
提高速度;针对单个主机,可使用更详细的扫描参数(如-A
启用全面扫描)。
5.使用 Metasploit(MSF)进行主机发现步骤
Metasploit(简称 MSF)不仅是漏洞利用框架,也集成了主机发现工具,可通过其内置模块扫描网段内的存活主机。以下是具体操作流程:
启动 Metasploit
在 Kali Linux 终端中输入命令启动 MSF 控制台:
msfconsole
等待加载完成,进入 MSF 交互界面(显示msf6 >
提示符)。
选择主机发现模块
MSF 提供多种主机发现模块,常用的是基于 ICMP(ping)的扫描模块,输入以下命令加载:
use auxiliary/scanner/discovery/icmp_ping_sweep
- 该模块通过发送 ICMP echo 请求(类似 ping 命令)探测存活主机,适用于大部分内网环境。
配置模块参数
需设置目标网段、线程数等关键参数,命令如下:
set RHOSTS 192.168.1.0/24 # 设置目标网段(根据实际网络修改)
set THREADS 50 # 设置扫描线程数(数值越大速度越快,建议50-100)
- 其他可选参数:
set TIMEOUT 5000
(设置超时时间,单位毫秒)。
执行主机扫描
配置完成后,输入以下命令开始扫描:
run
- 扫描过程中,MSF 会实时显示探测到的存活主机 IP(如
192.168.1.101
)。
查看扫描结果
扫描结束后,可通过以下方式查看结果:
- 直接在控制台输出中查找标有 “Host is up” 的 IP 地址。
- 使用
services
命令查看所有发现的主机信息(包含 IP 和状态)。
其他可选模块(针对特殊场景)
TCP 端口扫描发现:若目标禁用 ICMP,可尝试基于 TCP 的扫描模块:
use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.1.0/24 set PORTS 1-100 # 扫描常用端口(如80、445等) run
通过检测端口是否开放间接判断主机是否存活。
ARP 扫描模块:适用于内网环境,绕过部分防火墙限制:
use auxiliary/scanner/discovery/arp_sweep set RHOSTS 192.168.1.0/24 run
特点与注意事项
- 优势:MSF 的主机发现可与后续漏洞扫描、利用模块无缝衔接,适合渗透测试流程。
- 局限性:ICMP 扫描可能被防火墙拦截,需根据目标环境选择模块(如 ARP 扫描适用于内网,TCP 扫描适用于防火墙开放端口的场景)。
- 权限要求:部分模块(如 ARP 扫描)需要 root 权限,建议以
sudo msfconsole
启动 MSF。
6.永恒之蓝漏洞相关扫描
针对永恒之蓝(SMB 协议漏洞),需重点扫描TCP 445 端口:
nmap -sT -p445 192.168.1.0/24 # 快速扫描网段内所有主机的445端口
若发现 445 端口开放,可进一步结合版本探测确认是否存在漏洞:
nmap -sT -sV -p445 192.168.1.100 # 探测445端口的SMB服务版本
7.Meterpreter 成功接入及功能说明
当通过 Metasploit(MSF)成功利用漏洞永恒之蓝后,终端会显示 meterpreter >
提示符,这标志着已建立与目标主机的交互式控制会话,可对目标系统执行深度渗透操作。
Meterpreter 的核心功能与用途
作为 Metasploit 的扩展模块,Meterpreter 集成了丰富的命令,支持以下关键操作:
- 系统交互:通过
shell
命令进入目标系统的 CMD(Windows)或终端(Linux),直接执行系统命令(如查看文件、创建用户等)。 - 信息收集:
screenshot
:截取目标主机当前屏幕画面,获取可视化信息。getsystem
:尝试提权至系统最高权限(如 Windows 的 SYSTEM 权限)。enumprocesses
:列出目标系统正在运行的进程,分析系统状态。
- 文件操作:
upload 本地文件路径 目标路径
:将本地文件上传至目标主机(如植入恶意程序)。download 目标文件路径 本地路径
:从目标主机下载文件(如窃取敏感数据)。
- 持久化控制:
run persistence
:在目标系统创建持久后门,确保重启后仍能重新连接。metepreter > install_service
:将控制会话注册为系统服务,隐蔽维持访问。
- 其他高级功能:如键盘记录(
keyscan_start
)、摄像头控制(webcam_snap
)等,视目标系统环境支持情况而定。
使用提示
- 输入
help
可查看所有可用命令及说明。 - 执行敏感操作(如提权、创建后门)前,建议先通过
getuid
确认当前权限,避免因权限不足导致操作失败。 - 为避免被检测,可使用
background
命令将会话后台挂起,后续通过sessions -i 会话ID
重新接入。