趙子凱 王宇 岳雪婷



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