安全基础教育第一季:堡垒是从内部攻破的

郑昀 创建于2015/4/10 最后更新于2015/4/28


本文档适用人员:广义的技术人员

提纲:

  1. 堡垒是从内部攻破的
    • 员工无知者无畏
    • 运维配置暴露细节
    • 后台不设防
  2. 常犯常新,屡战屡败
  3. 处处留心皆学问

0x00. 背景:

技术团队
第一忙于业务逻辑,第二大量新人涌入,会把过去大家在安全上栽的跟头重新趟一遍,因此该做的培训咱还得做,该说的经验教训还得说,一次不行就两次,两次不行三次,重复再重复。

0x01. 堡垒是从内部攻破的:

一次成功的入侵渗透,并不需要是什么高危漏洞,几个普普通通的中等漏洞,搭配一次社会工程学行动,就可以搞定。

一个公司成千上万人,往少里说也有 80% 的人安全意识淡薄,有耐心的攻击者会盯好几年,穷尽各种招数,没有攻不进去的堡垒。

员工无知者无畏

大多数员工都图省事儿,公司邮箱以及其他内部 IT 系统都用简单密码甚至空密码,好些个知名 IT 系统也不对此做任何限制(甚至是专业企业级软件制造商出品的IT系统)。

弱密码遇到不设防的 IT 系统,对攻击者来说真是福音。

案例一,乌云漏洞报告:重置某东任意内部邮箱用户密码

漏洞提交时间:

2013-10-26

原理:

公司做得越来越大的时候,总会出现那么几个安全意识薄弱的人员(俗称猪一样的队友),他们往往会做出一些让人无法理解的事情,比如:他会毫不犹豫地双击运行邮件内的 EXE 附件,或者使用跟用户名一样的密码,或者用户名+当前年份的密码。

实施步骤:

1)通过社会工程学神器 
theharvester 工具,和 baidu/google 搜索引擎,收集所有关于某东员工的信息;

2)找到了可用的登录接口验证口令 ,https://mail.....com/owa/auth/logon.aspx,某东的邮件服务使用了微软的 Exchange 服务,并无验证码限制,可以直接 Fuzz;

注:
Fuzz 指的是用随机坏数据攻击一个程序,然后等着观察哪里遭到了破坏。

3)成功 Fuzz 出某个用户的密码,再结合 Exchange 的通讯录功能,导出所有用户名列表;

4)是的,现阶段,你已经拥有了所有某东员工的联系信息列表 。

重复使用 Fuzz 规则,测试后回显找到了 2865 名员工的密码,均为弱口令。

更有甚者,互联网开发人员还会主动暴露自家机密。每家知名公司都有这么几个没心没肺的人,在开源社区泄露源码或敏感信息:

盛大某开发人员意识不足泄漏内部邮箱帐号密码(github)

迅雷某开发人员意识不足泄漏内部邮箱帐号密码(github)

一次成功的漫游京东内部网络的过程(由一个开发人员失误导致)(github)

新浪开发人员安全意识不足导致部分源码泄漏(googlecode)

腾讯多组内部邮箱账号密码泄漏(github)

……几乎每个大公司都报过这个漏洞。

开源社区暴露了邮箱用户名密码之后,又会怎么样?后果很可怕。

案例二,乌云漏洞报告:一次成功地漫游某东内部网络的过程

漏洞提交时间:

2014-04-03

后果:

1)邮箱里找到了 VPN 登录方式:

图1 某东VPN邮件截图

2)拨 VPN 登 3389 进入堡垒机:

图2 某东堡垒机登录截图

3)进入堡垒机,看浏览器历史记录,找到了各种高大上的管理系统:

图3 某东内部各种应用入口

4)还找到了执行 SQL 刷库的地方%#&……

图4 某东执行SQL的内部界面

总结一下:

以 github 为首的版本控制信息泄漏:

由于 github 支持强大的搜索语法,可以很方便地搜索到一些常规搜索引擎无法搜索到的内容,如搜索内部项目、密码、密钥等。

还可以通过 github 来查找代码安全问题,如输入规则:extension:php mysql_query $_GET,可以搜索到大量包含 mysql_query $_GET 的请求,可以有针对性地进行代码审计。

当你把自己的项目代码上传到 github 时,看看配置文件里是不是有不能说的秘密,思量一下后果。

运维配置暴露细节

生产环境配置不当,加上开源系统层出不穷的漏洞,敏感信息轻轻松松泄露,经常坑爹的服务有 Resin-doc、SVN、git……

案例三,乌云漏洞报告:某公司源码泄露导致配置信息泄漏

漏洞提交时间:

2011年

原理:

