第2章 网络攻击原理与常用方法
第2章 网络攻击原理与常用方法
2.1.1 网络攻击概念
网络攻击是指损害网络系统安全属性的危害行为。危害行为导致网络系统的机密性、完整性、可用性、可控性、真实性、抗抵赖性等受到不同程度的破坏。常见的危害行为有四个基本类型:
- 信息泄露攻击
- 完整性破坏攻击
- 拒绝服务攻击
- 非法使用攻击
- 攻击者
根据网络攻击来源,攻击者可分成两大类:内部人员和外部人员。根据网络攻击的动机与目的,常见的攻击者可以分为六种:间谍、恐怖主义者、黑客、职业犯罪分子、公司职员和破坏者。 - 攻击工具
- 用户命令
- 脚本或程序
- 自治主体
- 电磁泄漏
- 攻击访问
攻击者为了达到攻击目的,一定要访问目标网络系统,包括合法和非法的访问。 - 攻击效果
攻击效果包括以下几种:- 破坏信息
- 信息泄露
- 窃取服务
- 拒绝服务
- 攻击意图
- 黑客
- 间谍
- 恐怖主义者
- 公司职员
- 职业犯罪分子
- 破坏者
2.1.2 网络攻击模型
目前,常见的网络攻击模型主要如下。
1. 攻击树模型
攻击树方法起源于故障树分析方法。Schneier首先基于软件故障树方法提出了攻击树的概念,用AND-OR形式的树结构对目标对象进行网络安全威胁分析。
2. MITRE ATT&CK模型
MITRE根据真实观察到的网络攻击数据提炼形成攻击矩阵模型MITRE ATT&CK,该模型把攻击活动抽象为初始访问(Initial Access)、执行(Execution)、持久化(Persistence)、特权提升(Privilege Escalation)、躲避防御(Defense Evasion)、凭据访问(Credential Access)、发现(Discovery)、横向移动(Lateral Movement)、收集(Collection)、指挥和控制(Command and Control)、外泄(Exfiltration)、影响(Imapct),然后给出攻击活动的具体实现方式,详见MITRE官方地址链接。基于MITRE ATT&CK常见的应用场景主要有网络红蓝对抗模拟、网络安全渗透测试、网络防御差距评估、网络威胁情报收集等。
3. 网络杀伤链(Kill Chain)模型
洛克希德*马丁公司提出的网络杀伤链模型(简称Kill Chain模型),该模型将网络攻击活动分成目标侦察(Reconnaissance)、武器构造(Weaponization)、载荷投送(Delivery)、漏洞利用(Exploitation)、安装植入(Installation)、指挥和控制(Command and Control)、目标行动(Action Objectives)等七个阶段。
2.1.3 网络攻击发展
- 网络攻击工具智能化、自动化
- 网络攻击者群体普适化
- 网络攻击目标多样化和隐蔽性
- 网络攻击计算资源获取方便
- 网络攻击活动持续性强化
- 网络攻击速度加快
- 网络攻击影响扩大
- 网络攻击主体组织化
2.2 网络攻击一般过程
本文把网络攻击过程归纳为以下几个步骤:
- 隐藏攻击源
- 收集攻击目标信息
- 挖掘漏洞信息
- 获取目标访问权限
- 隐蔽攻击行为
- 实施攻击
- 开辟后门
- 清除攻击㾗迹
2.2.1 隐藏攻击源
攻击者常用如下技术隐藏他们真实的IP地址或者域名:
- 利用被侵入的主机作为跳板
- 免费代理网关
- 伪造IP地址
- 假冒用户帐号
2.2.2 收集攻击目标信息
攻击者常常收集的目标系统信息如下:
- 目标系统一般信息,主要有目标系统的IP地址、DNS服务器、邮件服务器、网站服务器、操作系统软件类型及版本号、数据库软件类型及版本号、应用软件类型及版本号、软件开发商等;
- 目标系统配置信息,主要有系统是否禁止root远程登录、缺省用户名/默认口令等;
- 目标系统的安全漏洞信息,主要是目标系统的有漏洞的软件及服务;
- 目标系统的安全措施信息,主要是目标系统的安全厂商、安全产品等;
- 目标系统的用户信息,主要是目标系统用户的邮件帐号、社交网帐号、手机号、固定电话号码、照片、爱好等个人信息。
2.2.3 挖掘漏洞信息
常用的漏洞挖掘技术方法有如下内容:
- 系统或应用服务软件漏洞
- 主机信任关系漏洞
- 目标网络的使用者漏洞
- 通信协议漏洞
- 网络业务系统漏洞
2.2.4 获取目标访问权限
获取系统管理权限通常有以下途径:
- 获得系统管理员的口令,如专门针对root用户的口令攻击;
- 利用系统管理上的漏洞,如错误的文件许可权,错误的系统配置,某些SUID程序中存在的缓冲区溢出问题等;
- 让系统管理员运行一些特洛伊木马,如经篡改之后的LOGIN程序等;
- 窃听管理员口令;
2.2.5 隐藏攻击行为
攻击者隐藏自己的攻击行踪通常要用到下面这些技术:
- 连接隐藏,如冒充其他用户、修改LOGNAME环境变量、修改utmp日志文件、使用IP SPOOF技术等。
- 进程隐藏,如使用重定向技术减少ps给出的信息量、用特洛伊木马代替ps程序等。
- 文件隐藏,如利用字符串相似麻痹系统管理员,或修改文件属性使得普通显示方法无法看到;利用操作系统可加载模块特性,隐瞒攻击时所产生的信息。
2.2.6 实施攻击
一般来说,实施攻击的目标可归结为以下几种:
- 攻击其他被信任的主机和网络;
- 修改或删除重要数据;
- 窃听敏感数据;
- 停止网络服务;
- 下载敏感数据;
- 删除数据帐号;
- 修改数据记录;
2.2.7 开辟后门
攻击者设计时通常会考虑以下方法:
- 放宽文件许可权;
- 重新开放不安全的服务;
- 修改系统的配置,如系统启动文件、网络服务配置文件等;
- 替换系统本身的共享库文件;
- 修改系统的源代码,安装各种特洛伊木马;
- 安装嗅探器;
- 建立隐蔽通道;
2.2.8 清除攻击痕迹
常用的方法有:
- 篡改日志文件中的审计信息;
- 改变系统时间造成日志文件数据紊乱以迷惑系统管理员;
- 删除或停止审计服务进程;
- 干扰入侵系统的正常运行;
- 修改完整性检测标签。
2.3 网络攻击常见技术方法
2.3.1 端口扫描
根据端口扫描利用的技术,扫描可以分成多种类型,下面分别叙述。
- 完全连接扫描
- 半连接扫描
- SYN扫描
- ID头信息扫描
- 隐蔽扫描
- SYN|ACK扫描
- FIN扫描
- ACK扫描
- NULL扫描
- XMAS扫描
2.3.2 口令破解
进行远程猜测网络服务口令,其主要工作流程如下:
第一步,建立与目标网络服务的网络连接;
第二步,选取一个用户列表文件与字典文件;
第三步,在用户列表文件及字典文件中,选取一组用户和口令,按网络服务协议规定,将用户名及口令发送给目标网络服务端口;
第四步,检测远程服务返回信息,确定口令尝试是否成功;
第五步,再取另一组用户和口令,重复循环试验,直至口令用户列表文件及字典文件选取完毕。
2.3.3 缓冲区溢出
缓冲区溢出攻击使攻击者有机会获得一台主机的部分或全部的控制权。
2.3.4 恶意代码
常见的恶意代码类型有计算机病毒、网络蠕虫、特洛伊木马、后门、逻辑炸弹、僵尸网络等。
2.3.5 拒绝服务
拒绝服务攻击是指攻击者利用系统的缺陷,执行一些恶意的操作,使得合法的系统用户不能及时得到应得的服务或系统资源,如CPU处理时间、存储器、网络带宽等。
- 同步包风暴(SYN Flood)
- UDP洪水(UDP Flood)
- Smurf攻击
- 垃圾邮件
- 消耗CPU和内存资源的拒绝服务攻击
- 死亡之ping(ping of death)
- 泪滴攻击(Teardrop Attack)
- 分布式拒绝服务攻击(Distributed Denial of Service Attack)
2.3.6 网络钓鱼
网络钓鱼(Phishing)是一种通过假冒可信方(知名银行、在线零售商和信用卡公司等可信的品牌)提供网上服务,以欺骗手段获取敏感个人信息(如口令、信用卡详细信息等)的攻击方式。
2.3.7 网络窃听
网络窃听是指利用网络通信技术缺陷,使得攻击者能够获取到其他人的网络通信信息。常见的网络窃听技术手段主要有网络嗅探、中间人攻击。
2.3.8 SQL注入
2.3.9 社交工程
网络攻击者通过一系列的社交活动,获取需要的信息。
2.3.10 电子监听
网络攻击者采用电子设备远距离地监视电磁波的传送过程。灵敏的无线电接收装置能够在远处看到计算机操作者输入的字符或屏幕显示的内容。
2.3.11 会话劫持
会话劫持是指攻击者在初始授权之后建立一个连接,在会话劫持以后,攻击者具有合法用户的特权权限。
2.3.12 漏洞扫描
漏洞扫描是一种自动检测远程或本地主机安全漏洞的软件,通过漏洞扫描器可以自动发现系统的安全漏洞。
2.3.13 代理技术
网络攻击者通过免费代理服务器进行攻击,其目的是以代理服务器为“攻击跳板”,即使攻击目标的网络管理员发现了,也难以追踪到网络攻击者的真实身份或IP地址,为了增加跟踪的难度,网络攻击者还会用多级代理服务器或者“跳板主机”来攻击目标。
2.3.14 数据加密
网络攻击者学学采用数据加密技术来逃避网络安全管理人员的追踪。
2.4 黑客常用工具
本节主要介绍网络攻击常常采用的工具,主要包括扫描器、远程监控、密码破解、网络嗅探器、安全渗透工具等。
2.4.1 扫描器
扫描器正如黑客的眼睛,通过扫描程序,黑客可以找到攻击目标的IP地址、开放的端口号、服务器运行的版本、程序中可能存在的漏洞等。
下面弄出几种经典的扫描软件:
- NMAP NMap(Network Map)即网络地图,通过NMap可以检测网络上主机的开放端口号、主机的操作系统类型以及提供的网络服务。
- Nessus Nessus早期是免费的、开放源代码的远程安全扫描器、可运行在Linux操作系统平台上,支持多线程和插件。目前,该工具已商业化。
- SuperScan SupperScan是一款具有TCP connect端口扫描、Ping和域名解析等功能的工具,能较容易地对指定范围内的IP地址进行Ping和端口扫描。
2.4.2 远程监控
远程监控实际上是在受害机器上运行一个代理软件,而在黑客的电脑中运行管理软件,受害机器受控于黑客的管理端。受害机器通常被称为“肉鸡”,其经常被用于发起DDoS拒绝服务攻击或作为攻击跳板。常见的远程监控工具有冰河、网络精灵、Netcat。
2.4.3 密码破解
常见的密码破解方式有口令猜测、穷举搜索、撞库等。
密码破解的常见工具如下:
- John the Ripper John the Ripper用于检查Unix/Linux系统的弱口令,支持几乎所有Unix平台上经crypt函数加密后的口令哈希类型。
- LOphtCrack LOphtCrack 常用于破解Windows系统口令,含有词典攻击、组合攻击、强行攻击等多种口令猜测方法。
2.4.4 网络嗅探器
网络嗅探器(Network Sniffer)是一种黑客攻击工具,通过网络嗅探,黑客可以截获网络的信息包,之后对加密的信息包进行破解,进而分析包内的数据,获得有关系统的信息。
常见的网络嗅探工具有Tcpdump、Dsniff、WireShark等。
- Tcpdump/WireShark Tcpdump是基于命令行的网络包分析软件,可以作为网络嗅探工具,能把匹配规则的数据包内容显示出来。而WireShark则提供图形化的网络数据包分析功能,可视化地展示网络数据包的内容。
- DSniff DSniff是由Dug Song开发的一套包含多个工具的软件套件,包括dsniff、filenarf、mailsnarf、msgsnarf、rlsnarf和webspy。使用DSniff可以获取口令、邮件、文件等信息。
2.4.5 安全渗透工具箱
-
Metasploit
Metasploit是一个开源渗透测试工具,提供漏洞查找、漏洞利用、漏洞验证等服务功能。Metasploit支持1500多个漏洞挖掘利用,提供OWASP TOP10漏洞测试。 -
BackTrack5
BackTrack集成了大量的安全工具软件,支持信息收集、漏洞评估、漏洞利用、特权提升、保持访问、逆向工程、压力测试。