Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
SQLRecon — 攻撃的な偵察とポストエクスプロイトのために設計されたC# MS SQLツールキット | Kitploit
ツール/GitHubGitHub/skahwah/sqlrecon
偵察エクスプロイト情報収集ポストエクスプロイトペネトレーションテスト認証レッドチーミングデータベースセキュリティ
GitHubskahwah/sqlrecon

SQLRecon

攻撃的な偵察とポストエクスプロイトのために設計されたC# MS SQLツールキット

リポジトリを見る
8141292ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

  licence badge wiki Badge stars badge forks badge issues badge

SQLRecon

SQLReconは、攻撃的な偵察とポストエクスプロイテーション用に設計されたMicrosoft SQL Serverツールキットです。各テクニックの使用方法の詳細については、wikiを参照してください。

SQLReconのコピーはreleasesページからダウンロードできます。あるいは、自分でソリューションをコンパイルしても構いません。リポジトリをクローンし、ソリューションファイルをダブルクリックしてビルドするだけなので、簡単です。

予防、検出、軽減のガイダンスも防御側の皆様のために提供されています。

私のブログ記事をIBM Security Intelligenceウェブサイトでチェックしてください。動画がお好みなら、Black Hatでのプレゼンテーションをご覧ください。

列挙モジュール

列挙モジュールは、認証プロバイダーを指定する必要がありません。これらのモジュールは列挙モジュールフラグ(/e:, /enum:)に渡す必要があります。wikiには列挙モジュールの使用方法の詳細があります。``` Info - Show information about the SQL server. /h:, /host -> SQL server hostname or IP. Multiple hosts supported. /port: -> (OPTIONAL) Defaults to 1434 (UDP). /t:, timeout: -> (OPTIONAL) Defaults to 3s.

SqlSpns - Use the current user token to enumerate the AD domain for MSSQL SPNs. /d:, /domain: -> (OPTIONAL) NETBIOS name or FQDN of domain.

root@kitploit:~
# 認証プロバイダー

SQLReconは多様な認証プロバイダー(`/a:, /auth:`)をサポートしており、Microsoft SQL Serverとの対話を可能にします。```
WinToken   - Use the current users token to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP

WinDomain  - Use AD credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> NETBIOS name or FQDN of domain.
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

Local      - Use local SQL credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

EntraID    - Use Azure EntraID credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> FQDN of domain (DOMAIN.COM).
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

AzureLocal - Use local SQL credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

Pth        - Authenticate using an NT hash (pass-the-hash) over raw TDS/NTLM. Elevated privileges or SeImpersonate is not required.
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> NETBIOS domain name.
             /u:, /username: -> Domain username.
             /hash:          -> NT hash (32 hex chars, 8846f7eaee8fb117ad06bdd830b7586c) or LM:NT format.

認証プロバイダー - 補足詳細

  • ホスト: ホストフラグ(/h:, host:)は必須であり、1つ以上のSQLサーバーを指定できます。複数のSQLサーバーに対してモジュールを実行する場合は、ホストをカンマで区切ります(例:/h:SQL01,10.10.10.2,SQL03)。
  • データベース: SQLReconはデフォルトでmasterデータベースに接続しますが、データベース(/database:)フラグでカスタムデータベース名を指定することでオプションで変更できます。
  • デバッグ: /debugフラグはオプションであり、リモートホストで実際に実行せずに、モジュールによって実行されるすべてのSQLクエリを表示します。この例はwikiにあります。
  • ポート: 場合によっては、Microsoft SQL Serverが標準的なTCPポートでリッスンしていないことがあります。例として、Microsoft SQL Serverのフェールオーバークラスタリングや動的TCPポートが挙げられます。SQLReconはデフォルトでTCPポート1433を介してデータベースに接続しますが、これは/port:フラグを使用してオプションで変更できます。
  • タイムアウト: デフォルトのSQLデータベース接続時間は3秒ですが、この値はタイムアウト値(/t:, /timeout:)を指定することでオプションで変更できます。これは接続試行を終了するまでの秒数に対応します。
  • 詳細: /v, /verboseフラグはオプションであり、リモートホストでクエリを実行する前に、モジュールによって実行されるすべてのSQLクエリを表示します。この例はwikiにあります。

