Python取证-网络取证

  • 简述

    现代网络环境的情况是这样的,由于许多困难,调查可能会令人担忧。无论您是响应违规支持、调查内部活动、执行与漏洞相关的评估还是验证法规遵从性,都可能发生这种情况。
  • 网络编程的概念

    以下定义用于网络编程。
    • Client− 客户端是在个人计算机和工作站上运行的网络编程的客户端-服务器架构的一部分。
    • Server− 服务器是客户端-服务器架构的一部分,它为同一台或其他计算机中的其他计算机程序提供服务。
    • WebSockets− WebSockets 提供客户端和服务器之间的协议,该协议通过持久的 TCP 连接运行。通过这个,可以在 TCP 套接字连接之间(同时)发送双向消息。
    WebSockets 出现在许多其他允许服务器向客户端发送信息的技术之后。除了握手升级标头之外,WebSockets 独立于 HTTP。
    网络编程
    这些协议用于验证第三方用户发送或接收的信息。由于加密是用于保护消息的方法之一,因此保护传输消息的通道也很重要。
    考虑以下 Python 程序,客户端用于handshaking.

    例子

    
    # client.py
    import socket
    # create a socket object
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # get local machine name
    host = socket.gethostname()
    port = 8080
    # connection to hostname on the port.
    s.connect((host, port))
    # Receive no more than 1024 bytes
    tm = s.recv(1024)
    print("The client is waiting for connection")
    s.close()
    

    输出

    它将产生以下输出 -
    网络编程输出
    接受通信通道请求的服务器将包含以下脚本。
    
    # server.py
    import socket
    import time
    # create a socket object
    serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # get local machine name 
    host = socket.gethostname()
    port = 8080
    # bind to the port
    serversocket.bind((host, port))
    # queue up to 5 requests 
    serversocket.listen(5)
    while True:
       # establish a connection 
       clientsocket,addr = serversocket.accept()
       print("Got a connection from %s" % str(addr))
       currentTime = time.ctime(time.time()) + "\r\n"
       clientsocket.send(currentTime.encode('ascii'))
       clientsocket.close()
    
    借助 Python 编程创建的客户端和服务器侦听主机号。最初,客户端针对主机号中发送的数据向服务器发送请求,服务器接受请求并立即发送响应。这样,我们就可以拥有一个安全的沟通渠道。