仮想マシンがありますが、何らかの方法でハイパーバイザーにアクセスできないとしましょう。さらに、LUKSまたは他のパラメータを使用してパスワードで保護された起動を設定するなど、システムパラメータを変更することはできません。ただし、必要なツールは何でもインストールでき、完全なrootアクセス権を持つことができます。 ddを使用してデバイスにゼロまたはランダムな値を書き込むと、最終的に失敗し、システムを空にしないようになります。この問題を解決する方法に関する提案はありますか?システムを再起動すると、起動時にいくつかのスクリプトを実行できますか?
答え1
基本的なアイデア
- RAMディスクの作成 - またはtmpfs
- RAMディスクに静的に接続されたビジボックスを取り付けます。
- ディスクや/dev/nullなどのRAMディスクに開発ノードを作成します。
pivot_root
RAMディスクに。exec
ビジーボックスシェル。kill
次のステップを妨げる他のすべてがマシンで実行されています。 RAMディスクにSSHサーバーをインストールしたり、busybox nc -l -l -p1234 -e busybox sh
代替アクセスを提供する同様のデバイスをインストールしたりすることもできます。- 「物理」ディスクをマウント解除します。
dd
「本物の」ディスクを消去するには、busyboxを使用してください。
busyboxラインは「ターミナル」を提供せず、シェルだけを提供するので、多くのものが奇妙であることに注意してください。接続に慣れれば、さらにtelnet
奇妙になります。特に、各改行の前にキャリッジリターンが表示されるため、入力はpwd
失敗しますが、後でスペースを追加すると機能します。nc
またはbusybox nc
クライアントとして使用することをお勧めします。
質問
実際にinitを殺して逃げることはできません。ディスクから起動したコンテンツをシャットダウンしてディスクをマウント解除することも、そうでない場合もあります。
私は2つのオプションがあると思います。
- 起動スクリプトを変更してトンネルを設定するか、ディスクを消去します。一部のディスク削除ツールキットには、以降のタスクを実行するためにカーネルモジュールと組み合わせることができるバージョンがあります。
- ディスクをマウント解除せずに削除してみてください。これを行うには、次の点を確認してください
poweroff -fn
。