ハッキング始めてみました~自分のパスワードがリストに載ってた~

目次

こんにちは。ごえです。先日本屋さんに行ったときに以下の本を買いました。
実践したので感想を書きます。

book
https://www.shoeisha.co.jp/book/detail/9784798181578

野溝 のみぞう (著) 翔泳社

この本で勉強できること

日頃サーバー運用をしていると「不正アクセスのIPアドレスをブロックする」「セキュリティーソフトをインストールする」など、防御の仕事をします。

セキュリティーソフトでばっちり防げていることを確認したとき、ふと、
そもそもどうやって攻撃してきたんだろうと疑問に思いました。

たぶん自動化されたツールを使って攻撃してきてるのかも、、
と想像するのですが、実際のところはわかりません。

そんな時、本屋さんで『ハッキングをはじめる本』を見つけました。

説明によると、「仮想的な環境で実際にサイバー攻撃を体験してみる」というコンセプトで、
初学者向けにハッキングを体験する方法が書かれている本です。

実際に人様のサーバーに攻撃するわけにはいけませんので、ゲーム感覚でハッキングを勉強できるTryHackMe(https://tryhackme.com/)というプラットフォームを使います。

「このサーバーに保存されている○○の秘密文書をゲットしてみよう」
「簡単なパスワードはこうやったら突破できる」
など、実際に手を動かしてハッキングのいろはを学べます。

実践してみたこと

よくある攻撃に、パスワードの総当たりというものがあると思います。
簡単なパスワードを使っていると、狙われたときにすぐ不正ログインされてしまいます。

本の中では、実際に簡単なパスワードを突破する章がありました。
SSHのポート(22番)が解放されているサーバーがターゲットです。

ユーザー名は分かっているところから、辞書攻撃を仕掛けます。
Hydraという、パスワードクラックを自動化するためのツールを使います。

仕組みは簡単で、あらかじめ用意された「よくあるパスワード」が書かれたテキストファイルを読み込んで、片っ端からSSH接続を試行するツールです。

よくあるパスワードとは、「1111111」「abc123」「password」などですが、
今回あらかじめ用意されていたテキストには、なんと1000万個以上のパスワードが記載されていました。

実際のファイルはこちら。(本記事では詳しく触れませんが、kali linuxというOSをインストールした際にできるファイルです。)

hydra コマンドを上記のテキストファイルを引数にして実行すると
ひたすら実行してくれます。

しばらく見つめてましたが、ずーーーーと実行していました。
途中お昼ご飯を食べてる間もずーーーーと実行してました。

30分くらいたったころ、

テテテテテ・・・・・ピン password:●●●●●

パスワードが出力されました。
これでログインできるので、ハッキング完了というわけです。

実際ssh接続をすると、ターゲットのサーバーにssh接続できました。
あとはそこにあるファイルを盗んでゲームクリアです。


実際自分のパスワードは安全?

一例ではありますが、ハッキングの方法が分かりました。

ここで、自分がプライベートで使うパスワードが安全なのか気になりました。

# cat rockyou.txt | grep ●▼■
(総当たりに使ったパスワードファイルを自分のパスワードでgrep)

# cat rockyou.txt | grep ●▼■
●▼■

普通にヒットしました。
パスワードは使いまわしていないので大丈夫で、突破されても被害のないパスワードでしたが
すぐにパスワードを変更しました。

記号や大文字などの組み合わせがナゼ大事か

ハッキングに使用したパスワード一覧のファイルを、何パターン化で絞り込んでみました。

総件数(絞り込みなし) 10,000,000件(1000万件)
数字を1つ以上含む        5,000,000件(500万件)
数字と小文字を使用         1,500,000件(150万件)
数字、大文字、小文字              9365件
数字、大文字、小文字、記号     161件
ランダム(記号)                     ヒットなし

上記はあくまでも、あらかじめ用意されたファイルでgrepした件数ですが、
大文字や小文字を組み合わせると急に件数が下がりました(赤文字部分)

そのため普段つかうパスワードは、ポリシーが緩くても様々な種類の文字を使うべきといえます。

 

勉強になったこと

 

  • 攻撃者は「面倒なこと」を網羅的にやってくる

  • 「ちょっとの油断」が侵入口になる

  • 守る側は“攻撃を想定した設計”が必須

まだ読み進めているところですが、印象として思ったのは、
攻撃は地道に網羅的に実行されるということです。

攻撃者が思いついたパスワードを試してくるのではなく、
リスト化されたパスワードを”全部”試してきます。

年々リストは充実しそうですし、油断して簡単なパスワードを設定していると確実に突破されます。

記事にはできていませんが、攻撃対象サーバーについて、何番ポートが解放されているかを簡単に出力できるコマンドも用意されています。

感想

いつどのサーバーが攻撃されるかは分からない以上、想定される攻撃はなるべく単純な方法で防ぐ必要があると感じました。

自分のサーバーは、何番ポートが解放されていて、アクセス可能なIPアドレスはどの範囲なのか。
パスワードポリシーは適切か。などなど、自信をもって侵入されない根拠がもてる状態が望ましいんだなと思いました。

ぜひ試してみてください。
お読みいただきありがとうございました。