Caucho Resin 是一款 Web 应用服务器,它自带一个 resin-doc app,这个破玩意儿在 Resin 3.0 上有一个漏洞,可以被当成一个后门。

Resin 的某个 CGI 程序实现上存在输入验证漏洞,远程攻击者可能利用此漏洞读取 Web 主目录下的任意文件,包括 JSP 源码或类文件。如果系统中安装了 resin-doc 就可能读取 Web 主目录中的所有文件,包括类文件,然后可以反编译这些文件浏览 Java 源代码。

实施步骤:

2011年时,你可以访问这样的路径:
http://www.....com
/resin-doc/viewfile/
?file=index.jsp。

攻击者可以设置 resin-doc 外的上下文路径,读取其他 Web 目录的任意文件:
http://localhost/resin-doc/viewfile/?contextpath=/otherwebapp&servletpath=&file=WEB-INF/web.xml

如果运维不强制规范上线部署 Resin 时一律删除 resin-doc app,那么类似的悲剧还会继续发生,如:

搜狐网Resin配置漏洞,导致敏感信息泄露

优酷多个安全漏洞集合(Resin配置信息泄露……)

爱奇艺Resin配置漏洞

因为你有可能部署一个低版本 Resin。

SVN 的隐藏目录问题,各家也遇到过。

案例四,乌云漏洞报告:某财经网某处SVN泄露

漏洞提交时间:

2014-11-19

原理:

发布流程不规范的情况下,代码上线时,Java/PHP等都特别容易带入 SVN 隐藏目录。

在 svn 1.6 以下版本,通过访问 .entries,可以下载到 svn 里的代码。在 svn 1.7 之后的版本,通过访问 .svn/wc.db,对应的 metasploit 模块也是有利用程序的。

实施步骤:

http://service.....com.cn/
.svn/entries

就是这么简单。

这名白帽子还总结了两点危害:

1.泄露 svn 地址和用户信息,通过爆破可控制 svn 权限;

2.可以获取截止到上一次 svn 操作的网站源码。

再比如
乐视某分站源码泄漏

git

在 google 里搜索关键词 *".git" intitle:"Index of",还可以进一步找到 git 暴露在外的站点。

phpinfo

生产环境里,phpinfo 也随便放,视搜索引擎为无物?

http://www.seeyon.com/phpinfo.php

http://jwc.cjlu.edu.cn:8080/phpinfo.php

后台不设防

Elastic Search 官方的控制台本身没有访问控制,一般来说大家都会仅限内网访问,但咱家在这上面也吃过亏。

案例五,乌云漏洞报告:某站ElasticSearch远程命令执行

漏洞提交时间:

2015-03-05

原理:

es 控制台内网域名本来是有防火墙策略的,但某天调整策略时子网掩码误操作写错了,导致外网可以访问到 es 控制台。

刚好 ES 自己爆了一个高危安全漏洞(CVE-2015-1427),该漏洞可导致远程代码执行,危害极大。俩事儿撞一块了。

图5 es漏洞利用截图

幸好是白帽子找出来的。

0x02. 小结:

不一定非要出高危漏洞,白帽子就可以用社工+中等漏洞攻进来,开发、测试、运维,都要认真,前面这些环节不认真,就得等漏洞爆出来后再认真了。

参考文献:

1,百度QA,
将Fuzz进行到底

2,2014,乌云知识库,
fuzzing XSS filter

3,2014,乌云知识库,
被忽视的开发安全问题

4,2006,
模糊测试

-EOF-

时间: 2024-08-08 18:32:43

安全基础教育第一季:堡垒是从内部攻破的的相关文章

安全基础教育第二季第1集:屡战屡败的找回密码

郑昀 创建于2015/5/19 最后更新于2015/8/7 关键词: Web安全.系统安全.Web开发.找回密码.重置密码 本文档适用人员:广义的技术人员 提纲: 堡垒是从内部攻破的 员工无知者无畏 运维配置暴露细节 后台不设防 常犯常新,屡战屡败 找回密码 图形和短信验证码 平行权限 MD5等于明文 处处留心皆学问 表单被篡改 App被篡改 跨站请求伪造 0x00. 前言: 第一季培训主要宣导两点,第一,白帽子或黑客都很有耐心,他手里可能捏着你多个漏洞,他一直在等机会,他也有很多工具在扫在寻找

后端系统性能优化(第一季:改掉那些坏代码)

