FB招聘站
分类阅读
专栏
公开课
企业服务
用户服务
手机版
搜索
投稿
登录
注册
技术分享:渗透Facebook的思路与发现b09200752016-04-25金币奖励+4共648991人围观 ,发现 16 个不明物体WEB安全
Facebook-1-Billion-Users-in-1-Day.jpg.jpg
写在故事之前
身为一位渗透测试人员,比起 Client Side 的弱点我更喜欢 Server Side 的攻击,能够直接的控制服务器、获得权限操作 SHELL 才爽 <( ̄︶ ̄)>
当然一次完美的渗透任何形式的弱点都不可小觑,在实际渗透时偶尔还是需要些 Client Side 弱点组合可以更完美的控制服务器,但是在寻找弱点时我本身还是先偏向以可直接进入服务器的方式来去寻找风险高、能长驱直入的弱点。
随着 Facebook 在世界上越来越火红、用户量越来越多,一直以来都有想要尝试看看的想法,恰巧 Facebook 在 2012 年开始有了 Bug Bounty 奖金猎人的机制让我更跃跃欲试。
一般如由渗透的角度来说习惯性都会从收集数据、侦查开始,首先界定出目标在网络上的 “范围” 有多大,姑且可以评估一下从何处比较有机会下手。例如:
Google Hacking 到什么数据?
用了几个 B 段的 IP ? C 段的 IP ?
Whois? Reverse Whois?
用了什么域名? 内部使用的域名? 接着做子域名的猜测、扫描
公司平常爱用什么样技术、设备?
在 Github, Pastebin 上是否有泄漏什么信息?
…etc
当然 Bug Bounty 并不是让你无限制的攻击,将所搜集到的范围与 Bug Bounty 所允许的范围做交集后才是你真正可以去尝试的目标。
一般来说大公司在渗透中比较容易出现的问题点这里举几个例子来探讨
对多数大公司而言,”网络边界” 是比较难顾及、容易出现问题的一块,当公司规模越大,同时拥有数千、数万台机器在线,网管很难顾及到每台机器。在攻防里,防守要防的是一个面,但攻击只需 找个一个点就可以突破,所以防守方相对处于弱势,攻击者只要找到一台位于网络边界的机器入侵进去就可以开始在内网进行渗透了!
对于 “连网设备” 的安全意识相对薄弱,由于连网设备通常不会提供 SHELL 给管理员做进一步的操作,只能由设备本身所提供的接口设定,所以通常对于设备的防御都是从网络层来抵挡,但如遇到设备本身的 0-Day 或者是 1-Day 可能连被入侵了都不自觉。
人的安全,随着 “社工库” 的崛起,有时可以让一次渗透的流程变得异常简单,从公开数据找出公司员工列表,再从社工库找到可以登入 VPN 的员工密码就可以开始进行内网渗透,尤其当社工库数量越来越多 “量变成质变” 时只要关键人物的密码在社工库中可找到,那企业的安全性就全然突破:P
理所当然在寻找 Facebook 弱点时会以平常进行渗透的思路进行,在开始搜集数据时除了针对 Facebook 本身域名查询外也对注册信箱进行 Reverse Whois 意外发现了个奇妙的域名名称
tfbnw.net
TFBNW 似乎是 “TheFacebook Network”的缩写
再藉由公开资料发现存在下面这台这台服务器
vpn.tfbnw.net
哇! vpn.tfbnw.net 看起来是个 Juniper SSL VPN 的登入接口,不过版本满新的没有直接可利用的弱点,不过这也成为了进入后面故事的开端。
TFBNW 看似是 Facebook 内部用的域名,来扫扫 vpn.tfbnw.net 同网段看会有什么发现
Mail Server Outlook Web App
F5 BIGIP SSL VPN
CISCO ASA SSL VPN
Oracle E-Business
MobileIron MDM
从这几台机器大致可以判断这个网段对于 Facebook 来说应该是相对重要的网段,之后一切的故事就从这里开始。
弱点发现
在同网段中,发现一台特别的服务器
files.fb.com
1.jpg
files.fb.com 登入界面
从 LOGO 以及 Footer 判断应该是 Accellion 的 Secure File Transfer (以下简称 FTA)
FTA 为一款标榜安全文件传输的产品,可让用户在线分享、同步档案,并整合 AD, LDAP, Kerberos 等 Single Sign-on 机制,Enterprise 版本更支持 SSL VPN 服务。
首先看到 FTA 的第一件事是去网络上搜寻是否有公开的 Exploit 可以利用,Exploit 最近的是由 HD Moore 发现并发布在 Rapid7 的这篇 Advisory
Accellion File Transfer Appliance Vulnerabilities (CVE-2015-2856, CVE-2015-2857)
弱点中可直接从 “/tws/getStatus” 中泄漏的版本信息判断是否可利用,在发现 files.fb.com 时版本已从有漏洞的 0.18 升级至 0.20 了,不过就从 Advisory 中所透露的片段程序代码感觉 FTA 的撰写风格如果再继续挖掘可能还是会有问题存在的,所以这时的策略便开始往寻找 FTA 产品的 0-Day 前进!
不过从实际黑箱的方式其实找不出什么问题点只好想办法将方向转为白箱测试,透过各种方式拿到旧版的 FTA 原始码后终于可以开始研究了!
整个 FTA 产品大致架构:
网页端接口主要由 Perl 以及 PHP 构成
PHP 原始码皆经过 IonCube 加密
在背景跑了许多 Perl 的 Daemon
首先是解密 IonCude 的部分,许多设备为了防止自己的产品被检视所以会将原始码加密,不过好在 FTA 上的 IonCude 版本没到最新,可以使用现成的工具解密,不过由于 PHP 版本的问题,细节部份以及数值运算等可能要靠自己修复一下,不然有点难看…
经过简单的原始码审查后发现,好找的弱点应该都被 Rapid7 找走了 T^T
而需要认证才能触发的漏洞又不怎么好用,只好认真点往深层一点的地方挖掘!
经过几天的认真挖掘,最后总共发现了七个弱点,其中包含了
Cross-Site Scripting x 3
Pre-Auth SQL Injection leads to Remote Code Execution
Known-Secret-Key leads to Remote Code Execution
Local Privilege Escalation x 2
除了回报 Facebook 安全团队外,其余的弱点也制作成 Advisory 提交 Accellion 技术窗口,经过厂商修补提交 CERT/CC 后取得四个 CVE 编号:
CVE-2016-2350
CVE-2016-2351
CVE-2016-2352
CVE-2016-2353
详细的弱点细节会待 Full Disclosure Policy 后公布!
2.jpg
使用 Pre-Auth SQL Injection 写入 Webshell
在实际渗透中进去服务器后的第一件事情就是检视当前的环境是否对自己人善,为了要让自己可以在服务器上待的久就要尽可能的了解服务器上有何限制、纪录,避开可能会被发现的风险:P
Facebook 大致有以下限制:
防火墙无法连外, TCP, UDP, 53, 80, 443 皆无法
存在远程的 Syslog 服务器
开启 Auditd 记录
无法外连看起来有点麻烦,但是 ICMP Tunnel 看似是可行的,但这只是一个 Bug Bounty Program 其实不需要太麻烦就纯粹以 Webshell 操作即可。
似乎有点奇怪?
正当收集证据准备回报 Facebook 安全团队时,从网页日志中似乎看到一些奇怪的痕迹。
首先是在 “/var/opt/apache/php_error_log” 中看到一些奇怪的 PHP 错误讯息,从错误讯息来看似乎像是边改 Code 边执行所产生的错误?
3.jpg
PHP error log
跟随错误讯息的路径去看发现疑似前人留下的 Webshell 后门
4.jpg
Webshell on facebook server
其中几个档案的内容如下
sshpass
没错,就是那个 sshpass
bN3d10Aw.php
uploader.php
d.php
sclient_user_class_standard.inc
/dev/stdout92.168.54.13- - 17955 [Sat, 23 Jan 2016 19:04:10 +0000 | 1453575850] "GET/courier/custom_template/1000/bN3dl0Aw.php?c=./sshpass -p '********' ssh -v -oStrictHostKeyChecking=no soggycat@localhost 'cp/home/seos/courier/B3dKe9sQaa0L.log /home/seos/courier/B3dKe9sQaa0L.log.2; echo> /home/seos/courier/B3dKe9sQaa0L.log' 2>/dev/stdout HTTP/1.1" 200 2559...
cattmp_list3_2 | while read line; do cp /home/filex2/1000/$line files; done2>/dev/stdout
tar-czvf files.tar.gz files
打包档案
对内部网络结构进行探测
diga archibus.thefacebook.com
telnetarchibus.facebook.com 80
curlhttp://archibus.thefacebook.com/spaceview_facebook/locator/room.php
diga records.fb.com
telnetrecords.fb.com 80
telnetrecords.fb.com 443
wget-O- -q http://192.168.41.16
diga acme.facebook.com
./sshpass-p '********' ssh -v -o StrictHostKeyChecking=no soggycat@localhost 'for i in $(seq201 1 255); do for j in $(seq 0 1 255); do echo "192.168.$i.$j:`dig +shortptr $j.$i.168.192.in-addr.arpa`"; done; done' 2>/dev/stdout
...
使用 Shell Script 进行内网扫描但忘记把 STDERR 导掉XD
6.jpg
尝试对内部 LDAP 进行连接
sh:-c: line 0: syntax error near unexpected token `('
sh:-c: line 0: `ldapsearch -v -x -H ldaps://ldap.thefacebook.com -bCN=svc-accellion,OU=Service Accounts,DC=thefacebook,DC=com -w '********' -sbase (objectclass=*) 2>/dev/stdout'
尝试访问内部网络资源
( 看起来 Mail OWA 可以直接访问 …)
--20:38:09-- https://mail.thefacebook.com/
Resolvingmail.thefacebook.com... 192.168.52.37
Connectingto mail.thefacebook.com|192.168.52.37|:443... connected.
HTTPrequest sent, awaiting response... 302 Found
Location:https://mail.thefacebook.com/owa/ [following]
--20:38:10-- https://mail.thefacebook.com/owa/
Reusingexisting connection to mail.thefacebook.com:443.
HTTPrequest sent, awaiting response... 302 Moved Temporarily
Location:https://mail.thefacebook.com/owa/auth/logon.aspx?url=https://mail.thefacebook.com/owa/&reason=0[following]
--20:38:10-- https://mail.thefacebook.com/owa/auth/logon.aspx?url=https://mail.thefacebook.com/owa/&reason=0
Reusingexisting connection to mail.thefacebook.com:443.
HTTPrequest sent, awaiting response... 200 OK
Length:8902 (8.7K) [text/html]
Savingto: `STDOUT'
0K ........ 100% 1.17G=0s
20:38:10(1.17 GB/s) - `-' saved [8902/8902]
--20:38:33-- (try:15) https://10.8.151.47/
Connectingto 10.8.151.47:443... --20:38:51-- https://svn.thefacebook.com/
Resolvingsvn.thefacebook.com... failed: Name or service not known.
--20:39:03-- https://sb-dev.thefacebook.com/
Resolvingsb-dev.thefacebook.com... failed: Name or service not known.
failed:Connection timed out.
Retrying.
尝试对 SSL Private Key 下手
sh:/etc/opt/apache/ssl.crt/server.crt: Permission denied
ls:/etc/opt/apache/ssl.key/server.key: No such file or directory
mv:cannot stat `x': No such file or directory
sh:/etc/opt/apache/ssl.crt/server.crt: Permission denied
mv:cannot stat `x': No such file or directory
sh:/etc/opt/apache/ssl.crt/server.crt: Permission denied
mv:cannot stat `x': No such file or directory
sh:/etc/opt/apache/ssl.crt/server.crt: Permission denied
mv:cannot stat `x': No such file or directory
sh:/etc/opt/apache/ssl.crt/server.crt: Permission denied
mv:cannot stat `x': No such file or directory
sh:/etc/opt/apache/ssl.crt/server.crt: Permission denied
base64:invalid input
7.jpg
从浏览器观察 files.fb.com 的凭证还是 Wildcard 的 *.fb.com …
后记
在收集完足够证据后便立即回报给 Facebook 安全团队,回报内容除了漏洞细节外,还附上相对应的 Log 、截图以及时间纪录xD
从服务器中的日志可以发现有两个时间点是明显黑客在操作系统的时间,一个是七月初、另个是九月中旬
七月初的动作从纪录中来看起来比较偏向 “逛” 服务器,但九月中旬的操作就比较恶意了,除了逛街外,还放置了密码 Logger 等,至于两个时间点的 “黑客” 是不是同一个人就不得而知了:P
而七月发生的时机点正好接近 CVE-2015-2857 Exploit 公布前,究竟是透过 1-Day 还是无 0-Day 入侵系统也无从得知了。
这件事情就记录到这里,总体来说这是一个非常有趣的经历xD
也让我有这个机会可以来写写关于渗透的一些文章:P
最后也感谢 Bug Bounty 及胸襟宽阔的 Facebook 安全团队 让我可以完整记录这起事件 : )
Timeline
2016/02/05 20:05 提供漏洞详情给 Facebook 安全团队
2016/02/05 20:08 收到机器人自动回复
2016/02/06 05:21 提供弱点 Advisory 给 Accellion 技术窗口
2016/02/06 07:42 收到 Thomas 的回复,告知调查中
2016/02/13 07:43 收到 Reginaldo 的回复,告知 Bug Bounty 奖金 $10000 USD
2016/02/13 询问是否撰写 Blog 是否有任何要注意的地方?
2016/02/13 询问此漏洞被认为是 RCE 还是 SQL Injection
2016/02/18 收到 Reginaldo 的回复,告知正在进行调查中,希望 Blog 先暂时不要发出
2016/02/24 收到 Hai 的回复,告知奖金将会于三月发送
2016/04/20 收到 Reginaldo 的回复,告知调查已完成
这篇是前天的时候,Orange Tsai发的,根据他们执行长说的话应该是可以转载吧
擷取.PNG
刚好最近有一篇Hacking Team渗透过程说明,两个渗透过程可以搭配着看
全文轉自:http://devco.re/blog/2016/04/21/how-I-hacked-facebook-and-found-someones-backdoor-script/
更多精彩# 渗透FaceBook
b0920075
1 篇文章
等级: 1级
||
相关推荐
VulnHub – CTF — LazySysAdmin
我是如何通过命令执行到最终获取内网Root权限的
挖洞经验 | 通过Shodan发现目标应用Marathon服务的RCE漏洞
挖洞经验 | 看我如何利用一条扫描命令发现价值$2500漏洞
APT之迂回渗透
通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP
挖洞经验 | 一个价值$3133.7美金的Google漏洞
全程带阻:记一次授权网络攻防演练(下)
这些评论亮了
呵呵回复
第一部,我发现这是一个xx系统
第二步,我利用一个0day……
)10(亮了
b0920075(1级)回复
@ 科科 嗯,我也想过这边大多是从英文翻过来的,所以本来是想把Orange发的英文版本在翻译过来一次,但是後来想想这样好像多此一举.......
因为这几天我的feedly中各大网站都有出现这个消息,但是在freebuf却没看到,觉得有必要分享一下
)9(亮了
dean回复
- -!重点在挖0day
)8(亮了
混蛋回复
总结就是 : 渗透没思路的时候,随便挖几个0day 来打开思路
)8(亮了
Orange回复
分享原文按個讚那你按讚了嗎? :p
)8(亮了
发表评论已有 16 条评论
混蛋 2016-04-25回复1楼
总结就是 : 渗透没思路的时候,随便挖几个0day 来打开思路
亮了(8)
pipish (3级) 2016-04-25回复2楼
你用的什么工具,换成简体字的啊?
亮了(7)
GOD 2016-04-25回复
@ pipish 百度一下 繁体转换简体就一大堆
亮了(7)
b0920075 (1级) 2016-04-25回复
@ pipish Microsoft Office Word 2013……
亮了(8)
傻蛋科技 2016-04-25回复3楼
[bm讨论] 忘了说了:这条微博链接里的是中文简体版[bm可爱]
亮了(7)
Orange 2016-04-25回复4楼
分享原文按個讚那你按讚了嗎? :p
亮了(8)
b0920075 (1级) 2016-04-25回复
@ Orange 我忘了按QAQ
亮了(8)
科科 2016-04-25回复5楼
你这样好吗?现在是英文翻译,连繁体翻译也可以了?
亮了(7)
b0920075 (1级) 2016-04-25回复
@ 科科 嗯,我也想过这边大多是从英文翻过来的,所以本来是想把Orange发的英文版本在翻译过来一次,但是後来想想这样好像多此一举…….
因为这几天我的feedly中各大网站都有出现这个消息,但是在freebuf却没看到,觉得有必要分享一下
亮了(9)
科科 2016-04-26回复
@ b0920075 你这么一说,的确有道理,我也不知道该怎么说了。其实不管是翻译还是原文,最好还是征询一下作者的同意,这样比较靠谱
亮了(7)
b0920075 (1级) 2016-04-26回复
@ 科科 我是看Allen说可以转载才转的…..不过下次会注意
亮了(7)
warmchang 2016-04-25回复6楼
英文,繁体中午,简体中文。一文三吃[doge]
亮了(8)
奇点bill (1级) 2016-04-26回复7楼
挺厉害的说,这都给你找到了
亮了(7)
dean 2016-04-26回复8楼
- -!重点在挖0day
亮了(8)
小男孩、 (1级)邮箱line26390@163.com 2016-04-26回复9楼
百度和新浪就有vpn.xx.com
亮了(7)
呵呵 2016-04-27回复10楼
第一部,我发现这是一个xx系统
第二步,我利用一个0day……
亮了(10)
昵称
请输入昵称
必须您当前尚未登录。登录?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
b0920075
这家伙太懒,还未填写个人描述!
1
文章数
6
评论数
0
关注者
关注
最近文章
技术分享:渗透Facebook的思路与发现
2016.04.25
浏览更多
相关阅读
送你一份API安全评估核查清单3684个中国政府站点被黑分析ubuntu上安装Apache2+ModSecurity及自定义WAF规则Empire:PowerShell后期漏洞利用代理工具挖洞经验 | 利用graph.facebook.com中的反射型XSS实现Facebook账户劫持
推荐关注
官方公众号
聚焦企业安全
官方QQ群 FreeBuf官方微博
文章目录
活动预告
3月
纯实战化攻防教学 | 玩转黑客操作系统Blackarch
已结束
3月
合规、技术、实践,从隐私保护走向数据安全
已结束
3月
冠军选手帮你把CTF知识点各个击破
已结束
3月
CTF之web安全入门
已结束
本站由阿里云 提供计算与安全服务
官方QQ群:590717869
用户服务有奖投稿申请专栏提交漏洞参与众测商城企业服务甲方会员厂商会员企业空间企业SRC漏洞众测智能安全合作信息寻求报道广告投放联系我们友情链接关于我们关于我们加入我们
微信公众号
新浪微博赞助商
FreeBuf+小程序
扫码把安全装进口袋
斗象科技FreeBuf漏洞盒子斗象智能安全平台免责条款协议条款Copyright © 2020 WWW.FREEBUF.COM All Rights Reserved 沪公网安备 31011502009321号
css.php正在加载中...0daybank
文章评论