hacktricks/network-services-pentesting/137-138-139-pentesting-netbios.md
2023-07-07 23:42:27 +00:00

8.6 KiB
Raw Blame History

137,138,139 - ペントエスティング NetBios

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

NetBios名前サービス

  • 名前登録と解決のための名前サービスポート137/udpおよび137/tcp
  • 接続なし通信のためのデータグラム配布サービスポート138/udp
  • 接続指向通信のためのセッションサービスポート139/tcp

名前サービス

すべてのマシンはNetBiosネットワーク内で名前を持つべきです。名前を要求するには、マシンはブロードキャストで「名前クエリ」パケットを送信し、誰かがその名前を既に使用していると応答した場合、マシンはその名前を使用できます。名前サービスサーバーがある場合、コンピュータは名前を使用したい名前が誰かに使用されているかどうかを名前サービスサーバーに問い合わせることができます。

名前のIPアドレスを発見するには、PCは「名前クエリ」パケットを送信し、誰かが応答するのを待つ必要があります。名前サービスサーバーがある場合、PCはその名前のIPを問い合わせることができます。

PORT    STATE SERVICE    VERSION
137/udp open  netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)

NetBIOSサービスの列挙では、サーバーが使用している名前とサーバーのMACアドレスを取得することができます。

nmblookup -A <IP>
nbtscan <IP>/30
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>

データグラム配信サービス

NetBIOSデータグラムはUDPを介して送信されます。データグラムは、「Direct Unique」または「Direct Group」パケットとして送信されます。これは特定のNetBIOS名に送信される場合です。また、「Broadcast」パケットとして送信されます。これはネットワーク上のすべてのNetBIOS名に送信される場合です。

PORT    STATE         SERVICE     VERSION
138/udp open|filtered netbios-dgm

セッションサービス

セッションモードでは、2つのコンピュータが「会話」のために接続を確立し、より大きなメッセージを処理し、エラーの検出と回復を提供します。

セッションはパケットの交換によって確立されます。セッションを確立するコンピュータは、セッションを確立するためのポート139へのTCP接続を試みます。接続が確立されると、セッションを確立するアプリケーションのNetBIOS名とセッションを確立するためのNetBIOS名を含む「セッションリクエスト」パケットを接続経由で送信します。セッションを確立するコンピュータは、セッションを確立できることを示す「ポジティブセッションレスポンス」またはその名前に対してセッションを確立するためのリソースが利用できないことを示す「ネガティブセッションレスポンス」のいずれかの応答を受け取ります。

データは確立されたセッションによってセッションメッセージパケットを介して送信されます。

TCPは、すべてのセッションサービスパケットのフロー制御と再送信、およびパケットが転送されるデータストリームをIPデータグラムに分割してリンク層パケットに収まるように処理します。

セッションはTCP接続を閉じることで終了します。

PORT      STATE SERVICE      VERSION
139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn

次のページを読んで、このサービスの列挙方法を学びましょう:

{% content-ref url="137-138-139-pentesting-netbios.md" %} 137-138-139-pentesting-netbios.md {% endcontent-ref %}

HackTricks自動コマンド

Protocol_Name: Netbios    #Protocol Abbreviation if there is one.
Port_Number:  137,138,139     #Comma separated if there is more than one.
Protocol_Description: Netbios         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for NetBios
Note: |
Name service for name registration and resolution (ports: 137/udp and 137/tcp).
Datagram distribution service for connectionless communication (port: 138/udp).
Session service for connection-oriented communication (port: 139/tcp).

Every machine should have a name inside the NetBios network. To request a name, a machine should send a "Name Query" packet in broadcast and if anyone answer that it is already using that name, the machine can use that name. If there is a Name Service server, the computer could ask the Name Service server if someone is using the name that it wants to use.

https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios

Entry_2:
Name: Find Names
Description: Three scans to find the names of the server
Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