特権の昇格を実現しようとしています。 Linuxに仮想マシンがあり、rbashターミナルから脱出しました。これで「通常の」ユーザー端末ができました。ユーザーがsudoersファイルにありません。
Pingコマンドを使用して特権昇格を実行することは可能ですか?
SUIDビットは/bin/ping
で許可されていますが、そこから先に進む方法がわかりません。誰か助けてもらえますか?
SUIDバイナリは、特権の昇格のために本質的に悪用されることはありません。問題は、ソフトウェアに脆弱性がある(たとえば、多くのCTFに、特権の昇格に悪用される可能性のあるバッファオーバーフローの脆弱性を含むSUIDバイナリが含まれている)か、管理者がSUIDビットを設定してはならないバイナリに設定した場合です。後者の極端な例は、オーナーがvim
を使用してroot
をSUIDに設定し、ユーザーがvimセッション(:![Shell command]
)内でrootとしてbashコマンドを実行できるようにすることです。
これに関するクイックリファレンスチェックの結果、 LinuxのPrivescに関するこの記事 に進みました。 3. Exploiting SUID Executables
のセクションが役に立ちます。
ping
ユーティリティでは、バイナリがルートによって所有され、SUIDビットが設定されている必要があります。これは、バイナリのみがルートで実行できる "rawソケット" を使用してICMPリクエストを送受信するためです。脆弱なバージョンのping
(@Arminiusがバージョンを要求したのはこのためだと思います)またはコード/コマンドを挿入する方法を見つける必要があります。個人的には、特権の昇格のためにペンテストやCTFでping
を利用することはできませんでしたが、それが確かに不可能であるというわけではありません:)
有名な同様の例は、--interactive
モードをサポートしていた古いバージョンのnmap
です。 SUIDビットが設定されている場合( デフォルトのsynスキャン-sS
"require raw-packetprivileges"などの多くのスキャン)、インタラクティブモードからルートシェルにドロップできます。詳細については、上記のprivescリンクをご覧ください。
CTFチャレンジを検討している場合、私は通常、デフォルト以外の明らかなSUIDプログラム(例:/opt/myprog/test.bin
)を探し始め、次に/bin/ping
のような「通常の」suidプログラムに戻ります。他のチェックが無益な後の最後の手段。