本文目录一览:
在对一个网站进行渗透测试时要用到哪些工具
要做网站渗透测试,首先我们要明白以下几点:
1、什么叫渗透测试?
渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
2、进行渗透测试的目的?
了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。
3、渗透测试是否等同于风险评估?
不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分。
4、渗透测试是否就是黑盒测试?
否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。
5、渗透测试涉及哪些内容?
技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
6、渗透测试有哪些不足之处?
主要是投入高,风险高。而且必须是专业的网络安全团队(或公司,像网堤安全)才能相信输出的最终结果。
看完以上内容,相信大家已经明白渗透测试是不能光靠工具的,还要有专业的人员才行。推荐还是选择专攻网络安全这一块的公司或团队进行。
入侵检测的分类情况
入侵检测系统所采用的技术可分为特征检测与异常检测两种。 (警报)
当一个入侵正在发生或者试图发生时,IDS系统将发布一个alert信息通知系统管理员。如果控制台与IDS系统同在一台机器,alert信息将显示在监视器上,也可能伴随着声音提示。如果是远程控制台,那么alert将通过IDS系统内置方法(通常是加密的)、SNMP(简单网络管理协议,通常不加密)、email、SMS(短信息)或者以上几种方法的混合方式传递给管理员。 (异常)
当有某个事件与一个已知攻击的信号相匹配时,多数IDS都会告警。一个基于anomaly(异常)的IDS会构造一个当时活动的主机或网络的大致轮廓,当有一个在这个轮廓以外的事件发生时,IDS就会告警,例如有人做了以前他没有做过的事情的时候,例如,一个用户突然获取了管理员或根目录的权限。有些IDS厂商将此方法看做启发式功能,但一个启发式的IDS应该在其推理判断方面具有更多的智能。 (IDS硬件)
除了那些要安装到现有系统上去的IDS软件外,在市场的货架上还可以买到一些现成的IDS硬件,只需将它们接入网络中就可以应用。一些可用IDS硬件包括CaptIO、Cisco Secure IDS、OpenSnort、Dragon以及SecureNetPro。 ArachNIDS是由Max Visi开发的一个攻击特征数据库,它是动态更新的,适用于多种基于网络的入侵检测系统。
ARIS:Attack Registry Intelligence Service(攻击事件注册及智能服务)
ARIS是SecurityFocus公司提供的一个附加服务,它允许用户以网络匿名方式连接到Internet上向SecurityFocus报送网络安全事件,随后SecurityFocus会将这些数据与许多其它参与者的数据结合起来,最终形成详细的网络安全统计分析及趋势预测,发布在网络上。它的URL地址是。 (攻击)
Attacks可以理解为试图渗透系统或绕过系统的安全策略,以获取信息、修改信息以及破坏目标网络或系统功能的行为。以下列出IDS能够检测出的最常见的Internet攻击类型:
攻击类型1-DOS(Denial Of Service attack,拒绝服务攻击):DOS攻击不是通过黑客手段破坏一个系统的安全,它只是使系统瘫痪,使系统拒绝向其用户提供服务。其种类包括缓冲区溢出、通过洪流(flooding)耗尽系统资源等等。
攻击类型2-DDOS(Distributed Denial of Service,分布式拒绝服务攻击):一个标准的DOS攻击使用大量来自一个主机的数据向一个远程主机发动攻击,却无法发出足够的信息包来达到理想的结果,因此就产生了DDOS,即从多个分散的主机一个目标发动攻击,耗尽远程系统的资源,或者使其连接失效。
攻击类型3-Smurf:这是一种老式的攻击,还时有发生,攻击者使用攻击目标的伪装源地址向一个smurf放大器广播地址执行ping操作,然后所有活动主机都会向该目标应答,从而中断网络连接。
攻击类型4-Trojans(特洛伊木马):Trojan这个术语来源于古代希腊人攻击特洛伊人使用的木马,木马中藏有希腊士兵,当木马运到城里,士兵就涌出木马向这个城市及其居民发起攻击。在计算机术语中,它原本是指那些以合法程序的形式出现,其实包藏了恶意软件的那些软件。这样,当用户运行合法程序时,在不知情的情况下,恶意软件就被安装了。但是由于多数以这种形式安装的恶意程序都是远程控制工具,Trojan这个术语很快就演变为专指这类工具,例如BackOrifice、SubSeven、NetBus等等。 (自动响应)
除了对攻击发出警报,有些IDS还能自动抵御这些攻击。抵御方式有很多:首先,可以通过重新配置路由器和防火墙,拒绝那些来自同一地址的信息流;其次,通过在网络上发送reset包切断连接。但是这两种方式都有问题,攻击者可以反过来利用重新配置的设备,其方法是:通过伪装成一个友方的地址来发动攻击,然后IDS就会配置路由器和防火墙来拒绝这些地址,这样实际上就是对“自己人”拒绝服务了。发送reset包的方法要求有一个活动的网络接口,这样它将置于攻击之下,一个补救的办法是:使活动网络接口位于防火墙内,或者使用专门的发包程序,从而避开标准IP栈需求。 (Computer Emergency Response Team,计算机应急响应小组)
这个术语是由第一支计算机应急反映小组选择的,这支团队建立在Carnegie Mellon大学,他们对计算机安全方面的事件做出反应、采取行动。许多组织都有了CERT,比如CNCERT/CC(中国计算机网络应急处理协调中心)。由于emergency这个词有些不够明确,因此许多组织都用Incident这个词来取代它,产生了新词Computer Incident Response Team(CIRT),即计算机事件反应团队。response这个词有时也用handling来代替,其含义是response表示紧急行动,而非长期的研究。 (Common Intrusion Detection Framework;通用入侵检测框架)
CIDF力图在某种程度上将入侵检测标准化,开发一些协议和应用程序接口,以使入侵检测的研究项目之间能够共享信息和资源,并且入侵检测组件也能够在其它系统中再利用。 (Computer Incident Response Team,计算机事件响应小组)
CIRT是从CERT演变而来的,CIRT代表了对安全事件在哲学认识上的改变。CERT最初是专门针对特定的计算机紧急情况的,而CIRT中的术语incident则表明并不是所有的incidents都一定是emergencies,而所有的emergencies都可以被看成是incidents。 (Common Intrusion Specification Language,通用入侵规范语言)
CISL是CIDF组件间彼此通信的语言。由于CIDF就是对协议和接口标准化的尝试,因此CISL就是对入侵检测研究的语言进行标准化的尝试。 (Common Vulnerabilities and Exposures,通用漏洞披露)
关于漏洞的一个老问题就是在设计扫描程序或应对策略时,不同的厂商对漏洞的称谓也会完全不同。还有,一些产商会对一个漏洞定义多种特征并应用到他们的IDS系统中,这样就给人一种错觉,好像他们的产品更加有效。MITRE创建了CVE,将漏洞名称进行标准化,参与的厂商也就顺理成章按照这个标准开发IDS产品。 (自定义数据包)
建立自定义数据包,就可以避开一些惯用规定的数据包结构,从而制造数据包欺骗,或者使得收到它的计算机不知该如何处理它。 (同步失效)
Desynchronization这个术语本来是指用序列数逃避IDS的方法。有些IDS可能会对它本来期望得到的序列数感到迷惑,从而导致无法重新构建数据。这一技术在1998年很流行,已经过时了,有些文章把desynchronization这个术语代指其它IDS逃避方法。 (列举)
经过被动研究和社会工程学的工作后,攻击者就会开始对网络资源进行列举。列举是指攻击者主动探查一个网络以发现其中有什么以及哪些可以被他利用。由于行动不再是被动的,它就有可能被检测出来。当然为了避免被检测到,他们会尽可能地悄悄进行。 (躲避)
Evasion是指发动一次攻击,而又不被IDS成功地检测到。其中的窍门就是让IDS只看到一个方面,而实际攻击的却是另一个目标,所谓明修栈道,暗渡陈仓。Evasion的一种形式是为不同的信息包设置不同的TTL(有效时间)值,这样,经过IDS的信息看起来好像是无害的,而在无害信息位上的TTL比要到达目标主机所需要的TTL要短。一旦经过了IDS并接近目标,无害的部分就会被丢掉,只剩下有害的。 (漏洞利用)
对于每一个漏洞,都有利用此漏洞进行攻击的机制。为了攻击系统,攻击者编写出漏洞利用代码或脚本。
对每个漏洞都会存在利用这个漏洞执行攻击的方式,这个方式就是Exploit。为了攻击系统,黑客会利用漏洞编写出程序。
漏洞利用:Zero Day Exploit(零时间漏洞利用)
零时间漏洞利用是指还未被了解且仍在肆意横行的漏洞利用,也就是说这种类型的漏洞利用当前还没有被发现。一旦一个漏洞利用被网络安全界发现,很快就会出现针对它的补丁程序,并在IDS中写入其特征标识信息,使这个漏洞利用无效,有效地捕获它。 (漏报)
漏报是指一个攻击事件未被IDS检测到或被分析人员认为是无害的。
False Positives(误报)
误报是指实际无害的事件却被IDS检测为攻击事件。
Firewalls(防火墙)
防火墙是网络安全的第一道关卡,虽然它不是IDS,但是防火墙日志可以为IDS提供宝贵信息。防火墙工作的原理是根据规则或标准,如源地址、端口等,将危险连接阻挡在外。 (Forum of Incident Response and Security Teams,事件响应和安全团队论坛)
FIRST是由国际性政府和私人组织联合起来交换信息并协调响应行动的联盟,一年一度的FIRST受到高度的重视。 (分片)
如果一个信息包太大而无法装载,它就不得不被分成片断。分片的依据是网络的MTU(Maximum Transmission Units,最大传输单元)。例如,灵牌环网(token ring)的MTU是4464,以太网(Ethernet)的MTU是1500,因此,如果一个信息包要从灵牌环网传输到以太网,它就要被分裂成一些小的片断,然后再在目的地重建。虽然这样处理会造成效率降低,但是分片的效果还是很好的。黑客将分片视为躲避IDS的方法,另外还有一些DOS攻击也使用分片技术。 (启发)
Heuristics就是指在入侵检测中使用AI(artificial intelligence,人工智能)思想。真正使用启发理论的IDS已经出现大约10年了,但他们还不够“聪明”,攻击者可以通过训练它而使它忽视那些恶意的信息流。有些IDS使用异常模式去检测入侵,这样的IDS必须要不断地学习什么是正常事件。一些产商认为这已经是相当“聪明”的IDS了,所以就将它们看做是启发式IDS。但实际上,真正应用AI技术对输入数据进行分析的IDS还很少很少。 (Honeynet工程)
Honeynet是一种学习工具,是一个包含安全缺陷的网络系统。当它受到安全威胁时,入侵信息就会被捕获并接受分析,这样就可以了解黑客的一些情况。Honeynet是一个由30余名安全专业组织成员组成、专门致力于了解黑客团体使用的工具、策略和动机以及共享他们所掌握的知识的项目。他们已经建立了一系列的honeypots,提供了看似易受攻击的Honeynet网络,观察入侵到这些系统中的黑客,研究黑客的战术、动机及行为。 (蜜罐)
蜜罐是一个包含漏洞的系统,它模拟一个或多个易受攻击的主机,给黑客提供一个容易攻击的目标。由于蜜罐没有其它任务需要完成,因此所有连接的尝试都应被视为是可疑的。蜜罐的另一个用途是拖延攻击者对其真正目标的攻击,让攻击者在蜜罐上浪费时间。与此同时,最初的攻击目标受到了保护,真正有价值的内容将不受侵犯。
蜜罐最初的目的之一是为起诉恶意黑客搜集证据,这看起来有“诱捕”的感觉。但是在一些国家中,是不能利用蜜罐收集证据起诉黑客的。 (IDS分类)
有许多不同类型的IDS,以下分别列出:
IDS分类1-Application IDS(应用程序IDS):应用程序IDS为一些特殊的应用程序发现入侵信号,这些应用程序通常是指那些比较易受攻击的应用程序,如Web服务器、数据库等。有许多原本着眼于操作系统的基于主机的IDS,虽然在默认状态下并不针对应用程序,但也可以经过训练,应用于应用程序。例如,KSE(一个基于主机的IDS)可以告诉我们在事件日志中正在进行的一切,包括事件日志报告中有关应用程序的输出内容。应用程序IDS的一个例子是Entercept的Web Server Edition。
IDS分类2-Consoles IDS(控制台IDS):为了使IDS适用于协同环境,分布式IDS代理需要向中心控制台报告信息。许多中心控制台还可以接收其它来源的数据,如其它产商的IDS、防火墙、路由器等。将这些信息综合在一起就可以呈现出一幅更完整的攻击图景。有些控制台还将它们自己的攻击特征添加到代理级别的控制台,并提供远程管理功能。这种IDS产品有Intellitactics Network Security Monitor和Open Esecurity Platform。
IDS分类3-File Integrity Checkers(文件完整性检查器):当一个系统受到攻击者的威胁时,它经常会改变某些关键文件来提供持续的访问和预防检测。通过为关键文件附加信息摘要(加密的杂乱信号),就可以定时地检查文件,查看它们是否被改变,这样就在某种程度上提供了保证。一旦检测到了这样一个变化,完整性检查器就会发出一个警报。而且,当一个系统已经受到攻击后,系统管理员也可以使用同样的方法来确定系统受到危害的程度。以前的文件检查器在事件发生好久之后才能将入侵检测出来,是“事后诸葛亮”,出现的许多产品能在文件被访问的同时就进行检查,可以看做是实时IDS产品了。该类产品有Tripwire和Intact。
IDS分类4-Honeypots(蜜罐):关于蜜罐,前面已经介绍过。蜜罐的例子包括Mantrap和Sting。
IDS分类5-Host-based IDS(基于主机的IDS):这类IDS对多种来源的系统和事件日志进行监控,发现可疑活动。基于主机的IDS也叫做主机IDS,最适合于检测那些可以信赖的内部人员的误用以及已经避开了传统的检测方法而渗透到网络中的活动。除了完成类似事件日志阅读器的功能,主机IDS还对“事件/日志/时间”进行签名分析。许多产品中还包含了启发式功能。因为主机IDS几乎是实时工作的,系统的错误就可以很快地检测出来,技术人员和安全人士都非常喜欢它。基于主机的IDS就是指基于服务器/工作站主机的所有类型的入侵检测系统。该类产品包括Kane Secure Enterprise和Dragon Squire。
IDS分类6-Hybrid IDS(混合IDS):现代交换网络的结构给入侵检测操作带来了一些问题。首先,默认状态下的交换网络不允许网卡以混杂模式工作,这使传统网络IDS的安装非常困难。其次,很高的网络速度意味着很多信息包都会被NIDS所丢弃。Hybrid IDS(混合IDS)正是解决这些问题的一个方案,它将IDS提升了一个层次,组合了网络节点IDS和Host IDS(主机IDS)。虽然这种解决方案覆盖面极大,但同时要考虑到由此引起的巨大数据量和费用。许多网络只为非常关键的服务器保留混合IDS。有些产商把完成一种以上任务的IDS都叫做Hybrid IDS,实际上这只是为了广告的效应。混合IDS产品有CentraxICE和RealSecure Server Sensor。
IDS分类7-Network IDS(NIDS,网络IDS):NIDS对所有流经监测代理的网络通信量进行监控,对可疑的异常活动和包含攻击特征的活动作出反应。NIDS原本就是带有IDS过滤器的混合信息包嗅探器,但是它们变得更加智能化,可以破译协议并维护状态。NIDS存在基于应用程序的产品,只需要安装到主机上就可应用。NIDS对每个信息包进行攻击特征的分析,但是在网络高负载下,还是要丢弃些信息包。网络IDS的产品有SecureNetPro和Snort。
IDS分类8-Network Node IDS(NNIDS,网络节点IDS):有些网络IDS在高速下是不可靠的,装载之后它们会丢弃很高比例的网络信息包,而且交换网络经常会妨碍网络IDS看到混合传送的信息包。NNIDS将NIDS的功能委托给单独的主机,从而缓解了高速和交换的问题。虽然NNIDS与个人防火墙功能相似,但它们之间还有区别。对于被归类为NNIDS的个人防火墙,应该对企图的连接做分析。例如,不像在许多个人防火墙上发现的“试图连接到端口xxx”,一个NNIDS会对任何的探测都做特征分析。另外,NNIDS还会将主机接收到的事件发送到一个中心控制台。NNIDS产品有BlackICE Agent和Tiny CMDS。
IDS分类9-Personal Firewall(个人防火墙):个人防火墙安装在单独的系统中,防止不受欢迎的连接,无论是进来的还是出去的,从而保护主机系统。注意不要将它与NNIDS混淆。个人防火墙有ZoneAlarm和Sybergen。
IDS分类10-Target-Based IDS(基于目标的IDS):这是不明确的IDS术语中的一个,对不同的人有不同的意义。可能的一个定义是文件完整性检查器,而另一个定义则是网络IDS,后者所寻找的只是对那些由于易受攻击而受到保护的网络所进行的攻击特征。后面这个定义的目的是为了提高IDS的速度,因为它不搜寻那些不必要的攻击。 (Intrusion Detection Working Group,入侵检测工作组)
入侵检测工作组的目标是定义数据格式和交换信息的程序步骤,这些信息是对于入侵检测系统、响应系统以及那些需要与它们交互作用的管理系统都有重要的意义。入侵检测工作组与其它IETF组织协同工作。 (事件处理)
检测到一个入侵只是开始。更普遍的情况是,控制台操作员会不断地收到警报,由于根本无法分出时间来亲自追踪每个潜在事件,操作员会在感兴趣的事件上做出标志以备将来由事件处理团队来调查研究。在最初的反应之后,就需要对事件进行处理,也就是诸如调查、辩论和起诉之类的事宜。 (事件响应)
对检测出的潜在事件的最初反应,随后对这些事件要根据事件处理的程序进行处理。 (孤岛)
孤岛就是把网络从Internet上完全切断,这几乎是最后一招了,没有办法的办法。一个组织只有在大规模的病毒爆发或受到非常明显的安全攻击时才使用这一手段。 (混杂模式)
默认状态下,IDS网络接口只能看到进出主机的信息,也就是所谓的non-promiscuous(非混杂模式)。如果网络接口是混杂模式,就可以看到网段中所有的网络通信量,不管其来源或目的地。这对于网络IDS是必要的,但同时可能被信息包嗅探器所利用来监控网络通信量。交换型HUB可以解决这个问题,在能看到全面通信量的地方,会都许多跨越(span)端口。
Routers(路由器)
路由器是用来连接不同子网的中枢,它们工作于OSI 7层模型的传输层和网络层。路由器的基本功能就是将网络信息包传输到它们的目的地。一些路由器还有访问控制列表(ACLs),允许将不想要的信息包过滤出去。许多路由器都可以将它们的日志信息注入到IDS系统中,提供有关被阻挡的访问网络企图的宝贵信息。 (扫描器)
扫描器是自动化的工具,它扫描网络和主机的漏洞。同入侵检测系统一样,它们也分为很多种,以下分别描述。
扫描器种类1-NetworkScanners(网络扫描器):网络扫描器在网络上搜索以找到网络上所有的主机。传统上它们使用的是ICMP ping技术,但是这种方法很容易被检测出来。为了变得隐蔽,出现了一些新技术,例如ack扫描和fin扫描。使用这些更为隐蔽扫描器的另一个好处是:不同的操作系统对这些扫描会有不同的反应,从而为攻击者提供了更多有价值的信息。这种工具的一个例子是nmap。
扫描器种类2-Network Vulnerability Scanners(网络漏洞扫描器):网络漏洞扫描器将网络扫描器向前发展了一步,它能检测目标主机,并突出一切可以为黑客利用的漏洞。网络漏洞扫描器可以为攻击者和安全专家使用,但会经常让IDS系统“紧张”。该类产品有Retina和CyberCop。
扫描器种类3-Host VulnerabilityScanners(主机漏洞扫描器):这类工具就像个有特权的用户,从内部扫描主机,检测口令强度、安全策略以及文件许可等内容。网络IDS,特别是主机IDS可以将它检测出来。该类产品有SecurityExpressions,它是一个远程Windows漏洞扫描器,并且能自动修复漏洞。还有如ISS数据库扫描器,会扫描数据库中的漏洞。 (脚本小子)
有些受到大肆宣扬的Internet安全破坏,如2000年2月份对Yahoo的拒绝服务攻击,是一些十来岁的中学生干的,他们干这些坏事的目的好象是为了扬名。安全专家通常把这些人称为脚本小子(Script Kiddies)。脚本小子通常都是一些自发的、不太熟练的cracker,他们使用从Internet 上下载的信息、软件或脚本对目标站点进行破坏。黑客组织或法律实施权威机构都对这些脚本小孩表示轻蔑,因为他们通常都技术不熟练,手上有大把时间可以来搞破坏,他们的目的一般是为了给他们的朋友留下印象。脚本小子就像是拿着抢的小孩,他们不需要懂得弹道理论,也不必能够制造枪支,就能成为强大的敌人。因此,无论何时都不能低估他们的实力。 (躲避)
躲避是指配置边界设备以拒绝所有不受欢迎的信息包,有些躲避甚至会拒绝来自某些国家所有IP地址的信息包。 (特征)
IDS的核心是攻击特征,它使IDS在事件发生时触发。特征信息过短会经常触发IDS,导致误报或错报,过长则会减慢IDS的工作速度。有人将IDS所支持的特征数视为IDS好坏的标准,但是有的产商用一个特征涵盖许多攻击,而有些产商则会将这些特征单独列出,这就会给人一种印象,好像它包含了更多的特征,是更好的IDS。大家一定要清楚这些。 (隐藏)
隐藏是指IDS在检测攻击时不为外界所见,它们经常在DMZ以外使用,没有被防火墙保护。它有些缺点,如自动响应。
如何对网站进行渗透测试和漏洞扫描
零、前言
渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethical hacking),因此我们这里的所有读者应当都是Ethical Hackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员 ;)
这里,我还想对大家说一些话:渗透测试重在实践,您需要一颗永不言败的心和一个有着活跃思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。
一、简介
什么叫渗透测试?
渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
进行渗透测试的目的?
了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是很成功的了。
渗透测试是否等同于风险评估?
不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。
已经进行了安全审查,还需要渗透测试吗?
如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?
渗透测试是否就是黑盒测试?
否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。
渗透测试涉及哪些内容?
技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
渗透测试有哪些不足之处?
主要是投入高,风险高。而且必须是专业的Ethical Hackers才能相信输出的最终结果。
你说的那么好,为什么渗透测试工作在中国开展的不是很火热呢?
我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果就是完善的。用户不知道花了钱证明了系统有问题以后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且经验丰富的安全团队的,这个在中国问题比较严重。在我接触了一些大型的安全公司进行的一些渗透测试过程来看,测试人员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不负责的。我估计在三年以后,这种情况会有所改观,到时一方面安全人员的技术力量有很大程度的改观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的方式加入到开发流程中去。渗透测试的专业化、商业化会越来越成熟。
二、制定实施方案
实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:
目标系统介绍、重点保护对象及特性。
是否允许数据破坏?
是否允许阻断业务正常运行?
测试之前是否应当知会相关部门接口人?
接入方式?外网和内网?
测试是发现问题就算成功,还是尽可能的发现多的问题?
渗透过程是否需要考虑社会工程?
。。。
在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:
实施方案部分:
...
书面委托授权部分:
...
三、具体操作过程
1、信息收集过程
网络信息收集:
在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)。
1.使用whois查询目标域名的DNS服务器
2.nslookup
set type=all
domain
server ns server
set q=all
ls -d domain
涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs 除此之外,我想特别提醒一下使用Googlebot/2.1绕过一些文件的获取限制。
Google hacking 中常用的一些语法描述
1.搜索指定站点关键字site。你可以搜索具体的站点如site:。使用site:nosec.org可以搜索该域名下的所有子域名的页面。甚至可以使用site:org.cn来搜索中国政府部门的网站。
2.搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以尝试用inurl:asp?id=
3.搜索在网页标题中的关键字intitle。如果你想搜索一些登陆后台,你可以尝试使用intitle:"admin login"
目标系统信息收集:
通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。
从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。
端口/服务信息收集:
这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap
1.我最常使用的参数
nmap -sS -p1-10000 -n -P0 -oX filename.xml --open -T5 ip address
应用信息收集:httprint,SIPSCAN,smap
这里有必要将SNMP拿出来单独说一下,因为目前许多运营商、大型企业内部网络的维护台通过SNMP进行数据传输,大部分情况是使用了默认口令的,撑死改了private口令。这样,攻击者可以通过它收集到很多有效信息。snmp-gui,HiliSoft MIB Browser,mibsearch,net-snmp都是一些很好的资源。
2、漏洞扫描
这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:
针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光
针对WEB应用层面的工具有:AppScan, Acunetix Web Vulnerability Scanner, WebInspect, Nstalker
针对数据库的工具有:ShadowDatabaseScanner, NGSSQuirreL
针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225, Sivus, sipsak等。
事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。
3、漏洞利用
有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rm, securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称 exploit”、“应用名称 vulnerability”等关键字。
当然,大部分情况下你都可以不这么麻烦,网络中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top 100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,CORE IMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。
上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI, OWASP SQLiX, SQL Power Injector, sqlDumper, sqlninja, sqlmap, Sqlbftools, priamos, ISR-sqlget***等等。
在针对数据库方面的工具有:
数据库 工具列表 Oracle(1521端口): 目前主要存在以下方面的安全问题:
1、TNS监听程序攻击(sid信息泄露,停止服务等)
2、默认账号(default password list)
3、SQL INJECTION(这个与传统的意思还不太一样)
4、缓冲区溢出,现在比较少了。 thc-orakel, tnscmd, oscanner, Getsids, TNSLSNR, lsnrcheck, OAT, Checkpwd, orabf MS Sql Server(1433、1434端口) Mysql(3306端口) DB2(523、50000、50001、50002、50003端口) db2utils Informix(1526、1528端口)
在针对Web服务器方面的工具有:
WEB服务器 工具列表 IIS IISPUTSCANNER Tomcat 想起/admin和/manager管理目录了吗?另外,目录列表也是Tomcat服务器中最常见的问题。比如5.*版本中的;index.jsp
"../manager/html
;cookievalue=%5C%22FOO%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2F%3B
;cookievalue=%5C%22A%3D%27%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2Fservlets-examples%2Fservlet+%3B JBOSS jboss的漏洞很少,老版本中8083端口有%符号的漏洞:
GET %. HTTP/1.0可以获取物理路径信息,
GET %server.policy HTTP/1.0可以获取安全策略配置文档。
你也可以直接访问GET %org/xxx/lib.class来获取编译好的java程序,再使用一些反编译工具还原源代码。 Apache Resin
;servletpath=file=WEB-INF/web.xml
;servletpath=file=WEB-INF/classes/com/webapp/app/target.class
[path]/[device].[extension]
.."web-inf
[path]/%20.xtp WebLogic
Web安全测试主要围绕几块进行:
Information Gathering:也就是一般的信息泄漏,包括异常情况下的路径泄漏、文件归档查找等
Business logic testing:业务逻辑处理攻击,很多情况下用于进行业务绕过或者欺骗等等
Authentication Testing:有无验证码、有无次数限制等,总之就是看能不能暴力破解或者说容不容易通过认证,比较直接的就是“默认口令”或者弱口令了
Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效
Data Validation Testing:数据验证最好理解了,就是SQL Injection和Cross Site Script等等
目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分主要有:
枚举(Enumeration): DirBuster, http-dir-enum, wget
基于代理测试类工具:paros, webscarab, Burp Suite
针对WebService测试的部分有一些尚不是很成熟的工具,如:wsbang,wschess,wsmap,wsdigger,wsfuzzer
这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等)目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。
在针对无线环境的攻击有:WifiZoo
4、权限提升
在前面的一些工作中,你或许已经得到了一些控制权限,但是对于进一步攻击来说却还是不够。例如:你可能很容易的能够获取Oracle数据库的访问权限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你发现你没有足够的权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你甚至没有权限执行一些很基本的命令。这时候你自然而然的就会想到权限提升这个途径了。
目前一些企业对于补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些服务器或者应用进行补丁更新,或者是延时更新。这时候就是渗透测试人员的好机会了。经验之谈:有一般权限的Oracle账号或者AIX账号基本上等于root,因为这就是现实生活。
5、密码破解
有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。最简单的说,一个缺少密码完全策略的论证系统就等于你安装了一个不能关闭的防盗门。很多情况下,一些安全技术研究人员对此不屑一顾,但是无数次的安全事故结果证明,往往破坏力最大的攻击起源于最小的弱点,例如弱口令、目录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个ethical hacker来说,这一步骤是有必要而且绝大部分情况下是必须的。;)
目前比较好的网络密码暴力破解工具有:thc-hydra,brutus
hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121 ftp
目前网络中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T。
针对此种方式对外提供在线服务的有:
网址 描述 rainbowcrack 里面对应了多种加密算法的HASH。 数据量全球第一,如果本站无法破解,那么你只能去拜春哥...
当然,有些单机破解软件还是必不可少的:Ophcrack,rainbowcrack(国人开发,赞一个),cain,L0phtCrack(破解Windows密码),John the Ripper(破解UNIX/LINUX)密码,当然,还少不了一个FindPass...
针对网络设备的一些默认帐号,你可以查询和
在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。
6、日志清除
It is not necessary actually.
7、进一步渗透
攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。
除此之外,你可以直接回到第二步漏洞扫描来进行。
四、生成报告
报告中应当包含:
薄弱点列表清单(按照严重等级排序)
薄弱点详细描述(利用方法)
解决方法建议
参与人员/测试时间/内网/外网
五、测试过程中的风险及规避
在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须提供规避措施以免对系统造成重大的影响。以下一些可供参考:
1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。
2. 测试验证时间放在业务量最小的时间进行。
3. 测试执行前确保相关数据进行备份。
4. 所有测试在执行前和维护人员进行沟通确认。
5. 在测试过程中出现异常情况时立即停止测试并及时恢复系统。
6. 对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。
简述入侵检测常用的四种方法
入侵检测系统所采用的技术可分为特征检测与异常检测两种。
1、特征检测
特征检测(Signature-based detection) 又称Misuse detection ,这一检测假设入侵者活动可以用一种模式来表示,系统的目标是检测主体活动是否符合这些模式。
它可以将已有的入侵方法检查出来,但对新的入侵方法无能为力。其难点在于如何设计模式既能够表达“入侵”现象又不会将正常的活动包含进来。
2、异常检测
异常检测(Anomaly detection) 的假设是入侵者活动异常于正常主体的活动。根据这一理念建立主体正常活动的“活动简档”,将当前主体的活动状况与“活动简档”相比较,当违反其统计规律时,认为该活动可能是“入侵”行为。
异常检测的难题在于如何建立“活动简档”以及如何设计统计算法,从而不把正常的操作作为“入侵”或忽略真正的“入侵”行为。
扩展资料
入侵分类:
1、基于主机
一般主要使用操作系统的审计、跟踪日志作为数据源,某些也会主动与主机系统进行交互以获得不存在于系统日志中的信息以检测入侵。
这种类型的检测系统不需要额外的硬件.对网络流量不敏感,效率高,能准确定位入侵并及时进行反应,但是占用主机资源,依赖于主机的可靠性,所能检测的攻击类型受限。不能检测网络攻击。
2、基于网络
通过被动地监听网络上传输的原始流量,对获取的网络数据进行处理,从中提取有用的信息,再通过与已知攻击特征相匹配或与正常网络行为原型相比较来识别攻击事件。
此类检测系统不依赖操作系统作为检测资源,可应用于不同的操作系统平台;配置简单,不需要任何特殊的审计和登录机制;可检测协议攻击、特定环境的攻击等多种攻击。
但它只能监视经过本网段的活动,无法得到主机系统的实时状态,精确度较差。大部分入侵检测工具都是基于网络的入侵检测系统。
3、分布式
这种入侵检测系统一般为分布式结构,由多个部件组成,在关键主机上采用主机入侵检测,在网络关键节点上采用网络入侵检测,同时分析来自主机系统的审计日志和来自网络的数据流,判断被保护系统是否受到攻击。
参考资料来源:百度百科-入侵检测