Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
    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))
Пример #4
0
    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)
Пример #5
0
 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))