使用TCP/IP协议栈指纹进行远程操作系统辨识
Fyodor (www.insecure.org)
1998-10-18
最后修改:1999-4-10
译者neko
2000-6-30
本文可以自由分发
概述
本文讨论了如何查询一台主机的TCP/IP协议栈来收集宝贵的信息。首
先,我列举了栈指纹之外的几种“经典的”操作系统辨识方法。然后
我描述了栈指纹工具的“工艺现状”。接下来说明让远程主机泄漏其
信息的一些技术。最后详述了我的实现(nmap),和用它获得的一些
流行网站的操作系统信息。
理由
我认为辨识一个系统所运行OS的用处是相当显而易见的,所以这一节
会很短。最有力的例子之一是许多安全漏洞是OS相关的。试想你正在
作突破试验并发现53端口是打开的。如果那是易遭攻击的bind版本,
则你只有一次机会利用它因为失败的尝试会杀死守护程序。有了正确
的TCP/IP指纹,你将很快发现它运行的是’Solaris 2.51’或者’Linux 2.0.35’
而因此调整你的外壳代码。
一个比较糟的例子是某人扫描500,000台主机以找出它们运行什么OS
和哪些端口是打开的。然后等谁贴(说)有一个root漏洞在Sun的comsat
守护程序里,我们的小朋友能从人家的列表中找出 ’UDP/512’和’Solaris 2.6’
这两个词,并立即得到了整页整页的可得到root特权的盒子。必须认
识到那是脚本小子(SCRIPT KIDDIE)的行为。你证明了你的无能而
且没有人,甚至对方也,对你能找到没有及时修补漏洞而易受攻击的
.edu之事留有印象。人们也_较少_留有印象如果你用你新找到的通路
去破坏阅批的web 站,换以一个自大的你如何强大而管理员们如何愚
蠢的话的话。。
另一个用法是社会工学。假如你扫描目标公司而namp报告一个’Datavoice
TxPOR TPRISM 3000 T1 CSU/DSU 6.22/2.06’。则黑客就以’Datavoice
support’为名打电话并讨论他们PRISM 3000的一些问题。“我们正要
公布一个安全漏洞,但希望我们现在的客户先安装补丁--我刚刚寄给
你...”一些天真的管理员会假定只有Datavoice指定的工程师才会对
他们的CSU/DSU知道的如此之多。
这个能力另一个潜在的用途是评价你要交易的公司。在选择一个新ISP
前,扫描它们看用的是什么设备。那些“ 99美米/年”的买卖不向听
起来那么好当你发现它们用廉价的路由器并用一堆运行Windows 的机
器提供PPP 服务的时候。
经典技术
栈指纹以独特的方式解决OS辨识的问题。我想这个技术最有把握,但
现在有许多其他解决方案。遗憾的是,这仍是其中最有效的:
playground~> telnet hpux.u-aizu.ac.jp
Trying 163.143.103.12...
Connected to hpux.u-aizu.ac.jp.
Escape character is ’^]’.
HP-UX hpux B.10.01 A 9000/715 (ttyp2)