はじめに
サイバーセキュリティ研究者でマルウェア解析者として、私はいつも最新のチャレンジに取り組み、さまざまなシステムの内部構造を明らかにすることに熱心です。この記事では、「Perfection」と呼ばれる最近のHackTheBoxのチャレンジに取り組み、セキュリティ対策を回避して標的システムにアクセスするための手法を活用していきます。
初期の情報収集
この旅路は、ターゲットに対する包括的なNmapスキャンから始まります。そこでは、ポート80上で稼働しているNginxウェブサーバーやポート22上のSSHサービスの存在が明らかになりました。ウェブアプリケーションをより詳細に調査すると、「Secure Tools」によって開発された「重み付き成績計算機」アプリケーションであり、web-ruck 1.7.0 Rubyフレームワークが使用されていることが分かりました。この情報に基づき、アプリケーションの潜在的な脆弱性を掘り下げて調査していきます。
入力フィルターの回避
ウェブアプリケーションにさまざまなペイロードを注入しようとすると、「悪意のある入力がブロックされました」というメッセージが表示され、強力な入力検証対策が施されていることがわかりました。しかし、あきらめることなく、FFUFという強力なウェブファザーを使ってアプリケーションがフィルタリングしている「悪文字」を列挙していきます。すると、単純な改行文字(%0A)がフィルターを抜けることが判明し、任意のコードを注入する道が開かれました。
コード実行の獲得
入力フィルターを回避する新たな手段を得たことで、base64エンコードされたリバースシェルペイロードをアプリケーションに注入することができました。これにより、ターゲットシステム上にシェルを得ることができ、さらにそれを完全なインタラクティブセッションにアップグレードしました。アプリケーションのソースコードを調査したところ、ユーザー入力をフィルタリングするための正規表現も発見し、セキュリティメカニズムのさらなる理解を深めることができました。
パスワード情報の抽出
システムの探索中、データベース内のパスワードフォーマットについて言及したメールを偶然発見しました。この貴重な情報により、SQLiteデータベースからハッシュ化されたパスワードを抽出し、次のステップの攻撃に取り組むことができました。
パスワードの解読
パスワードフォーマットの詳細を得たことで、Hashcatのブルートフォース攻撃モードを使ってハッシュ化されたパスワードを解読することができました。ユースケースによっては、Combinator攻撃モードよりもブルートフォース攻撃モードの方が高速であることがわかり、効率的にユーザー資格情報を回復することができました。
まとめ
HackTheBoxの「Perfection」チャレンジは、徹底的な情報収集、創造的な思考、セキュリティ対策の回避など、さまざまな手法を身につける貴重な学習体験でした。入力検証の回避からパスワードの解読まで、多角的なアプローチを通じて、サイバーセキュリティの複雑な世界に迫ることができました。これからも、さまざまなシステムの奥深さに挑戦し、知識とスキルを磨いていきます。
主なポイント:
- ターゲットの攻撃対象を包括的に特定するための情報収集を実施
- 改行文字の回避策を発見し、入力フィルターを迂回
- リバースシェルの注入により、コード実行を獲得
- ターゲットシステムからパスワード情報を抽出
- Hashcatのブルートフォースモードを使ってハッシュ化されたパスワードを効率的に解読