网络攻击原理与常用方法


前言

《孙子兵法》曰:“知己知彼,百战不殆”,网络攻击活动日益频繁,要掌握网络信息安全,应先了解网络威胁者的策略方法。


一,网络攻击概述

网络攻击是指使网络系统的机密性,完整性,可用性,可控性,真实性以及抗抵赖性收到破环,常见的攻击类型有:

  1. 信息泄露攻击
  2. 完整性破环攻击
  3. 拒绝服务攻击
  4. 非法使用攻击

网络攻击原理:网络攻击由攻击者发起,使用一定的攻击工具,通过某种访问方式,达到一定的攻击效果,实现某种攻击意图。

  1. 攻击者:间谍,恐怖主义者,黑客,职业犯罪分子,公司职员,破患者。
  2. 攻击工具:用户命令,脚本或程序,自治主体,电磁泄露
  3. 攻击访问:本地访问,远程访问
  4. 攻击效果:破环信息,信息泄密,窃取服务,拒绝服务
  5. 攻击意图:不同的攻击者有不同的攻击意图

网络攻击模型:

  1. 攻击树模型
  2. MITRE ATT&CK模型
  3. 网络杀伤链(KiLL Chain)模型

攻击树模型:该方法起源于故障分析方法。故障分析方法主要用于系统风险分析和系统可靠性分析。用AND-OR形式的结构对目标对象进行网络安全威胁分析。

Attack:
OR 1.Gain physical access to error
	AND 1.Gain physical access to data center
		2.Guess passwords
	OR  3.Perform password recovery
	2. Gain logical access to router
	OR  1.Comproise network manager system
		OR 	1.Exploit application layer vulnerability in server
			2.Hijack management traffic
		2.Login to router
		OR	1.Guess password
			2.Sniff password
			3.Hijack management session
			OR	1.Telnet
				2.SSH
				3.SNMP
				4.Social enginerring
		3.Exploit implementation flaw in protocol/application inrouter
		OR	1.Telnet
			2.SSH
			3.SNMP
			4.Proprietary management protocol

攻击树方法可以被Red Team用来进行渗透测试,同时也可以被Blue Team用来研究防御机制。
攻击树优点:

  1. 采用专家头脑风暴法,将这些意见融合到攻击树中去
  2. 能够进行费效分析或者概率分析
  3. 能够建模非常复杂的场景

攻击树缺点:

  1. 由于攻击树结构的内在限制,不能用来建模多重尝试攻击,时间依赖以及访问控制等场景
  2. 不能用来建模循环事件
  3. 对于现实中的大规模网络,攻击树方法处理起来特别复杂

MITRE ATT&Ck模型:MITRE根据真实观测到的网络攻击数据提炼形成攻击矩阵模型MITRE ATT&Ck,该模型把攻击活动抽象为:

  1. 初始访问Initial Access
  2. 执行Execution
  3. 持久化Persistence
  4. 特权提升Privilege Escalation
  5. 躲避防御 Defense Evasion
  6. 凭据访问Credential Access
  7. 发现Discovery
  8. 横向移动Lateral Movement
  9. 收集Collection
  10. 指挥和控制Command and Control
  11. 外泄Exfiltration
  12. 影响Impact

