ハッカーはsmbmapでsamba共有ドライブの一覧を表示する(Kali Linuxツール説明)

ホワイトハッカーの知識Kali Linuxツール,smbmap,座学

ドメイン全体のsamba共有ドライブの一覧の表示方法を理解するためにまとめてみました。
このsmbmapの動作確認は自分のドメインでテストを行っています。

smbmapとは

smbmapは、ドメイン全体のsamba共有ドライブの一覧表示をすることができるツールです。共有ドライブ、ドライブのパーミッション、共有コンテンツ、アップロード/ダウンロード機能、ファイル名の自動ダウンロードのパターンマッチ、さらにはリモートコマンドの実行などをリストアップすることができます。
このツールは、ペンテストを念頭に置いて設計されており、大規模なネットワーク上の潜在的な機密データの検索を簡素化することを目的としています。

機能

  • 共有ドライブの一覧表示
  • ドライブのパーミッションの一覧表示
  • 共有コンテンツの一覧表示
  • アップロード/ダウンロード機能
  • ファイル名の自動ダウンロードのパターンマッチ機能
  • リモートコマンドの実行

ツールの場所

[Applications]→[01-Information Gathering]→[SMB Analysis]→[smbmap]

ツールと使用方法

smbmap [-h] (-H HOST | –host-file FILE) [-u USERNAME] [-p PASSWORD] [-s SHARE] [-d DOMAIN] [-P PORT] [-v] [–admin] [-x COMMAND] [–mode CMDMODE] [-L | -R [PATH] | -r [PATH]] [-A PATTERN | -g] [–dir-only] [–no-write-check] [-q] [–depth DEPTH] [–exclude SHARE [SHARE …]] [-F PATTERN] [–search-path PATH] [–search-timeout TIMEOUT] [–download PATH] [–upload SRC DST] [–delete PATH TO FILE] [–skip]

例 smbmap -u admin -p admin -H 192.168.1.7

【実行イメージ】少し端折って整形しています。

┌──(root__kali)-[/home/kali]
└─# smbmap -u admin -p admin -H 192.168.1.7
[+] Guest session       IP: 192.168.1.7:445     Name: 192.168.1.7                                       
        Disk                  Permissions     Comment
        ----                  -----------     -------
        ADMIN$                NO ACCESS       Remote Admin
        C$                    NO ACCESS       Default share
        D$                    NO ACCESS       Default share
        E$                    NO ACCESS       Default share
        IPC$                  READ ONLY       Remote IPC
        Users                 READ ONLY
        共有フォルダ          READ, WRITE
        共有フォルダ1         READ, WRITE

オプション(optional arguments)

-h, –help

show this help message and exit.
このヘルプメッセージを表示して終了します。

オプション(Main arguments)

-H HOST

IP of host.
ホストのIPアドレス。

–host-file FILE

File containing a list of hosts.
ホストのリストを含むファイル。

-u USERNAME

Username, if omitted null session assumed.
ユーザー名、省略された場合はnullのセッションが想定される。

-p PASSWORD

Password or NTLM hash.
パスワードまたはNTLMハッシュ。

-s SHARE

Specify a share. (default C$), ex 'C$’
シェアの指定。(デフォルトはC$)、例 'C$’

-d DOMAIN

Domain name. (default WORKGROUP)
ドメイン名。(デフォルトはWORKGROUP)

-P PORT

SMB port. (default 445)
SMBポート。(デフォルトは445)

-v

Return the OS version of the remote host.
リモートホストのOSバージョンを返します。

–admin

Just report if the user is an admin.
ユーザーが管理者であれば報告します。

コマンド実行(Command Execution)

Options for executing commands on the specified host.
指定されたホスト上でコマンドを実行するためのオプションです。

-x COMMAND

Execute a command. ex. 'ipconfig /all’
コマンドの実行。 ex. 'ipconfig /all’など

–mode CMDMODE

Set the execution method, wmi or psexec, default wmi,
実行方法をwmiまたはpsexecに設定、デフォルトはwmi。

Shard ドライブ検索

Options for searching/enumerating the share of the specified host(s).
指定したホストのシェアを検索/一覧表示するためのオプション。

-L

List all drives on the specified host.
指定されたホスト上のすべてのドライブをリストアップします。

-R [PATH]