EntraID認証プロバイダーを使用するには、Azure Active Directory Authentication Library (ADAL) または Microsoft Authentication Library (MSAL) がSQLReconを実行するシステムに存在する必要があることに注意してください。これはAzure EntraIDの認証および許可機能のためのものです。

SQL モジュール

SQLモジュールは、1つ以上のMicrosoft SQL Serverのインスタンスに対して実行されます。これらのモジュールは、モジュールフラグ(/m:, /module:)に渡す必要があります。

SQL モジュール - 標準

ホストフラグ(/h:, host:)は必須であり、1つ以上のSQLサーバーを指定できます。複数のSQLサーバーに対してモジュールを実行する場合は、ホストをカンマで区切ります(例:/h:SQL01,10.10.10.2,SQL03)。

各モジュールの使用方法の詳細は、SQL Serverの1つ以上のインスタンスでの実行をサポートするwikiに記載されています。

SQL モジュール - 偽装

偽装モジュールは、偽装されたSQLユーザーのコンテキストで、1つ以上のMicrosoft SQL Serverのインスタンスに対して実行されます。すべての偽装モジュールには以下の最小要件があります。

  • 偽装ユーザーを指定する必要があります(/i:, /iuser:)。
  • 偽装をサポートするモジュールを指定する必要があります(/m:, /module:)。

各モジュールの使用方法の詳細は、偽装を使用した実行をサポートするwikiに記載されています。

SQL モジュール - リンク

リンクモジュールは、1つ以上のリンクされたMicrosoft SQL Serverのインスタンスに対して実行されます。すべてのリンクモジュールには以下の最小要件があります。

  • リンクされたSQLサーバーを指定する必要があります(/l:, /link:)。リンクフラグは1つ以上のリンクされたSQLサーバーを許可します。たとえば、SQL01がSQL02へのリンクを持ち、SQL01がDB04へのリンクを持っている場合、リンクされたホストをカンマで区切ると、各リンクされたSQLサーバーでモジュールが実行されます(例:/l:SQL02,DB04)。
  • リンク実行をサポートするモジュールを指定する必要があります(/m:, /module:)。

各モジュールの使用方法の詳細は、リンクされたSQL Serverの1つ以上のインスタンスでの実行をサポートするwikiに記載されています。

SQL モジュール - リンクチェーン

リンクチェーンモジュールは、リンクされたサーバーチェーン内の最後のMicrosoft SQL Serverに対して実行されます。すべてのリンクチェーンモジュールには以下の最小要件があります。

  • /l:, /link:フラグでリンクされたSQLサーバーチェーンを指定する必要があります。SQL01がSQL02へのリンクを持ち、SQL02がPAYMENTS01へのリンクを持ち、PAYMENTS01でモジュールを実行したい場合、引数は/l:SQL02,PAYMENTS01となります。
  • 指定されたリンクチェーンの最後のSQLサーバーに対してモジュールを実行するには、/chainフラグを含める必要があります。
  • リンクチェーン実行をサポートするモジュールを指定する必要があります(/m:, /module:)。

各モジュールの使用方法の詳細は、リンクされたSQL Serverチェーンの最後のSQLサーバーでの実行をサポートするwikiに記載されています。

SCCM モジュール

SQLReconには、Microsoft System Center Configuration Manager (SCCM) および Microsoft Endpoint Configuration Manager (ECM) の列挙と攻撃を支援するいくつかのモジュールがあります。SCCMまたはECMサーバーは、ローカルまたはリモートでMicrosoft SQLデータベースを公開している必要があります。

SCCMモジュールは、SCCMモジュールフラグ(/s:, /sccm:)に渡す必要があります。

ほとんどのSCCMモジュールは、偽装されたSQLユーザー(/i:, /iuser:)のコンテキストで実行できます。

各モジュールの使用方法の詳細は、SCCM/ECMデータベースに対するwikiに記載されています。