我们核心业务系统的中心服务每天承载着上千万金额.几十万笔的订单量,在数据量高速增长,公司业务节节攀升的客观因素下,以及面对即将到来的6月份世界杯的流量\交易 高峰的压力,核心业务系统性能优化以及重构显得越发重要而又迫在眉睫. 时刻准备着 在进行性能优化之前,我们做了很多的准备工作,包括 压力测试,数据库sql提取,性能监控日志数据,请求量等数据的收集,分析整体的性能瓶颈,请求量的波动特点,数据库负载波动情况. 压力测试,几个部门通力的合作,把系统在极端并发的情况下所表现出来的性能瓶颈收集出来,分

后端系统性能优化(第一季 3 sql优化)

昨天的博文介绍了如何去发现坏代码,如何优雅的去实现一个应用内的监控程序. 博文地址:后端系统性能优化(第一季 2 找出坏代码) 当然发现了坏代码之后,我们还是要想办法来改掉它,也许它会很顽固.今天说说性能优化的一个非常重要的部分:sql的优化 今天要说的不是怎么来写优秀的,性能好的sql,这些DBA们会比我更加专业.在我们公司,凡是DBA能优化的sql,DBA都在内部消化了,需要反馈给我们的,说明他们可能也束手无策.也是我们该出手的时候了. insert,update这类型的sql,性能一般不会

后端系统性能优化(第一季 2 找出坏代码)

昨天开了个头 博文链接:后端系统性能优化(第一季:改掉那些坏代码) 今天,来说说 什么样的代码才是坏代码,怎么来找出这些坏代码. 不少猿在吐槽烂代码.但是我们今天说的不是烂代码,坏代码只需要改动很小的一部分,把它的坏的地方改掉,他依然是好代码 .而烂代码,只有重新写过了,才会让你觉得浑身轻松,压力瞬间释放,而且在写之前你还得花90%的时间去看懂它.所以我说改掉坏代码,因为只有坏代码才能改,而烂代码是用来看.我很庆幸我在的这个团队的代码驾驭能力都还不错,很少有烂代码.但为什么还会有坏代码?坏代码不

【第一季:Tomcat 8迷情】 第5集:Tomcat从本地访问8080,但是远程浏览器不能访问问题

问题描述:虚拟机中用浏览器可以打开localhost的8080端口,但是从我电脑就不行可以ping通,可以ssh,就是连接不上8080,从虚拟机内部可以打开. 通过netstat命令查看到没有绑定到具体的IP地址 # netstat -an|grep 8080tcp        0      0 :::8080                     :::*                        LISTEN 问题分析和解决方案:TODO [第一季:Tomcat 8迷情] 第5集:T

视频Android studio1.3.1从菜鸟到高手--第一季-IT蓝豹

Android studio1.3.1从菜鸟到高手--第一季 01.安装Android studio前的准备工作02.安装JDK和Android studio03.创建并且启动模拟器运行代码04.Android Studio的项目结构讲解05.Android studio常用配置设置06.Android studio顶部常用视图介绍07.Android studio 底部常用视图功能08.断点调试09.快捷键简介&编写常用功能10.用Android Studio导入Android Studio工

下载大数据实战课程第一季Python基础和网络爬虫数据分析

python语言近年来越来越被程序相关人员喜欢和使用,因为其不仅简单容易学习和掌握,而且还有丰富的第三方程序库和相应完善的管理工具:从命令行脚本程序到gui程序,从B/S到C/S,从图形技术到科学计算,软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有python的身影:python已经深入到程序开发的各个领域,并且会越来越多的人学习和使用. 大数据实战课程第一季Python基础和网络爬虫数据分析,刚刚入手,转一注册文件,视频的确不错,可以先下载看看:链接:http://pan.baidu

unity3D游戏开发实战原创视频讲座系列10之《保卫战:异形入侵》游戏开发第一季

讲解目录 <保卫战:异形入侵>游戏开发    1 第一讲   游戏演示和资源的介绍    1 第二讲  "异形"怪物的实现    1 第三讲  "异形"怪物生命值的体现    9 第四讲  "异形"怪物死后处理    12 第五讲  玩家的制作    15 第六讲  玩家的行走控制(键盘)    16 第七讲  武器的切换(鼠标)     16 第八讲  摄像头的变化(鼠标)    19 第九讲  子弹预制体和特效的制作    20

小梅科普:微信公众平台深度开发JAVA版(第一季)

微信作为当前流行的通信社交软件有了上亿的用户量,几乎每一个只能手机都要安装微信.但是,市场上对于JAVA开发微信公众平台的资料却少之又少,多数的资料一般是其他语言的.因此,主讲老师经过潜心研究.认真准备,录制了这套针对JAVA开发语言的微信公众平台开发教程. 1.课程研发环境 开发语言:JAVA WEBServer:TOMAT DATABASE:MySQL 开发工具:myeclipse.MySQL-Front等 其他:在手机应用中的CSS3+div布局.DWR.mybatis.gson.quar