系統指紋識别
在書中這樣描述系統指紋識别,指紋識别是識别系統的一個典型模式,包括指紋圖像擷取、處理、特征提取和對等子產品(這裡就是把系統識别比作了指紋識别)。也就是通過擷取到的資料包特征來推測目标主機使用的系統。在Nmap官網中提到“Nmap将一系列TCP和UDP資料包發送到遠端主機,并檢查響應中的每一位。在執行了TCP ISN采樣,TCP選項支援和排序,IP ID采樣以及初始視窗大小檢查等數十項測試後,Nmap将結果與其進行比較
nmap-os-db
超過2,600個已知作業系統指紋的資料庫,如果比對則列印出作業系統詳細資訊。”同時大多數指紋還具有通用平台枚舉(CPE) 表示。
CPE通用格式: cpe:/<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>
part 表示目标類型 a(應用程式)| h(硬體平台)| o(作業系統) vendor 表示向量類型 這裡我覺得就是供應商名稱 product 表示産品名稱 version 表示版本号 update 表示更新包 edition 表示版本 anguage 表示語言項 當然也并不是每次都能準确識别,如果不能正确識别,它會提供一個網站,若你已知系統類别,你可以上傳,這樣可以豐富公共資料庫。
同時,在進行檢測是也可以搜集一些資訊,比如進行時間檢測,使用時間戳選項(-ts)來估計主機上次重新開機時間; 或者進行TCP序列号預測分類,可以用來測試針對遠端主機建立一個僞造的TCP連接配接的可能性。
基本選項
-O 可以同時使用-A進行版本檢測 --osscan-limit 隻對存在打開和關閉的TCP端口的主機進行分析,這樣可以大大加快掃描時間 --osscan-guess; --fuzzy 當Nmap無法判斷時會盡可能比對,使用這些選項可以使得推測更加有效 執行個體:
首先先發現活躍主機(在之前的文章中寫過) nmap -sP 192.168.2.1/24
進行系統指紋識别![]()
kali linux 滲透技術學習筆記 5.資訊收集——網絡映射器工具Nmap (三) 系統指紋與服務指紋識别 ![]()
kali linux 滲透技術學習筆記 5.資訊收集——網絡映射器工具Nmap (三) 系統指紋與服務指紋識别 這裡雖然沒有識别出來系統類型,但是看到端口62078的監聽服務是iphon-sync,是以可以推出這個系統應該是ios。這個端口是iphon中預設的wifi同步服務端口,但可能從未使用過此端口,是以可以将它關閉,我在搜這個端口時發現了一篇文章,可以參考一下。
這裡在給出另一個例子:
可以看出,工具推測此台電腦最有可能是windows 10作業系統。![]()
kali linux 滲透技術學習筆記 5.資訊收集——網絡映射器工具Nmap (三) 系統指紋與服務指紋識别
指紋識别工具p0f
p0f是一款被動指紋識别工具,通過分析目标主機的資料包對主機上的作業系統進行識别,即便裝有性能良好的防火牆也沒有用。
官方提供的功能描述:
選項清單:p0f [options] ['filter rule']
- 高度可擴充且極快地識别vanilla TCP連接配接的兩個端點上的作業系統和軟體 - 特别是在Nmap探測器被阻塞,速度太慢,不可靠或簡單地引發警報的設定中。
- 測量系統正常運作時間和網絡連接配接,距離(包括NAT或資料包過濾器後面的拓撲),使用者語言首選項等。
- 自動檢測連接配接共享/ NAT,負載平衡和應用程式級代理設定。
- 檢測僞造聲明性語句的用戶端和伺服器,例如X-Mailer或User-Agent。
-i interface 在指定的網絡接口上偵聽 -r 檔案 從給定檔案讀取離線pcap資料 -p 偵聽界面置于混雜模式 -L 列出所有可用的接口 -f 檔案 列出所有可用的接口 -o 檔案 将資訊寫入指定的日志檔案 -s 名稱 在命名的unix套接字上回答API查詢 -u 使用者 切換到指定的無特權帳戶和chroot -d-fork 切換到指定的無特權帳戶和chroot -S 限制 并行API連接配接數限制(20) 執行個體:首先使用wireshark抓包生成test.pcap
然後 p0f -r 下載下傳/test.pcap -o p0f-result.log 進行分析
###截取的部分内容 .-[ 192.168.2.122/59278 -> 106.120.159.126/443 (syn) ]- | | client = 192.168.2.122/59278 //用戶端位址 | os = Linux 3.11 and newer //系統 | dist = 0 //矢量距離 | params = none | raw_sig = 4:64+0:0:1460:mss*20,7:mss,sok,ts,nop,ws:df,id+:0 | `---- .-[ 192.168.2.122/59278 -> 106.120.159.126/443 (mtu) ]- | | client = 192.168.2.122/59278 | link = Ethernet or modem //接口類型 | raw_mtu = 1500 //最大包長度 | `---- ### 其中并不全 ### 有時還有 app= 表示應用 lang= 表示語言類型
服務指紋識别
這裡識别的服務指紋資訊包括服務的端口、服務名和版本
nmap中的nmap-services記錄了大約2200個知名服務端口的資料庫,nmap将盡力去發現這些。但是并不能保證發現全部的服務,比如更改了服務端口就可能發現不了服務的正确端口了。
選項清單:
執行個體: nmap -sV 192.168.2.100
-sV 版本檢測 --allports 掃描全部端口 --version-intensity 設定版本掃描強度,0到9之間,越大強度和可能性越高,但是速率也會越小,是以預設為7,當然也可以使用這個來更改 --version-light 輕量版的掃描,也就相當于把掃描強度設為2 --version-all 嘗試所有探針,也就相當于吧掃描強度設為9 --version-trace 跟蹤掃描過程,不光顯示最終結果,也顯示調試過程的資訊 可以看到打開的端口,服務類型和服務版本![]()
kali linux 滲透技術學習筆記 5.資訊收集——網絡映射器工具Nmap (三) 系統指紋與服務指紋識别
服務枚舉工具Amap
被形容為下一代掃描工具,主要用于識别運作在某一些指定端口上的應用程式。
通常的使用方法 amap -bq ip port 例:amap -bq 192.168.2.100 1-1080
文法:amap [-A | -B | -P | -W] [-1buSRHUdqv] [[ - m] -o <file>] [-D <file>] [-t / -T sec] [-c cons] [-C retries] [-p proto] [-i <file>] [目标端口[端口] ] ...]
模式:
-A地圖應用程式:發送觸發器并分析響應(預設)
-B隻需抓取橫幅,不發送觸發器
-P無橫幅或應用程式内容 - 是(完全連接配接)端口掃描程式
選項:
-1僅發送觸發到端口,直到第一次識别。Speeeeed!
-6使用IPv6而不是IPv4
-b列印響應的ascii标志
-i FILE Nmap機器可讀輸出檔案從-u 讀取端口
指令行上指定的端口是UDP(預設為TCP)
-R不要識别RPC服務
-H不要發送标記為可能有害的應用程式觸發器
-U不要轉儲無法識别的響應(更好地用于腳本)
-d轉儲所有響應
-v詳細模式,使用兩次(或更多!)進行調試(不推薦-
q不報告關閉的端口,也不要将它們列印為unidentified
-o FILE [-m]将輸出寫入檔案FILE,-m建立機器可讀輸出
-c CONS要進行的并行連接配接數量(預設為32,最大256)
-C RETRIES連接配接逾時時重新連接配接的次數(請參閱-T)(預設值為3)
-T SEC連接配接嘗試時連接配接逾時(以秒為機關)(預設值為5)
-t SEC響應等待逾時(以秒為機關)(預設值為5)
-p PROTO僅發送此協定的觸發器(例如ftp)
目标端口要掃描的目标位址和端口(除-i之外)
amap是用于識别目标端口上的應用程式協定的工具。
注意:此版本未使用SSL支援進行編譯!
用法提示:建議使用選項“-bqv”,為快速/緊急檢查添加“-1”。
執行個體:amap -bq 192.168.2.100 1-1080
有點多,是以截取了有特征的一部分
可以看到,有些端口可以連結,有些不可以,有些可以分析出什麼服務在監聽端口,比如圖中的http, apache , IIS![]()
kali linux 滲透技術學習筆記 5.資訊收集——網絡映射器工具Nmap (三) 系統指紋與服務指紋識别
這裡我隻是在随着書的内容學習,内容不深,是以在以後,結束這本入門書的學習之後,我還會傳回來更深入的學習和介紹nmap和相關的軟體。 也許對這部分的深入會在後面的博文中介紹。
至此,一些簡單的基礎的資訊收集手段介紹就完成了,接下來的文章中将會學習一些其他的資訊收集方法
部落客還在學習kali的相關内容,如有錯誤,還請各位指出,謝謝支援。