0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SMB Enumeration 完全ガイド(nmap・enum4linux・smbclient)

0
Posted at

はじめに

SMB(Server Message Block)は、Windowsネットワークで最もよく使われるファイル共有プロトコルです。
企業ネットワークではほぼ必ず存在するため、Red Team / Pentester が最初に列挙するサービスの一つです。

SMB Enumeration の目的は次の情報を取得することです。

  • 共有フォルダ(Shared Folders)
  • ユーザー一覧
  • グループ情報
  • OS情報
  • ドメイン情報
  • パスワードポリシー
  • アクセス可能なファイル

これらの情報は 横展開(Lateral Movement)や権限昇格のヒントになります。


1.SMBとは

SMBはWindowsで使われるネットワーク共有プロトコルです。

主に次の用途で使われます。

  • ファイル共有
  • プリンタ共有
  • Active Directory通信
  • 管理共有(ADMIN$, C$, IPC$)

通常は次のポートを使用します。

ポート 説明
445 SMB over TCP(現在主流)
139 NetBIOS Session Service
137 NetBIOS Name Service
138 NetBIOS Datagram

2. nmapによるSMB列挙

最初に使うツールは nmap です。

SMBポートの確認

nmap -p445,139 TARGET_IP

PORT    STATE SERVICE
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

SMB情報取得スクリプト

nmapにはSMB専用スクリプトがあります。

nmap --script smb-os-discovery -p445 TARGET_IP

取得できる情報

  • OS
  • コンピュータ名
  • ドメイン
  • NetBIOS名

OS: Windows Server 2019
Computer name: FILESERVER
Domain: corp.local

共有フォルダの列挙

nmap --script smb-enum-shares -p445 TARGET_IP

Sharename       Type      Comment
---------       ----      -------
ADMIN$          Disk      Remote Admin
C$              Disk      Default share
Public          Disk

ユーザー列挙

nmap --script smb-enum-users -p445 TARGET_IP

user: administrator
user: john
user: guest

SMB脆弱性チェック

nmap --script smb-vuln* -p445 TARGET_IP

有名な脆弱性

  • MS17-010(EternalBlue)
  • SMBGhost
  • SMB Signing Disabled

3. enum4linux

enum4linux はSMB列挙ツールとして非常に有名です。
内部的には次のツールを組み合わせています。

  • smbclient
  • rpcclient
  • nmblookup

基本コマンド

enum4linux TARGET_IP

すべて列挙

enum4linux -a TARGET_IP

取得できる情報

  • ユーザー
  • グループ
  • 共有フォルダ
  • OS
  • パスワードポリシー
  • ドメイン

共有フォルダ

Sharename       Type
---------       ----
IPC$            IPC
ADMIN$          Disk
Public          Disk

ユーザー列挙

administrator
guest
john
mary

パスワードポリシー

Minimum password length: 8
Password history length: 24
Lockout threshold: 5

この情報は ブルートフォース攻撃の戦略に役立ちます。


4. smbclient

smbclient はSMB共有に直接アクセスするツールです。
Linux版のSMBクライアントです。


共有一覧

smbclient -L //TARGET_IP -N

-N匿名ログイン

Sharename       Type
---------       ----
IPC$            IPC
Public          Disk
Users           Disk

共有フォルダに接続

smbclient //TARGET_IP/Public -N

成功すると

smb: \>

smbclient コマンド

コマンド 説明
ls ファイル一覧
cd ディレクトリ移動
get ダウンロード
put アップロード
exit 終了

smb: \> ls

  secret.txt
  passwords.docx

ファイル取得

get secret.txt

5. rpcclient

SMB RPCを使って情報取得できます。

匿名ログイン

rpcclient -U "" TARGET_IP

ユーザー列挙

enumdomusers

user:[administrator]
user:[john]
user:[mary]

グループ列挙

enumdomgroups

SID取得

lookupnames administrator

6. smbmap

もう一つ便利なツールが smbmap です。

smbmap -H TARGET_IP

出力例

Share       Permissions
-----       -----------
ADMIN$      NO ACCESS
Public      READ
Users       READ, WRITE

7. Red TeamでのSMB Enumerationの流れ

実際のペネトレーションテストでは次の順番が多いです。

1 nmap
↓
2 enum4linux
↓
3 smbclient
↓
4 rpcclient
↓
5 smbmap

図で表すと

Target Host
     │
     │
   nmap
     │
     ▼
 SMB Detection
     │
     ▼
 enum4linux
     │
     ▼
 User / Share Enumeration
     │
     ▼
 smbclient
     │
     ▼
 File Access

8. SMB Enumerationで見つかる重要情報

レッドチームが探す情報

機密ファイル

password.txt
backup.zip
database.sql

資格情報

config.ini
web.config
.env

スクリプト

backup.ps1
deploy.sh

9. SMB Enumeration が重要な理由

SMBは企業ネットワークの中心です。

理由

  1. Windows環境では必ず存在
  2. Active Directoryと密接
  3. 機密ファイルが置かれている
  4. 横展開に利用できる

そのため 最も価値の高い列挙ポイントの一つです。


まとめ

SMB Enumerationはペネトレーションテストで非常に重要です。

主要ツール

ツール 用途
nmap SMB検出
enum4linux 情報収集
smbclient 共有アクセス
rpcclient RPC情報
smbmap 権限確認

典型的な流れ

nmap
 ↓
enum4linux
 ↓
smbclient
 ↓
rpcclient
 ↓
smbmap

SMBを正しく列挙できると、

  • ユーザー情報
  • 共有フォルダ
  • パスワード
  • 機密データ

などを取得でき、ネットワーク侵入の突破口になることが多いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?