從影子檔案取得 Linux 哈希值

從影子檔案取得 Linux 哈希值

我有一台 Ubuntu 12.04 VirtualBox 機器,幾天前我更改了密碼。現在,當我再次使用該機器時,我忘記了密碼並且無法獲得 root 存取權限。
我嘗試從影子文件中獲取哈希值以與john 一起使用,但如果沒有root 訪問權限,我無法讀取,甚至嘗試與Metasploit 進行會話,但找不到任何獲取Linux 哈希值的選項,而且我也無法取得root 權限使用 Metasploit,也無法離線存取磁碟作為其 VDI 映像。

也嘗試過,但無法將 john 下載到 Ubuntu,因為我apt-get也無法使用,機器包含一些重要資料。
那麼,Metasploit 中是否有任何方法可以取得 root 權限或使用某些工具(例如 Windows 上的 samdump2)透過瀏覽器下載並從即時系統中手動取得雜湊值,或者可能進行一些利用?

答案1

首先要解決一個常見的誤解:只要您能夠物理存取(真實或虛擬)機器,就沒有辦法(除了加密)阻止您存取資料。

現在介紹程序(更多詳細資訊請參見如何重置遺失的管理密碼? 在 AskUbuntu.com 上)

使用恢復

  1. 當您的虛擬機啟動時,Left shift在啟動畫面後按一下即可訪問引導選單, 選擇進階選項...,然後選擇包含的任何行恢復模式
  2. 一段時間後,您將看到另一個選單,您可以使用箭頭鍵選擇該行, 按enter
  3. 製作掛載的/分區讀/寫(代替只讀

    mount -rw -o remount /
    
  4. 現在您已準備好更改「遺失」使用者的密碼

    passwd youruser

    系統會提示您輸入新密碼(您不會收到任何回饋,看起來您的按鍵無法識別),確認新密碼後,您可以重新啟動機器並準備飛行。

如果上述過程失敗(無論出於何種原因),您可以採取路線#2:

使用 Live CD(圖像)-“chroot 方式”

  1. 將 Live CD 的 ISO 映像插入虛擬 CD 驅動器,從中啟動,選擇嘗試Ubuntu從選單中,等待桌面準備就緒
  2. 打開終端機視窗
    • CTRL+ ALT+T在真機或 Virtualbox VM 上
    • CTRL+ ALT+ spaceT在 VMWare 虛擬機器中
  3. 用於sudo fdisk -l查看所有可用分割區,確定哪個分割區包含您的/系統(可能類似於dev/sda1
  4. 將該分割區安裝到某個可用路徑(通常/mnt

    sudo mount /dev/sda1 /mnt
    
  5. 我們需要訪問幾條路徑

    for d in dev sys run proc; do sudo mount --bind /$d /mnt/$d; done
    
  6. 現在啟動新環境 - 您現在將能夠在原始系統上使用 root 權限進行操作。

    sudo chroot /mnt
    
  7. 現在您已準備好更改「遺失」使用者的密碼

    passwd youruser

使用客人(如果主機是Linux或OSX)

  1. 安裝libguestfs-tools軟體包,或您的發行版(主機上的發行版)的名稱。如果您的發行版沒有此軟體包,從上游下載

  2. 在主機上掛載虛擬機器的根檔案系統。根據安裝需要調整路徑。

    mkdir ~/mnt
    guestmount -a /path/to/vm-image.vdi -m /dev/sda1 ~/mnt
    

    由於您使用的是 VirtualBox,因此您可能需要export LIBGUESTFS_BACKEND_SETTINGS=force_tcg先跑

  3. 產生新的密碼哈希為您選擇的密碼。

    mkpasswd -m sha-512
    
  4. 編輯~/mnt/etc/shadow以將 root 使用者的密碼雜湊更改為由 產生的密碼雜湊mkpasswd

  5. 卸載虛擬機器的檔案系統。現在您可以啟動虛擬機器並使用新密碼以 root 身分登入。

    fusermount -u ~/mnt
    rmdir ~/mnt
    

答案2

您可以在虛擬機器中建立新的虛擬機器並新增第二個硬碟,即 Ubuntu 伺服器的硬碟(vmdk 檔案)。

您在此虛擬機器上啟動並存取伺服器的 /etc/shadow。

相關內容