当前位置: 首页 > news >正文

阳春县建设局网站深圳全屋整装哪家公司好

阳春县建设局网站,深圳全屋整装哪家公司好,浏阳网站建设卷云网络,旅游网站建设分析 需求#xff08;一#xff09;数据包替换攻击 该攻击过程如下#xff1a;伪造服务器响应客户端的数据包。监听客户端的数据包#xff0c;用预先伪造的数据包#xff0c;伪装成服务器返回的数据发送给客户端。 因为攻击者跟目标在同一个局域网#xff0c;所以攻击者发送的数…一数据包替换攻击 该攻击过程如下伪造服务器响应客户端的数据包。监听客户端的数据包用预先伪造的数据包伪装成服务器返回的数据发送给客户端。 因为攻击者跟目标在同一个局域网所以攻击者发送的数据包肯定比服务器的响应数据要快很多只要数据包构造正确就一定可以被客户端按正常的数据处理。 这部分的重点和难点在于要构造正确的数据包需要根据攻击者的目的修改数据包中的数据、MAC、IP、TCP(UDP)层的长度、校验值等多个字段的值还要兼容多种网络协议另外还需要高效的处理数据包。 这部分内容对于熟悉tcp/ip协议栈的程序员来讲非常容易唯一需要注意的坑就是udp和tcp封包中的checksum字段的计算其格式不是简单的tcp和udp包头字节的crc校验而是 先将checksum字段清零再将ip数据包中的 原ipdword)、目的ipdword)、包含tcp或者udp包头在内的数据长度值(short)、ip包中的协议字段(short)这4个字段加上tcp或者udp的包头加上数据部分之和该长度还要2字节对齐假如长度是奇数的话还要再补一个0计算出来的校验和值。将计算的校验值写入包头。 其结构体如下 typedef struct {unsigned char SrcIP[IPV6_IP_SIZE];unsigned char DstIP[IPV6_IP_SIZE];unsigned short Protocol;unsigned short PackLen; }IPV6FAKEHEADER, *LPIPV6FAKEHEADER;计算tcp和udp中校验和的代码大体如下所示 WORD Checksum::checksum(WORD *buffer,int size) {unsigned long cksum 0;while(1size){cksum *buffer;size - sizeof(USHORT);}if(0size)cksum *(UCHAR*)buffer;cksum (cksum16) (cksum0xffff);cksum (cksum16);return(unsigned short)(~cksum); }USHORT Checksum::subPackChecksum(char * lpCheckSumData,WORD wCheckSumSize,DWORD dwSrcIP,DWORD dwDstIP,unsigned int wProtocol) {char szCheckSumBuf[MAX_SINGLE_PACKET_SIZE];LPCHECKSUMFAKEHEADER lpFakeHdr (LPCHECKSUMFAKEHEADER)szCheckSumBuf;lpFakeHdr-dwSrcIP dwSrcIP;lpFakeHdr-dwDstIP dwDstIP;lpFakeHdr-Protocol ntohs(wProtocol);lpFakeHdr-usLen ntohs(wCheckSumSize);memcpy(szCheckSumBuf sizeof(CHECKSUMFAKEHEADER),(char*)lpCheckSumData,wCheckSumSize);*(DWORD*)(szCheckSumBuf sizeof(CHECKSUMFAKEHEADER) wCheckSumSize) 0;unsigned short nCheckSum checksum((WORD*)szCheckSumBuf,wCheckSumSize sizeof(CHECKSUMFAKEHEADER));return nCheckSum; }该模块基于winpcap开发。网络攻击的先决条件是能监听到目标的数据包这是必须的前提条件。在Windows平台网络数据包开发包是winpcap在linux上是libcap。 各层封包的包头处理有很多细节需要注意。在实际场景中抓到的数据包并不是mac层而是大多是pppoe或者wlan格式其包头格式如下 typedef struct {char version : 4;char type : 4;unsigned char code;unsigned short sessionid;unsigned short len;unsigned short protocol; }PPPOEHEADER, *LPPPPOEHEADER;typedef struct {unsigned char idhigh : 4;unsigned char canonical : 1;unsigned char priority : 3;unsigned char id : 8;unsigned short type; }HEADER8021Q, *LPHEADER8021Q;具体处理流程更多是包头协议格式的解析在此按下不表。 本程序支持tcp和udp数据包的伪造、欺骗攻击其代码主要位于ReplacePacket.cpp中。其中dns劫持就是一种较为简单的数据包替换攻击其代码位于 PacketProc.cpp中要实现攻击需要了解dns数据包的格式读者请自行百度。其主要数据结构如下 typedef struct {unsigned short TransactionID; //交易ID发出和接收必须相同unsigned short Flags; //标志字段发出和接收都应该修改该字段unsigned short Questions; //问题格式unsigned short AnswerRRS; //回答资源记录个数unsigned short AuthorityRRS; //认证资源记录个数unsigned short AdditionalRRS; //附加资源记录个数 }DNSHEADER,*LPDNSHEADER;//中间的要解析的名称以一个非可打印字符开头以0结尾后面紧跟着解析的类型要求和CLASS要求 typedef struct {unsigned short Name; //名称低字节为从开头的偏移地址只想要解析的内容unsigned short Type; //类型0005为解析字符串0001为解析IP地址unsigned short Class; //输入unsigned short HighTTL; //生存周期unsigned short LowTTL;unsigned short AddrLen; //解析的长度unsigned int Address; //解析的内容 }DNSANSWER,*LPDNSANSWER;typedef struct {unsigned short Name; //名称低字节为从开头的偏移地址只想要解析的内容unsigned short Type; //类型0005为解析字符串0001为解析IP地址unsigned short Class; //输入unsigned short HighTTL; //生存周期unsigned short LowTTL;unsigned short AddrLen; //解析的长度unsigned char Address[16]; //解析的内容 }DNSANSWERIPV6, *LPDNSANSWERIPV6;typedef struct {unsigned short dnstype;unsigned short dnsclass; }DNSTYPECLASS,*LPDNSTYPECLASS;typedef struct {unsigned short Name;unsigned short Type;unsigned short Class;unsigned int TTL;unsigned short AddrLen; }DNSANSWERHEADER, *LPDNSANSWERHEADER;如下以下视频中当dns欺骗未开启时在nslookup中查询到的www.baidu.com的IP地址是182.61.200.7而当dns攻击开启时www.baiducom的ip地址被替换为192.168.101.122这个地址正好是本机的ip地址本机上有一个服务器程序监听443或者80端口的数据这样就可以当作下一步https攻击的服务器。 从wireshark可以清晰看到网卡发出的dns伪造数据包。 二https劫持 https劫持有多种方式可以实现比如dns劫持方式和数据包转发。 数据包转发方式较为复杂各有各的实现方法。一般原理是 在数据包监听处有一链路层处理程序S识别并修改ssl数据包将目的mac和目的ip地址改为解析程序的mac和ip、并重新校验之后从链路层发送。解析程序在recv函数之后会收到目的地址是自己的数据包然后调用openssl接口进入openssl接口处理部分其返回结果是将https脱去后的明文数据。此时解析程序可以当作中间人将客户端数据发送给服务器的数据从host取出真正的服务器地址数据部分根据需要加工处理后发送给真正的服务器。对于服务器返回的数据根据攻击者的目的处理之后发送给真正的客户端。最后S需要将链路层监听到的、跟发送给解析程序相匹配的、返回数据包在链路层修改原mac和ip地址并重新校验之后从链路层上放回原来的数据流中。 另一种方式较为简单其过程如下 预先获取客户端要访问的域名对其进行dns数据包替换攻击将客户端对域名M的访问定向到特定的主机H上客户端想要访问M域名时由于伪造的dns数据包中返回的地址指向H故此时客户端程序会误以为H就是M.在H主机上有一特定程序采用中间人方式对客户端的数据访问伪装成服务器将客户端数据再次转发给真正的服务器对于服务务器返回的数据再次转发给真正的客户端。 本程序采用第二种方法主要的https中间人代码在sslEntry.cppsslProxyListener.cppsslProxy.cppmakeCert.cppsslPublic.cpp等几个文件中搬砖的工作暂且不表。 在https劫持中一个重要问题就是证书问题。这里采取的方式是将生成次级证书的根证书导入到本机的根证书授信中心接下来利用此证书签名的二级证书和三级证书在chrome和edge中的访问都是没问题的但是firefox有单独的证书认证体系windows等操作系统认可的证书、包括我们我们导入的证书不在其认可范围之内。 程序中实现了域名证书证书自动生成功能可以根据客户端的clienthello数据包中的域名动态生成域名证书。另外还支持自动检测和生成、导入根证书。 程序运行需要预先安装openssl。 在实际测试中国内大厂包括阿里系腾讯系的软件大都采用了https传输方式但是也有极个别软件的服务器域名的ssl流量可以劫持成功特别是某些Android移动端软件ios端也发现过此种情况。当然现在的趋势是验证机制越来越严格难度越来越大。 本实例程序运行时会将ssl数据存放在output目录下的ssl.dat文件中如下截图所示当未开启ssl攻击时浏览器访问正常当开启ssl劫持后浏览器依然正常此时ouput目录下的ssl.dat中存放着https中的明文数据。从host或者域名可以验证我们刚才点击访问的网址证明ssl劫持成功。 本次测试的具体代码下载地址点击下载 该项目具有tcp和udp数据包伪造替换、dns欺骗劫持、https中间人mid in man)劫持攻击等多种功能。
http://www.dnsts.com.cn/news/151023.html