SCCM モジュール - 補足詳細
  • Usersモジュールは、RBAC_Adminsテーブル内のすべてのユーザーを一覧表示します。これらは、SCCMへの何らかのレベルのアクセス権を持つように設定されたすべてのユーザーです。
  • Sitesモジュールは、SCCMデータベースのDPInfoテーブルにデータが保存されている他のすべてのサイトを一覧表示します。これにより、異なるサイトが異なる(安全でない)方法で構成される可能性があるため、追加の攻撃経路を提供できます。
  • Logonsモジュールは、Computer_System_DATAテーブルをクエリして、関連するすべてのSCCMクライアントと、それらに最後にログインしたユーザーを取得します。注: これはデフォルトで週に1回しか更新されず、100%最新ではありません。/option:をオプションの(必須ではない)引数として使用して、SCCMクライアントをフィルタリングします。
  • TaskListモジュールは、SCCMデータベースに保存されているすべてのタスクシーケンスのリストを提供しますが、実際のタスクデータの内容にはアクセスしません。
  • TaskDataモジュールは、SCCMデータベースに保存されているすべてのタスクシーケンスを回復し、平文に復号化します。タスクシーケンスには、システムをドメインに参加させるための資格情報、共有のマッピング、コマンドの実行などが含まれる可能性があります。
  • Credentialsモジュールは、さまざまな機能で使用するためにSCCMによって保管された資格情報を一覧表示します。これらの資格情報は、キーがSCCMサーバーに保存されているため、リモートで復号化できません。ただし、このモジュールは、キーの取得を試みる価値があるかどうかに関する情報を提供します。
  • DecryptCredentialsモジュールは、回復されたSCCM資格情報ブロブの復号化を試みます。このモジュールは、SCCMサーバー上で高整合性またはSYSTEMプロセスで実行する必要があります。

SQLRecon の拡張

SQLReconの拡張に興味がある場合は、wikiの寄稿と拡張のセクションを参照してください。

提案やアイデアがある場合は、issueを開くことをお勧めします。

ロードマップ

目標は、SQLReconを継続的に改善することです。以下に、計画されているいくつかの研究分野を示します。

  • NTLMハッシュベースの認証のサポートを実装する。
  • リンクおよびリンクチェーンSQLサーバー向けのenablerpc/disablerpc機能を調査する。

クレジット

以下の人々が、SQLReconのさまざまな側面に直接的または間接的に貢献しています。

  • Adam Chester (xpn)
  • Andrew Smith (jakxx)
  • Azaël Martin (n3rada)
  • Crusher (chryzsh)
  • Daniel Duggan (rasta-mouse)
  • Dave Cossa (G0ldenGunSec)
  • Dwight Hohnstein (djhohnstein)
  • Javier Balanza (JBalanza)
  • Joshua Magri (passthehashbrowns)

履歴

v4.0
  • NTLMパス・ザ・ハッシュ認証プロバイダー(/auth:pth)を追加。PTHTdsConnection、NtlmHelper、PthStateを介した生のTDS/NTLM認証を実装し、すべてのモジュールが平文の資格情報や昇格された権限なしで動作するように。主な修正点は、ログイン後のANSIセッションオプション、マルチパケットTDS分割、同時CLR接続のTCPフローデッドロック処理、OPENQUERYブラケット記法の互換性。
  • 偽装モジュールのバグ修正。
  • adsiモジュールのバグ修正。
  • oleモジュールのバグ修正。
  • _linkedChainRpcQueryのバグ修正。
  • System.Byte[]が適切に変換されずコンソールに出力される長年の問題を修正。
  • credentialobjectssおよびproxiesモジュールを追加 (jakxx)。
  • README.mdを更新。
  • Wikiを更新。
