Anatomy of an Attack

原创 2005年05月19日 22:17:00
Anatomy of an Attack
——come from Security Report

简介:
security report将初步讲述一个黑客用来威胁服务器的基本手段和方法。每一个步骤都解释了黑客怎样做,为什么这样做?以及每一步他希望获取的信息或者数据。在描述了大概的轮廓后,将会进一步介绍所使用的技术和工具。技术,也就是一个黑客所使用的方法和手段。工具与技术的完美结合使得黑客能够很容易地寻找到自己需要的信息。

一次入侵攻击我把它分为五个步骤,依据不同的目标主机和黑客所使用的方法,虽然有细微的不同。但是,任何一种攻击的模式都需要下面的每一个步骤才能成功。这五个步骤是:data gathering,exploition,elevate privileges,cover tracks and install tools,and finally Gather any sensitive information from the target machine.


Data Gathering
在这一步里,黑客尝试着从目标主机或者目标的组织内尽可能地收集更多的信息。这包括商业信息和服务器的一些特殊细节信息。

Exploitation
在数据收集步骤,利用收集到的任何一种可以利用的漏洞信息,开始进行试探性,验证可行性和进一步发觉潜在的问题然后发起攻击。在这一阶段,黑客通过跟踪信息去收集大量的数据然后试图寻找并利用那些更危险的漏洞。

Elevate Privileges
一般情况下,通过初步的连接试探,黑客们能够获得某个受限制的用户权限。但是为了安装rootkit和Trojan horse,收集更多的秘密信息,需要更高级的权限。因此,在这一步,黑客将使用各种手段去提升他们的权限,比如administrator或者root。

Cover Tracks and Install Tools
黑客将尽可能的破坏系统或者安全措施来抹杀他们入侵的痕迹,然后这样就有更多的时间和空间去收集全部的信息并且被捕获的可能性也大大减小。大部分的工具被黑客利用来掩盖他们的痕迹,包括破坏日志,安装后门,key loggers和一些暴力的手段。

Gather Sensitive Information
一旦以上的步骤都完成了,那么黑客就可以享受自己的战利品了。他们会根据自己的爱好来收集信息,包括一些商业秘密,e-mail,电话,地址清单,源代码和用户帐号以及密码清单。由于目前rootkit技术的成熟性,导致黑客们不会给管理员留下什么有用的信息。(rootkit是什么?它是一种黑客用来制造后门的工具,包括获取密码,在服务器上隐藏所有的黑客工具)






Data Gathering-->Business Information
首先,黑客将会收集所瞄准的目标的信息。包括涉及到公司的近况,硬件变动,服务提供商等等。在本地计算机上收藏公司的网址以便于收集相关信息。在IRC或者通过互联网收集目标的系统软件和硬件信息。这样,黑客将初步认识目标系统的安全性和管理人员的素质。

一般情况下,公司很少会注意到通过互联网网络与它的连接和加入,这种做法往往会葬送了自己本来不错的安全性。这样,公司在接入互联网前就会习惯性的不去注意内网范围内的安全性,导致了一些新加入的主机影响了整体安全性。

黑客会down下整个公司网页去寻找那些敏感的信息。一般用户帐号和密码以及其他一些安全问题都可能会在web文件中有所提及。除了一些显而易见的内容,黑客往往会寻找包括硬件版本,系统安全配置等信息。如果他们知道了运行在远程操作上的具体的硬件和软件类型,那么攻击的前的焦点将会聚集在寻找漏洞和弱点上。

为了获取内部网络的具体拓扑,黑客会通过查找DNS和数据库连接信息来追踪并获取公司的IP。这些手法的充分利用让他们可以选择哪里才是在真正的“入口”。

Tools:
Wget:Wget是一种能够被作为浏览器服务的主机所识别的命令脚本。它提供黑客们能够把网页保存在自己的硬件上。DOWN下来的信息包括HTML,图片,表格等等如同在浏览器上看到一般。

Sam Spade:这个工具能够不间断地连接站点并反馈到黑客的系统中,这样黑客就能轻松有效地把整个公司的website DOWN到自己的所辖范围。

IRC:Internet Relay Chat(internet多线聊天系统)黑客会通过论坛,在线聊天等手段获得一些有用的信息和问题,并利用它来研究公司的站点。

Public netsgroups:通过它来获取最新的漏洞信息,并且从一些专业的讨论组中获取漏洞的详细信息。

Whios:Whios是指公开的数据库,它允许黑客去获取信息从中了解到是谁注册了域名。

