Linux、busybox、およびいくつかのカスタムサービスを実行している組み込みデバイスを研究しています。特権のないシェルアクセスを取得する方法を見つけ、特権を昇格させることができるかどうかを確認しようとしました。
カーネルは古く、脆弱であるように見えますが、最大の障害は、ファイルシステム全体が読み取り専用(/tmp
および/dev/shm
を含む)であること、つまり644/755であり、すべてがルートによって所有されていることです。
シェルアクセスのみを持ち、読み取り専用のファイルシステムでカスタムネイティブコードを実行する方法にはどのようなものがありますか?
私が試したいくつかの可能な道:
/lib/ld-linux.so.2
を実行します(これを行う方法が見つかりませんでした)/lib/ld-linux.so.2
または/proc/self/environ
を実行します(機能しません。ld-linux
では、ファイルがmmap
- ableである必要があります)dd of=/proc/self/mem
を使用してdd
のスタックを破壊します(カーネルは2.6.39より前で、/proc/self/mem
への書き込みは無効になっています)見落としましたか?
コマンドラインまたは環境の引数の処理に脆弱性があるプログラムを見つける(これまでのところ何もない)
これはおそらく最も有望な道です。
私の場合、カスタムプロプライエタリユーティリティの文書化されていないパラメータの処理で、バッファオーバーフローを見つけることができました。