v3.12
  • agentcmdにプロキシサポートを追加 (jakxx)。
  • リンクチェーンを介したrole列挙が正しく機能しない問題を修正 (passthehashbrowns)。
  • リンクチェーンを介したimpersonateモジュールが正しく機能しない問題を修正 (passthehashbrowns)。
  • リンクチェーンを介したEnableRpc/DisableRpcが利用できない問題を修正 (passthehashbrowns)。
  • リンクチェーンを介したXpCmdモジュールが機能しない問題を修正。出力もサポートするようになりました (passthehashbrowns)。
  • リンクサーバー名に'.'文字が含まれると、EXEC ATクエリでブラケットで囲まれない限り問題が発生する問題を修正。これにより、リンクサーバー名がIPアドレスまたはFQDNの場合に問題が発生していました (passthehashbrowns)。
  • リンクサーバーチェーンクエリを構築するロジックに微調整を加えました。既存のロジックは再帰を使用しており、基本ケースは配列の最初の要素に"0"があることを期待していましたが、これは、.First関数が"0"を返すなど、リンクチェーンを反復処理する必要があるモジュールを開発する際に直感的でない動作を引き起こしていました。LinkedChainQuery関数が先頭に"0"を付けた新しい配列を作成し、別の関数(現在はLinkedChainQueryRecurseと呼ばれます)で既存のロジックを呼び出すように更新しました (passthehashbrowns)。
v3.11
  • 高可用性(アクティブ+パッシブサーバー)用に構成されたサイトで保管された資格情報の復号化を可能にする機能を追加。
v3.10
  • sysadminのケースを正しく処理するためにimpersonateモジュールの問題を修正 (n3rada)。
  • 2つの新しいSCCMモジュールscriptdataおよびcidataを実装 (G0ldenGunSec)。
  • CLR DLLのロードと実行時間を最適化 (chryzsh)。
  • SQL監査が有効かどうかを確認するauditstatusモジュールを作成 (chryzsh)。
  • テストケースを更新。
  • READMEを更新。
  • Wikiを更新。
v3.9
  • whoamiモジュールにユーザーがアクセス権を持つデータベースを追加 (JBalanza)。
  • adsiモジュールで、LDAPサーバーをmsdbデータベースに追加する必要がない問題を修正。また、作成された関数が適切に削除されるようになりました。
  • ATステートメントを含むRPCクエリが、指定されたホスト名がFQDNの場合に宛先サーバーで失敗する問題を修正。
  • READMEを更新。
  • Wikiを更新。
v3.8
  • clrモジュールのために、SQL Server 2016以下でのCLRアセンブリの実行をサポートするロジックを追加。すべてのコンテキストで実行をサポート。
  • adsiモジュールのために、SQL Server 2016以下でのLDAPサーバーCLRアセンブリのロードをサポートするロジックを追加。すべてのコンテキストで実行をサポート。
  • READMEを更新。
  • Wikiを更新。
v3.7* コードベースの完全なリファクタリング。 * ドキュメントの更新(コードコメント、README、wiki) * リンクされたSQLサーバーチェーンに対する実行が可能に。例えば、`SQL01` が `SQL02` へのリンクを持ち、`SQL02` が `SQL03` へのリンクを持ち、`SQL03` が `PAYMENTS01` へのリンクを持つ場合、リンクされたサーバーチェーンを使用して `SQL01` から `PAYMENTS01` にコマンドを実行できるようになりました (`/link:SQL02,SQL03,PAYMENTS01 /chain`)。Azaël Martin (n3rada) に感謝します。 * '`l`' モジュールと '`i`' モジュールを削除し、標準実行、偽装実行、リンク実行、チェーン実行でモジュール名を同じにできるようにコンテキストロジックを導入。 * すべてのリンクモジュールにチェーンサポートを追加。 * デバッグ (`/debug`) のサポートを追加。これにより、モジュールによって実行されることなく、さまざまなデバッグ情報とすべてのSQLクエリが表示されます。 * Verbose (`/verbose, /v`) を追加。これにより、モジュール実行中に実行されるすべてのSQLクエリが表示されます。 * タイムアウト (`/timeout, /t`) を追加。SQLサーバーデータベース接続のタイムアウトに整数値を受け取ります。 * 詳細情報を含むように `links` モジュールを改善。Azaël Martin (n3rada) に感謝します。 * Windowsプリンシパルとデータベースユーザーを含むように `whoami` モジュールを改善。Azaël Martin (n3rada) に感謝します。 * Windowsプリンシパルとデータベースユーザーを含むように `impersonation` モジュールを改善。Azaël Martin (n3rada) に感謝します。 * `sqlspns` 列挙モジュールにIPアドレス取得を追加。Azaël Martin (n3rada) に感謝します。 * コンソール出力を該当する箇所でマークダウンに標準化。Azaël Martin (n3rada) に感謝します。 * `/enum:info` モジュールにDNSサポートを追加。 * `olecmdexec` モジュールにオプションの `/subsystem` 引数を追加。`CmdExec` または `PowerShell` OLEオートメーションサブシステムを使用した実行を受け入れます。 * CLIの変更と新しいモジュールを反映するようにテストハーネスを更新。 * `AzureAD` 認証を `EntraID` に変更。
v3.6
  • /host または /h フラグで指定された複数のSQLサーバーに対する実行が、カンマ区切り値を使用してサポートされるようになりました。
  • /link または /l フラグで指定された複数のリンクSQLサーバーに対する実行が、カンマ区切り値を使用してサポートされるようになりました。
  • /lhost を /link に変更。
  • 's' モジュールを削除し、SCCMモジュール用の /s, /sccm スイッチを作成。
  • DecryptCredentials を除くすべてのSCCMモジュールに偽装サポートを追加。
  • info という新しい列挙 (/enum) モジュールを追加。UDPプロトコルを使用して、認証なしのコンテキストからSQLサーバー情報(インスタンス名やTCPポートを含む)を取得できます。
  • 単純化と拡張性を促進するために、引数ロジックを ModuleHandler.cs 内の個々のメソッドに移動。
  • すべてのSQLクエリを Queries.cs に移動。
