<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    常用的端口掃描技術有哪些


    發現錯別字 1年前 提問
    回答
    1
    瀏覽
    1838
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    CISAW CISP-PTE

    常用的端口掃描技術如下:

    • TCP connect()掃描:這是最基本的TCP掃描。操作系統提供的connect()系統調用,用來與每一個感興趣的目標計算機的端口進行連接。如果端口處于偵聽狀態,那么connect()就能成功。否則,這個端口是不能用的,即沒有提供服務。這個技術的最大優點是,不需要任何權限,系統中的任何用戶都有權利使用這個調用。另一個優勢就是速度。如果對每個目標端口以線性的方式,使用單獨的 connect()調用,那么花費的時間就相當長。可以通過同時打開多個套接字,從而加速掃描。使用非阻塞 I/O 允許用戶設置一個低的時間用盡周期,同時觀察多個套接字。但這種方法的缺點是很容易被發覺,并且被過濾掉。目標計算機的logs文件會顯示一連串的連接和連接是出錯的服務消息,并且能很快地使它關閉。

    • TCP SYN掃描:這種技術通常認為是“半開放”掃描,這是因為掃描程序不必要打開一個完全的TCP連接。掃描程序發送的是一個SYN數據包,好像準備打開一個實際的連接并等待反應一樣(與TCP的3次握手建立一個 TCP 連接的過程類似)。一個 SYN|ACK 的返回信息表示端口處于偵聽狀態。一個 RST返回,表示端口沒有處于偵聽態。如果收到一個SYN|ACK,則掃描程序必須再發送一個RST信號,來關閉這個連接過程。這種掃描技術的優點在于一般不會在目標計算機上留下記錄。但這種方法的一個缺點是,必須要有root權限才能建立自己的SYN數據包。

    • TCP FIN掃描:有的時候有可能SYN掃描都不夠秘密。一些防火墻和包過濾器會對一些指定的端口進行監視,有的程序能檢測到這些掃描。相反,FIN數據包可能會沒有任何麻煩地通過。這種掃描方法的思想是關閉的端口會用適當的RST來回復FIN數據包。另一方面,打開的端口會忽略對FIN數據包的回復。這種方法和系統的實現有一定的關系。有的系統不管端口是否打開,都回復 RST,這樣,這種掃描方法就不適用了。并且這種方法在區分Unix和NT時,是十分有用的。

    • IP段掃描:這種方法不直接發送 TCP 探測數據包,是將數據包分成兩個較小的 IP 段。這樣就將一個 TCP頭分成好幾個數據包,從而過濾器就很難探測到,但必須小心,一些程序在處理這些小數據包時會有些麻煩。

    • TCP反向ident掃描:ident協議允許使用者看到通過TCP連接的計算機的用戶名,即使這個連接不是由這個進程開始的。例如,連接到http端口,然后用ident來發現服務器是否正在以root權限運行。這種方法只能在和目標端口建立了一個完整的TCP連接后才能看到。

    • FTP返回攻擊:FTP協議的一個有趣的特點是它支持代理(Proxy)FTP連接。即入侵者可以從自己的計算機和目標主機之間建立一個FTP的連接,然后請求這個連接激活一個有效的數據傳輸進程來給因特網上任何地方發送文件。利用這種方法是從一個代理的FTP服務器來掃描TCP端口。這樣就能在一個防火墻后面連接到一個FTP服務器,然后掃描端口。如果FTP服務器允許從一個目錄讀寫數據的話,使用者就能發送任意的數據到發現的打開的端口。

    • UDP ICMP端口不能到達掃描:這種方法與上面幾種方法的不同之處在于使用的是UDP協議。由于這個協議很簡單,所以掃描變得相對比較困難。這是由于打開的端口對掃描探測并不發送一個確認,關閉的端口也并不需要發送一個錯誤數據包。因特網上許多主機在接收到一個未打開的UDP端口發送一個數據包時,就會返回一個ICMP_PORT_UNREACH錯誤。這樣就能發現哪個端口是關閉的。UDP和ICMP錯誤都不保證能到達,因此這種掃描器必須還實現在一個包看上去是丟失的時候能重新傳輸。這種掃描方法是很慢的并且這種掃描方法需要具有root權限。

    • UDP recvfrom()和write()掃描:當非root用戶不能直接讀到端口不能到達錯誤時,Linux能間接地在它們到達時通知用戶。例如,對一個關閉的端口的第二個write()調用將失敗。在非阻塞的UDP套接字上調用recvfrom()時,如果ICMP出錯還沒有到達時會返回EAGAIN-重試。如果ICMP到達時,返回ECONNREFUSED-連接被拒絕。這就是用來查看端口是否打開的技術。

    • ICMP echo掃描:這并不是真正意義上的掃描。但有時通過ping,在判斷在一個網絡上主機是否開機時非常有用。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    1年前 / 評論
    亚洲 欧美 自拍 唯美 另类