当前位置:文档之家› 第十二讲 网络入侵技术介绍

第十二讲 网络入侵技术介绍


IP spoofing (IP欺骗)
Other (其它)
---- 12.4%
---- 13.9%
拒绝服务
拒绝服务(Denial of Service, DoS),是一种简单的 破坏性攻击,通常攻击者利用TCP/IP协议中的某个弱 点,或者系统存在的某些漏洞,对目标系统发起大规 模的攻击,导致攻击目标无法对合法的用户提供正常 的服务,甚至瘫痪。
缓冲区溢出
主程序执行到函数overflow时的堆栈:
栈的增 长方向 内存 低端 内存 高端
缓冲区 buffer 数据区
SP 返回 指 地址 针
缓冲区溢出
正常情况下(输入文件中内容长度不超过80个字 节),程序可以正常运行。 如果输入文件中内容(共96个字节)为: “11111111111111112222222222222222333333333333333344444 44444444444555555555555555501234566666666666” ??? 程序运行结果
典型的拒绝服务攻击方式
4) ICMP/SMURF攻击:
利用网络广播的原理发送报文给大量的地址,而 包的源地址就是要攻击的机器本身的地址。
5)TARGA3攻击(IP堆栈突破):
基本原理是发送TCP/UDP/ICMP的碎片包,其大小、 标记、包数据等都是随机的。一些有漏洞的系统 内核由于不能正确处理这些极端不规范数据包,便会 使其TCP/IP堆栈出现崩溃,从而导致无法继续响应网 络请求(即拒绝服务)。
缓冲区溢出
溢出的样例函数: void overflow(char *s, int size) { char buffer[80]; s[size]=0; strcpy( buffer, s ); } 该函数的不妥在于strcpy函数的调用 头文件<string.h>中strcpy的语法描述: char * strcpy(char *, const char *)
口令破解的典型工具
UNIX:John the Ropper 破解的加密算法:DES, MD5 运行的平台: Linux x86 FreeBSD x86 Solaris 2.x SPARC OSF/1 Alpha DOS Windows NT/95/98 网址:/security/john
最简单和常见的缓冲区溢出攻击类型: 植入法+激活纪录
缓冲区溢出
缓冲区溢出攻击程序一般结构
准备shellcode
相当于在执行命令
准备数据结构
为有溢出漏洞的程序准备一个参数
执行execl
执行有溢出漏洞的程序
缓冲区溢出漏洞:实例1
漏洞名称:(Sun003) Solaris admintool 缓冲区溢出漏洞 受影响的系统: Solaris 2.6 漏洞描述: admintool 存在缓冲区溢出漏洞,用户可通过一系 列操做获得root权限。
10.2.3 其它攻击方法与防护
1、口令攻击 2、欺骗攻击 3、扫描器 4、Sniffer 5、入侵之后的恢复 6、UNIX安全管理
口令攻击
口令是系统的第一道防线,也是攻击者 首先试图突破的地方。 口令攻击程序是对原来加密的口令进行 解密使口令显露出来的程序 。
口令的存放
口令明文 加密 (密钥) 口令密文文件 口令密文

IP欺骗攻击
/etc/hosts.equiv文件
“+”:任意主机可直接登录而不用 口令验证
$HOME/.rhosts文件
“++”:任意主机可直接登录而不 用口令验证
IP欺骗攻击
IP欺骗的理论依据 由于主机A和B间的信任关系是基于IP地址的,只要 能冒充B的IP地址,就可使用rlogin登录上主机A。 TCP/IP的会话过程
常用的4种分布式拒绝服务攻击程序:Trinoo、 TFN、TFN2K和Stacheldraht。
拒绝服务
典型的拒绝服务攻击方式
1)UDP攻击: 两个或两个以上的系统之间产生巨大的UDP数 据包,循环通信,最终将导致整个网络瘫痪 2) Land
由黑客组织rootshell发现.
原理:向目标机发送大量源地址和目标地址相同 的包,造成目标主机解析Land包时占用大量的系统资 源,从而使网络功能完全瘫痪。
据统计:对三种系统:Redhat Linux, Solaris, NT 的攻击总数缓冲区溢出攻击 > 70%
本地溢出 远程溢出(危害大) 重点:堆栈溢出
缓冲区溢出
缓冲区溢出原因: 程序没能仔细检查用户输入的参数 测试环境: 操作系统:Windows Professional 2000 版本为: 5.00.2195 编程工具:Visual Studio - Visual C++ 6.0 及2000下的Debug
(可能包含
Shadow)
口令攻击方法
主要是猜测法: 1、枚举法 2、字典攻击法
口令攻击
口令明文
加密 (密钥)
口令密文
枚举或从字 典中取一个
口令文件 中的口令 密文
口令明文
口令攻击
难度: UNIX口令中可用的字符数:[0x00-oxff]中只95个 即,10个数字+33个标点符号+26*2个字母 若口令取5个字母加一个数字,可能性为: 52*52*52*52**52*43=16348773000 破解时间为分钟的数量级!
口令破解的典型工具
Windows NT 用户口令 l0phtcrack 邮件系统的口令破解 Emailcrk
ZIP文档密码的破解
……
Hale Waihona Puke 欺骗攻击即使主机没有明显漏洞,攻击者仍可使 用各种欺骗手段来达到攻击的目的。 欺骗是纯技术性的,一般利用了 TCP/IP协议本身存在的一些缺陷。
IP欺骗 DNS欺骗 WEB欺骗
“半开连接”攻击: 被攻击服务器发送等待确认包后,等待回答。 等待任务加入等待队列。
等待队列填满后,正常用户的连接请求将被丢弃。
典型的拒绝服务攻击方式
4)ICMP/PING攻击: 利用一些系统不能接受超大的IP包或需要资源处 理的特性 攻击方式: Ping –l 65527 –s 1 <攻击目标> Ping 是用于检测网络连接性、可到达性和名称解析的 疑难问题的主要 TCP/IP 命令。
10.2
典型攻击方法剖析
10.2.1 缓冲区溢出攻击与防护
10.2.2 拒绝服务攻击与防护 10.2.3 其它攻击方法与防护
10.2.1 缓冲区溢出攻击
缓冲区溢出(buffer flow)是指一种系统攻击的手段, 通过往程序的缓冲区写超出其长度的内容,造成缓冲区 的溢出,从而破坏程序的堆栈,使程序转而执行其它指 令,以达到攻击的目的。