v3.5
  • リンクされた adsi 実行がLDAPサーバーを削除していなかったバグを修正。
  • リンクされた adsi でのエージェントジョブ実行を削除し、openquery/rpcを優先。
  • adsi モジュールの /lhost を /adsi に変更。
  • smb モジュールの /rhost を /unc に変更。
  • CaptureHash.cs を削除し、ロジックを簡略化。
  • SetEnumerationType.cs を削除し、ロジックを簡略化。
  • Impersonation.cs を Impersonate.cs に名称変更。
  • OleCmdExec.cs を OleAutomation.cs に名称変更。
v3.4
  • smb モジュールに偽装サポートを追加。
  • info モジュールに偽装サポートを追加。
  • info モジュールにリンクサポートを追加。
v3.3
  • rows, iRows, lRows モジュールを作成。
  • sLogons にオプションのフィルターを追加するよう更新。
  • xp_cmdshell モジュールがコマンド出力をコンソールに出力していなかったバグを修正。
  • ヘルプメニューを整理。
v3.2
  • コマンドライン引数の解析を大幅に見直し。
  • 新しい例でREADME、テストケース、wikiを更新。
  • 列挙と認証に基づく引数解析を再設計。
  • SetEnumerationType.cs を作成。
  • 列挙モジュール domain を SqlSpns に変更。
v3.1
  • SetAuthenticationType.cs のコンストラクタを EvaluateAuthenticationType という新しいメソッドに変更。
  • SetAuthenticationType.cs に CreateSqlConnectionObject を作成。これにより、SQLReconが複数の同時SQL接続オブジェクトをサポートするように拡張されました。
  • ADSI.cs を作成。こちらで説明されているADSIクレデンシャル攻撃を組み込みました。
  • adsi, iAdsi, lAdsi モジュールを作成。
  • lLinks と iLinks モジュールを作成。
  • 新しい例でREADME、テストケース、wikiを更新。
v3.0
  • 存在しない偽装ユーザーに対するエラーチェックを実装。
  • ExecuteImpersonationQuery と ExecuteImpersonationCustomQuery を作成。
  • Impersonate.cs を削除。
  • checkRpc モジュールを追加。
  • iCheckRpc モジュールを追加。
  • lCheckRpc モジュールを追加。
  • SCCMモジュールを再設計。
  • SCCMの引数解析を再設計。
  • 読みやすくするために、ヘルプメニューのコマンドをキャメルケースに変更。
  • 新しいモジュールでテストを更新。
v2.9
  • EnableDisable.cs を ConfigureOptions.cs に名称変更。
  • 詳細オプション設定を全面的に見直し。
  • ExecuteLinkedCustomQueryRpcExec が呼び出される場所にRPCエラーチェックを実装。
