使いどころ
- 手元に暗号化(LUKS)されていない Linux があり、ローカルアカウントで入りたいとき
Windows 側は 2026-11-13-chntpw を参照
手順
1. Live Linux を用意する
Live Linux の用意の仕方は割愛。 CTF をしたことがある人であれば、誰しもが作り方をどこかで学んでいるため
2. Secure Boot を切る
この後に用意する Live Linux の EFI ローダに署名が無いときは、ファームウェアで Secure Boot を切る。
Device Manager → Secure Boot Configuration → Attempt Secure Boot のチェックを外す → F10 で保存 → Reset
3. ルートをマウント
# 対象ディスクを確認
Ch4n24n@htb[/htb]$ lsblk -f
NAME FSTYPE FSVER LABEL
sda
├─sda1 vfat FAT32
├─sda2 ext4
└─sda3 swap
# ディスクをマウント。ext4 / xfs / btrfs のルートを選ぶ
Ch4n24n@htb[/htb]$ sudo mkdir -p /mnt
Ch4n24n@htb[/htb]$ sudo mount /dev/[partition] /mnt
# マウントされたかを確認
Ch4n24n@htb[/htb]$ mount | grep /mnt
/dev/sda2 on /mnt type ext4 (rw,relatime)
# rw なら成功
FSTYPEがcrypto_LUKSなら、ここで終わる
4. パスワードを変える
# ユーザの一覧を表示
Ch4n24n@htb[/htb]$ ls /mnt/home
# ユーザのパスワードを変える。空パスワードは PAM が拒むことが多いため、空にせず、新しいパスワードを入れる
Ch4n24n@htb[/htb]$ sudo passwd --root /mnt [user]
# アンマウント
Ch4n24n@htb[/htb]$ sudo umount /mnt
--root /mntは対象ディスクを/とみなす(root ユーザのことではない)。付けないと、今起動している Live Linux のパスワードが変わる。
5. 新しいパスワードでログインする
Live Linux を終了して Linux を起動する。 対象ユーザを選び、新しいパスワードを入れる
注意・落とし穴
/etc/passwdのxを消して平文パスワードを書いても、ログインは変わらない。xは「ハッシュは shadow を見ろ」という意味- LUKS が掛かっていると、ここで終わる
参考
- 2026-11-13-chntpw
- passwd(5) — 第2欄の
xは shadow を見ろ - passwd(1) —
--root CHROOT_DIR
おわりに
- というわけで、暗号化されていないLinux から、簡単にログインができてしまうことを書きました。
- Linux は作りがシンプルなので、「当たり前だろ!」って感じだと思いますが、記事として整理してみました💦
- HTB でハッキングを学んでいると、以前では思いつかなかったアイデアが、今では当然のように思えてきて楽しいですね😊
- また、なんか、思いついたら書いてみようと思います〜