黑客常用入侵方法(续)
监听法: 很实用但风险也很大的入侵方法 E-mail技术 病毒技术 隐藏技术 端口扫描技术 缓冲区溢出攻击方法 WEB攻击 网络炸弹

欺骗攻击 … …
攻击的准备阶段
1)确定攻击的目的: 进行破坏型攻击还是入侵型攻击 破坏型只破坏攻击目标,不能随意控制目标系统。 入侵型是为了获得目标系统的一定权限,达到控制 攻击目标的目的。 2)目标系统的信息收集 O.S类型与版本; 提供了哪些服务; 服务程序的类型与版本; ……
典型的拒绝服务攻击方式
3)TCP/SYN flooding攻击: 短时间内大量的SYN报文使目标主机系统资源耗 尽以至瘫痪。
对NT系统攻击效果最好。
3)TCP/SYN flooding攻击过程
1. SYN 客户 方 3. ACK=SYN+1 2. ACK=SYN+1
服务
器方
3)TCP/SYN 的攻击
第十一讲 网络攻击技术介绍
目录
10.1 攻击方法概述 10.2 典型攻击方法剖析
10.1 攻击方法概述
内容:

黑客常用入侵方法

攻击的一般步骤
黑客常用入侵方法
口令入侵 用软件解开已经得到但加密的口令文档 (高级:绕开或屏蔽口令保护程序) 特洛伊木马术 典型做法是把一个能帮助黑客完成某一特定功能的 程序依附在某一合法用户的正常程序中,这时合法 用户的程序代码已被改变。一般的系统管理员很难 发现。
IP欺骗攻击
信任关系 IP欺骗是利用了主机间的正常信任关系来发动的。 基于IP的信任关系的建立 UNIX主机中存在一种特殊的信任关系. 假设主机A 和B都有admin账户,实际上是相互独立的。 主机A执行:echo “B admin”>~/.rhosts 从主机B则可直接通过r开头的远程调用命令直接登 录到主机A。 以IP地址为基础的验证。
缓冲区溢出
程序报错
缓冲区溢出
有了缓冲区溢出后,下一步就是该如何利用缓冲区 溢出进行攻击了。攻击者必须达到如下两个目标:
1.在程序的地址空间里安排适当的代码。
(1) 植入法
(2) 利用已经存在的代码
2.通过适当地初始化寄存器和存储器,让程序跳转到我们安排的地址空间执行。
(1) 激活纪录(Activation Records) (2) 函数指针(Function Pointers) (3) 长跳转缓冲区(Longjmp buffers)`
缓冲区溢出
压入栈中传 递的参数
地址高端
AA…
返回地址
AAAA
少量存 贮单元
A…A
Buffer 80 字节空间
80个A
地址低端
执行strcpy()之前
执行strcpy()之后
缓冲区溢出
主程序: void main(int argc, char *argv[]) { FILE *file; char buf [300]; if(argc<2){ printf("Usage: %s input-file\n",argv[0]);exit(1); } file = fopen(argv[1],"rb"); if( file!=NULL ) { fread( buf, sizeof(char), 255, file); overflow( buf, 255); fclose(file); }}
相关主题