
SMBeagle - ファイル共有監査ツール
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
SMBeagleは、クロスプラットフォームの(SMB)ファイル共有監査ツールで、ネットワーク上で見えるすべてのファイルを精査し、そのファイルが読み取り可能か書き込み可能かを報告します。これらの発見結果はすべて、CSVファイルまたはelasticsearchホスト、あるいはその両方にストリーミング出力されます!🚀
Windows上で実行時、資格情報を指定しない場合、SMBeagleは最大速度と統合認証のためにwin32 APIを利用します。
Linux上で実行時、または資格情報が指定された場合、クロスプラットフォームのファイルスキャンをSMBLibraryを通じて使用します。
SMBeagle v3まではデジタル署名されていましたが、v4ではより攻撃的な機能が追加されています。具体的には、興味深そうなファイルを探して取得するようになります。ペネトレーションテストには最適ですが、デジタル署名するものではありません!
元のバージョン(ファイル取得機能なし)が必要な場合は、デジタル署名されたv3を使用してください。
2つの素晴らしいユースケースがあります:
大小を問わず、多くの企業はファイル共有にひどいファイル権限を設定しています。
大企業ではファイルサーバーに広大な共有があり、設定ミスのある機密データが見つかることは珍しくありません。
中小企業では、オフィスの隅に制限なしの小さなNASがあることもしばしばです!
SMBeagleはこれらの共有をクロールし、読み取りおよび書き込み可能なすべてのファイルをリストアップします。読み取り可能なら、ランサムウェアも読み取り可能です。
SMBeagleは、ペネトレーションテスターに、権限昇格や横方向移動のためのあまり明白でない経路を提供できます。
elasticsearchに直接出力することで、テスターは読み取り可能なスクリプトや書き込み可能な実行ファイルを迅速に見つけることができます。
ウォーターホール攻撃や保護されていないパスワードの発見がこんなに簡単になったことはありません!🐱👤
さらに簡単にするために、-gフラグを追加しました。これにより、興味深いと思われるファイルを自動的に取得するようになりました!
何が興味深いと思うか?デフォルトでは、スクリプトや「password」などの単語を含むファイル名を探します。
...独自の正規表現は --file-pattern フラグで指定できます。
Kibanaダッシュボードのインストールと使用に関する詳細な手順は、Kibana readmeを参照してください。管理用のビジュアルを提供し、データのピボットを容易にします。
docker pull punksecurity/smbeagle必須パラメータは出力先の設定のみで、それはelasticsearchホストのIPアドレスかCSVファイルのいずれかです。
良い出発点は、高速モードを有効にしてCSVに出力することですが、見つかるファイルの数によってはこのCSVが巨大になる可能性があります。
./SMBeagle.exe -c out.csv -f
発見した公開ホストやネットワークのスキャンはデフォルトで無効になっています。SMBeagleはnetstatからネットワークを発見するため、Webブラウザセッションなど現在のすべての接続が含まれます。
公開ネットワークをスキャンするには、手動で -n 1.0.0.1/32 や -n 1.0.0.0/24 のように宣言してください。
Punk SecurityはSMBeagleのLinux Dockerイメージを提供しています。
結果を取り出すには、フォルダをコンテナにマウントし、SMBeagleにそのマウント先に出力を保存するよう指示する必要があります(またはelasticsearchを使用)。
良いスターター例は次の通りです:
docker run -v "$(pwd)/output:/tmp/output" punksecurity/smbeagle -c /tmp/output/results.csv -n 10.10.10.0/24
Dockerで実行する場合、ネットワークディスカバリーは無効になるため、スキャンしたい範囲を -n コマンドラインスイッチで指定するか、-h スイッチでホストを指定してください。
USAGE:
Output to a CSV file:
SMBeagle -c out.csv
Output to elasticsearch (Preferred):
SMBeagle -e 127.0.0.1
Output to elasticsearch and CSV:
SMBeagle -c out.csv -e 127.0.0.1
Disable network discovery and provide manual networks:
SMBeagle -D -e 127.0.0.1 -n 192.168.12.0./23 192.168.15.0/24
Do not enumerate ACLs (FASTER):
SMBeagle -A -e 127.0.0.1
-c, --csv-file (Group: output) Output results to a CSV
file by providing filepath
-e, --elasticsearch-host (Group: output) Output results to
elasticsearch by providing elasticsearch
hostname (default port is 9200 , but can be
overridden)
-a, --aggression (Default: 6) Vary scanning speed in a range
between 1 and 10. 10 being fastest [No
decimals]
--elasticsearch-port (Default: 9200) Define the elasticsearch
custom port if required
-f, --fast Enumerate only one files permissions per
directory
-l, --scan-local-shares Scan the local shares on this machine
-D, --disable-network-discovery Disable network discovery
-n, --network Manually add network to scan (multiple
accepted)
-N, --exclude-network Exclude a network from scanning (multiple
accepted)
-h, --host Manually add host to scan
-H, --exclude-host Exclude a host from scanning
-q, --quiet Disable unneccessary output
-S, --exclude-share Do not scan shares with this name (multiple
accepted)
-s, --share Only scan shares with this name (multiple
accepted)
--file-pattern Only fetch files matching these regexes
patterns
-g, --grab-files Grab files and store them locally
--loot (Default: loot) Path to store grabbed files
-E, --exclude-hidden-shares Exclude shares ending in $
-v, --verbose Give more output
-m, --max-network-cidr-size (Default: 20) Maximum network size to scan
for SMB Hosts
-A, --dont-enumerate-acls (Default: false) Skip enumeration of file
ACLs
-d, --domain (Default: ) Domain for connecting to SMB
-u, --username Username for connecting to SMB - mandatory
on linux
-p, --password Password for connecting to SMB - mandatory
on linux
--help Display this help screen.
--version Display version information.
SMBeagleは多くの処理を行いますが、疎結合のモジュールに分割され、互いに引き渡されます。これにより設計がシンプルになり、各モジュールを簡単に拡張できます。
要約すると、以下のことを行います:
