こんにちは、ぎんたです。
今回はTryHackMeで提供されている「Tardigrade」というルームの攻略の過程を記事にしています。
ルームはこちらからアクセスできます「TardigradeのURL」。
このルームでは、不正アクセスを受けたサーバに残された永続化の設定(バックドア)を発見することが目的です。
- Linuxの永続化の設定の調査について興味がある方
- Linuxのインシデント調査に関心がある方
が今回の対象です。
また、Task3と6は解説の必要がない内容であるため省略しています。
このルームも無料でアクセス可能なので、試してみたい方はぜひやってみてください。
スポンサーリンク
「Task2」ユーザアカウントを調査し、永続化の痕跡を調査する
Q1:giorgioのホームディレクトリで見つけた最も興味深いファイルは何ですか?
Giorgioのホームディレクトリの内容を確認すると、「.bad_bash」という名前の隠しファイルがありました。
Q2:すべてのユーザのホームディレクトリで見つけることができる別のファイルは、.bashrcファイルです。giorgioの.bashrcで何か面白いものが見つかるかどうか、確認できますか?
.bashrcは、ユーザがログインしたときに読み込まれる設定ファイルです。
隠しファイルになっているため、被害サーバにログインし調査する場合には「ls -la」コマンドを実行することで表示可能です。
内容を確認すると、外部IPの6969ポートへの接続を試みるコマンドが記載されています。
しかもよく見ると、aliasの設定でlsコマンドとして登録しているようです。
コマンドのエイリアスでは、「オプションも含めて別名をつけることができる」という点が便利な点です。たとえば、「ls -al」をよく実行する場合に備えて、これにエイリアスをつけることができます。
エイリアスをつけるには、「alias」コマンドを使います。「ls -al」に「ll」というエイリアスをつけるには、以下のように実行します。
$ alias ll=’ls -al’
これで、プロンプトに「ll」と入力すると、ls -alに読み替えられて実行されるようになります。コマンドエイリアスの便利なところは、エイリアスに更に引数をつけても、その引数が有効になるという点です。
出典:Linux技術者認定試験 LinucLPI-Japanのサイト
lsコマンドを実行すると上記のIPアドレスへの接続が行われるようです。
なんだかトリッキーな設定だねぇ。
Q3 giorgioのホームディレクトリの通常のベースはカバーできたようなので、次は彼が所有するスケジュールタスクをチェックしましょう。スケジュールされたタスクについて、何か面白いことは見つかりましたか?
crontabコマンドを使うことで、スケジュールされたタスクを調べることができます。
-l: ユーザのcrontabをリストする
Cronの設定不備を悪用した権限昇格の手法を解説した記事もありますので、ご興味があればこちらもご覧ください。
スケジュールタスクにも外部IPの6969番ポートへの接続をおこなう設定がありました。
左側に5か所「*」と記述されているため、毎分実行されるようです。
Task3ですが、メッセージ記載のフラグを回答するだけなので解説は省略します。
「Task4」 rootアカウントを調査し、永続化の痕跡を調査する
Q1 rootアカウントでログオンしてしばらくすると、ターミナルにエラーメッセージが表示されます。何と書いてあるのでしょうか?
「sudo su」コマンドでrootアカウントに切り替えると、数秒後にメッセージが表示されました。
Q2 エラーメッセージを見ながら進んでいくと、エラーメッセージの一部としてターミナルに怪しいコマンドが表示されます。表示されたコマンドは何でしょうか?
「Ctrl + c」を入力しエラーメッセージを終了させたところ、以下のコマンドが表示されました。
Q3 あなたは、「どうしてこうなった?何もしてないのに?rootとしてログインしたら、そうなっただけだ。”怪しいコマンドがどのように実装されたかを知ることができるでしょうか?
rootでログオンしたらメッセージが表示されたことから.bashrcを調査したところ、永続化の設定が記載されていました。
「Task5」passedファイルを調査し、永続化の痕跡を調査する
Q1 最後の永続化メカニズムとは何ですか?
攻撃者はシステムへの永続的なアクセス権の維持を目的としてユーザを追加する場合もあるので、「/etc/passwd」ファイルを確認します。
ざっとみたところ、nobodyというアカウントが怪しそうでしたので、回答したら正解でした。
上記の場合、nobodyユーザのホームディレクトリは/nonexistentで、使用するシェルは「/bin/bash」となります。
ホームディレクトリが一般的に使われる/home/以下の場所ではなく、通常とは異なる可能性があるので調査すべき対象となります。
Task6 は/nonexistentにあるフラグを回答するだけなので、解説は省略します。
1 まとめ
今回の記事では「Tardigrade」というルームの攻略を通してLinuxの永続化の設定を発見していきました。
- ユーザアカウントの.bashrcとスケジュールされたタスクを調査し、永続化の痕跡を調査した
- rootアカウントの.bashrcを調査し、永続化の痕跡を調査した
- passwdファイルを調査し、不審なユーザアカウントを確認した
この記事が少しでも役に立てれば幸いです。
以上、ぎんたでした。
サイバーセキュリティを学ぶ上で必要な攻撃と解析に関する他の記事は、以下のリンクで確認できます。
学習に関しましては、以下のセキュリティの勉強法、おすすめの学習本・動画の記事が多くの方に読まれています。
資格の記事については以下の記事がおすすめです。
ITエンジニアへの転職については以下の記事がおすすめです。
その他学習・転職関連に関しましては、以下の記事もあわせて読まれています。
ぜひご覧ください!