こんにちは、ぎんたです。
本日は、GTFOBinsを利用したLinuxの権限昇格の方法について解説します。
GTFOBinsというサイトを利用したことがないし、使い方も分からない。
sudoコマンドを使ったroot権限で実行できるプログラムの列挙について知りたい。
という方が本記事の対象です。
今回は、sudoコマンドを使ってroot権限で実行できるプログラムを列挙し、GTFOBinsでその情報を利用する方法についての記事となります。
スポンサーリンク
今回行われるLinuxの権限昇格の流れ
前提として、すでに以下のことが行われているところからスタートします。
- 何らかしらの手段を用いて、サーバに侵入している。
- 一般のユーザ権限を持っている。
- 設定の不備を利用して権限昇格したい。
権限昇格の方法は多岐にわたりますが、今回は以下の流れで行っていきます。
- ユーザがrootユーザとして使用できるプログラムを列挙
- 列挙したプログラムを利用してroot権限への昇格を狙う。
2番目の部分では、GTFOBinsというサイトを参照した、権限昇格の具体的なやり方を紹介します。
検証では、TryHackMeで提供されているLinux PrivEscの仮想マシンを利用しています。
このコンテンツは無料で出来るので、もし興味があれば攻略してみてください。
サイトのURL:Linux PrivEscのコンテンツサイト
「sudo -l」を使ったユーザーに許可されているプログラムの確認
「sudo -l」コマンドを使用して、自身が利用できるプログラムを確認します。
rootユーザとしてパスワードなしで実行できるプログラムが複数あることを確認できます。
GTFOBinsを使った権限昇格の実践
「GTOBins」にアクセスして、権限昇格に利用できるプログラムを調査しましょう。
GTFOBinsは、誤った設定のシステムでローカルなセキュリティ制限を回避するために使用できるUnixアプリケーションのリストです。
このリストを利用することで、特権昇格・ファイルの転送・リバースシェルの起動などの作業が容易にできる場合があります。
apache2以外のプログラムがこのリストに掲載されており、GTFOBinsを使用して権限昇格できそうなことが分かりました。
すべてを紹介するのは大変なので、今回は
- find
- vim
- ftp
の3つの場合の権限昇格の仕方を解説します。
まずはvimを利用して、rootユーザのシェルを生成(権限昇格)できるかどうか確認してみましょう。
GTFOBinsのサイトで、vimを検索します。
内容を確認すると権限を昇格できるコマンドが3つありますが、一番上のものを試してみたいと思います。
赤枠で囲んだコマンドをそのまま入力した結果、rootのシェルを取得できていることが確認できます。
残り2つのプログラムも同じやり方で権限昇格可能です。
参考までに実行したコマンドを掲載しておきます。
findの場合:
ftpの場合:
ftpも上記方法でroot権限で実行できます。
まとめ
今回は、GTFOBinsを利用してLinuxで権限昇格を行う方法について解説しました。
- 「sudo -l」コマンドで、root権限でユーザが実行可能なプログラムを確認する。
- GTFOBinsを利用して、権限昇格のため実行するコマンドを調査する。
- 権限昇格できたかどうかを確認する。
GTFOBinsにはSudo以外にもSUIDやCapabilitiesなど他にも様々な項目があるよ。
機会があれば紹介していきたいね。
以上、ぎんたでした。
サイバーセキュリティを学ぶ上で必要な攻撃と解析に関する他の記事は、以下のリンクで確認できます。
学習に関しましては、以下のセキュリティの勉強法、おすすめの学習本・動画の記事が多くの方に読まれています。
資格の記事については以下の記事がおすすめです。
ITエンジニアへの転職については以下の記事がおすすめです。
その他学習・転職関連に関しましては、以下の記事もあわせて読まれています。
ぜひご覧ください!