保护好你的JENKINS实例,别等着黑客来提醒你!(价值5000$的SNAPCHAT漏洞)

在levelUp上发表完“Doing Recon Like a Boss”和更新了一篇Hackerone上同样主题的帖子后,我决定开始挖一些公开项目漏洞,看看这种方法是否仍然适用于公开项目。作为其中的一部分,我决定看看SlackSnapchat的漏洞赏金项目,并按照演讲中描述的那样准确地完成侦察任务。

Step #1 –子域名爆破

子域收集通常在大型漏洞赏金项目中是一个好的开头,但不幸的是我发现的子域并不是很有趣,所以我决定找到更“有趣”的东西。跳到第二阶段。

Step #2 – Amazon网络服务(AWS

Amazon一直都是一个不错的起点,但了解到的是Snapchat很大程度上依赖于Google,而且他们在Hackerone漏洞赏金项目中已经声明了他们的APP是托管在Google上的。那么我们不要继续在s3 buckets上浪费时间了,看看还有什么吧!

Step #3  – HackerOneSnapchat的披露报告

作为侦察任务的一部分,我通常喜欢寻找已知或披露的漏洞。我快速浏览了一下他们的Hacktivity并发现如下内容:

– render.bitstrips.com

– blog.snapchat.com

– accounts.snapchat.com

– fastly.sc-cdn.net

– sc-corp.net(感谢Shubs

“sc-cdn.net”和“sc-corp.net”都引起了我的注意。我的第一反应就是子域名爆破,但这是在自欺欺人。这些是corp / cdn域名,而且很有可能大多数这些有趣的子域名都有特定的模式。现在的问题是我该如何发现他们?

Step #4: Censys / Shodan

在Censys.io上查找证书一般是个很好的方式。通常我在censys上使用类似于这样的查询条件:

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

在通过暴力破解不能找到有趣的子域名情况下,再用这种方法就足够了。通过这些结果,我发现了一个子域名:REDACTED-jenkins-Environment.sc-corp.net,该域名要求用户登录才能查看具体内容。这个时候,我想知道是否存在生产环境。肯定有很多,让我们找一下吧。为了加速我的进程,我用了能查找以下不同REDACTED-jenkins-$env.sc-corp.net序列列表的脚本:

“dev, alpha, stage, prod, beta, local,test”。正如我所期望的那样,其中一些结果返回了302响应码,这暗示他们可能需要登录。

Step #5:从这里我能干什么呢?

我最初的想法是很明显地尝试登录这个产品实例,但这并没有成功(感谢preben_ve)。因此,让我们下移列表,并在其他实例上尝试相同的方法。这就是所有乐趣开始的地方。算我幸运,我发现的其中一个实例允许我使用gmail帐户登录到Jenkins实例。现在,我已经通过了它们的Jenkins实例身份验证,我认为它可能只给了最小的权限允许我做一些事情,更不用说允许我访问“Script Console(脚本控制台)”了。这时候,我运行了一个允许我从这台服务器读取一份文件的脚本,然后立刻停止所有测试并将细节提交给了Snapchat团队。没有必要执行其他脚本来证明影响,因为我已经可以读取系统上的任意文件了。为了证明RCE(远程代码执行),我在报告中包含了一份允许执行命令的脚本,并要求他们自己冒险进行测试。我们晚一点儿讨论这些脚本。

Step #6:利用Jenkins漏洞

我写这篇帖子不只是为了讨论我提交给Snapchat的报告,因为其实大多数信息能通过我在HackerOne上的限制公开披露并做一些简单的侦察猜到。我写这篇帖子的目的是深入探讨利用Jenkins的漏洞,并讨论它是否真的值2万美元。为了实现这个目的,我用自己的Jenkins实例来演示不同的攻击场景(截图与我提交给Snapchat的报告无关):

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

CVE-2016-9299– Jenkins Java 反序列化远程代码执行漏洞

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

Example #2:访问构建信息:

通常有权访问Jenkins的构建信息则说民可能会让你访问凭据,api_keys / secrets这里是源码:

Example #3:插件

Jenkins

允许你安装不同的插件,比如Github OAuth,你可以允许用户使用你的组织进行登录,这可能泄露你的Github令牌:

使用Github API可以访问更多数据。比如:https://api.github.com/orgs/ORG_NAME/repos?access_token=XXXXX

Example #4: Groovy脚本

正如我之前提到的,脚本控制台允许你使用一行代码来读取文件:

通过以下代码你也能在这台服务器上执行一条命令:

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

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

proc.consumeProcessOutput(sout, serr)

proc.waitForOrKill(1000)

println "out> $sout err> $serr"

关键点:

1. Jenkins允许你有不同的用户权限。这意味着你得通过Jenkins实例登录认证,它不保证你可以执行远程代码。

2.如果需要通过Github或Google OAuth认证,不要被吓到。

3.你的访问权限可能有限(没有脚本,构建信息等),但是你可以访问“People”列表中的用户。这也许能让你通过暴力破解的方式获取登录凭证(我没有那么极端)。

4.通常Jenkins被用于部署,所以查一下IP,主机名等。如果你拿下了Jenkins而且想进一步测试(在漏洞赏金项目中尽量避免,完全没必要而且会违反大多数项目规则),值得注意的是Jenkins服务器最有可能有权限访问生产环境或内网环境。在运行的服务器上找找私钥和主机。

5.不要在你的报告中使用“公开可访问的Jenkins”,除非你可以利用上面的一个或多个例子。

6. Snapchat立刻移除了这个实例并奖励了我。他们也非常友善地同意我写这篇关于这个漏洞的帖子。

感谢阅读,挖洞愉快!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343