子域名劫持

子域名劫持即攻击者可以声称接管某站点的子域名

Tips

  1. 利用KnockPy等工具发现子域名,尤其注意这些子域名是否指向第三方服务,比如AWS, Github, Zendesk, Fastly等等,因为这些服务允许你注册自定义的URL
  2. 直接注册那些子域名指向的过期域名
  3. 对于无法接管的子域名,可以尝试通配符子域名
  4. 不要只限于子域名本身,网站引入的外部资源也可以尝试利用,如js。
  5. 耐心看文档非常重要

实例:Ubiquiti子域名劫持

assets.goubiquiti.com有一DNS条目指向了Amazon S3的文件存储但相应的bucket并不存在:

Goubiquiti Assets DNS

由于Amazon S3提供自定义域名服务,攻击者直接接管了 uwn-images.s3-website-us-west-1.amazonaws.com并部署了测试站点。

实例:Snapchat Fastly劫持

Fastly是一家CDN服务提供商,类似的还有Amazon’s CloudFront。
该漏洞发现者Ebrietas向Snapchat报告称由于他们的错误配置,http://fastly.sc-cdn.net有一条CNAME记录指向了一个不属于他们的
Fastly子域名,访问这个url会报错:

“Fastly error: unknown domain: XXXXX. Please
check that this domain has been added to a service.”

关于Fastly,如果你使用他们的共享通配符证书,他们会允许你注册一个自定义的子域名。

然而Ebrietas没有马上利用这个子域名来劫持,他先查阅了文档,发现域名遵循以下规则:EXAMPLE.global.ssl.fastly.net

另外,Ebrietas做了下面两件事来增加报告的完整性和说服力:

  1. fastly.sc-cdn.net确实是Snapchat指向Fastly的子域名,可是如何证明sc-cdn.net归属于Snapchat?因为从外表看真的很难说它属于哪个公司,于是Ebrietas通过censys.io查阅了它的SSL证书来验证。
  2. 劫持一开始并没有显示出效果,于是他搭建了一个服务器持续监听,最终收到了请求,证明该子域名确实在被使用。
root@localhost:~# cat /var/log/apache2/access.log | grep -v server-status | gre\
p snapchat -i
23.235.39.33 - - [02/Aug/2016:18:28:25 +0000] "GET /bq/story_blob?story_id=fRaYu\
tXlQBosonUmKavo1uA&t=2&mt=0 HTTP/1.1...
23.235.39.43 - - [02/Aug/2016:18:28:25 +0000] "GET /bq/story_blob?story_id=f3gHI\
7yhW-Q7TeACCzc2nKQ&t=2&mt=0 HTTP/1.1...
23.235.46.45 - - [03/Aug/2016:02:40:48 +0000] "GET /bq/story_blob?story_id=fKGG6\
u9zG4juOFT7-k0PNWw&t=2&mt=1&encoding...
23.235.46.23 - - [03/Aug/2016:02:40:49 +0000] "GET /bq/story_blob?story_id=fco3g\
XZkbBCyGc_Ym8UhK2g&t=2&mt=1&encoding...
43.249.75.20 - - [03/Aug/2016:12:39:03 +0000] "GET /discover/dsnaps?edition_id=4\
527366714425344&dsnap_id=56515658813...
43.249.75.24 - - [03/Aug/2016:12:39:03 +0000] "GET /bq/story_blob?story_id=ftzqL\
Qky4KJ_B6Jebus2Paw&t=2&mt=1&encoding...
43.249.75.22 - - [03/Aug/2016:12:39:03 +0000] "GET /bq/story_blob?story_id=fEXbJ\
2SDn3Os8m4aeXs-7Cg&t=2&mt=0 HTTP/1.1...
23.235.46.21 - - [03/Aug/2016:14:46:18 +0000] "GET /bq/story_blob?story_id=fu8jK\
J_5yF71_WEDi8eiMuQ&t=1&mt=1&encoding...
23.235.46.28 - - [03/Aug/2016:14:46:19 +0000] "GET /bq/story_blob?story_id=flWVB\
XvBXToy-vhsBdze11g&t=1&mt=1&encoding...
23.235.44.35 - - [04/Aug/2016:05:57:37 +0000] "GET /bq/story_blob?story_id=fuZO-\
2ouGdvbCSggKAWGTaw&t=0&mt=1&encoding...
23.235.44.46 - - [04/Aug/2016:05:57:37 +0000] "GET /bq/story_blob?story_id=fa3DT\
t_mL0MhekUS9ZXg49A&t=0&mt=1&encoding...
185.31.18.21 - - [04/Aug/2016:19:50:01 +0000] "GET /bq/story_blob?story_id=fDL27\
0uTcFhyzlRENPVPXnQ&t=0&mt=1&encoding...