Dig:这是一种很小巧但是却很有用的工具,来替换UNIX系统中的NSLOOKUP。黑客能够从中发现公司服务器的外壳已经拓扑结构。这包括了一些多余的WEB服务器,邮件服务器,负载平衡服务器和防火墙。






Data Gathering > Ping , Port and Service Scanning:

黑客将会尝试着使用PING命令去获取并连接映射到正在提供服务的内网IP。PING命令发送ICMP数据包到每一个IP地址以此来判断是否有一台电脑作出反应。如果有电脑作出反应,则会回应并被记录下来,这样就为黑客进一步的入侵提供了参考。ping命令将会提供入侵者网络的一个表面轮廓和更多的为了获得进入内部网络或者目标系统的目标。任何一种公开的端口和服务都是被利用的潜在威胁。一台服务器上开启的端口和服务越多,那么黑客可以利用的漏洞就越多。主机上开启更多的服务意味着将花费更多的时间去打最新的补丁,这需要很大工作量,难免会有疏忽,这就给黑客入侵服务器提供了良好时机。黑客们喜欢那种有多种漏洞可以攻击的系统并且利用这些漏洞去入侵,这样被击破的可能性是很大的。

一旦一个系统被发现了,黑客将会试图去连接他找到的每一个端口看是否有回应。一个处于监听的端口会回应任何的请求因为它认为这是一个合法的客户端;但是,没有服务在运行的所有端口是难以发现并且安全的。有三种可能防火墙会处理对端口的扫描:开启,关闭和潜在。OPEN状态下允许端口发送和接收所有的数据传送;什么时候端口会开启呢?为了使服务器和工作站之间保持连接,端口就会开启。如果端口处于CLOSED状态下,防火墙会回应:端口上没有任何服务在运行。STEALTHED状态下的端口将不会回应任何数据请求。STEALTHED状态的端口是最为安全的,因为黑客不会从那里获取任何信息。在对端口扫描完毕后,它将尝试着去连接所有的TCP和UDP端口。一些端口扫描程序还可以扫描指定的端口,随机端口或者根据需要扫描所有端口。但是如果扫描所有没有运行服务的端口的话(CLOSED),那么要发现入侵的意图并保护自己的端口安全,是很困难的。

Intrusion Detection Systems(IDS—入侵检测系统)会尽可能地保护自己的服务器,禁止所有未被授权的黑客行为。IDS使用许多方法去探测入侵,比如:端口扫描监听,密码破解保护而且如果黑客已经获得了入侵通路,IDS仍然会监视着系统不正常的举动以确保进入系统内部的黑客只拥有极低的权限,并且对占据大量资源的应用程序进行保护。但是,道高一尺,魔高一丈。如果黑客在扫描端口时,使用来自不同地方的IP地址,并且不是有序地扫描端口,那么对于IDS来说,是很难取舍是否结束该端口和IP连接的。

端口扫描完毕和远程主机探测完成后,攻击者将会去发掘系统每个端口上运行的服务。在这一阶段,获取越多的信息对后面越有用;他们会通过未被授权的数据包抓取去寻找服务名,版本号等有用的信息。

通过分析TCP/IP堆栈,黑客有很大可能会猜出是什么类型的Operating Systerm在运行。一旦被发现,将会有针对性的发起攻击。而这则是利用的不同系统之间在执行TCP/IP堆栈时非常细微的不同点来发现的。

主要技术:
ping sweep                         用来发现网络中存活的主机
TCP/UDP/Stealth port scanning      检测端口
OS Detection                       探测OS

工具:
Fping ,Nmap , SuperScan , Queso。








Data Gathering>Manual Discovery

并不是所有的漏洞都会被自动漏洞扫描程序发现的,大多数的黑客更喜欢使用手动的工具比如hping,nmap和其他一些类似程序。以下这些类型的工具最受黑客欢迎:自己捆绑网络数据包的工具,一些使用高级服务去获取服务器信息的工具,和一些让黑客在工作站中自己定制WEB请求以此来骗过服务器的工具。

比如象hping,可以自己构造并捆绑一个网络包,其中包括WEB程序或者一些扩展服务。Hping发送多种类型的数据包比如ICMP,TCP或者UDP,发送这些数据包后将记录他们所反馈回的所有信息。Hping能够自定义每种数据包的属性,比如标头,生存时间并且可以分裂并自定义端口发送,端口回执,使用协议等等。多种类似的工具综合使用可以渗透防火墙并获取服务器的更多敏感信息。