根据这些攻击活动,给出具体的实现方式。
基于MITRE ATT&Ck 常见的应用场景主要有网络红蓝对抗模拟,网路安全渗透测试,网络防御差距评估,网络威胁情报收集等。
网络杀伤链Kill Chain模型:洛克希德·马丁公司提出的网络杀伤链模型,该模型将网络攻击活动分成以下七个阶段:

  1. 目标侦察:研究,辨认和选择目标,通常利用爬虫获取网站信息,例如会议记录,电子邮件地址,社交关系或有关特定技术信息。
  2. 武器构造:将远程访问的特洛伊木马程序与可利用的有效载荷结合在一起。例如,利用Adobe PDF或Microsoft Office文档用作恶意代码载体。
  3. 载荷投送:把武器化有效载荷投送到目标环境,常见的投送方式包括利用电子邮件附件,网站和USB可移动介质。
  4. 漏洞利用:将攻击载荷投送到目标受害者主机后,漏洞利用通常针对应用程序或操作系统的漏洞,会触发恶意代码功能。
  5. 安装植入:在受害者目标系统上安装远程访问的特洛伊木马或后门程序,以持久性的控制目标系统。
  6. 指挥与控制:构造对目标系统的远程控制通道,实施远程指挥和操作。通常目标系统与互联网控制端服务器建立C2通道。
  7. 目标行动:采取行动执行攻击目标的任务,如从受害目标系统中收集,加密,提取信息并将其送到目标网络外;或者破环数据完整性以及危害目标系统;或者以目标系统为跳板,进行横向扩展渗透内部网络。

网络攻击的发展:
随着互联网的发展,攻击者从以前的单机系统为主转换到以网络及信息运行环境为主的攻击。攻击者通过制定攻击策略,使用各种各样的工具组合,甚至由软件自动完成目标攻击。以下是网络攻击的变化趋势:

  1. 网络攻击工具智能化,自动化
  2. 网络攻击者群体普适化
  3. 网络攻击目标多样化和隐蔽性
  4. 网络攻击计算资源获取方便
  5. 网络攻击活动持续性强化APT
  6. 网络攻击速度加快
  7. 网络攻击影响扩大
  8. 网络攻击主体组织化

二,网络攻击一般过程

网络攻击过程可以归纳为以下几个步骤:

  1. 隐藏攻击源:隐藏黑客主机位置使得系统管理无法追踪
  2. 收集攻击目标信息:确定攻击目标并收集目标系统的有关信息
  3. 挖掘漏洞信息:从收集到的目标信息中提取可使用的漏洞信息
  4. 获取目标访问权限:获取目标系统的普通用户或特权账户的权限
  5. 隐藏攻击行为:隐藏在目标系统中的操作,防止入侵行为被发现
  6. 实施攻击:进行破环活动或者以目标系统为跳板向其它系统发起新的攻击
  7. 开辟后门:在目标系统中开辟后门,方便以后入侵
  8. 清除攻击痕迹:避免安全管理员的发现,追踪以及法律部门取证
    以下分别介绍这些步骤;

1.隐藏攻击源:隐藏位置就是有效的保护自己,在因特网上的网络主机均有自己的网络地址,根据TCP/IP协议规定,若没有采取保护措施,攻击主机很容易被反查到位置,如IP地址和域名。因此,有经验的黑客在实施攻击活动时的首要步骤是设法隐藏自己所在的网络位置,包括自己的网络域及IP地址,使调查者难以发现真正的攻击者来源。攻击者常用以下技术隐藏他们真实的IP地址或者域名:

  1. 利用被入侵的主机作为跳板
  2. 免费代理网关
  3. 伪造IP地址
  4. 假冒用户账号

2.收集攻击目标信息:在发动一些攻击之前,攻击者一般先要确定攻击目标并收集目标系统的相关信息。他可能在一开始就确定了攻击目标,然后专门收集该目标的信息;也可能先大量地收集网上主机的信息,然后根据各系统的安全性强弱来确定最后的攻击目标。攻击者常常收集的目标系统信息如下:

  1. 目标系统一般信息:主要有目标系统的IP地址,DNS服务器,邮件服务器,网站服务器,操作系统软件类型及版本号,数据库软件类型及版本号,应用软件类型及版本号,系统开发商。
  2. 目标系统配置信息:主要有是否禁止root远程登录,缺省用户名/默认口令等。
  3. 目标系统的安全漏洞信息:主要是目标系统的有漏洞的软件及服务
  4. 目标系统的安全措施信息:主要是目标系统的安全厂商,安全产品等
  5. 目标系统的用户信息:主要是目标系统用户的邮件账号,社交网络账号,手机号,固定电话号码,照片,爱好等个人信息。