这些请求虽然不带有任何tokens或cookies,但证明了用户有被提供恶意内容的风险。

实例:api.legalrobot.com

Legal Robot 被发现有一条CNAME记录将api.legalrobot.com指向Modulus.io,但是没有声明Modulus.io上页面的管理权


Modulus Application Not Found

根据Modulus的文档所说,“任何子域名都可以被指定”,显然这又是一个子域名劫持的例子,然而经过尝试,api.legalrobot.com并不能被声明,他继续尝试声明通配符子域名*.legalrobot.com,这一次成功了。

实例:Uber SendGrid邮件域名劫持

SendGrid是一个邮件云服务提供商,Uber是他们的客户之一。Uranium238团队发现了Uber的CNAME记录将 em.uber.com 指向SendGrid。

White-lable 是一种SendGrib用于向ISP展示其被授权代表用户(发件人)发送邮件的功能。授权的方式就是将发件人的域名指向SendGrid,这种代理模式有助于建立发件人的信誉。

基于这样的功能,SendGrid可以代表Uber发送邮件。查看Uber的MX记录也能发现, em.uber.com被指向mx.sendgrid.net。

Uranium238团队继续查阅SendGrid的文档,观察有没有可以利用的功能。SendGrid提供了一种入站解析Webhook,可以帮助公司解析接收到的邮件附件和内容,此功能需要两步配置:

  1. 将公司域名/子域名的MX记录指向mx.sendgrid.net
  2. 将域名和解析API设置页的URL相关联

第一步已经配置好了,第二步Uber没有声明em.uber.com和任何URL相关联,Uranium238团队替他们完成了,并测试了邮件接收功能。


SendGrid Inbound Parse Configuration using ngrok.io

Confirmation of sub domain takeover via parsed email

Reference

Web Hacking 101

Resources

HackerOne漏洞案例 | 子域名劫持漏洞的挖掘指南

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

推荐阅读更多精彩内容

  • 亲爱的,我消失了一段时间,因为疲倦、厌倦或者是什么倦了,可是,我依旧爱你。 我不去看微信,任那些红点支楞在那儿,任...
    游水的鱼儿阅读 230评论 0 0
  • 2017年4月29日 星期六 晴 【早起】4点30分。 【学习】 1.通读《易经》说卦传(第12遍中)。 【养生】...
    育心经典丽谦之家钟永平阅读 234评论 0 0
  • 人一定要保持干净,用松浦弥太郎的话来说,就是,如果这条原则被破坏,自信就会丧失。我在大学时就凭着年轻,不修边幅,整...
    啾啾fing阅读 129评论 0 0
  • 母·心安 静待花开时, 果熟根落繁茂枝。 母系儿女千里行, 儿孙岂容面忧之。 时已进, 待时出。 花开好果香满地,...
    m萌的原创小窝阅读 421评论 0 1
  • 【转载自:https://juejin.im/post/5c70b391e51d451646267db1】 自己平...
    我系哆啦阅读 3,170评论 0 7