一些更高级的工具可以让黑客发现服务器的关键信息,比如OS类型,Vender和版本号,以及运行的每一种服务,更甚者可以知道防火墙的位置以及它的工作原理和配置方案。比如Nmap就有很多种类型的扫描工具,包括普通的焦点扫描,潜在扫描,比如Stealth FIN , Xmas和Null scans。这样类似可以绕过IDS的工具还很多。

还有一种类型的工具,是基于一种WEB代理来完成观察并编辑WEB程序的,以此来获取服务器信息。这种工具可以让黑客推测出HTTP和COOKIE SESSION的ID,以及SQL注入漏洞。如果服务器上的数据没有严格的校验那么这种类型的工具是非常危险的。

主要技术:
Customize network packets:   crash server,discover firewall,open ports,services;
Advanced network mapping:    operating system,app names,app versions,RPC scan;
Web proxy:                   HTTP/COOKIE session ID,SQL injection attacks,hidden form;

工具:
Hping2 , Nmap , Wget , websleuth








Data Gathering > Vulnerability Scanning

Vulnerability Scanner,能够列举远程服务器的已知漏洞。当发送一特殊构造的数据包给服务器然后分析它的回执后,可以发现某些漏洞。通过在服务器端扫描漏洞然后可以使用类似SQL注入,脚本上传,缓冲溢出错误来获得权限。当使用Vulnerability Scanner在已知服务器上扫描端口和服务的时候,WEB程序扫描器仅仅局限于HTTP程序。一些Vulnerability Scanner可以同时扫描大批IP地址加大漏洞扫描的力度。扫描器通过修改和增强后也可以大范围扫描新的漏洞。扫描器的应用在黑客这个社团里越来越受到亲睐,因为它可以轻松扫描出大批主机数以万计的漏洞中的一种或多种。

WEB扫描器能够轻松发现WEB服务器上各种各样的信息。这些信息包括:用户帐号和密码,目录和文件结构,有用的文档,java程序,FLASH和ActiveX控件,隐藏结构数据,cookie使用情况,隐藏空间,工作站确认和有漏洞脚本,有用的其他应用程序等等。大多数的这些项目是在较安全的保护下运行的,但是WEB扫描程序仍然能够以较快的速度收集那些有用的漏洞信息。

server vulnerability scanners(服务器漏洞扫描器)的应用使得黑客对服务器的威胁越发增大。这些扫描器能够帮助黑客发现并提供入侵目标服务器的漏洞。通过Vulnerability Scanner收集的信息包括:脚本漏洞,WEB服务和应用软件,服务器管理界面,服务器的配置结构,OS,鉴定机制,防火墙系统,数据库路径连通性的漏洞和列举出服务器运行的服务等等。

主要技术:
Web Application Scanners:      information regarding services and applications runing on port 80 and over HTTP,HTTPS or on web services.form problems and HTTP comments;
Server Vulnerability Scanners: information regarding the server as a whole,including serveces,firewalls,and network topography;

工具:
nessus(一种非常流行的开源扫描器,能够通过恶意程序扫描服务器漏洞);

appscan audit edition(能够探测普通服务器的配置和漏洞,这种扫描器能够分离封闭工具来提供许多有用的安全信息,特别是能寻找过去的一些安全性bugs);

saint5(一种非嵌入式的网络和系统扫描器,比较复杂和难以上手,需要较多的专业知识和经验,但是它能做到的也远远超过其他同类的扫描器);

GFI LANguard(这是一种诱导扫描器,它能够扫描大量的主机的漏洞信息,并提供楼的解决方案);

Webinspect(这种扫描器不同于其他类型的扫描器,在于它能够扫描不同层次的服务器,而且能够扫描包括内网在内的主机和已知未知的漏洞);

Retina(这种扫描器能够扫描指纹识别性的数据库,包括数据库的更新信息);

Scando(在完整扫描后,它能提供每一页面内的不同类型漏洞,包括变量参数,SQL注入,cookie和其他一些攻击类型);





Exploitation:
利用某一个安全漏洞,如果漏洞是已知的,那么将会非常地简单,通过编写一个简单程序就可以;但是如果是一个未知的漏洞,那么就很难利用了。

