
Enumerate Domain Data は、PowerView に似せて設計された .NET ツールです。PowerView は究極のドメイン列挙ツールですが、私たちは独自に実装した .NET 版を求めていました。このツールは、既存のさまざまなプロジェクトにおける機能実装を参照し、それらを EDD に統合することで構成されています。
EDD を使用するには、アプリケーションを呼び出し、実行したい関数(以下に一覧)を指定し、その関数が必要とするオプション/必須パラメーターを指定するだけです。
引数:
-f, --function=VALUE 使用したい関数
-o, --output=VALUE 保存先ファイルのパス
-c, --computername=VALUE 対象のコンピューター
-n, --canonicalname=VALUE ドメインユーザーの正規名
-d, --domainname=VALUE 対象のドメイン
-g, --groupname=VALUE 対象のドメイングループ
-p, --processname=VALUE 対象のプロセス
-fd, --filedata=PATH 呼び出す関数に関連するデータを含むファイルのパス
-w, --password=VALUE 認証に使用するパスワード、または設定するパスワード
-u, --username=VALUE 対象のドメインアカウント
-t, --threads=VALUE 実行するスレッド数(デフォルト: 5)
-q, --query=VALUE 検索するカスタム LDAP フィルター
-a, --adright=VALUE 返す Active Directory 権限(カンマ区切り)
-s, --search=VALUE 検索語句(カンマ区切り、ワイルドカード対応)
FindInterestingDomainShareFile で使用
--sharepath=VALUE 興味深いファイルを検索する共有パス
-i, --info 指定した関数の情報を表示
-l, --listfunction 利用可能な関数をすべて表示
-h, --help このメッセージを表示して終了
以下の関数は、-f フラグで使用し、列挙したいデータや実行したいアクションを指定します。
getdomainsid - ドメイン SID を返します(ドメイン未指定時は現在のドメイン)
getforest - 現在のフォレストの名前を返します
getforestdomains - 現在のフォレスト内のすべてのドメイン名を返します
getsiddata - SID を対応するグループ名またはドメイン名に変換します(-u オプションで SID 値を指定)
getadcsservers - 現在のドメイン内で AD CS を実行しているサーバーの一覧を取得します
getdomaincomputers - ドメイン内のすべてのコンピューターの一覧を取得します
getdomaincontrollers - すべてのドメインコントローラーの一覧を取得します
getdomainshares - すべてのドメイン共有の一覧を取得します
getreadabledomainshares - 読み取り可能なすべてのドメイン共有の一覧を取得します
changeaccountpassword - 対象アカウントのパスワードを変更します
customldapquery - 任意の LDAP フィルターを設定してオブジェクトを検索します
getuserdacl - 指定したドメインオブジェクトの DACL を返します
getnetlocalgroupmember - リモートシステム上のローカルグループに属するすべてのユーザーの一覧を返します
getdomaingroupmember - ドメイングループに属するすべてのユーザーの一覧を返します
getdomainuser - 特定のユーザーに関する情報(名前、説明、SID、ドメイングループ)を取得します
getdomaindescriptions - 標準的でないアカウント説明を持つドメインオブジェクトを返します
getnetsession - 対象システムにセッションがあるアカウントの一覧を返します
getnetloggedon - 対象システムにログオンしているアカウントの一覧を返します
getuserswithspns - SPN が関連付けられているすべてのドメインアカウントの一覧を返します
getdomaingroupsid - グループの SID を取得します
getdomainsid - ドメインの SID を取得します
getsiddata - SID からユーザー名を返します
joingroupbysid - グループの SID を指定してアカウントをグループに参加させます
joingroupbyname - グループ名を指定してアカウントをグループに参加させます
findadminsch - タスクスケジューラを使用してドメイン内の管理者権限を問い合わせます
findadminwmi - WMI を使用してドメイン内の管理者権限を検索します
finddomainprocess - ドメイン内の全システムで特定のプロセスを検索します(リモートシステムに対する管理者アクセスが必要)
finddomainuser - 指定されたユーザーまたはグループをドメイン環境内で検索し、アクティブなセッションを探します(デフォルトでは Domain Admins を検索)
findemptysystem - ログオンユーザーがいないシステムをドメイン内で検索します
findinterestingdomainsharefile - アクセス可能なすべての共有をドメイン環境内で検索します。見つかったら、すべてのファイル名から「興味深い」文字列を解析します
findwritableshares - ドメイン内のすべての共有を列挙し、現在のアカウントがルートレベルの共有と1階層下の共有にテキストファイルを作成できるかどうかを確認します
PowerView - https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
CSharp-Tools - https://github.com/RcoIl/CSharp-Tools
StackOverflow - ランダムな質問(これが文献としてリストされていない場合、忘れていると認識しています :))
SharpView - https://github.com/tevora-threat/SharpView