- 网络攻击概述
- 网络攻击一般过程
- 网络攻击常见技术方法 ※※
- 黑客常用工具 ※
- 网络攻击案列分析
本章要记的内容有点多,主要是常见的技术方法和黑客工具。选择题一般会问到攻击方式,起码要大致知道攻击方式的原理
本章选择题3-5分 案例好像不会考(从往年来看)
2.1网络攻击方法概述
2.1.1 网络攻击概念
网络攻击是指损害网络系统安全属性的危害行为。危害行为导致网络系统的机密性、完整性、可用性、可控性、真实性、抗抵赖性等受到不同程度的破坏。
常见的危害行为有四个基本类型:
安全攻击依据破坏行为可以分为四类
攻击工具可以分为四类。
网络攻击:危害计算机系统和设备、计算机网络、信息安全性或可用性的破坏行为
。
端口扫描:出现在选择题
缓冲区溢出:出现在案例题
2.1.2 网络攻击模型(了解即可)
掌握网络攻击模型有助于更好地理解网络攻击活动,以便对目标系统的抗攻击能力进行测评。目前常见的网络攻击模型如下
- 攻击树模型
攻击树的优点:能够采取专家头脑风暴法,并且将这些意见融合到攻击树中去;能够进行费效分析或者概率分析;能够建模非常复杂的攻击场景
攻击树的缺点:由于树结构的内在限制,攻击树不能用来建模多重尝试攻击、时间依赖及访问控制等场景;不能用来建模循环事件;对于现实中的大规模网络,攻击树方法处理起来会很复杂
- MIRE ATT & CK 模型
该模型把攻击活动抽象为初始访问(Initial Access) 、执行(Execution) 、持久化(Persistence) 、特权提升(Privilege Escalation)、躲避防御(Defense Evasion)、凭据访问(Credential Access) 、发现(Discovery)、横向移动(Lateral Movement)、收集(Collection) 、指挥和控制(Commandand Control) 、外泄Exiltration)、 影响(Impact)
- 网络杀伤链(Kill Chain)模型
洛克希德·马丁公司提出的网络杀伤链模型(简称Kil1Chain模型),该模型将网络攻击活动分成目标侦察(Reconnaissance)、武器构造(Weaponization)、载荷投送(Delivery)漏洞利用(Exploitation)、安装植入(Installation)、指挥和控制(Command and Control)、目标行动(Actions on Objectives)等七个阶段。
网络攻击模型主要用于分析攻击活动、评测目标系统的抗攻击能力。主要攻击模型分为三种,如表所示。
主要是网络红蓝对抗,渗透测试时用到
2.1.3 网络攻击发展
1.网络攻击工具智能化、自动化
2.网络攻击者群体普适化
3.网络攻击目标多样化和隐蔽性
4.网络攻击计算资源获取方便
5.网络攻击活动持续性强化
6.网络攻击速度加快
7.网络攻击影响扩大
8.网络攻击主体组织化
2.2网络攻击的一般过程(熟悉,起码要能有自己的理解,能复述)
前4是进入目标系统前,后4是进入后
- 隐藏攻击源(隐藏自己,使用代理服务器、肉机、跳板,使得系统管理员无法追踪)
- 收集攻击目标的信息(操作系统版本,数据库等目标系统相关信息)
- 挖掘目标的漏洞信息(从收集到的目标信息中提取可使用的漏洞信息)
- 获取目标的访问权限(获取目标系统的普通或特权账户的权限)
- 隐藏攻击行为(通过加密等措施)
- 实施攻击(进行破坏活动或者以目标系统为跳板向其他系统发起新的攻击)
- 开辟后门(为了方便下一次的进攻、连接目标主机)
- 清除攻击痕迹(避免被网络管理员发现、追踪以及法律部门取证)
2.2.1隐藏攻击源
攻击者常用如下技术隐藏他们真实的IP地址或者域名:
- 利用被侵入的主机作为跳板:
- 免费代理网关;
- 伪造IP地址;
- 假冒用户账号。
2.2.2 收集攻击目标信息
在发动一些攻击之前,攻击者一般要先确定攻击目标并收集目标系统的相关信息。攻击者常常收集的目标系统信息如下:
- 目标系统一般信息,主要有目标系统的IP地址、DNS服务器、邮件服务器、网站服务器、操作系统软件类型及版本号、数据库软件类型及版本号、应用软件类型及版本号、系统开发商等;
- 目标系统配置信息,主要有系统是否禁止root远程登录、缺省用户名/默认口令等;
- 目标系统的安全漏洞信息,主要是目标系统的有漏洞的软件及服务;
- 目标系统的安全措施信息,主要是目标系统的安全厂商、安全产品等;
- 目标系统的用户信息,主要是目标系统用户的邮件账号、社交网账号、手机号、固定电话号码、照片、爱好等个人信息。
2.2.3 挖掘漏洞信息
系统中漏洞的存在是系统受到各种安全威胁的根本原因。
1.系统或应用服务软件漏洞
攻击者可以根据目标系统提供的不同服务,使用不同的方法以获取系统的访问权限
2.主机信任关系漏洞
攻击者寻找那些被信任的主机,通常这些主机可能是管理员使用的机器,或是一台被认为很安全的服务器。比如,攻击者可以利CG的漏洞,读取/etc/hosts.allow 文件等。
3.目标网络的使用者漏洞
尽量去发现有漏洞的网络使用者,这对攻击者来说往往能起到事半功倍的效果,堡垒最容易从内部攻破就是这个缘故。常见的攻击方法主要有网络邮件钓鱼、用户弱口令破解、U盘摆渡攻击、网页恶意代码等。
4.通信协议漏洞
通过分析目标网络所采用的协议信息寻找漏洞,如IP协议中的地址伪造漏洞Telnet/Http/Ftp/POP3/SMTP 等协议的明文传输信息漏洞。
5.网络业务系统漏洞
通过掌握目标网络的业务信息发现漏洞,如业务服务申请登记非实名漏洞。
2.2.4 获取目标访问权限
一般账户对目标系统只有有限的访问权限,要达到某些目的,攻击者必须拿到更多的权限。
- 获得系统管理员的口令,如专门针对root用户的口令攻击;
- 利用系统管理上的漏洞,如错误的文件许可权,错误的系统配置,某些SUID程序中存在的缓冲区溢出问题等;
- 让系统管理员运行一些特洛伊木马,如经篡改之后的 LOGIN 程序等:
- 窃听管理员口令。
2.2.5 隐蔽攻击行为
作为一个入侵者,攻击者总是唯恐自己的行踪被发现,所以在进入系统之后,聪明的攻击者要做的第一件事就是隐藏自己的行踪,攻击者隐藏自己的行踪通常要用到下面这些技术:
- 连接隐藏,如冒充其他用户、修改LOGNAME 环境变量、修改 utmp 日志文件、使用IP SPOOF 技术等。
- 进程隐藏,如使用重定向技术减少ps给出的信息量、用特洛伊木马代替ps程序等。
- 文件隐蔽,如利用字符串相似麻痹系统管理员,或修改文件属性使得普通显示方法无法看到:利用操作系统可加载模块特性,隐瞒攻击时所产生的信息。
2.2.6 实施攻击
不同的攻击者有不同的攻击目的,可能是为了获得机密文件的访问权,也可能是为了破坏系统数据的完整性,还可能是为了获得整个系统的控制权(系统管理权限)以及其他目的等。
一般来说,实施攻击的目标可归结为以下几种:
- 攻击其他被信任的主机和网络;
- 修改或删除重要数据;
- 窃听敏感数据:
- 停止网络服务:
- 下载敏感数据:
- 删除数据账号;
- 修改数据记录·
2.2.7 开辟后门
一次成功的入侵通常要耗费攻击者大量的时间与精力,所以精于算计的攻击者在退出系统之前会在系统中制造一些后门,以方便自己下次入侵,攻击者设计后门时通常会考虑以下方法:
- 放宽文件许可权;
- 重新开放不安全的服务,如REXD、TFTP等;
- 修改系统的配置,如系统启动文件、网络服务配置文件等;
- 替换系统本身的共享库文件;
- 修改系统的源代码,安装各种特洛伊木马;
- 安装嗅探器
- 建立隐蔽信道。
2.2.8 清除攻击痕迹
攻击者为了避免系统安全管理员追踪,攻击时常会消除攻击痕迹,避免安全管理员或IDS发现,常用的方法有:
- 篡改日志文件中的审计信息;
- 改变系统时间造成日志文件数据紊乱以迷惑系统管理员;
- 删除或停止审计服务进程:
- 干扰入侵检测系统的正常运行;
- 修改完整性检测标签、
2.3网络攻击常见技术方法
本节主要介绍常见的网络攻击技术方法。
网络常见的攻击:
端口扫描、口令破解、
缓冲区溢出、恶意代码、
拒绝服务、网络钓鱼、
网络窃听、SQL注入、
社会工程、代理技术、
电子监听、会话劫持、
漏洞扫描、数据加密等。
2.3.1端口扫描
攻击者利用端口扫描,了解目标主机打开了哪些端口,就能知道目标主机提供什么服务。端口扫描也可以用于目标主机的风险评估。
1.完全连接扫描
完全连接扫描利用 TCP/P 协议的三次握手连接机制,使源主机和目的主机的某个端口建立一次完整的连接。如果建立成功,则表明该端口开放。否则,表明该端口关闭。
2.半连接扫描
半连接扫描是指在源主机和目的主机的三次握手连接过程中,只完成前两次握手,不建立一次完整的连接。
3.SYN 扫描
首先向目标主机发送连接请求,当目标主机返回响应后,立即切断连接过程,并查看响应情况。如果目标主机返回 ACK信息,表示目标主机的该端口开放。如果目标主机返回 RESET信息,表示该端口没有开放。
4.ID 头信息扫描
这种扫描方法需要用一台第三方机器配合扫描,并且这台机器的网络通信量要非常少,即dumb 主机。
首先由源主机 A向 dumb 主机B发出连续的PING 数据包,并且查看主机B返回的数据包的 ID头信息。一般而言,每个顺序数据包的 ID头的值会增加 1。然后由源主机 A 假冒主机 B的地址向目的主机C的任意端口(1~65535)发送SYN数据包。这时,主机C向主机B发送的数据包有两种可能的结果:
- SYN|ACK表示该端口处于监听状态。
- RST|ACK表示该端口处于非监听状态。
那么,由后续 PING 数据包的响应信息的ID 头信息可以看出,如果主机 ℃的某个端口是开放的,则主机 B返回 A的数据包中,D头的值不是递增1,而是大于1。如果主机C的某个端口是非开放的,则主机B返回A的数据包中,ID头的值递增1,非常规律。
5.隐蔽扫描
隐蔽扫描是指能够成功地绕过 DDS、防火墙和监视系统等安全机制,取得目标主机端口信息的一种扫描方式。
6.SYN|ACK 扫描
由源主机向目标主机的某个端口直接发送 SYNIACK 数据包,而不是先发送 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 扫描
XMAS 扫描的原理和 NULL 扫描相同,只是将要发送的数据包中的 ACK、FIN、RST、SYN、URG、PSH 等头标志位全部置成1。如果目标主机没有返回任何信息,则表明该端口是开放的如果返回 RST 信息,则表明该端口是关闭的。
网络端口扫描是攻击者必备的技术,通过扫描可以掌握攻击目标的开放服务,根据扫描所获得的信息,为下一步的攻击做准备。
2.3.2口令破解
口令也叫密码,口令破解是指在不知道密钥的情况下,恢复出密文中隐藏的明文信息的过程。
1.口令攻击类型
(1)字典攻击:在破解密码或口令时,逐一尝试字典文件中的可能密码的攻击方式。字典是根据用户的各种信息建立的可能使用的口令的列表文件。
(2)强行攻击:尝试使用字母、数字、特殊字符所有的组合破解口令的方式。这种攻击比较耗费时间。
(3)组合攻击:结合字典攻击和强行攻击的攻击方法。
2.口令攻击的防护
要想有效防范口令攻击,就要选择强度较高的口令(最好包含大小写字母、数字、特殊字符);
定期更改口令;
公共场合慎用口令;
不同系统使用不同口令。
此外,一些远程网络服务的口令破解软件也开始出现,攻击者利用这些软件工具,进行远程猜测网络服务口令,其主要工作流程如下:
第一步,建立与目标网络服务的网络连接;
第二步,选取一个用户列表文件及字典文件;
第三步,在用户列表文件及字典文件中,选取一组用户和口令,按网络服务协议规定,将用户名及口令发送给目标网络服务端口;
第四步,检测远程服务返回信息,确定口令尝试是否成功;
第五步,再取另一组用户和口令,重复循环试验,直至口令用户列表文件及字典文件选取完毕。
2.3.3缓冲区溢出
缓冲溢出(Buffer Overflow)攻击的基本原理是向缓冲区中写入超长的预设内容,导致缓冲区溢出,覆盖其他正常的程序或数据,然后计算机转而运行该预设内容,达到执行非法操作的目的。
(1)定义。
缓冲区:应用程序保存用户的输入数据、临时数据的内存空间。
缓冲区溢出:用户的输入数据超出了程序为其分配的内存空间,那么超出部分数据就会覆盖其他内存空间,造成缓冲区溢出。
(2)攻击后果。缓冲区攻击可能的结果:
引发系统崩溃。过长的数据覆盖了相邻的存储单元,引起程序运行失败,严重的导致系统崩溃;
利用缓冲区漏洞执行命令,甚至取得root权限。最常见的结果是通过缓冲区溢出使程序运行一个shell程序,再通过shell执行其他命令。如果程序具有root权限,攻击者shell也有root权限,就可任意操作系统。
(3)内存结构
1)程序区:放置程序代码。
2)数据区:包含初始的全局变量和静态变量(static变量)。
3)BSS (Block Started by Symbol)区:存放未初始化的全局变量。
4)堆区:存储函数动态内存分配,堆区地址空间“向上增长”,即堆保存数据越多,堆地址越高。堆数据结构类似于树。C、C++语言中的malloc、calloc、realloc、new、free等函数所操作的内存就是放于堆区。堆内存一般由程序员释放,也可以在程序结束时由操作系统释放。
5)栈区:函数的局部变量、函数参数(不包括static变量)及返回值。栈区地址空间“向下增长”。栈数据结构属于“后进先出”,即最后进栈的数据,最先离栈。
函数的局部变量在栈中是一个紧接一个的排列。如果局部变量中有数组变量,而程序中没有对数组越界操作的判断,那么越界的数组元素就可能破坏栈中的相邻变量、EBP、返回地址的值。
(6)防范缓冲区溢出策略。
常用的函数strcpy()、sprintf()、strcat()、vsprintf()、gets()、scanf()以及在循环内的函数getc()、fgetc()、getchar()等都非常容易导致缓冲区溢出。
防范缓冲溢出的策略有:
系统管理防范策略:关闭不必要特权程序、及时打好系统补丁。
软件开发的防范策略:正确编写代码、使用工具检查代码、缓冲区不可执行、改写C语言函数库、静态分析进行程序指针完整性检查、堆栈向高地址方向增长等。
2.3.4恶意代码
恶意代码(Unwanted Code)是指没有作用却会带来危险的代码,是网络攻击常见的攻击手段。
2.3.5拒绝服务
拒绝服务(Denial of Service,DoS)即攻击者想办法让目标机器停止提供服务或资源访问。
拒绝服务攻击有如下几种主要模式:
消耗资源:这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。
篡改配置:修改系统、设备配置信息改变系统提供服务方式。
物理破坏:破坏物理设施,使得被攻击对象拒绝服务。
利用处理程序错误:利用服务程序的错误,使得服务进入死循环。
2.服务端口攻击
服务端口攻击就是向主机开放端口发送大量数据,从而使得主机不能提供正常服务。
( 1 ) 同步包风暴(SYN Flood)。
TCP连接的三次握手中,如果一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答后则无法收到客户端的ACK报文(TCP连接的第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后,丢弃本次未完成的连接。一般来说,这个等待时间(SYNTimeout)大约为30s到2min。
一次异常导致服务器一个线程等待1分钟并不是什么很大的问题,但如果出现多次恶意模拟这类情况(伪造成被攻击服务器的IP),那么该服务器就要耗费大量的CPU时间和内存,往往会造成服务器的堆栈溢出而崩溃,即使服务器端的系统足够强大,也会无法响应正常用户的正常请求。这类情况就称为服务器端受到了SYN Flood攻击(SYN洪水攻击)。
针对SYN Flood攻击的解决方法有:
- 优化系统配置:减少超时等待时间,增加半连接队列长度,尽量关闭不需要的服务。
- 优化路由器配置:配置路由器的外网口,丢弃来自外网而源IP地址是内网地址的包;配置路由器的内网口,丢弃即将发到外网而源IP地址不是内网地址的包。
- 使用防火墙。
- 使用流控设备。
(2 ) UDP 洪水(UDP Flood)
利用大量的伪造源地址的小UDP报文,攻击DNS、Radius等服务器。
(3) Smurf攻击。
Smurf攻击是以最初发动这种攻击的程序名“Smurf”来命名的。Smurf攻击结合使用了IP欺骗和ICMP回复方法,使大量数据传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。
Smurf攻击将ICMP应答请求(ping)数据包的回复地址设置成被攻击网络的广播地址,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。
目前大部分网络对该攻击已经免疫。
(4)电子邮件轰炸。
电子邮件轰炸是最早的一种拒绝服务攻击,也是一种针对SMTP服务端口(25号端口)的攻击方式。其表现形式是在很短时间内发送大量无用的电子邮件,导致服务器瘫痪。
防范电子邮件轰炸的办法有:
识别邮件炸弹的源头,配置路由器或者防火墙,不让源头数据通过。
(5)消耗 CPU 和内存资源的拒绝服务攻击
利用目标系统的计算算法漏洞,构造恶意输入数据集,导致目标系统的CPU或内存资源耗尽,从而使目标系统瘫痪,如 Hash DoS。
(6)利用处理程序错误的拒绝服务攻击。
这种攻击包含Ping of Death、Teardrop、Winnuke、Land攻击等攻击。Ping of Death:攻击者故意发送大于65535字节的IP数据包给对方。当许多操作系统收到一个特大号的IP包时,操作系统往往会宕机或重启。目前,操作系统已经免疫Ping of Death攻击了。
Teardrop:工作原理是向被攻击者发送多个分片的IP包(IP分片数据包中包括该分片数据包属于哪个数据包以及在数据包中的位置等信息),某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。
WinnukD:Winnuke是利用NetBIOS协议中一个OOB(Out of Band)的漏洞。它的原理是通过TCP/IP协议传递一个设置了URG标志的紧急数据包到计算机的137、138或139端口,有些系统收到这类数据包之后就会瞬间死机、蓝屏或网络功能瘫痪。
Land:Land攻击是一种使用相同的源和目的主机及端口发送数据包到某台机器的攻击。通常存在漏洞的被攻击主机陷入死循环,降低了系统性能。
(7)泪滴攻击(Teardrop Attack)
泪滴攻击暴露出IP数据包分解与重组的弱点。当IP 数据包在网络中传输时,会被分解成许多不同的片传送,并借由偏移量字段(OfsetField)作为重组的依据。泪滴攻击通过加入过多或不必要的偏移量字段,使计算机系统重组错乱,产生不可预期的后果。
(8)DoS、DDoS、LDoS
1)拒绝服务(Denial of Service,DoS):利用大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。例如,驻留在多个网络设备上的程序在短时间内同时产生大量的请求消息,冲击某Web服务器,导致该服务器不堪重负,无法正常响应其他合法用户的请求,这类形式的攻击就称为DoS攻击。
2)分布式拒绝服务攻击(Distributed Denial of Service,DDoS):很多DoS攻击源一起攻击某台服务器就形成了DDoS攻击。
DDoS攻击的特点有:
1)被攻击主机上有大量等待的TCP连接。
2)大量TCP、UDP数据分组不是现有服务连接,往往指向机器的任意端口。
3)网络中充斥着大量无用数据包,源地址是假冒地址。
4)网络出现大流量无用数据,造成网络拥塞。
5)利用受害主机上的服务和协议缺陷,反复发出服务请求,使受害主机无法及时处理正常请求。
防范DDoS和DoS的措施有:根据IP地址对特征数据包进行过滤,寻找数据流中的特征字符串,统计通讯的数据量,IP逆向追踪,监测不正常的高流量,使用更高级别的身份认证。
3)低速率拒绝服务攻击(Low-rate DoS,LDoS):
LDoS不需要维持高频率攻击,耗尽被攻击者所有可用资源,而是利用网络协议或应用服务机制(如TCP的拥塞控制机制)中的安全漏洞,周期性地在一个特定的短暂时间间隔内突发性地发送大量攻击数据包,从而降低被攻击者服务性能。
防范LDoS攻击的方法有:
基于协议的防范
基于攻击流特征检测的防范,
2.3.6网络钓鱼
网络钓鱼(Phishing)是通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出敏感信息(如用户名、口令、信用卡详细信息等)的一种攻击方式。它是“社会工程攻击”的一种形式。
网络钓鱼攻击的常用手段:
社会工程学
假冒电商网站
假冒网银
假冒证券网站
2.3.7网络窃听
网络监听是一种监视网络状态、数据流程以及网络上信息传输的技术。
黑客则可以通过侦听,发现有兴趣的信息,比如用户名、密码等。
1.共享以太网的网络监听原理
网卡是计算机的通信设备,有以下几种状态:
Unicast(单播):该模式下,网卡接收目的地址为本网卡地址的报文。
Broadcast(广播):该模式下,网卡接收广播报文。
Multicast (组播):该模式下,网卡接收特定组播报文。
Promiscuous(混杂模式):该模式下,网卡接收所有报文。
共享以太网采用的是广播通信方式,因此,网卡设置为混杂模式时,可以接收该网内的所有报文,进而对报文内容进行分析。正常情况要么是广播要么是单播要么是组播
2.Sniffer
Sniffer是一种网络流量分析和监听的工具。该工具有软硬件两种形式。
Sniffer需工作在共享以太网下,同时Sniffer本机的网卡需设置为混杂模式。
类似Sniffer的工具还有wireshark、Tcpdump等。
3.交换式网络上的监听
交换式网络中,报文中能被精确送到目的主机端口,而不需要广播。所以,交换式网络能一定程度地抵御Sniffer的监听。
但如果网络所有设备把Sniffer当成了网关的话,Sniffer还是能接收到网段内的所有数据。这种方式称为“中间人”攻击。
--比如双向的ARP欺骗能做到
4.无线局域网上的监听
无线局域网的无线传播方式和开放性,让网络监听变得更方便。无线局域网的监听只需要被动接受信息,具有很强的隐蔽性。
5.网络监听的防范
加强系统安全,避免主机或者网关被攻破,从而被监听或者被“中间人”攻击;通信信息加密,即使被抓取到数据,也很难还原为有用的明文。对于安全性要求较高的情况,采用Kerberos机制,即通信前进行身份认证,通信中数据加密。
2.3.8 SQL注入
SQL注入就是把SQL命令插入到Web表单提交、域名输入栏、页面请求的查询字符串中,最终欺骗服务器执行涉及好的恶意SQL命令。
1.SQL注入原理
Web程序的后台大部分是SQL数据库,并且SQL并不区分数据库命令与数据库中的数据。如果程序没有严格的安全过滤,则数据库中的数据有可能当命令执行。
这种情况下,用户通过Web访问,则有可能通过输入数据的方式,执行数据库的命令。
例1:
万能用户名,即利用SQL注入漏洞登陆网站后台打开www.***.com网站时,出现图所示的登录界面,要求用户输入用户名和密码。
当网站后台进行登录验证时,实际上是执行SQL语句查询数据库存储的用户名和密码。
查询用户名SQL语句如下:
SELECT FROM user WHERE name = ' ".$userName"
SELECT FROM user WHERE name = ‘a’or ‘t=t’,由于该语句因为't'='t'恒成立,因此可以做到不用输入正确用户名和密码,就能完全跳过登录验证。
另外的SQL注入可获取数据的一些重要信息
如数据库类型、表名、用户名等。如典型的“xxx and user>0”,因为user是SQL Server的一个内置变量,其值是当前连接的用户名,类型为nvarchar。当构造一个nvarchar的值与int类型的值0比较时,系统会进行类型转换,并在转换过程中出错,显示在网页上,从而获得当前用户的信息。
2.SQL注入防范方法
SQL注入防范方法如下:
(1)进行输入安全过滤,避免特殊字符输入。具体方法可以分为以下两种。·建立输入白名单:只接受许可的正常输入。比如只接受数字、大小写字母输入等。
.建立输入黑名单:拒绝已知的恶意输入。比如过滤关键词引号、空格、insert、update、delete、or等。
(2)只给应用程序最小权限,减少破坏性。
(3)自带的安全API
(4)屏蔽应用程序错误提示信息。错误提示信息可能包含数据库类型、表名、用户名等,屏蔽这些信息可以避免让攻击者得到有用信息。
2.3.9社交工程
社会工程学是利用社会科学(心理学、语言学、欺诈学)并结合常识,将其有效地利用(如人性的弱点),最终获取机密信息的学科。信息安全定义的社会工程是使用非计算机手段(如欺骗、欺诈、威胁、恐吓甚至实施物理上的盗窃)得到敏感信息的方法集合。
2.3.10电子监听
电子监听是指利用电子设备监听、分析电磁信号的过程。比如,通过灵敏的无线装置接收、分析显示器的电磁波信号,探知屏幕所显示的内容。
2.3.11会话劫持
攻击者把自己插入到受害者和目标机器两者之间,并设法让自己不可见或者看起来像“中转站”,从而达到截取、替换两者之间的传输数据。
2.3.12漏洞扫描
漏洞指的是系统的脆弱性。
漏洞扫描(Vulnerability Scanning)目的就是发现主机存在的安全漏洞。
2.3.13代理技术
攻击者利用代理服务器(又称“跳板”)进行攻击。
2.3.14数据加密
攻击者加密任何攻击内容避免追踪。
2.3.15 暗网
很多人认为,网络只是一层、扁平世界,实际上网络是两层。
(1)表层网络:表层网络最大的特点就是通过任何搜索引擎都能抓取并轻松访问。不过,它只占到整个网络的4%~20%,普通人平时访问的就是这类网络。
(2)深网:表层网之外的所有网络。最大的特征是,普通搜索引擎无法抓取这类网站。
暗网产生的原因:
(1)技术原因:由于互联网本身缺少统一规则,很多网站建设不规范,导致了搜索引擎无法识别并抓取网站内容。
(2)管理者出于各种考虑不愿意网站被搜索引擎抓取,比如版权保护、个人隐私等等。
暗网内容有些是合法的,更多的是藏着不可告人的秘密,比如毒品、黑市武器交易、人口贩卖和儿童色情等信息。
2.4 黑客常用工具
本节主要介绍网络攻击者常常采用的工具,主要包括扫描器、远程监控、密码破解、网络嗅探器、安全渗透工具箱等。
常见网络攻击工具如表所示。
2.4.1 扫描器
扫描器正如黑客的眼睛,通过扫描程序,黑客可以找到攻击目标的IP地址、开放的端口号、服务器运行的版本、程序中可能存在的漏洞等。
下面列出几种经典的扫描软件:
- NMap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。Nmap是一个命令界面的扫描器。其使用格式为nmap [Scan Type(s)][Options] {target specification}。其中,Scan Type(s)表示扫描类型,常见的扫描类型参数如表所示:Options表示扫描选项;target specification表示扫描目标地址。
- Nessus 早期是免费的、开放源代码的远程安全扫描器,可运行在 Limnux 操作Nessus系统平台上,支持多线程和插件。目前,该工具已商业化。
- SuperScan SuperScan是一款具有TCP connect端口扫描、Ping 和域名解析等功能的工具,能较容易地对指定范围内的 IP地址进行Ping 和端口扫描。
2.4.2 远程监控
远程监控实际上是在受害机器上运行一个代理软件,而在黑客的电脑中运行管理软件,受害机器受控于黑客的管理端。受害机器通常被称为“肉鸡”,其经常被用于发起 DDoS拒绝服务攻击或作为攻击跳板。常见的远程监控工具有冰河、网络精灵、Netcat。
2.4.3 密码破解
密码破解是安全渗透常用的工具,常见的密码破解方式有口令猜测、穷举搜索、撞库等。
口令猜测主要针对用户的弱口令。
穷举搜索就是针对用户密码的选择空间,使用高性能计算机,逐个尝试可能的密码,直至搜索到用户的密码。
撞库则根据已经收集到的用户密码的相关数据集,通过用户关键词搜索匹配,与目标系统的用户信息进行碰撞,以获取用户的密码。
- John the Ripper用于检査 Unix/inux 系统的弱口令,支持几乎所有Unix平台上经 crypt 函数加密后的口令哈希类型。
- LOphtCrack常用于破解 Windows 系统口令,含有词典攻击、组合攻击、强行攻击等多种口令猜解方法。
2.4.4 网络嗅探器
网络嗅探器(Network Snifer)是一种黑客攻击工具,通过网络嗅探,黑客可以截获网络的信息包,之后对加密的信息包进行破解,进而分析包内的数据,获得有关系统的信息。
-
Tcpdump/WireShark Tcpdump是基于命令行的网络数据包分析软件,可以作为网络嗅探工具,能把匹配规则的数据包内容显示出来。而 WireShark 则提供图形化的网络数据包分析功能,可视化地展示网络数据包的内容。
-
DSniff DSniff 是由 Dug Song 开发的一套包含多个工具的软件套件,包括 dsniff、filesnarf、mailsnarf、msgsnarf、rlsnarf和 webspy。使用 DSniff可以获取口令、邮件文件等信息。
2.4.5 安全渗透工具箱
- Metasploit
Metasploit 是一个开源渗透测试工具,提供漏洞査找、漏洞利用、漏洞验证等服务功能。
Metasploit 支持 1500 多个漏洞挖掘利用,提供 OWASP TOP10 漏洞测试。 - BackTrack5
BackTrack 集成了大量的安全工具软件,支持信息收集、漏洞评估、漏洞利用、特权提升保持访问、逆向工程、压力测试。
2.5 网络攻击案例分析
吃一堑,长一智。本节主要分析已发生的网络攻击案例,以便大家掌握网络攻击的活动规律,更好地开展网络安全防御工作。
2.5.1 DDoS 攻击
DDoS 是分布式拒绝服务攻击的简称。
DDoS 的整个攻击过程可以分为以下五个步骤:
第一步,通过探测扫描大量主机,寻找可以进行攻击的目标;
第二步,攻击有安全漏洞的主机,并设法获取控制权;
第三步,在已攻击成功的主机中安装客户端攻击程序;
第四步,利用已攻击成功的主机继续进行扫描和攻击;
第五步,当攻击客户端达到一定的数目后,攻击者在主控端给客户端攻击程序发布向特定目标进行攻击的命令。
DDoS 常用的攻击Flood 攻击、SYN Flood 攻击、DNS放大攻击等。其中,HTTPFlood攻击技术手段有 HTTP是利用僵尸主机向特定目标网站发送大量的 HTTPGET请求,以导致网站瘫痪,如图 2-4所示。
SYN Flood 攻击利用 TCP/IP协议的安全缺陷,伪造主机发送大量的SYN 包到目标系统,导致目标系统的计算机网络瘫痪,如图 2-5所示。
DNS放大攻击是攻击者假冒目标系统向多个DNS 解析服务器发送大量请求,而导致 DNS解析服务器同时应答目标系统,产生大量网络流量,形成拒绝服务,如图2-6所示。
2.5.2 W32.Blaster.Worm
W32.Blaster.Worm 是一种利用 DCOM RPC 漏洞进行传播的网络蠕虫,其传播能力很强。
感染蠕虫的计算机系统运行不稳定,系统会不断重启。并且该蠕虫还将对wimdowsupdate.com进行拒绝服务攻击,使得受害用户不能及时地得到这个漏洞的补丁。如图2-7所示,当W32.Blaster.Worm 运行时,会进行以下操作。
(1)创建一个名为 BILLY 的互斥体。如果这个互斥体存在,蠕虫将放弃感染并退出。
(2)在注册表中添加下列键值:
'windows auto update"="msblast.exe'
并且将其添加至:
HKEY LOCAL MACHINE\SOFTWARE\MicrosoftWindowsCurrentVersion\Run
这样就可以使蠕虫在系统被重起的时候能够自动运行。
(3)蠕虫生成攻击IP地址列表,尝试去感染列表中的计算机,蠕虫对有 DCOM RPC漏洞的机器发起 TCP 135 端口的连接,进行感染。
(4)在TCP4444端口绑定一个cmd.exe 的后门。
(5)在 UDP port 69 口上进行监听。如果收到了一个请求,将把 Msblast.exe 发送给目标机器
(6)发送命令给远端的机器使它回联已经受到感染的机器并下载 Msblast.exe。
(7)检查当前日期及月份,若当前日期为16日或以后,或当前月份处在9月到12月之间,则 W32.Blaster.Worm 蠕虫将对 windowsupdate.com 发动 TCP 同步风暴拒绝服务攻击。
2.5.3 网络安全导致停电事件
本网络安全事件材料来源于北京安天网络安全技术有限公司(以下简称安天公司)发布的《乌克兰电力系统遭受攻击事件综合分析报告》及相关网络信息。2015年12月23日,乌克兰多地区发生同时停电的事件。调查显示,乌克兰电厂停电是因网络攻击导致电力基础设施被破坏。如图 2-8所示,根据安天公司的分析报告,黑客首先利用钓鱼邮件,欺骗电力公司员工下载了带有 BlackEnergy的恶意代码文件,然后诱导用户打开这个文件,激活木马,安装SSH后门和系统自毁工具 Kidisk,致使黑客最终获得了主控电脑的控制权。最后,黑客远程操作恶意代码将电力公司的主控计算机与变电站断连并切断电源;同时,黑客发动DDoS攻击电力客服中心,致使电厂工作人员无法立即进行电力维修工作。
2.6 本章小结
本章首先给出网络攻击相关概念,总结了网络攻击的技术特点、发展趋势和网络攻击的一般过程;然后,还系统地给出了网络攻击的常见技术方法和黑客常用的软件工具:最后分析了分布式拒绝服务攻击、网络蠕虫、网络安全导致停电事件等典型的网络攻击案例。
文章评论