如何给一个 server 找到一个特异性强的 fingerprint?

2016-12-29 05:47:48 +08:00
 inksong
其实问题很简单,如果遍历某网段下的 ip ,针对每个 ip 尽量获取 ip 能反馈的信息,
然后把每种信息作为一个特征,拼接这些特征就可以作为这个 ip (就是背后的 server )的特征 fingerprint 啦。
我现在做的是扫这些 server 是否开了常用端口,比如 21 , 22 , 23 端口。
比如如果开了的话, 23 端口会有 header 信息反馈给我,
类似: telnet atdrug drugtransport com AIX Version C Copyrights by IBM and by others login 这样的。
我的问题是我想知道 server 还能多给我反馈点信息吗?
比如 browser 访问我网站的话我是可以知道这个 browser 的很多信息的,
比如 https://amiunique.org ,这个就很清晰。
问题就是一个 ip 背后的 server ,我如何才能拿到更多的信息?
希望大家能给点中肯的建议,十分感谢。
预祝新年快乐!
2779 次点击
所在节点    程序员
8 条回复
rogerchen
2016-12-29 08:49:27 +08:00
binux
2016-12-29 09:02:13 +08:00
基本不可能,大型网站服务器分布式基本上都是尽可能消除差异,一批机器从 CPU 到软件,甚至负载基本都是相同的。从外部要怎么区分?
flyfowl
2016-12-29 09:37:29 +08:00
防火墙、安全网关等设备可能会有‘敏感信息保护’功能,这个功能就是将服务器回复的操作系统版本信息、软件版本等敏感信息改成很用户自定义的字符串。
ryd994
2016-12-29 15:19:07 +08:00
呵呵,浏览器不主动发 UA 你能知道?
inksong
2016-12-30 02:27:22 +08:00
@binux 这种情况的话就更简单了,将这些 ip 聚类成一个簇就是了。我现在做的事 track server ,采集了 18 个月(每月 4 次)的 ipv4 信息,单单用 port21 22 23 的话 95.1%的 server ip 都没有发生巨大变化,针对的情况是不通过 ip 去确定 server 的情况。比如 @rogerchen 那个链接的第二个链接里说的第一句话,用 nc 去跑 80banner ,就是这个思路。只不过我跑的多一点。所以是完全可以获得很多信息的。十分感谢关注。
inksong
2016-12-30 02:28:58 +08:00
@flyfowl 的确,在搜集到的信息中这种情况很常见。不过恰恰是这种功能的出现反而让我更容易分辨出这个 server 了,因为人工修改的自定义的字符串往往具有很强的特异性,更容易识别出来,也就更容易分辨。十分感谢关注。
inksong
2016-12-30 02:31:51 +08:00
@rogerchen 首先十分感谢关注, nmap 由于扫一遍全网太慢了,所以我选用了 zmap 。你提到的这两种技术我都在用,在此只是想咨询下大家一个 server 除了 port 开了然后 port 还是 default 的情况下,的确可以指哪打哪,就是要 banner 有 banner 。
我就需要一种几乎所有 server 都有的信息,比如 browser 的 http agent ,至少可以保证每个 browser 都有。但不能保证每个 server 都开 23 对吧?
inksong
2016-12-30 04:01:14 +08:00
@ryd994 能。早在 2010 年 Peter Eckersley 的研究中就已经实现了。而且在 2016 年 S&P 的一篇论文中 Pierre Laperdrix 的团队利用 Canvas 的特性进一步优化了效果。仍然十分感谢您的关注。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/330898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX