保護(hù)好你的JENKINS實例席纽,別等著黑客來提醒你D笮(價值5000$的SNAPCHAT漏洞)

在levelUp上發(fā)表完“Doing Recon Like a Boss”和更新了一篇Hackerone上同樣主題的帖子后,我決定開始挖一些公開項目漏洞润梯,看看這種方法是否仍然適用于公開項目过牙。作為其中的一部分,我決定看看SlackSnapchat的漏洞賞金項目纺铭,并按照演講中描述的那樣準(zhǔn)確地完成偵察任務(wù)寇钉。

Step #1 –子域名爆破

子域收集通常在大型漏洞賞金項目中是一個好的開頭,但不幸的是我發(fā)現(xiàn)的子域并不是很有趣舶赔,所以我決定找到更“有趣”的東西扫倡。跳到第二階段。

Step #2 – Amazon網(wǎng)絡(luò)服務(wù)(AWS

Amazon一直都是一個不錯的起點竟纳,但了解到的是Snapchat很大程度上依賴于Google撵溃,而且他們在Hackerone漏洞賞金項目中已經(jīng)聲明了他們的APP是托管在Google上的疚鲤。那么我們不要繼續(xù)在s3 buckets上浪費(fèi)時間了,看看還有什么吧缘挑!

Step #3 ?– HackerOneSnapchat的披露報告

作為偵察任務(wù)的一部分集歇,我通常喜歡尋找已知或披露的漏洞。我快速瀏覽了一下他們的Hacktivity并發(fā)現(xiàn)如下內(nèi)容:

– render.bitstrips.com

– blog.snapchat.com

– accounts.snapchat.com

– fastly.sc-cdn.net

