信息收集--IP掃描 (下篇)

信息收集--IP掃描 (下篇)

       這些內容都是個人從網絡和書籍中學習整合而來,參雜了一些個人理解在裏面,可看作是個人學習筆記,適合對網絡安全感興趣,想對原理概念能系統瞭解到人,屬基礎內容。對其中的不足或錯誤之處還望告知交流heyihome.blog.51cto.com

 

       2、端口掃描原理

       端口掃描原理是通過TCP/UDP協議來連接到對端端口,從而發現識別端口開放程度。掃描原理上通常有以下幾種方式。

       正常掃描方式

       1TCP連接掃描:也稱全連接掃描,原理爲通過tcp協議的三次握手來同對端建立連接,如連接建立成功則說明端口是開放的。優點是可靠,缺點是由於建立了連接容易被對端記錄。過程如下

                 --------SYN ----------> 

                 <------SYN/ACK----- 

                 -------ACK ----------> 

       掃描命令: nmap –sT <ip>

 

       2TCP SYN掃描:也稱半連接掃描,原理是在發送SYN後如果端口開放,對端返回synack後發送RST來打斷連接。如端口關閉,對端將返回RST,就能知道端口爲關閉了。優點爲比較隱祕,缺點爲打開的半連接過多,容易被判斷爲syn flood而報警。

過程如下

                 --------SYN ----------> 

                 <------SYN/ACK----- 

                 -------RST -----------> 

       掃描命令: nmap –sS <IP>

 

       隱祕掃描:通常SYN這類請求容易被防火牆IDS等察覺,但通過在TCP數據包中設一些不常用的協議標誌或其他特徵來進行掃描,好處是不容易被記錄發現,缺點是依賴主機對協議實現情況,端口發現不一定可靠。(通常unix系統實現的較好,而windows系統並不遵守,所以不適用windows系統)

       (1)TCP FIN掃描:這類一般只對unix類系統有效,通過像對端端口發送fin請求,如對端端口關閉將返回一個RST

       掃描命令: nmap –sF <ip>

 

       (2)TCP聖誕xmas樹掃描:發送FINURGPUSH數據包,如對端口關閉,目標系統返回RST數據包

       掃描命令: nmap –sX <ip>

 

       (3)TCP NULL掃描:這類掃描時不設置任何TCP標記,端口關閉的話返回RST數據包

       掃描命令: nmap –sN <IP>

 

       (4)TCP ACK掃描:通過設置ACK後對返回的RST頭信息進行分析來獲取數據。適用BSD系統

       掃描命令: nmap –sA <IP>

 

       (5)TCP WINDOW掃描:通過返回不同的tcp window來判斷端口開放程度。只適用AIXBSD系統

       掃描命令: nmap –sW <IP>

 

       (6)TCP RPC掃描:用途發現UNIX上的RPC端口和識別關聯應用程序和版本,只適用UNIX系統。掃描時向端口發送sunrpc null命令來判斷是否爲rpc端口,通常還能獲得一些軟件和版本信息。

       掃描命令: nmap –sR <IP>

 

       (7)UDP掃描:向端口發送UDP數據包,如返回ICMP port unreachable消息,說明端口關閉,如無信息返回說明端口開放。需要注意到是unix類系統中通常對icmp不可達信息做了限制,例如linux系統4秒內只允許80條,solaris每秒2條,掃描效率會很低,但windows未做限制,所以可以對windows系統快速掃描。

       掃描命令: nmap –sU <ip>

 

需要特別注意到一點,IP協議的某實現缺陷會導致所有被掃描端口返回RST數據包,即便是開放的。因此掃描結果不一定與實際情況一致,但通常連接掃描和SYN掃描適用性較好。

 

       欺騙掃描:利用第三方存在漏洞的服務器作爲跳板掃描,好處是如這個系統是被防火牆信任,能獲取到更多的信息。

       1FTP 跳板掃描:有些FTP服務器在PORT命令處理時存在漏洞,利用此漏洞來進行掃描。但這個基本只存在早期系統,現在應該很少能遇到了。

       掃描命令: nmap –b username:password@server:port

 

       2IP ID頭掃描:這類掃描需要利用到殭屍主機,優點很隱蔽。

掃描命令: Nmap 選項 –sI <zombie host[:probe port]>

掃描過程:

1、  ***者持續向殭屍主機發送探測包

2、  ***者同時像目標主機發送SYN,源地址僞造成殭屍主機,如端口開放目標主機向殭屍主機發送SYN/ACK會影響到殭屍主機的ID字段

3、  通過殭屍主機返回數據包的ID字段分析來猜測目標主機端口是否開放。

 

 

 

三、其他掃描工具

       hping2 :允許設定tcp/udpraw ip數據包裏的某特定選項,從而使得hping2可以穿透一些網絡訪問控制設備。例如 hping ip –s –p 80 –f 爲分片掃描。-cN 可以發送N個數據包後結束掃描,使得hping2方便的在腳本中使用。

 

       icmpenum :特點類似superscan,除可發出正常echo數據包外還可以發送其他類型icmp數據包。還可以用-s命令來僞造一個虛假源地址,-p 使用被動方式監聽從目標網絡返回的響應。

 

       icmpquery :可以查詢對端主機時間和子網掩碼。例如:icmpquery –t ip 爲查詢時間,icmpquery –m ip 爲查詢子網掩碼。

 

       loki2 :嚴格來說並非icmp掃描工具,而是可以將惡意數據打包到icmp echo中。

 

四、防範方法

       1、使用idsfw等來監視ping掃描活動。

 

       2、在邊界網絡對icmp數據包進行過濾,只允許特定icmp數據包訪問特定服務器。通常來說需要用到icmp一般是內網管理用,那麼就應該在邊界過濾掉外部網絡的icmp訪問。或在不影響應用的情況下完全禁止icmp

 

五、參考文檔

http://wenku.baidu.com/view/28714cfff705cc17552709a5.html 可參考文庫這篇nmap詳解,裏面對各種類型掃描有比較詳細說明。

 

                                                                             By Jason h3

                                                                             Mail:[email protected]

                                                                             Ver:1.1

                                                                             2011-2-9

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章