v2.8
  • PrintUtils.cs を作成。標準化された出力のためのprintクラスを実装。
  • TablePrinter を Help.cs から PrintUtils.cs に移動。
  • PrintUtils クラスを使用して、すべてのコンソール出力のprintフォーマットを標準化。
  • クラスとクラス変数のアクセス修飾子を変更。
  • 以下の結果が空かどうかのチェックを追加:
    • query
    • search
    • tables
    • lColumns
    • lQuery
    • lSearch
    • lTables
    • iColumns
    • iQuery
v2.7
  • Azure 認証を AzureAD に変更。
  • AzureLocal 認証を作成。
  • disableRpc モジュールを追加。
  • enableRpc モジュールを追加。
  • iEnableRpc モジュールを追加。
  • iDisableRpc モジュールを追加。
  • lEnableRpc モジュールを削除。
  • lDisableRpc モジュールを削除。
  • 新しいモジュールでテストを更新。
v2.6.1
  • lAgentCmd のバグ修正。
  • ストアドプロシージャ作成時に SqlCommand.ExecuteNonQuery を使用することで、clr, iClr, lClr の安定性を修正。
  • lClr の、作成されたアセンブリやストアドプロシージャを削除していなかったバグを修正。
v2.6
  • columns モジュールを追加。
  • iColumns モジュールを追加。
  • iDatabases モジュールを追加。
  • iSearch モジュールを追加。
  • iTables モジュールを追加。
  • lColumns モジュールを追加。
  • lSearch モジュールを追加。
v2.5
  • SCCMモジュールのさまざまなバグを修正。
  • テーブルを使用してヘルプメニューを整理。
  • ExecuteLinkedCustomQueryRpcExec によって提供される出力を改善。
  • コードコメントを全体的に改善。
  • コマンド実行関数全体でメソッド名の一貫性を改善。
  • オブジェクト指向プログラミングのより良い活用によるモジュール性の改善。
  • カスタムSQLサーバーポートフラグを x に変更。
  • Random.cs を utilities ディレクトリに移動。
  • すべてのモジュールでより一貫性を持たせるために、表示スタイルを標準化。
  • 標準、偽装、リンクのテストハーネスを作成。
v2.4
  • Windows 認証を WinToken に変更。
  • WinDomain 認証を作成。偽装を介した認証にADドメインのユーザー名とパスワードを使用します。Impersonation.cs を参照してください。
  • ArgumentLogic.cs, SQLAuthentication.cs, ModuleHandler.cs 全体の引数解析と処理を再設計。
  • ModuleHandler.cs はモジュール実行に巨大な if/else if/else ステートメントを使用しなくなりました。代わりに、リフレクションがコマンドモジュール名に一致するメソッドを呼び出すために使用されるようになりました。
  • commands ディレクトリを追加。プログラム全体で使用されるグローバル変数があります。
  • すべての認証プロバイダーを SQLAuthentication.cs に統合。
  • 引数解析を Program.cs から ArgumentLogic.cs に移動。
  • authentication ディレクトリを削除。
v2.3
  • SCCM機能を追加。
  • sccm コマンドを使用して実行できるSCCMモジュールを追加。
  • リンクされたSQLサーバー上のRPCステータスチェックを修正。
  • HTTP/Sを介して .NET アセンブリをダウンロードする機能を追加。
v2.2
  • roles, iRoles, lRoles モジュールでクエリされるロールを拡張。
  • users, iUsers, lUsers モジュールを作成。
  • clr および iClr モジュールの sp_drop_trusted_assembly からハッシュが削除されていなかった問題を修正。
  • lAgentCmd モジュールを作成。
  • lClr モジュールを作成。
v2.1.6
  • info モジュールを追加。
  • ヘルプメニューの修正。
  • Local および Azure 認証での必須引数の問題を解決。
v2.1.5
  • ドメインSPNを列挙するモジュールを追加 (-e domain)。
v2.1.4
  • マイナーな文字列フォーマットの問題を修正。
v2.1.3
  • Windows および Local 認証モードに -r フラグを追加。これにより、標準的でないTCPポートを指定できます。
v2.1.2
  • null接続文字列に関するロジックを改善。
