浅谈企业网络边界

0x01 企业网络边界

  我们知道既然要从外围进入内网,那么必然要做的一件事情就是跨越边界,所有这个命门我们也就自然应该在企业的内外网边界上来寻找。
  那为什么企业需要在内外网之间部署这样一个边界呢?我们只要作为一个大企业来说他会有上百甚至上千个业务线,而安全团队或许只有几十人,那这几十人要保证这上千个业务线的安全,显然如果用布点的方式肯定无法完成覆盖的,所以企业在思考如何进行防御的时候会选择区域性防守。
  所谓区域性防守就是把重点需要保护的业务&数据放到一个指定的区域,让后对这个区域进行隔离,并指定好进入这个区域的防火墙策略。然后定期对这个区域进行安全检查。
  如果这样实施的很好,看起来一切都很完美。但是事实上并不尽人意,事实是这样的,在企业内部通常业务部门是会比安全部门强势的,这一点我相信大家都知道,那么就会导致一个问题,安全部门总想着把业务圈起来,各种严格的策略和规范实施上去,而业务部门在业务快速迭代的背景下就会很难去严格执行你的策略。他们会要求你针对他特殊的业务场景来制定专门的策略,甚至部署到非隔离区域,而且这样的情况不在少数。如此一来安全部门需要维护的策略和规范就会越来越多。而这将直接导致策略及规范的执行越来越差。

0x02 合法的入口

1. 物理接触

  如果你能直接物理接触公司内网(插网线或者连接wifi),我只能说你牛B。案例:

  这两个案例都是通过wifi万能钥匙(手机root后即可看到连接过的wifi密码),获取到wifi密码,直接连入内网。内网的系统安全性一般不高,或弱口令、xss、注入。甚至还可以进行嗅探、钓鱼及流量劫持等。

2. 非物理接触

  大型的公司,一般都会有很多的管理系统,如果每个系统都分配给员工账号的话,那么需要记住太多的账号密码了。所以大型公司通常有一个主账号,一般是OA系统、vpn或者统一认证入口,员工登录这个账号,可对其他的系统进行授权。这种方式虽然解放了员工,同时相对也比较安全(账号密码太多难免有弱口令)。但是凡事有利有弊,万一某一名员工的账号泄露或者是弱口令,那么它所授权的所有系统都可被攻击者访问。

2.1 获取用户名密码的方式

  • 用户名密码爆破

   最常用方法当然是爆破。若统一认证处无法爆破,推荐爆破邮箱;若登录处有验证码,但是不复杂,推荐pkav的可识别简单验证码的爆破工具;若是ip限制,看是否是cookie记录限制,若不是又没有很多代理的话,还是放弃吧。对于用户名,最好是能收集到他们公司的一些人名或者是用户名,如果收集不到就使用自带的top500人名。密码一般top100。

参考:

中粮集团某处设计不当导致进入内网(可入多系统/泄露大量信息)
途牛内网漫游(内网大量数据库权限/大量用户信息/天猫商城、积分商城及主站后台权限)

  • 社工(github、社工库)

   都说现在是大数据的时代,社工永远是个有效方法。程序猿们一不小心把代码传到github上,代码里恰巧有邮箱,密码等信息,很容易被攻击者搜索到。常用语法,以饿了么为例

1
2
3
4
smtp ele.me
ele.me pass
mail @ele.me
.......

   拥有大数据,直接在社工库里搜索某公司的企业邮箱域名,如@ele.me。有的人虽然密码挺复杂,但如果是万年一个密码,也是相当的危险。
参考:

美团网某处内部邮箱账号泄露可登录(已连接vpn)

  • 密码重置

   试想如果员工想更改自己的vpn密码,那么有什么好的方法呢?如果不是要员工直接走到运维办公室里,出示证件的话,那么就一定有东西可被两方信任,通常是邮箱+个人信息。如果我直接发邮件给运维,说我vpn密码忘记了,再出示一些个人信息,你说运维会不会给我改?
参考:

华润双鹤由邮箱到集团内网漫游
控制魅族在线商店突破vpn双因素进入内网(涉及大量用户详细订单/手机IMEI等)

2.2 谈谈用户名和密码

  • 用户名

   为了方便管理以及员工方便记忆,员工的用户名一般是自己的拼音,最常用的是这样的:

