前提 目的
この記事では、悪意のあるハッキングができるようになることが目的ではなく
ハッキングのやり方を知ることで、今後の自身の開発をよりセキュアにするためを目的としています。
昨今、AIが発達してきていい意味で誰もがコードを書ける時代になりました。
だからこそ、全エンジニアがセキュリティを強く意識するべきと考えているので、記事を書いてサイバーセキュリティの意識を高めていければと思っています。
ハッキングツールについては記載していますが、仮想環境等で使用したいとなっても
個人の責任で使用していただければと思います。
また、この記事はUdemyの教材である
「最前線の現場で働く講師が作成した「TryHackMeによるハッキング体験ができる」講座です。初めて学ぶ方を対象に、必要な知識を丁寧に紹介していきます。基礎を学んだ後に「自発的に踏み出せるようになる」ことが講座のゴールです!」をもとにアウトプットしております。
詳しく知りたい方は以下のリンクから学習に進んでいただければと思います。
ハッキングの基本的な流れ
ハッキングでは、以下の手順で基本的には進められます
偵察→列挙→脆弱性検出→攻撃→維持→証拠隠滅
順番にどのようにハッキングが進められるかを見ていきます。
前提として、ハッキングする際は、各フェーズで扱うツールが異なります。これらも説明していきます。
今回は、ssh接続までやってみます(偵察から攻撃まで)
偵察
基本情報の収集を行うフェーズです
中でも「パッシブ偵察」と「アクティブ偵察」に分けられます。
パッシブ偵察:
公開情報(HPやURL、SNSなど)
アクティブ偵察:
サービス、ポート番号、マシンのOSやバージョンなど
使用するツール(nmap)
nmapとは
アクセス先がどのポートが空いているか、どのようなOSが導入されているかを見ることができます。
任意のIPアドレスに対して攻撃を仕掛けたいとします。
(ここでは、すでパッシブ偵察は終えているものとします。)
nmap -sV -O IP_ADDRESS
オプション解説
sV :動作しているサービスのソフトウェアバージョン情報を特定
-O :OSを特定しています。
結果が返ってきます。ほとんどのポートは閉じていることがわかるかと思います。

上図の下の方を見ると、空いているポートがいくつかあることがわかります。
このように、アクティブ偵察で用いるツールが、nmapになります。
httpが空いていることがわかったので、ブラウザで
http://IP_ADDRESSと入力してみます。
そうすると、画面が表示されました。トップの画面にはアクセスすることがわかりました。

列挙
他のディレクトリが見れるか確認してみます。
例えば、http://IP_ADDRESS/something
のようなディレクリなどがないかを調べたいとします。
このように、まとめて、他のディレクトリがないかを辞書を使って調べられるツールがあります。
それが「gobuster」というものです。
gobuster dir -u http://IP_ADDRESS -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 200
dirとすることで、ディレクトリに辞書攻撃することを意味しています。
このように、-wの後に、単語が並べられているテキストファイルを指定してあげることで
1つ1つ確認する必要がないというわけです。
-tには同時検索ができる数を指定しています。これはスペックによって判断すると良いです。
実行結果は以下のとおりです。
/developmentというディレクトリが見れるそうです。
ちなみに下のディレクトリは、403エラーを出しているので、見ることはできないです。

また次に、nmapで見たときに、他のポートが開いていることがわかるかと思います。
139と445ポートにSambaというものが使われているのがわかるかと思います。
Samba
Windowsネットワークの諸機能をWindows以外のシステムで利用できるようにするソフトウェア。主にLinuxなどのUNIX系OSで動作するコンピュータをWindowsネットワーク上のサーバやクライアントとして利用するために用いられる。
smbclientというツールを使うことで共有リソースにアクセスすることができます。
smbclient -L IP_ADDRESSとすることで
利用可能な共有フォルダなどの一覧を出すことができます。
smbclient
Sambaを利用して、共有リソースにアクセスすることができるコマンド
Anonymousという共有フォルダがあることがわかりました。ここにアクセスしたいと思います。
smbclient \\\\ID_ADRESS\\Anonymous
\はエスケープ文字であり、\を表現したいときは、もう一つ加えてあげる必要があります。
これについてはこういうものだと覚えておいてください。
このように、ポートが無駄に開いていたりすると、共有サーバーにアクセスができたりすることができます。
攻撃
例えば、共有リソースにアクセスでき、誰かのメールアドレスがみれたとします。
そこから、Hydraを使って、SSH接続できないか試してみるとします。
Hydra の本領
Hydra がやること:
ブルートフォース
辞書攻撃
認証突破の試行
今回は、辞書を使ってアクセスができるか試してみます。
hydra -l someone@domain.co.jp 辞書のあるディレクトリ IP_ADDRESS ssh
このように辞書でヒットするパスワードがあった場合にアクセスすることができます。
hydraでは、sshだけではなく他のサービスも指定できます。
今回、nmapでsshが開いていることがわかっていたので、sshを使ってみたという意図になります。
sshをむやみに開いたままにすると、攻撃対象になるので意識することが大切です
まとめ
今回は、偵察〜攻撃で使うツールなどを実際の流れにしたがって
学習してきました。
無駄なポートが開いていないか
多要素認証の重要性
これが体系だってより意識が強くすることができました。
これからも、
Udemyの教材だったり、TryHackMeで学習して自身の業務に役立てていきたいです。

