Linux

僅通過 SSH 訪問自毀 Linux VM

  • March 19, 2020

讓我們假設我有一個虛擬機並且無法以任何方式訪問管理程序。此外,我無法更改任何系統參數,例如使用 LUKS 設置密碼保護啟動或其他任何東西。但是,我可以安裝任何我想要的工具並擁有完全的 root 訪問權限。使用 dd 在設備上寫入零或隨機數最終會失敗,並且不會讓系統為空。你對如何解決這個問題有什麼建議嗎?當我重新啟動系統時,也許我可以在啟動時執行一些腳本?

基本理念

  1. 製作一個 ram 磁碟 - 或 tmpfs
  2. 在 ram 磁碟上安裝busybox,靜態連結。
  3. 在 ram 磁碟上為您的磁碟和 /dev/null 等創建開發節點。
  4. pivot_root到記憶體盤。
  5. exec一個busybox外殼。
  6. kill機器上執行的任何其他阻止下一步的東西。您可能還需要在 ram 磁碟上放置一個 ssh 伺服器,或者使用類似的東西busybox nc -l -l -p1234 -e busybox sh為您提供備用訪問權限。
  7. 解除安裝“真實”磁碟。
  8. 使用busyboxdd擦除“真實”磁碟。

請注意,busybox 行並沒有給你一個“終端”,只是一個外殼,所以很多東西都很奇怪。如果你telnet用來連接它,它會變得更奇怪。具體來說,您會在每次換行之前獲得輸入,因此鍵入pwd失敗,但之後添加空格是可行的。我建議使用ncorbusybox nc作為您的客戶。

問題

你實際上不能殺死 init 並逃脫它。您可能會也可能無法通過殺死從該磁碟啟動的東西來解除安裝磁碟。

我認為有兩種選擇。

  1. 更改引導腳本以設置隧道,或為您執行磁碟擦除。有一些磁碟擦除工具包可能有一個版本,可以與核心的模組結合起來做以後的事情。
  2. 嘗試擦除磁碟而不解除安裝它們。如果您這樣做,請確保您poweroff -fn.

引用自:https://unix.stackexchange.com/questions/573721