簡體   English   中英

如何使用 python 檢測 TCP 端口掃描

[英]How to detect TCP Port Scan using python

我是 python 網絡編程的新手。 我想知道是否有任何方法可以在 python 中編碼來檢測這種掃描。 我想使用您可能建議的方法來構建一個開源項目。 提前致謝 !!

我猜你想要做的是檢測是否有人在使用 nmap 或一些類似的程序來掃描機器上的開放端口。

您應該首先了解如何檢測打開的 tcp 端口。 這是通過向遠程機器發送一個 SYN 數據包來完成的。 當遠程機器以 SYN-ACK 應答時,您知道遠程機器端口已打開。

你可以做的是編寫 python 腳本來嗅探機器上的整個網絡數據。 如果您看到很多 SYN tcp 請求(通常發送到很多端口)但沒有發送任何實際數據。 您可以知道您可能正在掃描開放端口。 您可以使用scapy進行網絡嗅探和數據包分析

不幸的是,沒有實際的方法來實現這一點,因為端口掃描沒有可用於指示的標准協議,它就像一個常規的套接字連接,例如獲取 web 頁面的客戶端連接。 (它可以是端口80的端口掃描器或需要特定頁面的實際客戶端)

您可以開發一種算法來檢查收到的請求數,例如100 個隨機端口,如果在某個時間范圍內至少有x個指向這些隨機端口,則它可能是端口掃描器。

請注意,這並不總是有效,因為端口掃描並不總是意味着所有端口,它也可以是一系列端口特定端口等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM