Python取证-网络取证
现代网络环境的情况是这样的,由于一些困难,调查可能是充满困难的。这可能发生在你对漏洞支持的反应,调查内部活动,执行与漏洞有关的评估,或验证监管合规性。
网络编程的概念
以下是网络编程中使用的定义。
- 客户端 – 客户端是网络编程的客户-服务器结构的一部分,它在个人计算机和工作站上运行。
-
服务器 – 服务器是客户端-服务器架构的一部分,为同一台或其他计算机中的其他计算机程序提供服务。
-
WebSockets – WebSockets在客户端和服务器之间提供了一个协议,该协议通过一个持久的TCP连接运行。通过它,TCP套接字连接之间可以发送双向信息(同时)。
WebSockets是在许多其他技术之后出现的,这些技术允许服务器向客户端发送信息。 除了握手升级头之外,WebSockets是独立于HTTP的。
这些协议被用来验证由第三方用户发送或接收的信息。由于加密是用于确保信息安全的方法之一,确保信息传输渠道的安全也很重要。
考虑以下Python程序,客户端使用该程序进行 握手。
例子
# 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编程的帮助下创建的客户端和服务器听取主机号码。最初,客户端向服务器发送与主机号码中发送的数据有关的请求,服务器接受请求并立即发送响应。这样,我们就可以有一个安全的通信渠道。