– sc-corp.net(感謝Shubs

“sc-cdn.net”和“sc-corp.net”都引起了我的注意语淘。我的第一反應(yīng)就是子域名爆破诲宇,但這是在自欺欺人。這些是corp / cdn域名亏娜,而且很有可能大多數(shù)這些有趣的子域名都有特定的模式』牢眩現(xiàn)在的問題是我該如何發(fā)現(xiàn)他們蹬挺?

Step #4: Censys / Shodan

在Censys.io上查找證書一般是個很好的方式维贺。通常我在censys上使用類似于這樣的查詢條件:

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:domain.com

在通過暴力破解不能找到有趣的子域名情況下,再用這種方法就足夠了巴帮。通過這些結(jié)果溯泣,我發(fā)現(xiàn)了一個子域名:REDACTED-jenkins-Environment.sc-corp.net,該域名要求用戶登錄才能查看具體內(nèi)容榕茧。這個時候垃沦,我想知道是否存在生產(chǎn)環(huán)境∮醚海肯定有很多肢簿,讓我們找一下吧。為了加速我的進(jìn)程蜻拨,我用了能查找以下不同REDACTED-jenkins-$env.sc-corp.net序列列表的腳本:

“dev, alpha, stage, prod, beta, local,test”池充。正如我所期望的那樣,其中一些結(jié)果返回了302響應(yīng)碼缎讼,這暗示他們可能需要登錄收夸。

Step #5:從這里我能干什么呢?

我最初的想法是很明顯地嘗試登錄這個產(chǎn)品實例血崭,但這并沒有成功(感謝preben_ve)卧惜。因此,讓我們下移列表夹纫,并在其他實例上嘗試相同的方法咽瓷。這就是所有樂趣開始的地方。算我幸運(yùn)舰讹,我發(fā)現(xiàn)的其中一個實例允許我使用gmail帳戶登錄到Jenkins實例∶┙現(xiàn)在,我已經(jīng)通過了它們的Jenkins實例身份驗證跺涤,我認(rèn)為它可能只給了最小的權(quán)限允許我做一些事情,更不用說允許我訪問“Script Console(腳本控制臺)”了寸潦。這時候瑟慈,我運(yùn)行了一個允許我從這臺服務(wù)器讀取一份文件的腳本,然后立刻停止所有測試并將細(xì)節(jié)提交給了Snapchat團(tuán)隊胀蛮。沒有必要執(zhí)行其他腳本來證明影響,因為我已經(jīng)可以讀取系統(tǒng)上的任意文件了糯钙。為了證明RCE(遠(yuǎn)程代碼執(zhí)行)粪狼,我在報告中包含了一份允許執(zhí)行命令的腳本,并要求他們自己冒險進(jìn)行測試任岸。我們晚一點兒討論這些腳本再榄。

Step #6:利用Jenkins漏洞

我寫這篇帖子不只是為了討論我提交給Snapchat的報告,因為其實大多數(shù)信息能通過我在HackerOne上的限制公開披露并做一些簡單的偵察猜到享潜。我寫這篇帖子的目的是深入探討利用Jenkins的漏洞困鸥,并討論它是否真的值2萬美元。為了實現(xiàn)這個目的剑按,我用自己的Jenkins實例來演示不同的攻擊場景(截圖與我提交給Snapchat的報告無關(guān)):

Example #1:已知漏洞(只是為了突出一些)

CVE-2016-9299– Jenkins Java 反序列化遠(yuǎn)程代碼執(zhí)行漏洞

CVE-2015-8103– Jenkins CLI – RMI Java 反序列化(Exploit)

Example #2:訪問構(gòu)建信息:

通常有權(quán)訪問Jenkins的構(gòu)建信息則說民可能會讓你訪問憑據(jù)疾就,api_keys / secrets這里是源碼:

Example #3:插件

Jenkins

允許你安裝不同的插件,比如Github OAuth艺蝴,你可以允許用戶使用你的組織進(jìn)行登錄猬腰,這可能泄露你的Github令牌:

使用Github API可以訪問更多數(shù)據(jù)。比如:https://api.github.com/orgs/ORG_NAME/repos?access_token=XXXXX

Example #4: Groovy腳本

正如我之前提到的猜敢,腳本控制臺允許你使用一行代碼來讀取文件:

通過以下代碼你也能在這臺服務(wù)器上執(zhí)行一條命令:

def sout = new StringBuilder(), serr = new StringBuilder()

def proc = 'ls /etc/'.execute()

proc.consumeProcessOutput(sout, serr)

proc.waitForOrKill(1000)

println "out> $sout err> $serr"

關(guān)鍵點:

1. Jenkins允許你有不同的用戶權(quán)限姑荷。這意味著你得通過Jenkins實例登錄認(rèn)證,它不保證你可以執(zhí)行遠(yuǎn)程代碼缩擂。

2.如果需要通過Github或Google OAuth認(rèn)證鼠冕,不要被嚇到。

3.你的訪問權(quán)限可能有限(沒有腳本撇叁,構(gòu)建信息等)供鸠,但是你可以訪問“People”列表中的用戶。這也許能讓你通過暴力破解的方式獲取登錄憑證(我沒有那么極端)陨闹。

4.通常Jenkins被用于部署楞捂,所以查一下IP,主機(jī)名等趋厉。如果你拿下了Jenkins而且想進(jìn)一步測試(在漏洞賞金項目中盡量避免寨闹,完全沒必要而且會違反大多數(shù)項目規(guī)則),值得注意的是Jenkins服務(wù)器最有可能有權(quán)限訪問生產(chǎn)環(huán)境或內(nèi)網(wǎng)環(huán)境君账。在運(yùn)行的服務(wù)器上找找私鑰和主機(jī)繁堡。

5.不要在你的報告中使用“公開可訪問的Jenkins”,除非你可以利用上面的一個或多個例子。

6. Snapchat立刻移除了這個實例并獎勵了我椭蹄。他們也非常友善地同意我寫這篇關(guān)于這個漏洞的帖子闻牡。

感謝閱讀,挖洞愉快绳矩!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罩润,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子翼馆,更是在濱河造成了極大的恐慌割以,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件应媚,死亡現(xiàn)場離奇詭異严沥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)中姜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進(jìn)店門消玄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扎筒,你說我怎么就攤上這事莱找〕昴罚” “怎么了嗜桌?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辞色。 經(jīng)常有香客問我骨宠,道長,這世上最難降的妖魔是什么相满? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任层亿,我火速辦了婚禮,結(jié)果婚禮上立美,老公的妹妹穿的比我還像新娘匿又。我一直安慰自己,他們只是感情好建蹄,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布碌更。 她就那樣靜靜地躺著,像睡著了一般洞慎。 火紅的嫁衣襯著肌膚如雪痛单。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天劲腿,我揣著相機(jī)與錄音旭绒,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛挥吵,可吹牛的內(nèi)容都是我干的重父。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼忽匈,長吁一口氣:“原來是場噩夢啊……” “哼坪郭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脉幢,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤歪沃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嫌松,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沪曙,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年萎羔,在試婚紗的時候發(fā)現(xiàn)自己被綠了液走。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡贾陷,死狀恐怖缘眶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情髓废,我是刑警寧澤巷懈,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站慌洪,受9級特大地震影響顶燕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冈爹,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一涌攻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧频伤,春花似錦恳谎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瞬哼,卻和暖如春婚肆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坐慰。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工较性, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留用僧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓赞咙,卻偏偏與公主長得像责循,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子攀操,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348