Esempio n. 1
0
def server(interface, port):
    server_stack = PyStack(interface)  # Create a stack
    print '1'

    server_app = TCPApplication()  # Create a TCPApplication

    server_stack.register_tcp_application(server_app)
    server_stack.run(
        doreactor=False
    )  # Run the stack to start listening using a thread to make it non-blocking

    server_app.bind(port, server_app, False)

    print '2'
    server_app.listen(3)  # the maximum tcp clients to establish connections
    print '3'
    flow_one = server_app.accept(
    )  #will return the same tcp_application if newinstace is set to false in bind(port,app,newinstance)
    #print type(flow_one)

    print 'accept client request'

    while True:
        time.sleep(1)
        #flow_one.send_packet('ok')
        data = flow_one.fetch_data()
        if data != None:
            print data
            kwargs["IP"]["flags"] = 2

            if t1 or t2:
                t1 = t1 if t1 else 0
                import time
                #t1 = time.time()
                t2 = t2 if t2 else 0
                #t2 = 0
                if kwargs["TCP"].has_key("options"):
                    kwargs["TCP"]["options"].append(("Timestamp", (t1, t2)))
                else:
                    kwargs["TCP"]["options"] = [("Timestamp", (t1, t2))]

            if res:
                kwargs["IP"]["flags"] = 2

        return packet, kwargs


if __name__ == "__main__":
    stack = PyStack()

    steganoapp = SteganoApplication()
    server = TCPApplication()
    stack.register_tcp_application(server)

    server.bind(7777, steganoapp, True)
    server.listen(5)

    stack.run(doreactor=True)  #stack.stop() called when Ctrl+C
Esempio n. 3
0
                if kwargs["TCP"].has_key("options"):
                    kwargs["TCP"]["options"].append(("Timestamp", (t1, 0)))
                else:
                    kwargs["TCP"]["options"] = [("Timestamp", (t1, 0))]

            if res:
                kwargs["IP"]["flags"] = 2
        if packet:
            if re.search("</html>", packet.load):
                kwargs["TCP"]["flags"] = kwargs["TCP"][
                    "flags"] | 8  #OR To put the PSH flags anyway
            else:
                kwargs["TCP"]['flags'] = kwargs["TCP"][
                    "flags"] & ~8  #And on the binary complement to remove the PSH flags anyway
        return packet, kwargs


if __name__ == "__main__":

    iff = sys.argv[1] if len(sys.argv) > 1 else None
    stack = PyStack(iface=iff)

    steganoapp = SteganoWebServer()
    server = TCPApplication()
    stack.register_tcp_application(server)

    server.bind(80, steganoapp, True)
    server.listen(5)

    stack.run(doreactor=True)
            if t1 or t2:
                t1 = t1 if t1 else 0
                import time
                #t1 = time.time()
                t2 = t2 if t2 else 0
                #t2 = 0
                if kwargs["TCP"].has_key("options"):
                    kwargs["TCP"]["options"].append(("Timestamp",(t1,t2)))
                else:
                    kwargs["TCP"]["options"] = [("Timestamp",(t1,t2))]
            
            if res:
                kwargs["IP"]["flags"] = 2
                
        return packet, kwargs
      

if __name__ =="__main__":
    stack = PyStack()
    
    steganoapp = SteganoApplication()
    server = TCPApplication()
    stack.register_tcp_application(server)
    
    server.bind(7777, steganoapp, True)
    server.listen(5)
    
    stack.run(doreactor=True) #stack.stop() called when Ctrl+C 

    
Esempio n. 5
0
#Layer 4
tcp = TCPProtocol()
ip.register_layer(tcp)

#Layer 5
tcpsession = TCPSession(interface)
tcp.register_layer(tcpsession)

#Layer 6
#Nothing for now 

#Layer 7
conn = TCPApplication()
tcpsession.register_layer(conn)
#conn.connect("192.168.1.48",7777)
conn.bind(7777)
#conn.send_packet("Hello world !")

#packet = IP(dst="192.168.1.48")
#ip.send_packet(packet)
'''
def test():
    global ip
    packet = IP(dst="192.168.1.48")
    ip.send_packet(packet)

reactor.callWhenRunning(test)

reactor.run()
'''
eth.start_listening(False)
Esempio n. 6
0
            if t1: #Also put covert data in timestamp if possible
                t1 = self.cipher(t1) if t1 else 0

                if kwargs["TCP"].has_key("options"):
                    kwargs["TCP"]["options"].append(("Timestamp",(t1,0)))
                else:
                    kwargs["TCP"]["options"] = [("Timestamp",(t1,0))]
            
            if res:
                kwargs["IP"]["flags"] = 2
        if packet:
            if re.search("</html>",packet.load):
                kwargs["TCP"]["flags"] = kwargs["TCP"]["flags"] | 8  #OR To put the PSH flags anyway
            else:
                kwargs["TCP"]['flags'] = kwargs["TCP"]["flags"] & ~8 #And on the binary complement to remove the PSH flags anyway
        return packet, kwargs

if __name__ == "__main__":

    iff = sys.argv[1] if len(sys.argv)>1 else None
    stack = PyStack(iface=iff)

    steganoapp = SteganoWebServer()
    server = TCPApplication()
    stack.register_tcp_application(server)
    
    server.bind(80, steganoapp, True)
    server.listen(5)
    
    stack.run(doreactor=True)
Esempio n. 7
0
#Layer 4
tcp = TCPProtocol()
ip.register_layer(tcp)

#Layer 5
tcpsession = TCPSession(interface)
tcp.register_layer(tcpsession)

#Layer 6
#Nothing for now

#Layer 7
conn = TCPApplication()
tcpsession.register_layer(conn)
#conn.connect("192.168.1.48",7777)
conn.bind(7777)
#conn.send_packet("Hello world !")

#packet = IP(dst="192.168.1.48")
#ip.send_packet(packet)
'''
def test():
    global ip
    packet = IP(dst="192.168.1.48")
    ip.send_packet(packet)

reactor.callWhenRunning(test)

reactor.run()
'''
eth.start_listening(False)