
我在目標伺服器上使用了 nmap,它會傳回以下服務
PORT STATE SERVICE VERSION
53/tcp open domain?
80/tcp open http Microsoft IIS httpd 10.0
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2021-03-17 07:07:34Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap
443/tcp open https?
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap
3269/tcp open tcpwrapped
3389/tcp open ms-wbt-server Microsoft Terminal Services
問題是如何識別 Nmap 可能錯誤識別的連接埠上運行的真實服務。例如,在連接埠 53 上,如何透過終端機確保 DNS 服務正在其上運作?
我可以使用哪種技術?我無權訪問目標伺服器,因此看不到伺服器上運行的進程。
答案1
正如 Steffen 指出的,判斷伺服器 X 是否在主機 Z 上的連接埠 Y 上運行的方法是運行與 X 使用相同協定的客戶端,並將其指向主機 Z 上的連接埠 Y。您可以使用許多DNS 用戶端中的任何一個,例如nslookup
.
當然,這並不能告訴您有關那裡實際運行的內容的任何信息,除了它與您使用的協議兼容之外。伺服器幾乎可以是任何東西。例如,連接埠80 上的偵聽器(來自您的範例)可能只是一個小腳本,它只是用「HTTP 201 No content\r\nServer: Microsoft IIS httpd 10.0\r\n\r\n」回應任何TCP握手。不用說它是特定的IIS 10.0 了。
Nmap 的內建識別器腳本可能比您更擅長識別大多數伺服器,儘管它們也非常不靈活,如果有人嘗試,很容易被愚弄。熟悉相關工具和協定的人很可能在異常情況下提取比腳本更多的資訊(例如一台伺服器冒充另一台伺服器,或者管理員故意隱藏根據識別伺服器的常見「告訴」)到 Nmap)。然而,一般來說,傳授這種熟悉的基本知識超出了這個答案的範圍,甚至超出了這個網站的範圍。