kalilinux扫描系统版本
作者:焦点 来源:百科 浏览: 【大 中 小】 发布时间:2026-10-17 06:06:29 评论数:
Kali Linux的描系扫描从来不是敲一条命令就完事。你得先搞清楚目标到底跑的统版是什么系统,才能决定后续用哪个漏洞脚本。描系今天直接说怎么干——用Nmap的统版OS指纹识别,加上一些细节判断,描系基本能锁定版本范围。统版 先上最基础的描系操作。假设目标IP是统版192.168.1.105,终端里执行:
nmap -O 192.168.1.105 这条命令会发送一系列精心构造的描系TCP包,分析响应中的统版窗口大小、TTL值、描系TCP选项排列。统版返回结果里有一段叫“OS details”,描系比如“Linux 2.6.32 - 3.10”或者“Microsoft Windows 7 SP1”。统版但注意,描系这只是猜测,误差常有。有一次我扫一台嵌入式设备,Nmap报“Linux 2.4.20”,实际上那是台改了内核的打印机。 光靠-O不够。很多管理员会修改默认TTL,或者防火墙会重写TCP头。这时候要结合端口扫描和banner抓取。用: nmap -sV -p 22,80,443 192.168.1.105 SSH服务的banner往往直接暴露版本,比如“OpenSSH_7.4p1 Ubuntu 10.04”。HTTP头里的Server字段也常写着“Apache/2.4.6 (CentOS)”。这些信息拼起来,比单纯靠指纹更靠谱。 还有个偏门技巧——看ICMP时间戳。Linux和Windows对ICMP timestamp request的响应格式不一样。用: ping -c 1 -T tsopt 192.168.1.105 如果返回的时间戳值是0,多半是Windows(因为Windows不更新这个字段)。Linux会返回实际时间戳。这招对付那些改了TTL、关了端口的主机特别有效。 别忽略Nmap的脚本引擎。--script=ossec这个脚本能通过检查TCP序列号预测的难易程度来推断系统类型。Windows的序列号生成往往比Linux更可预测。跑一下: nmap --script=ossec -O 192.168.1.105 结果里会给出“TCP sequence prediction: Class=truly random”或者“Class=old school”,后者基本指向老版本Linux。 实际渗透测试里,我习惯先做全端口扫描,再针对开放端口做详细指纹。因为有些系统只在特定端口上暴露特征。比如一台只开放了8080端口的设备,用-O扫可能什么都识别不出来,但抓取HTTP头发现“Server: micro_httpd”,这大概率是某款IP摄像头,系统版本通常是BusyBox的裁剪版Linux。 最后说个反例。有一次目标显示“Linux 4.15.0”,但系统响应明显有Windows的TCP窗口缩放特征。后来发现是台虚拟机,宿主机是Windows,NAT模式下网络栈行为被宿主机影响。所以扫描结果只能当参考,别全信。真要确认版本,得结合目标开放的服务漏洞去验证——比如如果对方跑着vsftpd 2.3.4,那基本能确定是Ubuntu 9.10或者更老的Debian。 工具给你了,命令也列了,剩下的就是多试。扫描系统版本这事,经验比命令重要。 