
最新のGitHubから取得した、netlogon構造が追加されたimpacketが必要です。
デフォルトではこれによりドメインコントローラアカウントのパスワードが変更されることに注意してください。確かにこれでDCSyncが可能になりますが、他のドメインコントローラとの通信も壊れるため、注意してください!
詳細情報と元の研究はこちら
Python 3.6以降でのみ動作します! OSにimpacketがインストールされている場合(例: Kali)は、まず既存のインストールをすべて削除してください。それでもインポートエラーが発生する場合は、virtualenv または pipenv から実行してください。
cve-2020-1472-exploit.py を実行する-just-dc と -no-pass または空のハッシュと DCHOSTNAME$ アカウントを使用してDCSyncする2020年9月15日以降に更新されたGitHubのimpacketバージョンをインストールした場合、secretsdumpはローカルレジストリのシークレットをダンプする際に、マシンパスワードの平文(16進数エンコード)を自動的にダンプします。これはDCSyncとは異なることに注意してください。DCSyncはマシンアカウントを使用しますが、レジストリのダンプはドメインコントローラに対してDomain Admin(組み込みのAdministratorアカウントなど)としてsecretsdumpを実行する必要があります。
または、やや古いバージョンのsecretsdumpでは、まずレジストリハイブを抽出してからオフラインでsecretsdumpを実行することで、同じパスワードをダンプできます(この場合、Kerberosハッシュを計算できないため、常に平文キーが出力されます)。
この平文パスワードを使用すると、restorepassword.py を -hexpass パラメータ付きで実行できます。これはまず空のパスワードで同じDCに認証し、その後パスワードを元のものに戻します。ターゲットとしてnetbios名とIPを再度指定してください。例:
python restorepassword.py testsegment/s2016dc@s2016dc -target-ip 192.168.222.113 -hexpass e6ad4c4f64e71cf8c8020aa44bbd70ee711b8dce2adecd7e0d7fd1d76d70a848c987450c5be97b230bd144f3c3...etc