趙子凱 王宇 岳雪婷
Nmap 是一款網(wǎng)絡(luò)掃描和主機(jī)偵測(cè)的工具,不僅可以用來(lái)信息收集和枚舉,也可以作為一個(gè)漏洞探測(cè)器或安全掃描器使用。Nmap 適用于Windows,Linux,Macintosh 等主流操作系統(tǒng),功能強(qiáng)大,然而在處理返回結(jié)果時(shí),由于不同參數(shù)的返回結(jié)果不同,導(dǎo)致需要使用程序來(lái)對(duì)返回結(jié)果進(jìn)行處理,讓Nmap 掃描的結(jié)果能夠更加直觀。
處理方法
使用python 對(duì)Nmap 進(jìn)行調(diào)用,通過處理參數(shù),對(duì)返回結(jié)果進(jìn)行解析,讓使用者只需要調(diào)用函數(shù)即可獲取所需結(jié)果。編寫的程序包括對(duì)于Nmap 的調(diào)用以及結(jié)果處理兩部分,方便使用者獲取Nmap 的返回信息
1. 調(diào)用Nmap
首先枚舉Nmap 所在位置,通過Nmap V來(lái)判斷Nmap是否存在以及獲取版本,判斷邏輯如圖所示:
對(duì)用戶輸入?yún)?shù)進(jìn)行處理,通過subprocess 啟動(dòng)一個(gè)新進(jìn)程來(lái)使用Namp 并且獲取返回結(jié)果。
2. 對(duì)返回結(jié)果進(jìn)行處理
通過communicate 獲取返回結(jié)果與報(bào)錯(cuò),對(duì)報(bào)錯(cuò)進(jìn)行處理,對(duì)于Nmap 的掃描結(jié)果,首先處理編碼,保證后續(xù)處理不會(huì)因?yàn)榫幋a報(bào)錯(cuò),如下圖所示:
之后對(duì)于返回的結(jié)果如端口狀態(tài)、IP 和Mac 地址等逐個(gè)進(jìn)行正則匹配,獲取對(duì)應(yīng)參數(shù),并且保存到字典中,如圖所示。
通過調(diào)用對(duì)應(yīng)方法來(lái)獲取對(duì)應(yīng)值,例如all_hosts(),封裝常用參數(shù)調(diào)用函數(shù),方便調(diào)用,如圖所示。
結(jié)果測(cè)試
通過導(dǎo)入類,指定Nmap 參數(shù),獲取參數(shù)等來(lái)實(shí)現(xiàn)結(jié)果處理,首先進(jìn)行掃描,獲取掃描參數(shù),如圖所示。
計(jì)算機(jī)與網(wǎng)絡(luò)2021年10期