def alloc_src_test(self): c = fs.FreeSrc('10.0.128.0/24', 100000) bef = len(c.free_list) (ip1, port1) = c.alloc_src() (ip2, port2) = c.alloc_src() aft = len(c.free_list) assert (bef == aft + 2)
def tupletoi_test(self): c = fs.FreeSrc('10.0.128.0/24', 100000) assert (c.tupletoi(('10.0.128.1', 1025)) == 0) assert (c.tupletoi(('10.0.128.1', 1026)) == 1) assert (c.tupletoi(('10.0.128.2', 1025)) == len(c.ports)) assert (c.tupletoi(('10.0.128.1', 65535)) == len(c.ports) - 1) assert (c.tupletoi(c.itotuple(12314)) == 12314)
def itotuple_test(self): c = fs.FreeSrc('10.0.128.0/24', 100000) (ip, port) = c.itotuple(0) assert ((ip, port) == ('10.0.128.1', 1025)) (ip, port) = c.itotuple(1) assert ((ip, port) == ('10.0.128.1', 1026)) (ip, port) = c.itotuple(len(c.ports)) assert ((ip, port) == ('10.0.128.2', 1025)) (ip, port) = c.itotuple(len(c.ports) - 1) assert ((ip, port) == ('10.0.128.1', 65535))
def __init__(self, pkt, flow_tuple, opts, send_to_dr, syn_options, isn=None): self.flow_tuple = flow_tuple self.syn_options = syn_options self.buffer = [] self.opts = opts self.send_to_dr = send_to_dr self.seq_offset = None self.decoy_time = None self.ts_offset = None self.log = logging.getLogger('cb.tcphijack.hijack') self.state = 'Hijacking' # Keep track of the last seen sequence from client self.next_seq = None self.last_ack = None if TCPHijack.free_srcs is None: TCPHijack.free_srcs = free_src.FreeSrc( opts['tun_src_net'], int(opts['tun_max_connections'])) if TCPHijack.hijack_manager is None: TCPHijack.hijack_manager = HijackManager(opts) (src, port) = TCPHijack.free_srcs.alloc_src() self.hijack_tuple = (socket.inet_aton(src), port, socket.inet_aton(opts['tun_ip']), flow_tuple[3]) TCPHijack.hijack_manager.register_tuple(self, self.hijack_tuple) self.init_hijack(pkt, isn)
def overflow_test(self): nose.tools.assert_raises(fs.InsufficientNetAddresses, lambda: fs.FreeSrc('10.0.128.0/30', 1000000)) assert (fs.FreeSrc('10.0.128.0/30', 30000))