3.挖掘漏洞信息:系统中漏洞的存在是系统收到各种安全威胁的根本原因。外部攻击者主要利用了系统网络服务中的漏洞,内部人员则利用了系统内部服务及其配置上的漏洞。而拒绝服务攻击主要是利用资源的有限性及分配策略的漏洞,长期占用有限的资源不释放,使其它用户得不到应得的服务;或者是利用服务处理中的漏洞,使服务程序崩溃。攻击者的重要步骤就是尽量挖掘出系统的漏洞,并针对具体的漏洞研究相应的攻击方法。常用的漏洞挖掘技术方法有如下类容:

  1. 系统或应用服务软件漏洞:攻击者可以根据目标系统提供的不同服务,使用不同的方法以获取系统的访问权限。
  2. 主机信任关系漏洞:攻击者寻找那些被信任的主机,通常这些主机可能是管理员使用的机器,或是一台或是一台被认为很安全的服务器。
  3. 目标网络的使用者漏洞:尽量去发现有漏洞的网络使用者,堡垒最容易从内部攻破就是这个缘故。常见的攻击方法有:网络邮件钓鱼,用户弱口令破解,U盘摆渡攻击,网页恶意代码等。
  4. 通信协议漏洞:通过分析目标网络所采取的通信协议信息寻找漏洞,如IP协议中的地址伪造漏洞,Telnet/Http/Ftp/Pop3/SMTP等协议的明文传输信息漏洞。
  5. 网络业务系统漏洞:通过掌握目标网络的业务信息发现漏洞,如业务服务申请登记非实名漏洞。

4.获取目标访问权限:一般账户对目标系统只有有限的访问权限,要达到某些目的,攻击者必须拿到更多的权限。因此在获得一般账户之后,攻击者经常会视图获得跟高的权限,如系统管理员的权限。以下是获取系统管理员权限的途径:

  1. 获得系统管理员的口令:如专门针对root用户的口令攻击
  2. 利用系统管理上的漏洞:如错误的文件许可权,错误的系统配置,某些SUID程序中存在缓冲区溢出问题等。
  3. 让系统管理员运行一些特洛伊木马:如经过篡改之后的LOGIN程序等
  4. 窃听管理员口令

5.隐藏攻击行为:作为一个入侵者,攻击者总是唯恐自己的行踪被发现,所以在进入系统之后,聪明的攻击者要做的第一件事就是隐藏自己的行踪。攻击者隐藏自己的行踪的技术有:

  1. 连接隐藏:如冒充其它用户,修改LOGNAME环境变量,修改utmp日志文件,使用IP SPOOF技术等。
  2. 进程隐藏:如使用重定向技术减少ps给出的信息量,用特洛伊木马代替ps程序等
  3. 文件隐藏:如利用字符串相似麻痹系统管理员,或修改文件属性使得普通显示方法无法看到;利用操作系统可加载模块特性,隐藏攻击时所产生的信息。

6.实施攻击:不同的攻击者有不同的攻击目的,可能是为了获得机密文件的访问权,也可能是为了破环系统数据的完整性,还可能是为了获得整个系统的控制权(系统管理员权限)以及其它的目的等。一般来说,实施攻击的目标可归结为以下几种:

  1. 攻击其它被信任的主机和网络
  2. 修改或删除重要数据
  3. 窃听敏感数据
  4. 停止网络服务
  5. 下载敏感数据
  6. 删除数据账户
  7. 修改数据记录

7.开辟后门:一次成功的入侵通常要耗费大量的时间与精力,所以精于计算的攻击者在退出系统之前会在系统中制造一些后门,以方便自己下次入侵,攻击者设计后门时通常会考虑以下方法:

  1. 放宽文件许可权
  2. 重新开放不安全的服务,如REXD,TFTP等
  3. 修改系统配置,如系统启动文件,网络服务配置文件等
  4. 替换系统本身的共享库文件
  5. 修改系统的源代码,安装各种特洛伊木马
  6. 安装嗅探器
  7. 建立隐蔽信道