因为已知的漏洞细节以及入侵的方法往往会被公开,比如什么类型的错误和怎样利用漏洞。除了这些细节说明之外,proof of concept(PoC-成批输出转换程序)代码也被公开。PoC code是一种包含有(必须)shell code的源代码,和数据包解释程序,这些足以来利用他们的漏洞来攻击了。不幸的是,PoC code不是免费公开的。如果一旦PoC被公开的话,那么马上就会用利用这类代码的工具出现来攻击目标系统。

一旦黑客获得了所有可以利用的漏洞他们将利用这些漏洞去获得入侵服务器的通路。这样他们可以完全地自动利用一些简单寻找目标IP和系统通路的应用软件。几乎所有公开的包括PoC code的漏洞都有利用的源代码。如果没有攻击工具、PoC code或者其他的漏洞可以利用,那么黑客将会试图去利用其他的在同一网络内的主机,以此通过保护相对较弱的路径来连接目标主机。最终,如果黑客使用了上述方法仍然没有能够成功,那么自己就利用缓冲溢出或者寻找新的安全系统bugs来发现目标主机上的漏洞。

主要技术:
Exploit Applications:           often in the form of worms,can gather information or simply exist to replicate;

PoC:                            can depend on the exploit,shell code,and how it is used.can range from a benign alert that remote system is vulnerable to complete compromise;

Exploit another computer on the network

工具:
Bugtraq , hacker/security websites , various PoC code , various Exploit tools







Escalate Privileges:
就算攻击者进入了系统内部,但是他仅仅有普通受限的用户权限,要想跟踪和获取有价值的信息就必须拥有完全控制的权限,因此他们必须提升自己的权限,比如root或者administrator。怎么达到呢?这有很多方法,比如:利用系统自身的某个程序,寻找未被清除的密码,暴力破译密码等等。如果入侵的不是目标系统,那么将进一步找寻本系统和目标系统之间信赖关系。这样,黑客就可以不需要使用帐户和密码就远程登陆目标系统。

如果已经入侵到了目标系统中,那么黑客首先会尝试着去DOWN一些密码并crack,这些密码往往保存在系统的某个单一文件中。如果他们能DOWN下这些文件的话,那么暴力破译密码就仅仅是时间问题了。

同样,黑客也会上载一些密码嗅探器去找寻明文密码。嗅探器驻留在系统中并记录在系统中登陆的每一个用户的帐户和密码。如果有同一个用户在不同系统中,使用同样的密码,那么就再去嗅探网络用户的帐户和密码。存放在主目录或者一些系统管理者不希望别人看到的地方的明文密码是非常不安全的。

如果无法DOWN下密码,那么黑客将会利用系统本身的某些程序,其中有些程序比较危险,有助于他们上传一些程序后门以获取administrator或root的入口。

如果入侵的不是目标系统,那么黑客仍然会去获取root或者administrator权限来抹去他们入侵的痕迹,并且以此来寻找网络中安全较差但却有信赖关系的目标。一般情况下,整个网络外界使用了防火墙和较强的加密系统后,都是十分安全的,但是内部的安全却是十分单纯和弱小的。这就意味着如果黑客能够获取内网任何一台主机的权限,那么攻击整个网络是非常简单的。

在这一阶段,黑客会寻找受保护的安全系统和其他拥有信赖关系追之间弱点与漏洞,以此来获取非授权的内部通行证。

主要技术:
Password Cracking:          username and password pairs
password sniffing:          username and password pairs
Exploit Application within the system:    Root and Administrator access
Cleartext passwords:        username and password pairs
Trusted Relationships:      network shares,database,access to other internal computers.

工具:
john the ripper:一种命令行密码破译器;
l0phtcrack:一种图形界面的恶意密码攻击器,能够暴力破译密码;
pwddump:一种能把密码复制到本地的工具;
getadmin:可以上传后门程序来获得管理员权限;








Cover Tracks and install tools:

Rootkits和其他一些工具被用来清除黑客入侵时所留下的种种标记,并且为他们下一次连接服务器进一步入侵提供非常简单的方法。一旦黑客获取了适当的权限,那么他就可以访问并清除记录自己入侵的日志,这些日志包括系统连接日志,服务日志和入侵所使用用户的历史命令记录。这一步是十分重要的,因为被清除掉的这些信息包含了整个入侵的踪迹。

下一步呢,就是制造一个后门程序和安装工具,把他放在被入侵的系统中。这些工具一般都能马上完成安装,rootkit能够随时让入侵者继续使用root或者administrator权限来访问服务器,同样它还能有计划的按时完成某些必须的工作,感染到启动文件中,植入远程控制服务,安装监视和控制装置,利用木马替换一些系统的服务或者记录一些对黑客有用的信息,比如记录下用户日志来告知入侵者管理员或者其他用户什么时候登陆过,进行了什么操作。

