你的服务器安全么?--服务器防渗透(1)

服务器防渗透(1)--信息收集

你的服务器安全么?

1   概述

在本人所处的公司的服务器正式遭到黑客攻击之前,一直都以为 黑客 是个遥不可及的词,直到真正成为了受害者时,才猛然意识到安全的重要性。有一些基本经验和心得总结出来,和同行分享一下吧。

2   暴破手段

最粗暴的黑客行为,就是利用计算机对比人的逆天的计算能力,来暴力破解。一般的服务器都是不提供交互界面的,而且为了能够方便和其它程序进行自动化连接和集成,也是不会设置图灵测试验证码的,所以基于这种条件,服务器天然具备暴破的条件。

主要的暴破方法如下:

3   资产收集

所谓的资产收集,在服务器渗透领域,就是获取服务器的域名和IP等等相关信息,这是获取渗透目标的最基本要求。资产收集的手段有很多,主要有社会工程学手段,计算机信息检索手段及混合手段。

  • 社会工程学手段 从内部人着手,采用诱导或者收买的方式来获取信息
  • 计算机信息检索手段
    • 从社会上公开的信息进行检索分析,例如:工商信息,域名信息
  • 混合手段
    • 研究企业内部人员,观察其社交网络行为,从邮箱,QQ号等等获得信息检索的线索,逐步弄清资产

这是一个类似于“战场”的场合,其目的只有一个:获取服务器资产相关信息。

这一领域到底有多严酷,可以从以前一些“某国家研究所向国外间谍出卖重要资料最终被判死刑”的案例可以看出。当然,大部分的普通人还是没法到那个程度的,所以就从普通的技术层次来进行实验。

比如:要获取指定企业的服务器信息。

一级线索:

  • 企业名称
  • 企业网址

任何人都可以通过企业名称,可以在 启信宝 上获得此企业的详细工商信息。

例如:阿里巴巴

对于小公司,特别是创业小公司来说,公司的域名一般都是以创始人或者联合创始人的名义来注册的,当然我们一般不会这个名字来查询公司域名,毕竟同名人太多,这个用于域名查询之后的验证。

一般公司肯定会有官网,有官网就有域名,通过任意的域名反查平台:

http://whois.chinaz.com/

查到相关信息如下:

  • 域名持有人姓名(可以和之前查到的企业相关人员进行验证)
  • 注册时间和到期时间
  • 电话/地址/邮箱

其实通过 电话/地址/邮箱 还可以继续进行深挖,挖到更多的线索,但是这和本文主题相关不大,略去不表。

在支持 whois反查 的平台,可以查出更多相关的域名,然后进行筛选分析得到和此企业相关的域名。

然后通过PING或者traceroute等等网络工具,可以查到服务器的具体IP地址及网络节点图。

当然,如果是自己内部人员做渗透测试,就没有这么麻烦了,直接找运维人员要一份 服务器资产清单 即可。

4   端口扫描

在获得 服务器资产清单 之后,就可以对服务器上运行的服务进行扫描。基本上所有的服务器都是以 IP+端口 作为服务地址来对外提供服务的。

通过常见的 nmap 等等工具可以扫描到服务器上暴露的端口,下面对内网的某个安全测试服务器进行扫描:

显然,服务器上面运行了哪些服务一目了然。

  • ftp
  • ssh
  • dnsmasq
  • web-http
  • mongodb服务器
  • mysql
  • redis
  • 其它

有了这些信息之后,可做的事情又多了:

  • ssh密码暴破 估计很多小白用户的root账号密码都会中招,如果这一层被攻破,服务器就成了 肉机,所以操作及文件系统权限都被获取
  • ftp密码暴破
    • 匿名登录账号会中招
    • 简单密码账号会中招

    可以查看ftp上的文件,甚至有些没有设置好权限的,还能通过此端口获取整个服务器根目录权限

  • web密码暴破 如果获取成功,再有web权限的疏忽,则可能通过web后台上传可执行文件,执行shell脚本,间接获取服务器所有权限
  • 数据库密码暴破 暴破破功后,影响也是相当大的

一般情况下:

  • 没经验的开发人员没有系统的安全意识,服务器漏洞百出
  • 公司用于测试的服务器,没有足够的安全意识和投入,往往成为了突破口

基于如上获取的信息,就可以对很多服务器形成很好的渗透了。因为这个世界上有太多的人还没有足够的安全意识,就已经敢把自己的服务放在公网上了。

5   预防措施

服务器 端口扫描 这一行为,最好的方法,就是尽量伪装好自己的服务器上的服务。主要手段有:

  • 禁用ICMP,防止别人通过网络工具获取网络拓扑图
  • 局域网的多台服务器之间禁止公网IP访问
  • 没有必要对外公开的信息就不要给外界权限访问
  • 对外尽量使用代向代理,不要暴露过多端口信息

当然,肯定会有很多开发小白会觉得这样很不方便,特别是在很多创业公司里面,早期如果在安全上下太多功夫,而把本来用于产品开发的保贵人力放在这边,有点不划算,这是普遍的早期企业的矛盾之处。

