Python取證 - 網路取證



現代網路環境的場景是這樣的:由於許多困難,調查可能會充滿挑戰。無論您是在響應違規支援、調查內部活動、執行漏洞評估還是驗證法規遵從性,都可能發生這種情況。

網路程式設計的概念

網路程式設計中使用以下定義。

  • 客戶端 − 客戶端是網路程式設計的客戶端-伺服器架構的一部分,它執行在個人電腦和工作站上。

  • 伺服器 − 伺服器是客戶端-伺服器架構的一部分,它向同一臺或其他計算機中的其他計算機程式提供服務。

  • WebSockets − WebSockets在客戶端和伺服器之間提供協議,該協議透過永續性TCP連線執行。透過此,可以在TCP套接字連線之間同時傳送雙向訊息。

WebSockets是在許多其他允許伺服器向客戶端傳送資訊的技術之後出現的。除了握手升級標頭外,WebSockets獨立於HTTP。

Network Programming

這些協議用於驗證第三方使用者傳送或接收的資訊。由於加密是用於保護訊息的方法之一,因此保護訊息傳輸通道也很重要。

考慮以下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()

輸出

它將產生以下輸出:

Network Programming Output

接受通訊通道請求的伺服器將包含以下指令碼。

# 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程式設計建立的客戶端和伺服器監聽主機號。最初,客戶端向伺服器傳送關於主機號中傳送資料的請求,伺服器接受請求並立即傳送響應。這樣,我們可以擁有安全的通訊通道。

廣告