【Vulnhub靶機滲透測試】之DC-4(teehee命令提權(在passwd或crontab中追加內容))

Key Chen發表於2020-12-28

Vulnhub靶機滲透測試之DC-4


  • 環境搭建
  1. 靶機映象下載地址:https://www.vulnhub.com/entry/dc-4,313/

  2. 需要將靶機和kali攻擊機放在同一個區域網裡;

  3. kali的IP地址:192.168.40.142。

1. 資訊收集

  1. 使用nmap掃描該網段存活的主機IP

在這裡插入圖片描述

可得知目標靶機IP為:192.168.40.144

  1. 使用nmap掃描靶機開放了哪些埠

在這裡插入圖片描述

可得知靶機開放了22、80埠;

  1. web指紋識別

在這裡插入圖片描述

  1. 訪問目標靶機的80埠

在這裡插入圖片描述

是一個Admin的登入介面,考慮bp抓包爆破一下密碼。

2. 漏洞利用

  1. 由於它是一個admin登入揭介面,使用者名稱就嘗試使用admin,密碼字典選擇kali的/usr/share/john目錄下的password.lst字典:

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

爆破結果 :根據狀態碼和長度判定密碼為happy

在這裡插入圖片描述

測試登入:成功登入

在這裡插入圖片描述

發現它似乎可以執行一些命令:

在這裡插入圖片描述

抓包分析:

在這裡插入圖片描述

發現它執行了 ls+l 的命令,這裡空格用+代替了,嘗試替換為其他命令:

在這裡插入圖片描述

成功執行了 whoami 命令,再嘗試檢視 /etc/passwd 檔案:

在這裡插入圖片描述

發現了幾個使用者:charles、jim、sam,分別檢視一下這裡幾個使用者目錄下有什麼值得利用的檔案:

在這裡插入圖片描述

發現使用者jim的backups目錄裡有一個檔案:old-passwords.bak(關於密碼的),檢視它:

在這裡插入圖片描述

我們將這些密碼儲存為檔案,現在我們有三個使用者名稱和一個密碼字典而且對方開放了22埠,使用hydra嘗試爆破:

hydra -L user.dic -P old-password.bak ssh://192.168.40.144 -vV -o hydra.ssh	

爆破結果:爆破出使用者jim,密碼為:jibril04

在這裡插入圖片描述

  1. ssh登入jim使用者

在這裡插入圖片描述

成功登入,檢視jim使用者有什麼sudo命令可供使用:

在這裡插入圖片描述

結果:失敗!

只能找其他切入點,我們檢視一下mbox檔案:

在這裡插入圖片描述

似乎是一封root給jim傳送的郵件,此時可以檢視var目錄下的mail:

在這裡插入圖片描述

發現jim檔案,檢視內容:

在這裡插入圖片描述

是使用者charles將自己的密碼傳送給了jim,密碼為:^xHhA&hvim0y

  1. ssh登入charles使用者

在這裡插入圖片描述

發現該使用者有一個root許可權的命令:teehee,檢視該命令的使用方法:

在這裡插入圖片描述

有一個引數 -a,對指定檔案進行追加,不覆蓋,測試使用:

在這裡插入圖片描述

新建一個test檔案,然後使用teehee命令追加內容,成功追加!

3. 提權

思考:teehee命令可不可以追加內容到任意檔案裡?

  1. 嘗試在/etc/passwd檔案下追加內容,該檔案的結構:
使用者名稱:是否有密碼保護(x即有保護):uid:gid:全稱:home目錄:/bin/bash

我們追加一個名為hacker的使用者,將它的uid和gid也設定為root的0:

在這裡插入圖片描述
成功追加!

  1. 切換使用者

在這裡插入圖片描述

提權成功,發現flag檔案!

  1. 寫入定時任務檔案

可以在/etc/crontab下寫入定時計劃,提升到root許可權。

crontab介紹

Linux crontab是用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。

時間格式如下:

f1 f2 f3 f4 f5 program
其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程式。
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其餘類推;
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推;
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推;
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期幾 (0 - 7) (星期天 為0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一個月中的第幾天 (1 - 31)
|    +-------------------- 小時 (0 - 23)
+------------------------- 分鐘 (0 - 59)

所以我們可以追加內容為:echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab,表示在/etc/crontab下寫入定時計劃,一分鐘後由root使用者給 /bin/bash 命令加許可權(chmod 4777即開啟suid和rwx許可權):

在這裡插入圖片描述

相關文章