Recursively list dirs, and files (no share\path lists ALL shares), ex. 'C$\Finance’.
Dirやファイルを再帰的にリストアップします。(share\pathは全てのシェアをリストアップしません)
例:「C$\Finance」

-r [PATH]

List contents of directory, default is to list root of all shares, ex. -r 'C$\Documents and Settings\Administrator\Documents’
ディレクトリの内容を一覧表示します。デフォルトでは、すべてのシェアのルートを一覧表示します。
例:-r 'C$\Documents and Settings\Administrator\Documents’

-A PATTERN

Define a file name pattern (regex) that auto downloads a file on a match (requires -R or -r), not case sensitive, ex '(web|global).(asax|config)’.
大文字小文字を区別しないファイル名パターン(regex)を定義し、マッチした場合に自動的にファイルをダウンロードする(-R または -r が必要)。

-g

Make the output grep friendly, used with -r or -R (otherwise it outputs nothing).
rまたは-Rと一緒に使用して、出力をgrepフレンドリーにする(そうしないと何も出力しない。

–dir-only

List only directories, ommit files.
ディレクトリのみを表示し、ファイルは表示しません。

–no-write-check

Skip check to see if drive grants WRITE access.
ドライブがWRITEアクセスを許可するかどうかのチェックをスキップします。

-q

Quiet verbose output. Only shows shares you have READ or WRITE on, and suppresses file listing when performing a search (-A).
冗長な出力を抑制します。READまたはWRITE権限のある株式のみを表示し、検索(-A)の際にはファイルの一覧表示を行いません。

–depth DEPTH

Traverse a directory tree to a specific depth. Default is 5.
ディレクトリツリーを指定した深さまでトラバースします。デフォルトは5です。

–exclude SHARE [SHARE …]

Exclude share(s) from searching and listing, ex. –exclude ADMIN$ C$’.
共有を検索や一覧表示から除外する。
例:–exclude ADMIN$ C$’

ファイルの内容検索(File Content Search)

Options for searching the content of files. (must run as root)
ファイルの内容を検索するためのオプション。(rootで実行する必要があります)

-F PATTERN

File content search, -F '[Pp]assword’.(requires admin access to execute commands, and PowerShell on victim host).
ファイル内容の検索、-F '[Pp]assword’。(コマンドを実行するには管理者権限が必要で、犠牲者のホストではPowerShellが必要)。

–search-path PATH

Specify drive/path to search. (used with -F, default C:\Users), ex 'D:\HR\’)
検索対象となるドライブやパスを指定します。(-F で使用、デフォルトは C:Users)
例:’D:HR\’

–search-timeout TIMEOUT

Specifcy a timeout (in seconds) before the file search job gets killed. Default is 300 seconds.
ファイル検索ジョブが終了するまでのタイムアウトを(秒単位で)指定します。デフォルトは300秒です。

ファイルシステムの相互作用(Filesystem interaction)

Options for interacting with the specified host’s filesystem.
指定されたホストのファイルシステムを操作するためのオプション。

–download PATH

Download a file from the remote system, ex.’C$\temp\passwords.txt’.
リモートシステムからファイルをダウンロードする。(例:C$temp\passwords.txt)

–upload SRC DST

Upload a file to the remote system ex. '/tmp/payload.exe C$\temp\payload.exe’)
リモートシステムへのファイルのアップロード。
例:’/tmp/payload.exe C$\temp\payload.exe’

–delete PATH TO FILE

Delete a remote file, ex. 'C$\temp\msf.exe’
リモートファイルを削除する。
例:C$temp\msf.exe

–skip

Skip delete file confirmation prompt.
削除ファイルの確認画面をスキップする。

$ smbmap -u jsmith -p password1 -d workgroup -H 192.168.0.1
$ smbmap -u jsmith -p 'aad3b435b51404eeaad3b435b51404ee:da76f2c4c96028b7a6111aef4a50a94d’ -H 172.16.0.20
$ smbmap -u 'apadmin’ -p 'asdf1234!’ -d ACME -h 10.1.3.30 -x 'net group “Domain Admins" /domain’

smbmapツールのまとめ

ブラックハットハッカーは、マルウェアからネットワーク内でのコンピュータの攻撃に、smbmapツールを利用してSMB経由でリモートホストのアクセスに使われていたそうです。