服务器是如何被入侵的

服务器是如何被入侵的_第1张图片

在介绍Web安全的内容之前,我们先了解一下一台在互联网中的服务器是如何被攻击者入侵的。

攻击者想要对计算机进行渗透,有一个条件是必须的:就是攻击者的计算机与服务器必须能够正常通信。服务器提供的各种服务供客户端使用,那么此时服务器是如何与客户端通信的?依靠的就是端口。攻击者入侵也是靠端口,或者说是计算机提供的服务。当然不排除一些“物理黑客”,直接进入服务器所在的机房对服务器动手。

过去的黑客攻击方式大多数都是直接针对目标进行攻击,比如端口扫描、一些服务器的密码爆破(如:FTP、数据库)、缓冲区溢出攻击等方式直接获取目标权限,在2000年至2008年,使用溢出软件扫描主机,在100台计算机中可能会有20台计算机中招,可见服务器有多么脆弱。如今,这种直接对服务器进行溢出攻击的方式越来越少,因为系统的溢出漏洞太难挖掘了,新的战场已转移到Web之上。

早期的互联网是非常单调的,一般只有静态的文档,随着技术的发展,互联网慢慢变得多姿多态,每个人都可以在互联网中遨游,有网友“诉说”。小学时教科书上所说的“地球村”也真正实现了。

如今的Web应该称之为Web应用程序,与早期的Web有天壤之别,如今的Web功能非常强大,网上购物、办公、游戏、社交等活动都不在话下,而使用者(客户端)需要做的仅仅是拥有一个浏览器,就可做到这么多任务。

是什么让Web如此强大?它离不开四个要点:数据库、编程语言、Web容器和优秀的Web应用程序的设计者,这四个缺一不可。

优秀的设计人员设计个性化的程序,编程语言将这些设计变为真实而存在,且悄悄地与数据库连接,让数据库存储好这些数据,而Web容器负责的则是作为终端解析用户请求和脚本语言等。当用户通过统一资源定位符(URL)访问Web时,最终看到的是Web容器处理后的内容,即HTML文档。

Web默认运行在服务器的80端口之上,也是服务器所提供的服务之一,Web攻击的方式非常多,同时Web也是错弱的,在2005年,搜狐的主站就存在SQL注入漏洞,由此可以想象当初国内的Web安全水平。如今,Web安全仍然是一个热门的话题,并没有随着时间的推移而被冲淡。为什么?原因是多方面的。

首先是程序开发人员,很多开发人员并没有安全意识,总以为黑客的存在很神秘,自己根本基础不到;其次,开发者并不知道哪里存在“Bug”,这时的Bug并非是代码的某些功能不完善,而是代码出现的漏洞。

那么有经验的程序员呢?有经验的程序员可能会考虑到安全问题,但毕竟不是专业的安全人员,且一个项目组并非每个人都是“大牛”。另外,当项目上线之后的服务器环境可能会有变化,本来没有问题的代码可能就变得有问题了。再如,管理员密码泄露、一些配置性错误等都会存在安全问题。所以原因是多方面的,不要说自己的网站是安全、没有问题的,可能是你还没有发现它而已。

说了那么多,那么到底攻击者是如何攻陷服务器的呢?到底存在哪些漏洞?下表即是一张服务器的风险点,攻击者入侵服务器可能就是从这些点下手的,同时也是攻击者掌握的部分技能图。

Web服务器:
   
   C段渗透(双向)
   社会工程学
   Services:
      
      溢出
      MySQL
      FTP
      MSSQL
      RDP
      Web:
      
         SQL注入
         上传漏洞
         XSS
         包含漏洞
         代码执行
         逻辑漏洞
         ...
    

攻击者在渗透服务器时,直接对目标下手一般有三种手段,当我们了解了攻击者的手段之后,防御也就变得简单了。

  • C段渗透:攻击者通过渗透同一网段的一台主机进行ARP等手段的渗透。
  • 社会工程学:社会工程学是高端攻击者必须掌握的一个技能,渗透服务器有时不仅仅只要技术。详细内容请见后文“社会工程学”。
  • Services:很多传统的攻击方式是直接针对服务器进行溢出的,至今一些软件仍然存在溢出漏洞。像之前的MySQL就出现过缓冲区溢出漏洞。当然,对这类服务还有其他入侵方式,这些方式也经常用于内网的渗透中,在后面的章节中都会一一讲述。

然而Web也是服务之一,Web服务相对于其他服务而言,渗透的方式增加了许多,上表中也只是列出了部分风险。看似比较简单的一张表,但其中包含了太多的内容,作者所有内容都是围绕该图而写。

你可能感兴趣的:(网络渗透实战系列,服务器,web安全,安全)