管理员可能会把日志隐藏到其他安全性较强的适当位置,来记录并发现入侵者,然而有些类似的工具也能绕过这种安装设置。这种工具最有威胁就在于可以让入侵者不被探测并跟踪到,却可以继续穿梭于整个系统中。

Below就是这一类型工具中很普通的一种,它能让黑客选择性的记录系统命令。

Tools of a Rootkit:
Backdoor:后门程序能方便黑客的下次入侵,通常它利用一个新的端口,以及自己创造的帐户;

Keylogger:记录整个系统中的特征,确保系统管理员没有发现入侵,同样能记录下其他用户的帐户信息;

hide/unhide tool , add user , schedule batch jobs , infect startup files;

remote control services/replace other apps with Trojans;






Gather sensitive information:

后门安装完毕后,黑客就可以从容地随时入侵目标系统了,他可以从服务器上收集所有他需要的信息。服务器上的数据,包括公司秘密,智力资源,源代码,记录客户信息的数据和员工信息等等都将轻而易举被黑客获得。

同样的,黑客也会利用已经入侵的服务器来进一步入侵,如果黑客利用被入侵的主机在整个网络中散播病毒或者攻击内部用户,那样的话后果将不堪设想。




Recovery:

尽管恢复系统的安全性是可能的,但是也是非成困难的。有很多工具可以帮助你完成检测并排除隐患,详细请参考:
http://staff.washington.edu/dittrich/misc/faqs/rootkits.faq

http://home.datacomm.ch/prutishauser/textz/backdoors/rootkits-desc.txt

http://www.fish.com/forensics/freezing.pdf





Conclusion:

从上面我们可以基本描述了黑客在入侵服务器时的每个步骤的基本轮廓。下一篇文章中我将更详细地讲述每一个步骤的细节,这篇文章主要是让大家了解一个安全的系统是如何被入侵的,以及黑客所必须做的事情。



OSPF Anatomy of an Internet Routing Protocol

  • 2010年03月26日 11:53
  • 2.64MB
  • 下载

Hadoop中MapReduce运行剖析-Anatomy of a MapReduce Job Run with Hadoop

你可以用一行简单的代码: JobClient.run(conf)来运行一个MapReduce的Job. 它非常短, 但是隐瞒了很多处理的过程. 这一章的内容将会揭露这些Hadoop运行Job中的步骤....

内存中的程序剖析 Anatomy of a Program in Memory

这是之前几篇我所翻译文章的作者的另外一系列关于内存管理相关的文章的第一篇。翻译并自我巩固学习。希望对其它同学也能有所帮助。 转载自:Gustavo Duarte的http://duartes.org...

ExtJs4.0的 数据模型刨析(Anatomy of a model)

本文翻译于extjs官方博客http://www.sencha.com/blog/ext-js-4-anatomy-of-a-model关于extjs4.0数据模型的文章。  如果你遵循Ext JS,...
  • lopool
  • lopool
  • 2013年08月17日 21:42
  • 536

XML(9) Anatomy of DTD

W3 schools reference and tutorial DTDs consist of three basic parts: Element declarati...

Anatomy of a Program in Memory(程序运行时内存结构)

转载自:http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory Memory management i...

Caffe入门(3)——Blob,Layer,and Nets:anatomy of a Caffe model

简述深度学习网络是一种组合模型,表示为相互关联的数据处理层的集合。Caffe把网络定义成一个层与层叠加的模式。一个网络模型需要从底层的输入数据到顶层的损失的整个模型。当数据和数据的派生物通过前向和反响...
  • picway
  • picway
  • 2016年09月13日 22:09
  • 373

The Anatomy of the SIFT method

  • 2014年02月21日 16:24
  • 1.9MB
  • 下载

The Anatomy of a Large-Scale Hypertextual

  • 2009年01月13日 18:36
  • 277KB
  • 下载

Vulnerability of SSL to Chosen-Plaintext Attack 读书报告

这篇文章讲述了在SSL上的选择明文攻击。我想分四个部分讲讲我对这篇文章的理解。 1.CPA的定义; 2.文章讲述SSL相关基本概念漏洞; 3.对SSL的CPA攻击的过程; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Anatomy of an Attack
举报原因:
原因补充:

(最多只允许输入30个字)