概述
這段時間的工作與網(wǎng)絡(luò)掃描有關(guān)愿伴,今天在這里總結(jié)一下最近了解的各類掃描器,方便自己以后查閱添瓷。也希望能對想要快速了解各類掃描器特性的朋友梅屉,帶來一些幫助。
本文主要回答兩個個問題:
- 現(xiàn)有的掃描器有哪些鳞贷?
- 他們的掃描結(jié)果是什么坯汤?
此外,在本文中搀愧,我還分析了各工具的技術(shù)特點(diǎn)玫霎。
現(xiàn)有的掃描器
網(wǎng)絡(luò)掃描器,又稱端口掃描器(port scanner)在安全領(lǐng)域有著諸多應(yīng)用妈橄。
從掃描規(guī)模上看,有支持全網(wǎng)掃描的翁脆,比如Shodan眷蚓、Zoomeye、ZMap反番。也有支持小范圍精確掃描的沙热,比如Nmap,Xprobe2罢缸,p0f等篙贸。
如果考慮采用的掃描策略,還可以分為主動掃描器和被動掃描器枫疆。主動掃描是“搜”爵川,被動掃描是“聽”。
如果考慮指紋識別的功能息楔,可以分為簡單的使用設(shè)備指紋識別的Shodan寝贡,設(shè)備指紋結(jié)合Web應(yīng)用指紋的Zoomeye,基于TCP/IP協(xié)議棧指紋的Nmap值依。
關(guān)于各個掃描器的特性圃泡,我會在下一節(jié)詳細(xì)分析。
各類掃描器的功能分析
Shodan
根據(jù)維基百科愿险,Shodan是由程序員 John Matherly 打造的搜索引擎颇蜡。初衷是為了搜索聯(lián)網(wǎng)的設(shè)備。
- 掃描策略:主動掃描辆亏。
- 識別機(jī)制:強(qiáng)度中等风秤,對與某些特定端口通信之后返回的 banner 信息的采集和索引,主要針對設(shè)備指紋扮叨。
- 產(chǎn)品功能:IP地址定位唁情、 為掃描結(jié)果繪制地圖、 數(shù)據(jù)分析與可視化甫匹、 REST API甸鸟、 Python Package惦费、 RSS訂閱等。
- 掃描規(guī)模:全網(wǎng)抢韭。
- 返回字段:Country薪贫、 Organization、 ISP刻恭、 Last Update瞧省、 Hostnames、 Ports鳍贾、 Services鞍匾。
Zoomeye
Zoomeye是國內(nèi)互聯(lián)網(wǎng)安全廠商知道創(chuàng)宇的一個產(chǎn)品。相比于Shodan它更側(cè)重于Web層面的資產(chǎn)發(fā)現(xiàn)骑科。
- 掃描策略:主動掃描橡淑。
- 識別機(jī)制:強(qiáng),設(shè)備指紋識別方法與Shodan類似咆爽,加強(qiáng)了對Web服務(wù)的識別能力梁棠,并結(jié)合了Nmap等工具。
- 產(chǎn)品功能:IP地址定位斗埂、 繪制掃描結(jié)果地圖符糊、 REST API、 Python Package呛凶、 社區(qū)機(jī)制男娄。
- 掃描規(guī)模:全網(wǎng)。
- 返回字段:Country漾稀、 City沪伙、 Last Update、 Key Words县好、 Port围橡。
值得一提的是夯尽,Zoomeye團(tuán)隊通過把一些工控協(xié)議常用端口的掃描結(jié)果以及一些工控設(shè)備的搜索Dork收集到一起社裆,推出了一個工控專題,地址:http://ics.zoomeye.org/愧杯。
Zmap
Zmap是美國密歇根大學(xué)研究者開發(fā)的一款工具晾咪。在第22屆USENIX安全研討會收擦,以超過Nmap 1300倍的掃描速度聲名鵲起。相比大名鼎鼎的Nmap谍倦,全網(wǎng)掃描速度是他最大的亮點(diǎn)塞赂。在千兆網(wǎng)卡狀態(tài)下,45分鐘內(nèi)可掃描全網(wǎng)絡(luò)IPv4地址昼蛀。
- 掃描策略:主動掃描宴猾。
- 識別機(jī)制:無圆存,需自行編寫擴(kuò)展。
- 產(chǎn)品功能:可用于全網(wǎng)掃描的掃描節(jié)點(diǎn)仇哆。
- 掃描規(guī)模:全網(wǎng)沦辙。
Nmap
Nmap 是一個免費(fèi)開放的網(wǎng)絡(luò)掃描和嗅探工具包,也叫網(wǎng)絡(luò)映射器(Network Mapper)讹剔。Nmap 使用TCP/IP協(xié)議棧指紋來準(zhǔn)確地判斷出目標(biāo)主機(jī)的操作類型油讯。
- 掃描策略:主動掃描。
- 識別機(jī)制:基于TCP/IP協(xié)議棧指紋延欠。
- 產(chǎn)品功能:主機(jī)發(fā)現(xiàn)陌兑、端口掃描、操作系統(tǒng)識別由捎。
- 掃描規(guī)模:選定網(wǎng)段或指定ip兔综。
下面詳細(xì)解釋一下nmap的操作系統(tǒng)指紋識別策略。
首先隅俘,Nmap 通過對目標(biāo)主機(jī)進(jìn)行端口掃描,找出有哪
些端口正在目標(biāo)主機(jī)上監(jiān)聽笤喳。當(dāng)偵測到目標(biāo)主機(jī)上有多于一個開放的TCP 端口为居、一個關(guān)閉的TCP 端口和一個關(guān)閉的UDP 端口時,Nmap 的探測能力是最好的杀狡。然后蒙畴,Nmap 對目標(biāo)主機(jī)進(jìn)行一系列測試如下表,利用得出的測試結(jié)果建立相應(yīng)的目標(biāo)主機(jī)的Nmap指紋呜象。最后膳凝,將此Nmap 指紋與指紋庫中指紋進(jìn)行查找匹配,從而得出目標(biāo)主機(jī)的操作系統(tǒng)類型恭陡。
測試 | 描述 |
---|---|
T1 | 發(fā)送TCP 數(shù)據(jù)包(Flag=SYN)到開放的TCP 端口上 |
T2 | 發(fā)送一個空的TCP 數(shù)據(jù)包到開放的TCP 端口上 |
T3 | 發(fā)送TCP 數(shù)據(jù)包(Flag=SYN蹬音,URG,PSH休玩,F(xiàn)IN)到開放的TCP 端口上 |
T4 | 發(fā)送TCP 數(shù)據(jù)包(Flag=ACK)到開放的TCP 端口上 |
T5 | 發(fā)送TCP 數(shù)據(jù)包(Flag=SYN)到關(guān)閉的TCP 端口上 |
T6 | 發(fā)送TCP 數(shù)據(jù)包(Flag=ACK)到關(guān)閉的TCP 端口上 |
T7 | 發(fā)送TCP 數(shù)據(jù)包(Flag=URG著淆,PSH,F(xiàn)IN)到關(guān)閉的TCP端口上 |
Xprobe2
Xprobe2是基于ICMP協(xié)議指紋特征的主動探測遠(yuǎn)程操作系統(tǒng)類型的工具拴疤,通過主動發(fā)送UDP和ICMP請求報文到目標(biāo)主機(jī)來觸發(fā)ICMP消息永部,根據(jù)ICMP消息中網(wǎng)絡(luò)特征值進(jìn)行基于簽名數(shù)據(jù)庫的模糊匹配以及合理的推測, 通過模糊矩陣統(tǒng)計分析來探測操作系統(tǒng),從而確定遠(yuǎn)程操作系統(tǒng)的類型呐矾。
- 掃描策略:主動掃描苔埋。
- 識別機(jī)制:基于ICMP協(xié)議指紋。
- 產(chǎn)品功能:操作系統(tǒng)識別蜒犯。
- 掃描規(guī)模:指定ip组橄。
下面簡述Xprobe2的識別策略荞膘。
在Xprobe2 探測過程中,會發(fā)送不同類型的數(shù)據(jù)包到目標(biāo)主機(jī)上晨炕,同時也會收到目標(biāo)主機(jī)發(fā)送的響應(yīng)數(shù)據(jù)包衫画。當(dāng)每收到響應(yīng)數(shù)據(jù)包時,都會根據(jù)該數(shù)據(jù)包的網(wǎng)絡(luò)特征值進(jìn)行打分瓮栗,來預(yù)測是何種操作系統(tǒng)的可能性削罩。例如,3 分代表肯定费奸,2 分代表有可能是弥激,1 分代表有可能不是,0 分代表肯定不是愿阐。然后微服,針對不同的操作系統(tǒng)類型i, 將每次測試的得分?jǐn)?shù)進(jìn)行加和,以總分來判斷遠(yuǎn)程操作系統(tǒng)的類型缨历,其判斷的模糊矩陣如下表以蕴。
測試操作系統(tǒng)1 | 操作系統(tǒng)2 | … | 操作系統(tǒng)i | |
---|---|---|---|---|
測試1 | 分?jǐn)?shù) | 分?jǐn)?shù) | … | 分?jǐn)?shù) |
測試2 | 分?jǐn)?shù) | 分?jǐn)?shù) | … | 分?jǐn)?shù) |
測試3 | 分?jǐn)?shù) | 分?jǐn)?shù) | … | 分?jǐn)?shù) |
… | … | … | … | … |
測試N | 分?jǐn)?shù) | 分?jǐn)?shù) | … | 分?jǐn)?shù) |
總分 | S1 | S2 | … | Si |
在整個探測過程中,Xprobe2將依次進(jìn)行三類測試辛孵,分別是探索模塊丛肮、信息采集模塊和指紋模塊如下表。
模塊 | ICMP | TCP | UDP |
---|---|---|---|
探索模塊 | ICMP Echo | TCP Ping | UDP ping |
信息采集模塊 | TTL | 端口掃描 | \ |
指紋模塊 | ICMP Echo魄缚、 ICMP Port Unreachable宝与、SMB | ICMP Timestamp、TCP Handshake冶匹、SNMP | ICMP Address Mask习劫、TCP RST |
因此,Xprobe2 與Nmap的嚴(yán)格匹配操作系統(tǒng)指紋不同嚼隘,它會根據(jù)與簽名數(shù)據(jù)庫探測數(shù)據(jù)包的特征值推測出結(jié)果诽里。
p0f
p0f是繼Nmap、Xprobe2之后另一款操作系統(tǒng)指紋識別工具飞蛹。p0f也是基于TCP/IP協(xié)議棧指紋的须肆,它的特色在于,它采取了被動掃描的策略桩皿。
- 掃描策略:被動掃描豌汇。
- 識別機(jī)制:基于TCP/IP協(xié)議棧指紋。
- 產(chǎn)品功能:操作系統(tǒng)識別泄隔。
- 掃描規(guī)模:給定數(shù)據(jù)包拒贱。
參考文獻(xiàn)
[1] https://en.wikipedia.org/wiki/Shodan_(website)
[2] https://www.zoomeye.org/help/manual
[3] 張琦,操作系統(tǒng)指紋識別工具Nmap與Xprobe的分析和研究,科技傳播, 2010
[4] https://nmap.org/man/zh/
[5] https://en.wikipedia.org/wiki/P0f