Linuxパスワードクラッキングで学べること
by
Yuta Fujii
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Linuxのパスワードクラッキングで 学べること 2021.06.03
Slide 2
Slide 2 text
※あたりまえですが 本資料はハッキングを推奨する意図はありません
Slide 3
Slide 3 text
@__yutafujii__ ● パスワードクラッキングとは ● ハッシュ,エンコーディング,暗号化 ● 誕生日のパラドックス ● John the Ripper ● 実際に使ってみる ● ハッキング手法としての特徴 Contents
Slide 4
Slide 4 text
パスワードクラッキングとは
Slide 5
Slide 5 text
@__yutafujii__ コンピュータシステムで保存あるいは伝達されるデータからパス ワードを割り出すクラッキング手法 出所:Wikipedia パスワードクラッキング Answer
Slide 6
Slide 6 text
@__yutafujii__ ● 辞書攻撃 ● パスワードリスト攻撃 ● ブルートフォース攻撃 パスワードクラッキング
Slide 7
Slide 7 text
ハッシュ,エンコーディング,暗号化
Slide 8
Slide 8 text
@__yutafujii__ A hash function is any function that can be used to map data of arbitrary size to fixed-size values. 出所:Wikipedia ハッシュ関数 Answer
Slide 9
Slide 9 text
@__yutafujii__ ハッシュ関数に求められる性質
Slide 10
Slide 10 text
@__yutafujii__ ● 一方向性 ● 第2原像計算困難性 ● 衝突困難性 ハッシュ関数に求められる性質
Slide 11
Slide 11 text
@__yutafujii__ message ● 一方向性 ● 第2原像計算困難性 ● 衝突困難性 ハッシュ関数に求められる性質 hash message hash message message hash message
Slide 12
Slide 12 text
@__yutafujii__ ランダムに見える文字列にも種類がある eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0d2l0dGVyIjoi QF9feXV0YWZ1amlpX18iLCJuYW1lIjoiWXV0YSBGdWppaSIsImlhd CI6MTUxNjIzOTAyMn0.k8k4uQ-bgpbqvq6-SG247NztutFuw0xWta Dtx4pPgJQ
Slide 13
Slide 13 text
@__yutafujii__ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0d2l0dGVyIjoi QF9feXV0YWZ1amlpX18iLCJuYW1lIjoiWXV0YSBGdWppaSIsImlhd CI6MTUxNjIzOTAyMn0.k8k4uQ-bgpbqvq6-SG247NztutFuw0xWta Dtx4pPgJQ ランダムに見える文字列にも種類がある Base64 encode decode
Slide 14
Slide 14 text
@__yutafujii__ ランダムに見える文字列にも種類がある TLS Record protocol
Slide 15
Slide 15 text
@__yutafujii__ ランダムに見える文字列にも種類がある HMAC SHA256 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0d2l0dGVyIjoi QF9feXV0YWZ1amlpX18iLCJuYW1lIjoiWXV0YSBGdWppaSIsImlhd CI6MTUxNjIzOTAyMn0.k8k4uQ-bgpbqvq6-SG247NztutFuw0xWta Dtx4pPgJQ
Slide 16
Slide 16 text
@__yutafujii__ Devise gem | password ランダムに見える文字列にも種類がある
Slide 17
Slide 17 text
@__yutafujii__ Certificate ランダムに見える文字列にも種類がある
Slide 18
Slide 18 text
@__yutafujii__ ランダムに見える文字列にも種類がある ● ハッシュ(Hash) ○ 一方向,ハッシュから元の値を出すのは原理的に不可能 ● エンコード(Encode) ○ アルゴリズムがわかれば元に戻せる ● 暗号化(Encrypt) ○ アルゴリズムだけではなく鍵がわかっていないと元に戻せない
Slide 19
Slide 19 text
誕生日のパラドックス
Slide 20
Slide 20 text
@__yutafujii__ 誕生日のパラドックス 253人いると確率50%以上で あなたと同じ誕生日の人がいる
Slide 21
Slide 21 text
@__yutafujii__ 誕生日のパラドックス 23人いると確率50%以上で 誕生日被りが起きる
Slide 22
Slide 22 text
@__yutafujii__ ハッシュ関数に求められる性質 ● 第2原像計算困難性(強衝突耐性) ○ 与えられたmessageに対して同じhashになる別のmessageを見つける ● 衝突困難性(弱衝突耐性) ○ なんでもいいから同じhashになる2個のmessageを見つける message hash message message hash message
Slide 23
Slide 23 text
@__yutafujii__ パスワードクラッキングでやっていることは ● 第2原像計算困難性(強衝突耐性) ○ 与えられたmessageに対して同じhashになる別のmessageを見つける ● 衝突困難性(弱衝突耐性) ○ なんでもいいから同じhashになる2個のmessageを見つける message hash message message hash message
Slide 24
Slide 24 text
John the Ripper
Slide 25
Slide 25 text
@__yutafujii__ ● オープンソースのパスワードセキュリティ監査ツール ● Unix, Mac, WindowsなどさまざまなOSに対応 ● Wordpress,SSHなどにも使える John the Ripper
Slide 26
Slide 26 text
@__yutafujii__ ● /etc/shadowに保存されている Linuxのパスワード └─# ls /etc/passwd -rw-r--r-- 1 root root 3.3K Jun 3 11:34 /etc/passwd └─# ls /etc/shadow -rw-r----- 1 root shadow 1.9K Jun 3 11:34 /etc/shadow
Slide 27
Slide 27 text
@__yutafujii__ ● /etc/shadowに保存されている Linuxのパスワード └─# cat /etc/shadow … test1:$6$coolsalt$lBwFVYyzAmmx6k3N5shu4OFCnLmzNjuFhrZLwbch8r uVxelHjD7Kl8bArJd.Ncc3nbf.4xvaEGEjolJGMp6Xf/:18781:0:99999:7 :::
Slide 28
Slide 28 text
@__yutafujii__ ● /etc/shadowに保存されている Linuxのパスワード $6$coolsalt$lBwFVYyzAm...Mp6Xf/ アルゴリズム ソルト Hashed password
Slide 29
Slide 29 text
実際に使ってみる
Slide 30
Slide 30 text
@__yutafujii__ ● インストールしたら2コマンドで実行できる Localで実行してみる └─# unshadow /etc/passwd /etc/shadow > crackme.txt └─# john --wordlist=/usr/share/john/password.lst --rules crackme.txt
Slide 31
Slide 31 text
@__yutafujii__ ● g4dn インスタンスを利用 ● CUDAインストール ● John the Ripperインストール AWSで豪快にGPUを使ってみる
Slide 32
Slide 32 text
@__yutafujii__ AWSで豪快にGPUを使ってみる
Slide 33
Slide 33 text
@__yutafujii__ AWSで豪快にGPUを使ってみる
Slide 34
Slide 34 text
@__yutafujii__ AWSで豪快にGPUを使ってみる
Slide 35
Slide 35 text
@__yutafujii__ AWSで豪快にGPUを使ってみる
Slide 36
Slide 36 text
ハッキング手法としての特徴
Slide 37
Slide 37 text
@__yutafujii__ ● オフラインでクラッキングされうる ○ WiFiパスワードも同様 ハッキング手法としての怖さ
Slide 38
Slide 38 text
@__yutafujii__ References ● パスワードクラッキング ○ https://ja.wikipedia.org/wiki/%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%AF%E3%83%A 9%E3%83%83%E3%82%AF ● ハッシュ関数 ○ https://en.wikipedia.org/wiki/Hash_function ○ https://gchq.github.io/CyberChef/#recipe=SHA3('256') ● 誕生日のパラドックス ○ https://ja.wikipedia.org/wiki/%E8%AA%95%E7%94%9F%E6%97%A5%E6%94%BB%E6%92%83 ● JWT token ○ https://jwt.io/ ● How Devise keeps your Rails app passwords safe ○ https://www.freecodecamp.org/news/how-does-devise-keep-your-passwords-safe-d367f6e816eb/ ● John the Ripper ○ https://www.openwall.com/john/ ○ https://www.cyberciti.biz/faq/understanding-etcshadow-file/ ● 実装Memo ○ https://zenn.dev/yutafujii/scraps/1d76606e9ce389