
テキストからIPアドレス、メールアドレス、ハッシュ、ファイル、クレジットカード番号、社会保障番号などを高速に抽出します。
DataSurgeon (ds) は、インシデントレスポンス、DLP、ペネトレーションテスト、CTFチャレンジ向けに設計された多用途ツールです。メールアドレス、電話番号、ハッシュ、クレジットカード、URL、IPアドレス、MACアドレス、SRV DNSレコードなど、さまざまな種類の機密情報を抽出できます。
プラグインの管理方法については、こちらのガイドをご覧ください。
このアップデートにより、DataSurgeonにプラグイン管理システムが導入されました。--add、--remove、--listオプションを使用して、プラグインの追加、削除、一覧表示ができるようになりました。
また、Windowsレジストリのパスを検出できる新しいプラグイン ds-winreg-plugin を追加しました。
新しいプラグインを追加するには、--add <URL>を使用します。URLはplugins.jsonファイルを含むGitHubリポジトリです。プラグインを削除するには、--remove <URL>を使用します。すべてのプラグインを表示するには、--listオプションを使用します。
プラグインが追加されると、DataSurgeonの引数として使用できます。引数名は、プラグインのplugins.jsonファイル内の "Argument Long Name" です。
クイックインストーラーはDataSurgeonのアップデートにも使用できます。
RustとGitHubをインストールし、ターミナルを再起動してください。
read -p "Would you like to add 'ds' to your local bin? This will make 'ds' executable from any location in your terminal. (y/n) " response && wget -q -O - https://raw.githubusercontent.com/Drew-Alleman/DataSurgeon/main/install/install.sh | bash -s -- "$response"
管理者権限のPowerShellウィンドウで以下の行を入力してください。
IEX (New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/Drew-Alleman/DataSurgeon/main/install/install.ps1")
ターミナルを再起動すると、コマンドラインからdsを使用できるようになります。
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/Drew-Alleman/DataSurgeon/main/install/install.sh | sh

ここではwgetを使用してstackoverflowにリクエストし、ボディテキストをdsにパイプします。-Fオプションは見つかったすべてのファイルを一覧表示します。--cleanは返された余分なテキスト(余分なHTMLなど)を削除するために使用します。次に結果をuniqに送り、重複していないファイルのみを残します。必要に応じて、-Sを使用して上部の警告メッセージ 'Reading standard input..' を削除できます。
$ wget -qO - https://www.stackoverflow.com | ds -F --clean | uniq

ここでは、-mクエリを使用してautodeauthのログファイルからすべてのMACアドレスを抽出しています。--hideオプションは結果の前にある識別子文字列を非表示にします。この場合、'mac_address: ' が出力から非表示になります。-Tオプションは同じ行を複数回チェックして一致を探すために使用します。通常、一致が見つかるとツールは次の行に移動し、再度チェックしません。
$ ./ds -m -T --hide -f /var/log/autodeauth/log
2023-02-26 00:28:19 - Sending 500 deauth frames to network: BC:2E:48:E5:DE:FF -- PrivateNetwork
2023-02-26 00:35:22 - Sending 500 deauth frames to network: 90:58:51:1C:C9:E1 -- TestNet
--directoryオプションを使用すると、指定したディレクトリ内のすべてのファイルを再帰的に読み取ることができます。-Dオプションは一致が見つかったファイル名を表示するために使用します。-lまたは--lineはコンテンツが見つかった行番号を表示するために使用します。
$ ds --directory test_dir/ -Dl

結果をCSVファイルに出力するには、-oオプションの後にデータを保存するファイル名を指定します。-Dおよび-Xがサポートされています。形式は:ds -o <FILENAME>.csv(.csvが必要)です。
$ wget -qO - https://www.stackoverflow.com | ds -o output.csv -C

特定のクエリが指定されていない場合、dsはすべての可能なデータタイプを検索します。これは個別のクエリを使用するよりも大幅に遅くなります。最も遅いクエリは--filesです。また、catを使用してデータをdsにパイプする方がわずかに高速です。
以下は、ds-testで生成された5GBのテストファイルを処理したときの経過時間です。各テストは3回実行され、平均時間が記録されました。
Processor Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz, 2904 Mhz, 6 Core(s), 12 Logical Processor(s)
Ram 12.0 GB (11.9 GB usable)
| Command | Speed |
|---|---|
cat test.txt | ds -t | 00h:02m:04s |
ds -t -f test.txt | 00h:02m:05s |
cat test.txt | ds -t -o output.txt | 00h:02m:06s |
| Command | Speed | Query Count |
|---|---|---|
cat test.txt | ds -t -6 | 00h:00m:12s | 1 |
新しいIssueを作成する際は、バグテンプレートのすべての質問に回答してください。情報が不十分なIssueはクローズされます。
cat test.txt | ds -t -i -m |
| 00h:00m:22 |
| 2 |
cat test.txt | ds -tF6c | 00h:00m:32s | 3 |