メルマガ登録
こんにちは。株式会社ブレインパッド XaaSユニットPDEの内山です。
今回は、サイバーセキュリティのスキル向上に役立つオンラインプラットフォーム「Hack The Box」のご紹介と、実際にハッキング(machineへの侵入とPrivilege escalation)にチャレンジした様子をお伝えします。
テクニカルなハッキングの手法を紹介するものではなく、ハッキングはこんなものですよ、とざっくり紹介するものです。セキュリティの布教も兼ねています。
Hack The Boxをやると、セキュリティに留まらず、ネットワーク、OS、ミドルウエア、コードリーディング、暗号等、幅広い知識をゲーム感覚で身につけることもできます。
【参考】Hacking Training For The Best
サイバーセキュリティのスキルアップのためのプラットフォームです。コンテンツは色々あるのですが、今回紹介するのは、Machineというものです。
定期的に新しいチャレンジが更新されています。IPアドレスだけが渡され、それを手がかりに侵入するなどし、rootのFlagを取得します。一番先にFlagを獲得した人が最大のポイントを稼ぐことができます。
Hack The Boxは活動も活発で、質もいいと思います。無課金で始められますので、サイバーセキュリティをちょっと学んでみたい人にもおすすめです。有料会員になるとやりやすくなりますが、月14ドルからでそこまで高額ではないと思います。
簡単なものからinsane(ありえねー)と言われる超難問まであるので、色々なレベルの人にフィットします。
評判もいいプラットフォームです。
【参考】Forrester’s Choice for Cyber Excellence: Elevate Your Skills with Hack The Box! | HTB Business
今回はMachinesから、Two Millionを選びました。Hack The Boxのユーザが 2 million を達成したことをお祝いする記念チャレンジです。ユーザ評価も4.6と高いです。
早速開始です。Join Machineをクリックすると、攻撃先のマシンが用意されます。
今回の攻撃先のIPが提示されます。これはランダムで変わります。最初に与えられる情報は、IPアドレスのみです。
攻撃に使うマシンは自前で用意して繋げても良いし、PwnboxというHack The Box側で用意してくれるマシンも使えます。今回はPwnboxを使ってみます。
ハッキングの始まりは、Enumeration(偵察とスキャニングで収集した情報の整理)から。
情報がIPしかないので、まずは開いているポートを探ります。定番のnmapを使います。(ここではnmapの使い方は説明しません。)
nmap 10.10.11.221
もう少し詳しく見てみます。
nmap -sV -sC -v 10.10.11.221
http://2million.htb/ というサイトを発見。hostsに追加しておきます。
サイトにアクセスしてみます。ヒントがないか、探し回ります。
こんなボタンを発見。クリック。
codeがあればsign upできそうです。
ソースに、jsファイルがあったので、中身を見てみます。
inviteapi.min.js が使えるかもしれません。見にくいので、ツールを使って整形。
makeInviteCodeファンクションを発見。名前からして、codeを生成できそうです。
Chrome dev toolsで実行してみます。
encryptedだとヒントが出ているので、rot13.com で解読。
答えが出てきました。指示どおりリクエストを投げると、codeがencodedされてでてきました。
decodeします。
codeが手に入ったようです。使ってみます。
登録してみます。するとログインページに遷移。登録できたようです。
ログインできました!このサイトを探っていきます。
探っていくと、Accessのページでクリックできるものを発見。
ソースコードを見ていきます。/api/v1 配下にエンドポイントがいくつかありそうです。
使える物がないか、/api/v1 以下のリストアップを期待して、urlを打ってみます。すると出てきました。
userとadmin権限の2つがありそうです。admin権限で何かできるといい予感がします。
adminのend pointを試してみます。
authでは、今のユーザがadmin権限ではないとわかります。generateは動きません。
admin権限になれると嬉しいので、updateを試してみます。Burp Suiteを使うと、簡単にリクエストを改造して送り、レスポンスを見ることができます。(ここではBurp Suiteの使い方は説明しません。)
送信してみると何か返ってきました。content typeのエラーが出てきます。これは脆弱性をつくことができるかもしれません。adminではないのに、adminのend pointを動かせるのは、そこに脆弱性があるいい前兆です。
RequestでContentを適当に追加してみます。10行目に追加しています。
するとメッセージが変わりました。emailのParameterがないそうです。追加してみます。
13行目以降に追加。再実施。
今度はis_adminパラメータがないそうです。これも追加していきます。admin権限をアップデートできそうです。
is_adminが0/1なのか、true/falseなのか、全く別のものなのか分からないので、あれこれやってみます。
レスポンスが返ってきました。adminでupdateされたかもしれません。確認します。
auth endpointがtrueを返したので、adminになっているのを確認できました。権限をアップできました。いい感じです。すると残るendpointのgenerateをうまく使える予感がします。
generateのリクエストもBurp Suiteで送ってみます。
今回も色々パラメーターがないと言われるので、追加していきます。
するとエラーなしでResponseが返ってきました。何らかのリクエストをadminとして渡せるということになります。
ここを利用するにはどうしたらいいか。一番よくあるのが、パラメーターに細工をして、予期しないresponseを狙うものです。パラメーターのバリデーションチェックをしないまま処理していて、脆弱性があるかもしれません。
usernameの後ろに、injection脆弱性でよく使われるものを入れてみます。この辺は「vulnerability injection parameter」等でググるとよく使える手が色々出てきます。
色々試してみます。
“username”:”uchiyama; ls -la #”
お尻に; ls -la #をつけると、うまくいきました。
配下のファイルの一覧が出ました。.envファイルが怪しいので見てみます。
DBのログイン情報が出てきました。
nmapの結果を思い出すと、sshのポートが空いてたので、ログインに使えないか試してみます。パスワード等を使いまわしているケースが多いので。
すると、ログインできました!侵入できました。
ログインしたディレクトリに、user.txtファイルがあります。これが最初のFlagです。(Flagはランダムで変更されます)
Hack The BoxのページでUser Flagを入れます。合っていました。
次はroot Flagです。
あれこれやってみて、ログインした時の「Mail来てますよメッセージ」に注目します。わざわざ出ているということは、見てみる価値はあります。
ホストマシンに脆弱性があると書いてありますね。どのCVEなのか調査します。
マシンのバージョンを調査。ここにつながるCVEをググって調べ、脆弱性をつく方法を探します。
GitHub – sxlmnwb/CVE-2023-0386: Vulnerabilities Exploitation On Ubuntu 22.04
これをやってみます。指示の通りやるのみ。
いくつか方法が見つかるのですが、実際やってみるとできないなどあるので、調べつつ試しつつです。
すると、rootになれました。
root.txtを探します。Flagを発見しました。
root Flagも獲れました!完了です。
正しいroot Flagを入れると、ちょっと華々しい?プレゼンテーションを見ることができます。音も急に鳴るのでびっくりします。
実際には、途中で試行錯誤したり、色々やってみた挙げ句に諦めたりしています。たどり着くまでのルートは一つではないので、他のやり方もあります。
調査のためのコマンドやソフトウエアをインストールしているところで躓いたりして、環境構築もかなり時間がかかなる場合があります。やりたいことは一つでも、それに対してたくさんの方法やアプローチを持っていると強いです。
ネットワークやOSについての基礎知識がしっかりしていると、技にバラエティを持ちやすくなります。
nmap, Burp Suiteあたりはサイバーセキュリティでは定番のツールです。ツールを使いこなすのも大事なスキルの一つなので、Hack The Boxを通してツールをあれこれ使ってみるのもいいと思います。実践が一番身につきます。
セキュリティ系のツールは、会社のPC等セキュリティ対策がしてある環境ではインストールできないこともあります。また、不用意にツールを使うとただの不法なハッカーになることもあるので、こういう専用プラットフォームにだけつながっている環境でやるのが安全です。
エンジニアなら、楽しんでやれると思いますので、興味のある方は挑戦してみてください。Hack The Box類似のプラットフォームもありますので、自分に合うものを探してみてください。
ブレインパッドでは新卒採用・中途採用共に一緒に働く仲間を募集しています。
ご興味のある方は、ぜひ採用サイトをご覧ください!
あなたにオススメの記事
2023.12.01
生成AI(ジェネレーティブAI)とは?ChatGPTとの違いや仕組み・種類・活用事例
2023.09.21
DX(デジタルトランスフォーメーション)とは?今さら聞けない意味・定義を分かりやすく解説【2024年最新】
2023.11.24
【現役社員が解説】データサイエンティストとは?仕事内容やAI・DX時代に必要なスキル
2023.09.08
DX事例26選:6つの業界別に紹介~有名企業はどんなDXをやっている?~【2024年最新版】
2023.08.23
LLM(大規模言語モデル)とは?生成AIとの違いや活用事例・課題
2024.03.22
生成AIの評価指標・ベンチマークとそれらに関連する問題点や限界を解説