feature image

2025年10月9日 | ブログ記事

Windows PINをCrackする話


他人のPCのPINを無断で入手し、ログインする行為は不正アクセス行為となります。不正アクセス行為に該当する場合、不正アクセス禁止法により三年以下の懲役又は百万円以下の罰金に処せられる可能性があります。
また、ログインせずともPINを無断で入手し保管した場合、一年以下の懲役又は五十万円以下の罰金に処せられる可能性があります。

はじめに

初めてじゃない人は初めません、24BのU.N.ABCです。
この記事はWindows 10/11(注)において「PINもパスワードも忘れてログインできない!」とか「PCの所有者がいなくなってログインできないけどデータを救出したい」とか「道端でPCを拾ったけど生意気にもPINを設定していやがったから解析してやるぜ」といった人向けの内容となっています。ちなみに最後の例は普通に犯罪なのでおとなしく自首しましょう。

注)この記事で紹介する方法はほとんどのWindows 11では使えません。これはWindows 11においてTPMが必須となっているからです。なお、この記事では説明用にわざとTPMを無効化したWindows 11を使用しています。

Let's Crack!

必要なもの

今回のCrackingで必要なもの一覧。

犠牲となるPCに関しては今回の場合インターネットに接続されている必要があります。ネット接続なしでもPINの抽出は可能ですが今回は扱いません。また、解析用PCに関しては高性能のGPUを積むことを推奨します(無くても解析可能)。なお、この記事ではPIN解析用PCとしてNVIDIA GeForce RTX 3060tiを搭載したものを使用しています。

流れ

今回の流れ。

  1. PINのHashを抽出する
  2. 抽出したHashを解析する

これだけです。簡単でしょ?
Hashって何...?ってなった人はググるなりLLMに聞くなりで(不親切)

事前情報

今回はM.KというユーザーのPINを解析してみます。事前にわざと間違ったPINを入力することでPINは8桁であるということが分かっています。

8桁目で弾かれた

下ごしらえ

まず事前準備として用意したUSBメモリーにubuntuを焼きます。どのバージョンでも構いませんが、この記事ではubuntu 24.04 LTS を使用します。焼き方は各自でググるなりLLMに聞くなりで。これで準備完了です。では早速PINをCrackしていきましょう!

Hashの抽出

準備したUSBメモリーを犠牲PCに差し、ubuntuを立ち上げましょう。この辺のやり方は「ubuntu usbブート」と検索してもらえばと。BIOSにパスワードがかかっていた場合は電池を抜いてリセットするなりで。

Try or Install Ubuntuを選択する

さて、無事にubuntuが起動すれば以下のような画面が表示されるはずです。
boot
言語を選べ、みたいな画面が表示されますが、Xで消しちゃってください。次に「Alt+Ctrl+T」でターミナルを立ち上げます。ターミナルが表示されたら以下のコマンドを入力します。

sudo apt-get update
sudo apt-get upgrade
sudo apt install git
sudo apt install python3-pip
pip install dpapick3 --break-system-packages
git clone https://github.com/Banaanhangwagen/WINHELLO2hashcat.git
cd WINHELLO2hashcat/

なお、あらかじめUSB内にインストールしたubuntuでこれらのコマンドを実行しておけばネット接続なしでもHashの抽出が可能です。その場合、これらのコマンドを下ごしらえの段階で済ませておいてください。

なんか聞かれたらYと入力する

これでHashの抽出準備が完了しました!あとは以下のコマンドを実行し、Hashを抽出するだけです。

python3 WINHELLO2hashcat.py --cryptokeys <crypo keys directory> --masterkey <user masterkey directory> --system <system hive> --security <security hive> --ngc <NGC>

ただし、<crypo keys directory>、<user masterkey directory>、<system hive>、<security hive>、<NGC> はそれぞれ以下のパスに置き換えてください。

ここで、<NAME>はWindowsがインストールされているボリューム名(画像の例の場合"Windows")に置き換えてください。また、このコマンドを実行する前にmountコマンドなりダブルクリックで開く(画像の例の場合"Windows"をダブルクリック)なり[1]であらかじめマウントしておいてください。
files
正しく入力すると以下のようなものが出力されます。
hash

ということで無事にHashを抽出できましたー($WINHELLO$以下がHashです)!このHashはあとで使うのでコピーしてどこかに保存しておいてください。次はこのHashを解析していきます。


  1. 開こうとして以下のような画面が表示された場合は諦めてください。これはディスクが暗号化されているのが原因であり、最新のWindows 11ではこの設定が自動でONとなっています。
    bitlocker ↩︎

Hashの解析

無事Hashが抽出できたので早速解析していきましょう!Hashの解析にはhashcatというツールを使います。公式ページからhashcat binariesをダウンロード・解凍してhashcat.exeがある階層にhash.txtというファイルを作り、先ほど抽出したHashをペーストして保存してください。
saved_hash
そして、コマンドプロンプトを開き以下のコマンドを実行します。

hashcat -m 28100 -w 3 hash.txt -a 3 ?d?d?d?d?d?d?d?d

start_cracking
これで解析が始まりました。sを押すと現在とステータスが分かるらしいので見てみましょう。
status
Time.Estimatedの部分を見ると10分程度で解析が終了すると書いています。解析が終わるまで待つ間暇なので先ほど実行したコマンドの引数が何を意味するのかを見てみましょう。
-m 28100というのはhash typeを指定します。今回はWindows PINを解析するので28100を指定します。hash type一覧は公式ページにあるので暇な人は眺めてみてください。
-w 3オプションで最大効率で解析するようにします。PCが重くなる可能性があるので解析中に他のタスクをやりたい人はこのオプションを外してください。
-a 3で総当たり攻撃で解析します。
?d?d?d?d?d?d?d?dではマスクを指定しています。?dは数字1文字を表します。今回解析するのは8桁のPINなのでこのように指定すればよいです。

結果

10分経ちました。解析結果は如何に。
cracked

StatusはCrackedとなり、PINは19541017(画像赤枠部分)であることが分かりました!誕生日をPINに設定するのダメ、絶対。
そして、このPINを使用することで...
success

このようにTPMやディスク暗号化が無効な場合、8桁程度のPINならすぐに破られてしまうことが分かります。

最後に

Windows 11でTPMが必須となり、ディスクの暗号化がデフォルトで有効となったことにより、この記事で紹介した方法でPINを解析することはほぼ不可能となっています。しかし、TPMが必須ではないWindows 10等ではこの手法でPINが破られる可能性があります。PINを破られないようにするためにもTPMを有効化する、BitLockerでディスクを暗号化するなどの対策を取るようにしましょう。
そして最後にお願い。今回紹介した方法を悪用しないように。冒頭にも書きましたが最後にもう一度書いておきます。


他人のPCのPINを無断で入手し、ログインする行為は不正アクセス行為となります。不正アクセス行為に該当する場合、不正アクセス禁止法により三年以下の懲役又は百万円以下の罰金に処せられる可能性があります。
また、ログインせずともPINを無断で入手し保管した場合、一年以下の懲役又は五十万円以下の罰金に処せられる可能性があります。

U-N-ABC icon
この記事を書いた人
U-N-ABC

24B/情理のC++信者 最近はcocos2d-xの勉強をしてたりしてなかったり

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年12月16日
MacからWindowsを弄る方法?~RDP環境を作ろう~
Alt--er icon Alt--er
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記