网络攻防实验报告

网络攻防实验报告

凌晨两点,网络我盯着屏幕上那个跳动的攻防光标,指尖悬在键盘上方三厘米处。实验靶机IP是报告192.168.1.107,一个运行着老旧Apache服务的网络Linux系统。第三次尝试SQL注入失败后,攻防我闻到机房特有的实验那股灰尘混着机箱散热的气味。这种味道总让我想起第一次拆开自家电脑时的报告紧张感。

实验环境搭在虚拟化平台里,网络三台虚拟机组成一个微型战场。攻防攻击机是实验Kali,靶机是报告Ubuntu Server,中间还隔着一台模拟路由器的网络CentOS。老师说这叫“隔离网络”,攻防但我更愿意叫它“斗兽场”。实验第一轮扫描用了Nmap的-sV参数,结果出来时我愣了一下——80端口开着,但版本号后面多了个奇怪的括号注释。后来才知道,那是管理员故意留下的蜜罐标记。

真正让我卡住的是那个上传点。文件类型校验只查了Content-Type头,我改了个包就绕过去了。但上传的PHP一句话木马死活不执行,访问路径总返回404。排查了半小时,最后发现是Web目录下有个.htaccess文件把php文件重定向了。这种小陷阱比防火墙更让人抓狂——它不拦你,只是让你绕远路。

拿到shell的那一刻,屏幕上跳出root@victim的提示符。我下意识地回头看了看实验室的窗户,外面路灯把梧桐叶的影子投在桌上。那种感觉很奇怪,像偷了东西却没被抓到。但接下来的提权过程立刻把我拉回现实:内核版本是2.6.32,有已知提权漏洞,编译exploit时却报了一堆依赖缺失的错。原来靶机环境刻意去掉了gcc和make。

我换了个思路,用Python的ctypes库直接调用内核函数。写脚本时手抖删掉一行关键代码,结果系统直接崩溃重启。那瞬间我听见机箱风扇的哀鸣,像是靶机在抗议我的粗鲁。第二回学乖了,先在本地虚拟机测试了三遍,才把payload传上去。这次成功了,但拿到root权限后,我却盯着屏幕发呆——接下来该干什么?

防御方的报告写得比攻击过程还长。我用tcpdump抓了攻防全程的流量包,回放时发现自己的扫描特征其实很明显:每秒钟五个SYN包,间隔固定得像节拍器。如果对方有Snort规则,第一次扫描就会被标记。后来我试着把扫描速度调慢到每分钟三个包,结果真的混过去了。原来慢速攻击不只是理论上的概念,它真的能骗过大多数默认配置的IDS。

实验结束前,我在靶机里留了个小标记——在/tmp目录下建了个名为“proof.txt”的文件,里面写着“你赢了”。第二天老师检查时,盯着那个文件看了很久,然后问我:“如果这不是实验环境,你会怎么做?”我没回答。因为答案太简单了,简单到让人不舒服:根本不会有第二次扫描的机会,第一次触发的告警就会让管理员断网断电。

收拾设备时,我把Kali的桌面壁纸换成了纯黑色。那个凌晨的体验像块磨刀石,把课本上的抽象概念磨出了真实触感。下次再遇到蜜罐,我大概能认出来——它总是比真实系统干净那么一点,响应速度快那么一点,像刻意打扮过的陷阱。而真正的系统,总带着些不完美的毛边。