原创 儒道易行
一、 SSH指纹
首次通过SSH连接一台服务器时,SSH服务返回其指纹信息,如果确认指纹信息无误,该指纹将保存到~/.ssh/know_hosts中, 服务器IP与指纹一一对应;第二次访问SSH服务时,SSH客户端将对比返回的指纹与~/.ssh/know_hosts是否一致,一致就顺利连接,否则警告可能遭遇到中间人攻击。
图中的 SHA256:5iKUxsMvL5egK6eRBQ3MEiu7X7HH0 即 ECDSA 指纹 Hash. 注意到这个值的特殊性,大概率是全球唯一值,因此若目标开放SSH服务到公网,这个值极有可能被网络空间搜索引擎抓取,从而可以利用这个Hash检索出其公网IP.
二、利用
获取Hash值,考虑到上述SSH命令获取方式需要交互式shell,在某些场合不太适用,因此可以用ssh-keyscan获取该值:
ssh-keyscan -t ECDSA -p 22 x.x.x.x | ssh-keygen -E sha256 -lf -
计算SHA256,注意到该Hash的Base64编码方式去掉了最后的"="号,需要补足
echo '5eMLvG7McapphvX4''=' | base64 -d | xxd -p -c 100
目前 Censys.io (https://search.censys.io/data) 支持对该 Sha256 Hash进行直接检索,
【搜索语法】:
services.ssh.server_host_key.fingerprint_sha256=e5e30bbc6ff7286e1681d7f737b31c6a9a61bd7e
成功检索到该Hash对应的公网IP:
免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。
转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。