游客发表

网络扫描实验心得体会

发帖时间:2026-10-17 05:15:08

第一次跑Nmap扫自己搭的网络靶机,屏幕上跳出一行"22/tcp open ssh",扫描实验我盯着那行字看了好几秒。网络说实话,扫描实验有点兴奋,网络也有点后怕——这台机器从部署到被扫出端口,扫描实验前后不到三分钟,网络而我什么都没做,扫描实验只是网络敲了一条命令。

实验用的扫描实验是VMware里两台虚拟机,一台Kali做扫描端,网络一台Metasploitable2当靶机。扫描实验Nmap的网络用法其实不复杂,nmap -sS -sV -O 192.168.1.100这条命令丢进去,扫描实验几秒钟就返回了结果。网络但真正让我愣住的是-sV参数带出来的版本信息:靶机上跑的vsftpd是2.3.4版本。我顺手搜了一下,这个版本正好对应一个著名的后门漏洞。扫描工具不只是告诉你"门开着",它连门锁是什么牌子、哪年生产的都一并告诉你了。

端口扫描的原理说白了就是发数据包、看回应。TCP三次握手,如果对方回了SYN+ACK,端口就是开放的;回了RST,就是关闭的。听起来简单,但实际操作里花样很多。SYN半开扫描不建立完整连接,速度快、隐蔽性高,但需要root权限。全连接扫描用connect()系统调用,不需要特殊权限,但会在目标日志里留下大量记录。我两种都试了一遍,对比Wireshark抓到的包,差异一目了然。

做实验的过程中有个细节让我印象很深。我用-Pn参数跳过主机存活检测去扫一台防火墙后面的机器,结果扫出来一堆"filtered"状态。当时以为是靶机出了问题,折腾了半小时才发现是防火墙规则把探测包丢了。这件事让我意识到,扫描结果里"filtered"和"closed"是完全不同的含义——前者意味着有设备在中间拦截,后者才是目标主机明确拒绝。搞混这两个状态,后续的渗透思路会完全跑偏。

操作系统指纹识别也挺有意思。Nmap靠的是分析TCP/IP协议栈的实现差异——不同系统对TTL的默认值、TCP窗口大小、DF标志位的处理都不一样。我扫出来的结果标着"Linux 2.6.x",跟靶机实际系统吻合。但这种技术不是百分百可靠,尤其目标做了协议栈伪装的时候。有个同学扫同一台机器,因为中间过了一层NAT,指纹识别结果直接变成了"未知"。

漏洞扫描是另一个层面的事。Nmap自带的NSE脚本引擎能做的事远超端口扫描——--script=vuln可以调用一堆漏洞检测脚本,从SMB漏洞到HTTP配置缺陷都能查。我跑了一次针对靶机的完整脚本扫描,输出的报告有几十页。但脚本多了误报也多,有一条说靶机存在某个CVE漏洞,我去翻靶机的实际配置,发现那个服务根本没启用。工具给的是线索,不是结论。

这次实验最大的收获不是学会了几个命令。是我第一次直观感受到,一台暴露在网络里的机器,在别人眼里是什么样子。你以为关掉了不必要的服务就安全了? banner信息、ICMP时间戳、甚至TCP序列号的生成方式,都在往外泄露信息。攻击者不需要多高明的手段,一个Nmap加上耐心,就能画出一张相当完整的网络地图。防御方要做的,是在这张地图上尽量少留标注。

实验报告交上去之后我又自己扫了一遍宿舍的内网。看到路由器、打印机、几台电脑的端口状态列在终端里,感觉跟之前完全不一样了。以前觉得网络是看不见摸不着的东西,现在知道它其实到处都是可以观测的痕迹。这大概就是动手做实验和只看书的区别。

    热门排行

    友情链接