Linuxディストリビューションを一時的に中断するための元に戻す方法と、再起動せずに復元できるかどうか疑問に思います。
私が見つけた最新の宝石は次のとおりです。
sudo mount -o remount,nosymfollow /
/usr/sbin/mount
このコマンドを実行した後、または実行することはできません/usr/bin/bash
。システムは引き続き実行されますが、新しいプログラムを開始することはできません。再起動もできず、SysRQ+SUBを呼び出しました。 bashセッションは開いていますが、使用方法がわかりませんsymfollow
。
他のさまざまなマウントオプションもシステムに大きなダメージを与える可能性があります。nosuid
、、、nodev
はnoexec
特定のディレクトリに適用されるとシステムを効果的に停止します。
答え1
高度な概念のように。 「大混乱」を引き起こす可能性のあるほとんどのことは、名前空間に限定されます。したがって、すべてを壊した後に修正したい場合は、好奇心またはテスト目的で実行できます。
また、あなたの質問に記載されている内容は実際にコマンドラインを破るだけです。カーネルと直接対話すると予想される実行中のプロセス(libcに依存するプロセスも含む)は、ファイルシステム全体の損失の影響を受けません。
したがって、バックドアを復元するには、再インストールできる内容をCで直接作成できます。重要なのは、APIを使用することです。mount()
コマンドではなくmount
。実行中のプロセスは、タスクを完了するためにディレクトリツリーに依存しません。
もう一つの面白いことは、ネットワークを台無しにすることです。私は実際にDockerコンテナを使用して意図的にこれを行います。カオスモンキー。
2つの有用な攻撃ポイントがあります。
- 続けて書き直してください
/etc/resolv.conf
。一時的に取り外して交換できます。これにより、多くのネットワーク操作が失敗します。 - インターフェイスを別のネットワーク名前空間に移動します(例:このように)。 認めます。これにより、ソケットを開くときに何が起こるかを100%確信できなくなります。。その後、必要に応じてそれを復元してIPアドレスを変更できます。