相关文章:

  • 网站降权不更新文章可以吗网站建设seo方案
  • 重庆seo网站排名优化有没有做电子名片的网站
  • 手机网站变灰枣庄市建设项目环评备案网站
  • 网站开发机构班级网站建设策划书
  • 广州制作网站公司哪家好南京百度推广网站
  • 网站建设项目策划书模板范文网站建设与制作模板
  • 福州网站建设 联系yanktcn 05东营网格通
  • 东莞家具行业营销型网站建设多少钱外贸接单网站
  • 电子商务网站建设配色网页搜索引擎
  • 个人网页制作素材图片湖南seo博客seo交流
  • 免费网站源码下载网页前端开发培训
  • 金融品牌网站设计网页程序开发语言
  • 查询网站备案进度查询四大网站
  • 网站制作运营公司wordpress文章自适应图片大小
  • 青岛市专业做网站的吗南京哪里可以做网站
  • 手机网站活动策划方案wordpress视频试看付费
  • 4399自己做游戏网站购物网站服务器硬件配置
  • 专做it招聘的网站2008系统做网站
  • 认证网站所有权要添加代码温州市建设局网站
  • 兼职开发网站开发网站制图软件
  • 帮助传销做网站违法吗模板网络结构图怎么画
  • soho做网站多少钱重庆长寿网站设计公司哪家好
  • 网站建设微商城电子商务网站系统的开发设计
  • 做图书出版 外国网站上海市建筑网
  • 宁波品牌网站建设建网站怎么赚钱
  • 重庆手机网站建设哈尔滨百姓网
  • 只做财经的网站找网页设计公司去哪个平台
  • 一般网站图标是用什么做的做网站策划书吧
  • 润滑油 东莞网站建设网站建设哪些是需要外援的问题
  • 网站上二维码怎么做的v2ex wordpress