8.清除攻击痕迹:攻击者为了避免系统安全管理员的追踪,攻击时常会消除攻击痕迹,避免安全管理员或IDS发现,常用的方法有:

  1. 篡改日志文件中的审计信息
  2. 改变系统时间造成日志文件数据絮乱以迷惑系统管理员
  3. 删除或停止审计服务进程
  4. 干扰入侵检测系统的正常运行
  5. 修改完整性检测标签

三,网络攻击常见技术方法

1.端口扫描:端口扫描的目的是找出目标系统上提供的服务列表。端口扫描程序挨个尝试与TCP/UDP端口连接,然后根据端口与服务的对应关系,结合服务器端的反应推断出目标系统上是否运行了某项服务,攻击者通过这些服务可能获得关于目标系统的进一步的知识或通往目标系统的途径。根据端口扫描利用的技术,扫描可以分为多种类型:

  1. 完全连接扫描:完全连接扫描利用TCP/IP协议的三次握手机制,使源主机和目的主机的某个端口建立一次完整的连接。如果建立成功,则表明该端口开放。否则,表明该端口关闭。
  2. 半连接扫描:半连接扫描是指源主机和目的主机的三次握手连接过程中,只完成前两次握手,不建立一次完整的连接。
  3. SYN扫描:首先向目标主机发送连接请求,当目标主机返回响应后,立即切断连接过程,并查看响应情况。如果目标主机返回ACK信息,表示目标主机的该端口开放。如果目标主机返回RESET信息,表示该端口没有开放。
  4. ID头信息扫描:这种扫描方法需要用一台第三方机器配合扫描,并且这台机器的网络通信量非常少,即dumb主机。
  5. 隐蔽扫描:隐蔽扫描是指能够成功绕过IDS,防火墙和监视系统等安全机制,取得目标主机端口信息的一种扫描方式。
  6. SYN|ACK扫描:由源主机向目标主机的某个端口直接发送SYN|ACK数据包,而不是先发送SYN数据包。由于这种方法不发送SYN数据包,目标主机会认为这是一次错误的连接,从而会报错。如果目标主机的该端口没有开放,则会返回RST信息。如果目标主机的该端口处于开放状态LISTENING,则不会返回任何信息,而是直接将这个数据包抛弃掉。
  7. FIN扫描:源主机A向目标主机B发送FIN数据包,然后查看反馈信息。如果端口返回RESET信息,则说明该端口关闭。如果端口没有返回任何信息,则说明该端口开放。
  8. ACK扫描:首先由主机A向目标主机B发送FIN数据包,然后查看反馈数据包的TTL值和WIN值,开放端口所有返回的数据包的TTL值一般小于64,而关闭端口的返回值一般大于64。开放端口所有返回的数据包的WIN值一般大于0,而关闭端口的返回值一般等于0.
  9. NULL扫描:将源主机发送的数据包中的ACK,FIN,RST,SYN,URG,PSH等标志位全部置空。如果目标主机没有返回任何信息,则表明端口是开放的。如果返回RST信息,则表明该端口是关闭的。
  10. XMAS扫描 :XMSS扫描的原理和NULL扫描相同,只是将要发送的数据包中的ACK,FIN,RST,SYN,URG,PSH等头标志位全部置1。如果目标主机没有返回任何信息,则表明该端口是开放的,如果返回RST信息,则表明该端口是关闭的。网络端口扫描是攻击者必备的技术,通过扫描可以掌控目标的开放服务,根据扫描所获得的信息,为下一步的攻击做准备。

