adaudit — ドメイン監査の自動化を行うPowershellスクリプト | Kitploit
ツール / GitHub / phillips321 / adaudit
phillips321/adaudit adaudit ドメイン監査の自動化を行うPowershellスクリプト
414 106 6ヶ月前コミュニティで最も使われているツールを見つけましょう。
過去7日間 過去30日間
adaudit
このPowerShellスクリプトは、Microsoft Active Directoryの包括的な監査を実施し、一般的なセキュリティ脆弱性や弱点を特定するために設計されています。実行により、強化が必要な重要な領域を特定し、Active Directoryを標的とした横断移動や特権昇格攻撃でよく使われる戦術からインフラを保護します。
_____ ____ _____ _ _ _
| _ | \ | _ |_ _ _| |_| |_
| | | | | | | | . | | _|
|__|__|____/ |__|__|___|___|_|_|
by phillips321
もしスクリプトで使える優れたPowerShellワンライナーがあれば、ぜひ教えてください。このスクリプトは、外部ツール(ntdsutilとcmd.exe以外)に依存せず、単一ファイルとして維持しようとしています。
DC上でDAとして直接実行してください。コードを信頼できない場合は、最初に読んでみてください。すべて無害であることがわかります!(しかし、ネットからダウンロードしたコードをDAとして実行するなら、本来は常にそうすべきですよね?)
このツールの機能
デバイス情報
ドメイン監査
Get-LastWUDate
Get-DCEval
Get-TimeSource
Get-PrivilegedGroupMembership
Get-MachineAccountQuota
Get-DefaultDomainControllersPolicy
Get-SMB1Support
Get-FunctionalLevel
Get-DCsNotOwnedByDA
Get-ReplicationType
Get-RecycleBinState
Get-CriticalServicesStatus
Get-RODC
ドメイン信頼監査
ユーザーアカウント監査
Get-InactiveAccounts
Get-DisabledAccounts
Get-LockedAccounts
Get-AdminAccountChecks
Get-NULLSessions
Get-PrivilegedGroupAccounts
Get-ProtectedUsers
パスワード情報監査
Get-AccountPassDontExpire
Get-UserPasswordNotChangedRecently
Get-PasswordPolicy
Get-PasswordQuality
NTDS.ditのダンプ
コンピュータオブジェクト監査
GPO監査(およびSYSVOLのパスワード確認)
Get-GPOtoFile
Get-GPOsPerOU
Get-SYSVOLXMLS
Get-GPOEnum
グループの汎用AD権限確認
ドメイン内のLAPSの存在確認
認証ポリシーとサイロの存在確認
Get-AuthenticationPoliciesAndSilos
安全でないDNSゾーンの確認
新しく作成されたユーザーとグループの確認
ADCSの脆弱性(ESC1、2、3、4、8)の確認
高価値のKerberoast可能なアカウントの確認
ASREPRoast可能なアカウントの確認
ユーザー、グループ、コンピュータ上の危険なACL権限の確認
LDAPおよびLDAPs設定(署名、Nullセッションなど)の確認
実行時引数
以下のスイッチを組み合わせて使用できます。
-installdeps オプション機能(DSInternals)をインストール
-hostdetails ホスト名やその他有用な監査情報を取得
-domainaudit 機能レベルなどADの情報を取得
-trusts ドメイン信頼に関する情報を取得
-accounts 期限切れ、無効化などアカウントの問題を特定
-passwordpolicy パスワードポリシー情報を取得
-ntds ntdsutil を使ってNTDS.ditファイルをダンプ
-oldboxes XP/2003などドメインに参加している旧式OSを特定
-gpo GPOをXMLおよびHTMLでダンプし、後で分析
-ouperms 一般的なOU権限の問題を確認
-laps LAPSがインストールされているか確認
-authpolsilos 認証ポリシーとサイロの存在を確認
子ドメインのサポート
このスクリプトはフォレストルートドメイン と子ドメイン の両方を完全にサポートするようになりました。
スキーマ管理者とエンタープライズ管理者は子ドメイン(フォレストルートにのみ存在)で適切に処理されます
スクリプトは、フォレストルートのみのグループが存在しない場合でも、適切な情報メッセージを表示して正常に完了します
子ドメインのシナリオでグループが見つからなくてもクラッシュやブロックエラーは発生しません
Windows Server 2022の子ドメインでテストおよび検証済み
エラーハンドリングと堅牢性
スクリプトは全体にわたって包括的なエラーハンドリングを実装しています。
オプションの監査機能は、スクリプトの実行をブロックせずに正常に失敗します
GPOレポートの生成エラー(破損したGPOなど)は、他の監査の完了を妨げません
防御的なチェックにより、オプションの出力ファイルに対するファイル未発見例外を防ぎます
明確なエラー/警告/情報メッセージにより、重大な失敗と想定されるシナリオを区別します
オプションのモジュール(DSInternals、LAPS、AdmPwd.PS)がなくてもコア監査機能は動作します
Nessus XML出力
後処理を必要としない、有効で適切にフォーマットされたNessus XMLを生成します
すべての特殊文字(&、<、>、"、')はソースで適切にエスケープされます
出力ファイルは手動修正なしでNessusに直接インポート可能
後処理手順や追加の出力ファイルが不要
テスト環境
Windows Server 2022で検証済み (フォレストルートドメインと子ドメインの両方)
Windows Server 2008R2から2022までをサポート
破損したGPOや混合構成を含む複雑な本番環境でも正常に動作
-insecurednszone 安全でないDNSゾーンを確認
-recentchanges 新しく作成されたユーザーとグループ(過去30日間)を確認
-adcs ADCSの脆弱性(ESC1、2、3、4、8)を確認
-acl ユーザー、グループ、コンピュータ上の危険なACL権限を確認
-spn 高価値のKerberoast可能なアカウントを確認
-asrep ASREPRoast可能なアカウントを確認
-ldapsecurity 複数のLDAP問題を確認
-exclude adaudit.ps1 -all -exclude ouperms,ntds,adcs のように特定のチェックを除外
-select adaudit.ps1 -all "gpo,ntds,acl" のように特定のチェックのみ選択
-all すべてのチェックを実行(例:AdAudit.ps1 -all)