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