概要
USBメモリのUbuntu でWindowsマシンをブートしてWindowsのプロダクトキー(DigitalProductId)を取り出すことが出来る。
次のコマンド
sudo apt install chntpw chntpw -e /media/ubuntu/OS/Windows/System32/config/SOFTWARE ## chntpw で dpi \Microsoft\Windows NT\CurrentVersion\DigitalProductId
BIOSに搭載のキーは
sudo strings /sys/firmware/acpi/tables/MSDM
用意するもの
ubuntu が起動するUSBメモリ
Rufus / UNetbootin で UbuntuのISOから作成する。終了後もデータが残るようにすると良い。
Windows PCにUSBメモリを挿して起動
一般的なPCだと、起動時にF12あたりを連打してるとUbuntuから起動する。
Ubuntu が起動したら
ターミナルを起動する。
ネットワーク設定がうまく言ってることを確認
ping 1.1.1.1
apt installを使えるようにする
sudo add-apt-repository universe
chntpw をインストール
sudo apt install chntpw
windows のディスクをマウント
Windows のディスクをマウントして使えるようにする。
Disk アプリから 再生ボタン▶を押せば、自動的にマウントされる。
もし、Bitlockerをしていれば、この時点でアクセスできないので、 sudo apt install dislocker
を使ってパスワードを用意してBitlockerの暗号化を読み込めるようにしておく。
マウントできたことを確認
mount ls /media/ubuntu/OS/Windows/
レジストリにアクセスし、キーをサルベージ
Windowsのレジストリは、/Windows/System32/config/SOFTWARE
なので、そこをめがけて開く
chntpw -e /media/ubuntu/OS/Windows/System32/config/SOFTWARE > dpi \Microsoft\Windows NT\CurrentVersion\DigitalProductId
実際にやってみると、次のような感じ
> dpi \Microsoft\Windows NT\CurrentVersion\DigitalProductId Value <\Microsoft\Windows NT\CurrentVersion\DigitalProductId> of type REG_BINARY, data length 164 [0xa4] Decoded product ID: [XXXXXXXXXXXXXXVFPMG] ### Office15くらいならプロダクトキーもわかるっぽい cat Microsoft\Office\15.0\ClickToRun\Scenario\INSTALL\ProductKeys Value <Microsoft\Office\15.0\ClickToRun\Scenario\INSTALL\ProductKeys> of type REG_SZ (1), data length 60 [0x3c] XXX-XXX-XXXX-XXXX-XXXXX
たまたま、転がっていた古いノートPCで試したところ、問題なく動いたし、ついでに古いOfficeのライセンスも取り出しておいた。つええ
BIOSのOEMキー
UEFI/BIOSに含まれるWindowsのOEMキーは、sys ファイルシステムから取れる。って。まじか!
sudo strings /sys/firmware/acpi/tables/MSDM
やってみた。
takuya@lenovo:~$ sudo strings /sys/firmware/acpi/tables/MSDM [sudo] password for takuya: MSDMU XXXXX-XXX - AMI XXXX-XXXX-XXX-XXXX-9QBK4
なんか出てきますね。
ログイン・パスワードの初期化
chntpw を使えば、Windowsのユーザーのパスワードを「消去」したり、パスワードの変更ができる。
NTFSを書き換えるので、ReadOnlyではなく、ReadWriteで再マウントが必要
sudo mount -o remount,rw /media/ubuntu/OS/
/media/ubuntu/OS/Windows/System32/config sudo chntpw -u takuya_1st SAM Select [q] :1 Select [q] :q
これで、パスワードをリセットして空にすることが出来る。
ただし、マイクロソフト・アカウントと紐付いたWindowsアカウントはこの方法では解除することはできません。
セキュリティ的な懸念と対策。
UbuntuのUSBドライブがあるだけで、Windowsのライセンスをぶっこ抜かれます。これはUSB怖いとかそういうことではありません。
WindowのインストールされたHDDを暗号化していないために起こりえます。今すぐBitlockerで暗号化してください。
もしくは物理的に安全な場所に設置してください(家庭内など)モバイルノートPCは暗号化必須だと思ってください。
Win11からTPM必須でブートに制限がかかったり暗号化ディスクを使うようになってるのは理に適っているのです。
従来のセキュリティのUSBブートをさせない、USBメモリが駄目、BIOSパスワードを掛けろ、はなく、「暗号化しろ」というわけなのです。
そして、ローカルアカウントではなくマイクロソフトアカウントを使ってPIN入力(PINは本体に保存される)を使うほうが安全なのです。