v2.1.1
  • TestAuthentication.cs から Environment.Exit を削除。
v2.1
  • AgentJobs.cs を作成。
  • agentStatus を作成。
  • iAgentStatus を作成。
  • lAgentStatus を作成。
  • agentCmd を作成。
  • iAgentCmd を作成。
v2.0
  • clr を作成。
  • iEnableClr を作成。
  • iDisableClr を作成。
  • iClr を作成。
  • iWhoami を作成。
  • iMapped を作成。
  • iRoles を作成。
  • lEnableRpc を作成。
  • lDisableRpc を作成。
  • lWhoami を作成。
  • lEnableXp を作成。
  • lDisableXp を作成。
  • lEnableOle を作成。
  • lDisableOle を作成。
v1.2
  • lSmb モジュールを作成。
  • lWhoami モジュールを作成。
  • lRoles モジュールを作成。
v1.1
  • oldCmd モジュールを修正。
  • iOleCmd モジュールを修正。
  • lDatabases モジュールを修正。
  • lTables モジュールを修正。
  • コードベースをクリーンアップ。
  • ヘルプメニューの不整合を修正。
ツールをダウンロード
モジュール名説明偽装リンク実行リンクチェーン実行特権コンテキストが必要
AuditStatusSQL監査が有効かどうかを確認します。✅✅✅❎
CheckRpcリンクサーバーの一覧とそのRPCステータスを取得します。✅✅✅❎
Databasesすべてのデータベースを表示します。✅✅✅❎
Impersonate偽装可能なユーザーアカウントを列挙します。✅✅✅❎
InfoSQLサーバーに関する情報を表示します。✅✅✅❎
LinksリンクされたSQLサーバーを列挙します。✅✅✅❎
Usersデータベースに対して認証できるユーザーアカウントとグループを表示します。✅✅✅❎
Whoami自分の権限を表示します。✅✅✅❎
Query /c:QUERYSQLクエリを実行します。✅✅✅❎
Smb /unc:UNC_PATHNetNTLMv2ハッシュをキャプチャします。✅✅✅❎
Columns /db:DATABASE /table:TABLE指定されたデータベースとテーブルのすべての列を表示します。✅✅✅❎
Rows /db:DATABASE /table:TABLE指定されたデータベーステーブルの行数を表示します。✅✅✅❎
Search /keyword:KEYWORD接続しているデータベースの指定されたテーブル内の列名を検索します。✅✅✅❎
Tables /db:DATABASE指定されたデータベース内のすべてのテーブルを表示します。✅✅✅❎
EnableRpc /rhost:LINKED_HOSTリンクサーバーでRPCとRPC outを有効にします。✅❌❌✔️
EnableClrCLR統合を有効にします。✅✅✅✔️
EnableOleOLE自動化プロシージャを有効にします。✅✅✅✔️
EnableXpxp_cmdshellを有効にします。✅✅✅✔️
DisableRpc /rhost:LINKED_HOSTリンクサーバーでRPCとRPC outを無効にします。✅❌❌✔️
DisableClrCLR統合を無効にします。✅✅✅✔️
DisableOleOLE自動化プロシージャを無効にします。✅✅✅✔️
DisableXpxp_cmdshellを無効にします。✅✅✅✔️
AgentStatusSQLエージェントが実行中かどうかを表示し、エージェントジョブを取得します。✅✅✅✔️
AgentCmd /c:COMMAND /subsystem:(OPTIONAL) /proxy:(OPTIONAL)エージェントジョブを使用してシステムコマンドを実行します。オプションで/subsystem:でサブシステムを指定します(デフォルトは'PowerShell')。オプションで/proxy:でSQLエージェントプロキシアカウントを指定します。✅✅✅✔️
Adsi /adsi:SERVER_NAME /lport:LOCAL_PORTリンクされたADSIサーバーから平文のADSI資格情報を取得します。✅✅✅✔️
Clr /dll:DLL /function:FUNCTIONカスタムストアドプロシージャに.NETアセンブリをロードして実行します。✅✅✅✔️
CredentialObjectssys.credentialsから資格情報オブジェクトを取得します。✅✅✅✔️
OleCmd /c:COMMAND /subsystem:(OPTIONAL)OLE自動化プロシージャを使用してシステムコマンドを実行します。✅✅✅✔️
ProxiesSQLエージェントプロキシ情報を取得します。✅✅✅✔️
XpCmd /c:COMMANDxp_cmdshellを使用してシステムコマンドを実行します。✅✅✅✔️
モジュール名説明偽装特権コンテキストが必要
UsersすべてのSCCMユーザーを表示します。✅❎
Sitesデータが保存されている他のすべてのサイトを表示します。✅❎
Logons関連するすべてのSCCMクライアントと最後にログインしたユーザーを表示します。✅❎
CredentialsSCCMによって保管された暗号化された資格情報を表示します。✅❎
TaskListすべてのタスクシーケンスを表示しますが、タスクデータの内容にはアクセスしません。✅❎
TaskDataすべてのタスクシーケンスを復号化して平文にします。✅❎
DecryptCredentialsSCCM資格情報ブロブを復号化します。SCCMサーバー上で高整合性またはSYSTEMプロセスで実行する必要があります。❌✔️
AddAdmin /user:DOMAIN\USERNAME /sid:SID指定されたアカウントをSCCMの'完全な管理者'に昇格させます。✅✔️
RemoveAdmin /user:ADMIN_ID /remove:STRINGユーザーの権限を削除するか、SCCMデータベースからユーザーを完全に削除します。✅✔️
ScriptDataSCCMで実行するように設定されたすべてのスクリプトを返します。✅✔️
CIDataSCCMでスクリプトを実行するように設定されたすべてのCIを返します。✅✔️
  • AddAdminモジュールは、指定されたアカウントをSCCM内の'完全な管理者'に昇格させます。対象ユーザーがすでにSCCMユーザーである場合、このモジュールは代わりに必要な権限を追加して昇格させます。2つの引数を指定します。SQLReconプロセスを現在実行しているユーザーをSCCMの'完全な管理者'として追加する場合は/user:current /sid:currentと指定します。別のユーザーをSCCMの'完全な管理者'として追加する場合は、ドメインユーザー名と完全なSIDを/user:DOMAIN\USERNAME /sid:S-1-5-...のように指定します。このモジュールには、SCCMデータベーステーブルへの書き込みが必要なため、sysadminまたは類似の権限が必要です。
  • RemoveAdminモジュールは、新しく追加されたユーザーをSCCMデータベースから完全に削除することで、ユーザーの権限を削除します。ユーザーがすでに何らかの形で存在していた場合、このモジュールは、権限テーブルへの書き込みを介してアカウントに追加された3つのロールを削除するだけです。このコマンドを実行するには、sAddAdminコマンドの出力で提供される引数を使用します。このモジュールには、SCCMデータベーステーブルへの書き込みが必要なため、sysadminまたは類似の権限が必要です。
  • EnumerationModules.cs を作成。
  • FormatQuery.cs を作成。
  • SccmModules.cs を作成。
  • ModuleHandler.cs を SqlModules.cs に名称変更。
  • PrintUtils.cs を Print.cs に名称変更。
  • SQLServerInfo.cs を Info.cs に名称変更。
  • iSearch
  • すべての認証プロバイダーとモジュールに対する大幅な信頼性と機能性のテストを実施。
  • MicrosoftのC#/.NETコードスタイルガイドによりよく従うようにコードスタイルを変更。
  • Help.cs をメソッドからコンストラクタに変更。
  • CaptureHash.cs をメソッドからコンストラクタに変更。
  • Impersonate.cs をメソッドからコンストラクタに変更。
  • コードベースを完全にリファクタリング。
  • lEnableClr を作成。
  • lDisableClr を作成。
  • lXpCmd を作成。
  • lXpOle を作成。
  • Random.cs を作成。
  • EnableDisable.cs を作成。
  • clr にランダムに生成されたアセンブリ名を実装。
  • ole にランダムに生成された変数名とメソッド名を実装。
  • mapped および roles モジュールを whoami に統合。
  • lMapped および lRoles モジュールを lWhoami に統合。
  • iMapped および iRoles モジュールを iWhoami に統合。
  • コードベースを完全にリファクタリング。