1. 程式人生 > 其它 >滲透測試技巧:SSH指紋與資訊收集

滲透測試技巧:SSH指紋與資訊收集

0x00 引言

在雲伺服器使用場景越來越多的當下,目標在單個雲服務商甚至多個雲服務商購買多個雲伺服器組建內網的情況屢見不鮮,常規通過C段資訊收集進行滲透的方式經常不適用。目標公網IP分佈極為鬆散,可能出現在一個或者多個B段上面。如何在已有一個許可權的情況下,將內網IP與公網IP進行對應,是筆者在滲透過程中遇到的一大難點。

0x01 SSH指紋

首次通過SSH連線一臺伺服器時,SSH服務返回其指紋資訊,如果確認指紋資訊無誤,該指紋將儲存到~/.ssh/know_hosts中, 伺服器IP與指紋一一對應;第二次訪問SSH服務時,SSH客戶端將對比返回的指紋與~/.ssh/know_hosts是否一致,一致就順利連線,否則警告可能遭遇到中間人攻擊。

圖中的 SHA256:5iKUxsMvL5eg****K6eRBQ3MEiu7X7HH0 即 ECDSA 指紋 Hash. 注意到這個值的特殊性,大概率是全球唯一值,因此若目標開放SSH服務到公網,這個值極有可能被網路空間搜尋引擎抓取,從而可以利用這個Hash檢索出其公網IP.

0x02 利用

獲取Hash值,考慮到上述SSH命令獲取方式需要互動式shell,在某些場合不太適用,因此可以用ssh-keyscan獲取該值:

ssh-keyscan -t ECDSA -p 22 *.*.*.* | ssh-keygen -E sha256 -lf -

計算SHA256,注意到該Hash的編碼方式去掉了最後的"="號,需要補足

echo '5iKUxsMvL5egXRs****iu7X7HH0''=' | -d | xxd -p -c 100

目前 Censys.io (https://search.censys.io/data) 支援對該 Sha256 Hash進行直接檢索,搜尋語法為

services.ssh.server_host_key.fingerprint_sha256=e62294c6c32f2f****2bbb5fb1c7d

成功檢索到該Hash對應的公網IP:

0x03 總結

適用場景:

  • 已有一個許可權,需要獲取該許可權所在內網IP與公網IP對應關係;
  • 適用於公有云環境,且SSH服務暴露在外網,可以無限制訪問。

防禦方式:

  • 嚴格限制訪問SSH伺服器的源IP地址;
  • SSH更換預設22埠至非常用埠。

本篇文章出自雨筍教育黃院長分享的技術好文,感興趣的歡迎轉發關注!

更多滲透乾貨學習,滲透基礎公開課:https://ke.qq.com/course/3383785