1
2
3
zhangwei
wangwei
wangfang

   还有这样的

1
2
3
wei.zhang
wei.wang
fang.wang

   正序,反序,简写可组合多达6种

1
2
3
4
5
6
zhangwei
zw
zhang.wei
wei.zhang
zhangw
w.zhang

   所以也不是看到登录口,就拿top500人名字典去尝试;事先清楚某公司的用户名规则,会使得爆破的准确性和效率更高。话说随着人口的增长(作文写多了),大公司重名的概率,或者相似名(拼音相同)的概率是相当大的。如

李伟,李威,李维,李卫```,那么为了区分这种情况,就有了下面的:
1
2
3
4
5
```
liwei01
liwei02
liwei03
......

当然最准确的还是先拿下某个邮箱或oa账号后,将里面的通讯录导出来!!!
参考:

对中粮集团的多个系统的渗透测试(已入多个系统)
字典大法好之可进入百度糯米运营支撑平台/大客户广告系统/可能进一步入内网

  • 密码

  密码向来是个难题。这里我把密码分成两种:一是通用型,类似弱口令top10,top100等,相信每个大牛手里都有自己独特的不轻易外传的密码字典;二是针对特定的用户名、公司、系统,从而生成的字典。
  通用的top100我就不说了,但是有一类密码普通人不常用,但程序猿特别爱用的,人称滚键盘

1
2
3
4
5
6
7
8
9
q2w3e4r5t
1qaz@WSX
123456asd
1q2w3e
1qaz@WSX
ZAQ!xsw2
ZAQ!2wsx
2wsx#EDC
@WSX3edc

  这种密码我建议可以加入自己的字典,通常有奇效。
  如果已经有了可靠的用户名,那么不妨针对这些用户名制作相应的字典,例如

1
2
3
4
5
6
```
liwei
liwei1989
liwei@1989
1iwei@scu
liweiscu

  公司在给员工分配密码的时候,一般都是会有一个默认密码,员工拿到后进行修改。但若是某些员工没有更改密码,那么就可以被利用了。不同公司的默认密码不一样,例如饿了么的常用默认密码,和其公司域名有很大的关系。

1
2
3
4
5
6
7
ele.me
ele@123
ele.me@123
ele.me5121314
ele@123456789
eleme@3456789
Hello_eleme123

0x03 不合法的入口

不合法的入口一般指利用漏洞获取某内网机器权限,或者是利用漏洞绕过边界,这方面就不多说。

  • 利用各种漏洞,获取边界某台服务器权限
    这是最常见的方式,漏洞包括web漏洞、主机漏洞及其他。正如前面所说的,大公司的安全运维人员需要维护数以千计的业务,其中很多的边缘业务肯定是无法完全的保护起来,这些边缘的业务可能长时间无人维护,但却又是在边界上可和内网通信。正所谓“千里之堤,毁于蚁穴”,企业的内部往往是很脆弱的,一旦让攻击者进入边界以内,就如同砧板上的肉,任人宰割。
    案例:
    东风汽车公司某系统漏洞导致内网漫游(控制大量服务器/数据库/ftp,大量敏感数据泄漏)
  • host绑定,直接访问内网业务
    简单来说就是服务器内网外网双网卡,web服务器没能对访问者来源做检查,访问者在hosts文件中将内网域名与外网ip绑定,可直接访问内网的业务。
    案例及说明:
    关于服务器的host绑定的不安全因素
  • SSRF探测内网
    SSRF(Server-Side Request Forgery:服务器端请求伪造),是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)。当然大多数的ssrf能探测到的内网信息有限,可辅助其他漏洞进行渗透。
    案例:
    知乎主站一处SSRF漏洞可探测内网
    百度某个从SSRF到内网WebShell
    挖掘经验:
    SSRF漏洞的挖掘经验

0x04 小结

  正如电影《Who Am I – No System Is Safe》中描述的一样,没有真正安全的系统,自然也没有真正安全的内网防护体系。对于一个大型互联网公司来说,其实并不是因为他们安全做的不够好,而是守需要考虑的是一个面,而攻只需要一个点,对一个点进行深入的挖掘,一定可以找到突破口,而本身企业的安全建设其实也是一直在提高攻击门槛,并不是无懈可击。


参考链接:
http://drops.wooyun.org/tips/7831