所以会存在这样的诉求:

  • 既要开发服务器隐藏端口
  • 也需要开发人员在自己机器上访问到相应的数据库,方便查看数据开发调试

本文提出了一种中间代理模式,来实现以上诉求。

5.1   生产配置图

一般的web应用程序都有数据库服务器和web应用服务器,还有一台反向代理服务器(nginx),如下图:

其中:

  • Web服务器通过内网IP及端口连接数据库服务器
  • Nginx服务器通过内网IP及端口连接Web服务器
  • 只有80端口的Web服务暴露给客户访问

整体来说:不需要对外的服务器都对公网形成了很好的隔离。

5.2   开发配置图

对于开发调试阶段需要连接公网服务器的数据库时,可以使用如下模式:

5.3   方法总结

上面的 端口映射 方法,其思想都是基于 代理映射 。即都会使用一个中间人做传话,内部的系统对外都是黑盒状态,然后安全人员集中精力守住门口即可,毕竟守门的难度比守个方圆十公里的大庄园要简单得多,真的是省时省心省力。

类似的方法在ssh登录管理服务器的时候,也有用到:开发人员要登录集群的其它服务器,必需要登录到某一台中间服务器,然后再通过中间服务器对其它服务器内网访问。

毕竟:隐藏得越深,往往就越安全也越省事。即使技术十分精湛,也没有必要去自找麻烦吧。

6   小结

上面提到的那些知识,对于专门做安全行业的人来说,估计是太自然不过的知识储备了。本文提到的这些渗透手段,主要目的是根据提出一些服务器部署的安全建议,给开发人员一些警示:尽量能够养成良好的开发习惯,做到防患于未然。

本文只是开篇,只针对服务器 端口扫描 这一行为提出了一种 端口伪装 的可行方法,后续还会出一些专题:

  • 密码暴破的预防
  • 服务器权限控制,预防小漏洞导致大问题
  • 其它

警告:本文提供的一些思路和方法仅用于学习和内部的渗透测试,千万不要用于攻击外部的服务器,否则会被法律所追究,后果自负。

作者:

Harmo哈莫

作者介绍:

https://zhengwh.github.io

Email:

dreamzsm@gmail.com

QQ:

1295351490

时间:

2016-02

版权声明:

欢迎以学习交流为目的读者随意转载,但是请 【注明出处】

支持本文:

如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

走进科学:揭秘如何入侵电视机

[从可恶的广告开始] 前几天家里买了台新创维电视,安装好兴冲冲的开机,突然蹦出的广告让我心凉了半截,进了安卓系统,发现啥都没有,不能自己装软件,只能从那...

2879
来自专栏一场梦

竹节虫:暗藏在常用工具软件中的后门

1504
来自专栏FreeBuf

盗版软件也疯狂之六耳猕猴显神通

近日,笔者闲暇时光下载了一个小游戏进行玩耍,游戏结束后没再管它,当下次点亮手机时,惊奇的发现在手机主界面中心有一应用推荐轮播的悬浮窗。对于移动端技术人员来说,手...

1273
来自专栏玄魂工作室

Hacker基础之Linux篇:一、系统简介

前言: 因为大佬玄魂最近比较忙,所以从今天开始我就在这个平台发布一些关于Hacker的基础知识,一开始准备了两个模块,一个是Linux基础,一...

42411
来自专栏zhisheng

MacBook Pro 初体验

背景 在 Mac 到手之前就在各种群里看到人说 Mac 多好用,也有很多人鼓吹过 Mac 的好处,最后也坚定我的年前目标了 —— 就是买台 Mac,之前请原谅我...

3397
来自专栏Albert陈凯

网络IO(NIO)之阻塞、非阻塞、同步、异步总结

网络IO之阻塞、非阻塞、同步、异步总结 1、前言   在网络编程中,阻塞、非阻塞、同步、异步经常被提到。unix网络编程第一卷第六章专门讨论五种不同的IO模型...

2994
来自专栏犀利豆的技术空间

Redis RedLock 完美的分布式锁么?

上周花了点时间研究了 Redis 的作者提的 RedLock 的算法来实现一个分布式锁,在官方的文档最下面发现了这样一句话。

2591
来自专栏空调论坛

空调自控系统全解析

(1) 空调区域的温度、湿度、压力等的控制,对于舒适空调,温湿度过高过低都影响舒适感,只有自控才能将温湿度自动控制在设计值;对于工艺空调,是生产工艺的必备条件。

1053
来自专栏菩提树下的杨过

企业应用通用架构图

晚上把公司应用的架构结合之前研究的东西梳理了下,整理了一张架构规划图,贴在这里备份 ? 下面是个人理解的做架构的几个要点: 1、系统安全 这是首要考虑的,以这张...

2356
来自专栏施炯的IoT开发专栏

Windows 10 IoT Serials 2 - Windows 10 IoT RTM 升级教程

    7月29日,微软推出了Windows 10 for PC的正式版,其版本号是Build 10240。近两天官方说已经有4700万的下载安装量,同时这个数...

2637

扫码关注云+社区