2.口令破解:口令机制是资源访问控制的第一道屏障。网络攻击者常常可以破解用户的弱口令为突破口,获取系统的访问权限。一些远程网络服务的口令破解软件开始出现,攻击者利用这些软件工具,进行远程猜测网络服务口令,其主要工作流程如下:

  1. 建立与目标网络服务的网络连接;
  2. 选取一个用户列表文件及字典文件
  3. 在用户列表文件及字典文件中,选取一组用户和口令,按网络服务协议规定,将用户名及口令发送给目标网络服务端口;
  4. 检测远程服务返回信息,确定口令尝试是否成功;
  5. 再取另一组用户和口令,重复循环试验,直至口令用户列表文件及字典文件选取完毕。

3.缓冲区溢出:缓冲区溢出攻击可以使攻击者有机会获得一台主机的部分或全部控制权。缓冲区溢出漏洞会给予攻击者控制程序执行流程的机会。攻击者将特意构造的攻击代码植入有缓冲区溢出漏洞的程序之中,改变漏洞程序的执行过程,就可以获得被攻击主机的控制权。
4.恶意代码:恶意代码是网络攻击常见的攻击手段。常见的恶意代码攻击类型有计算机病毒,网络蠕虫,特洛伊木马,后门,逻辑炸弹,僵尸网络
5.拒绝服务:拒绝服务攻击是指攻击者利用系统的缺陷,执行一些恶意的操作,使得合法的系统用户不能及时得到应得的服务或系统资源,如CPU的处理时间,存储器,网络带宽。

  1. 同步包风暴(SYN Flood):
  2. UDP洪水(UDP Flood):
  3. Smurf攻击:
  4. 垃圾邮件:
  5. 消耗CPU和内存资源的拒绝服务攻击:
  6. 死亡之PING(ping of death):
  7. 泪滴攻击(Teardrop Attack):
  8. 分布式拒绝服务攻击(Distributed Denial of Service Arrack):

6.网络钓鱼:网络钓鱼(Phishing)是一种通过可信方提供网上服务,以欺骗手段获取敏感个人信息的攻击方式。
7.网络窃听:网络窃听是指利用网络通信技术缺陷,使得攻击者能够获取到其他人的网络通信信息。常见的技术手段有网络嗅探,中间人攻击。
8.SQL注入:在Web服务中,一般采用三层构架模式:浏览器+Web服务器+数据库。网络攻击者把SQL命令插入Web表单的输入域或页面的请求查找字符串,欺骗服务器执行恶意的SQl命令。
9.社交工程:网络攻击者采用一系列的社交活动,获取需要的信息。
10.电子监听:网络攻击者采用电子设备远距离监视电磁波的传送过程。
11.会话劫持:会话劫持是指攻击者在初始授权之后建立一个连接,在会话劫持以后,攻击者具有合法用户的特权权限。最典型的是“TCP会话劫持”
12.漏洞扫描:漏洞扫描是一种自动检测远程或本地安全漏洞的软件,通过漏洞扫描器可以自动发现系统的安全漏洞。
13.代理技术:网络攻击者通过免费代理服务器进行攻击,其目的是以代理服务器为“攻击跳板”,即使攻击目标的网络管理员发现了,也难以追踪到攻击者的真实身份或IP地址。 --肉鸡
14.数据加密:网络攻击者常常采用数据加密技术来逃避网络安全管理人员的追踪。加密使网络攻击者的数据得到有效保护。攻击者的安全原则是,任何与攻击有关的内容都必须加密或者立刻销毁。

四,黑客常用工具

1.扫描器

  1. NMAP
  2. Nessus
  3. Super Scan

2.远程监控

  1. 冰河
  2. 网络精灵
  3. Netcat

3.密码破解

  1. John the Ripper
  2. LOphtCrack

4.网络嗅探器

  1. Tcpdump/WireShark
  2. DSniff

5.安全渗透工具箱

  1. Metasploit
  2. BackTrack5

总结

上面系统的介绍了网络攻击常见的技术方法和黑客常用的软件工具,相当于一次渗透测试或网络攻击。渗透测试是网络安全的一个分支,后面我会出一些关于利用这些技术进行具体的渗透测试。个人比较喜欢这个方向,希望大佬可以批评指正,可以和志同道合的朋友们一起学习。

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BabyOne~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值