厚積薄發,在經過一年多積攢之後,Nmap官方最近發佈了一個新的Npcap 1.00版本,緊接著發佈了Nmap 7.9版本。 這是自從2019 Defcon極客大會後Nmap發佈的第一個新版本。此期間官方立足於其底層軟件Npcap的開發,總共發佈了16個Npcap版本,使其成為一個穩定的線上高性能版本1.00,以此為基礎打造Nmap多平臺下共體驗的平臺。
概述
除了一般功能和改善,Nmap 7.9版本中整合1200多個的特徵指紋,可以獲得更好的操作系統和服務/版本檢測。但是這只是整合的提交的部分特徵指紋,後續官方會持續整合更多特徵庫,使得掃描結果更準確。
新版本中也添加了新的NSE腳本,協議庫,用於主機發現,端口掃描和版本的Poc。
Nmap官方還進行了許可證清理,並提供了許可一個名稱(Nmap Public Source License)以避免先前的混淆。Nmap版權說明為"具有各種說明和例外的GPLv2"。NPSL仍然基於GPLv2,但從其他方面流行的開源許可證。為獲得特許的公司創建特殊的" Nmap OEM版",Nmap處理其產品中的主機發現。OEM版本安裝程序可以根據自己的需求進行定製。
Nmap 7.90還包括70多個較小的錯誤修復和改進,其中包括積累一年的提交變化和各種構建系統升級和代碼質量改進;解決了由LGTM靜態分析識別的250多個問題,Nmap LGTM代碼質量從"C"升級到"A+"的等級。
功能變化
特徵庫更新
Nmap 7.90共集成了800多個服務/版本檢測指紋 自2017年8月以來。簽名數量增加了1.8%,達到11,878個,其中包括17個新的軟匹配。新版本中可以從airmedia-audio中檢測到1237個協議,banner-ivu和control-m到insteon-plm,pi-hole-stats和ums-webviewer。仍有大量提交需要整合在下一個版本中。
集成了330個最常用的IPv4 OS指紋。自2017年8月以來,增加了26個指紋,總數達到了5,678。新增包括iOS 12和13,macOS Catalina,Mojave,Linux 5.4,FreeBSD 13等。
整合了2017年8月至2020年9月新增的所有67個IPv6 OS指紋提交。包括FreeBSD 12,Linux 5.4和Windows 10,併合並了幾個弱組以改善分類準確性。
基本組件
解決了LGTM識別的250多個代碼質量問題,將代碼質量得分從"C"提高到"A+"
刪除了nmap-update。該程序用於提供一種更新數據文件和NSE腳本的方式,但是基礎設施從未部署過。取決於Subversion版本控制,需要進行維護NSE腳本的不同版本,以實現兼容性。
MySQL 8.x,Microsoft SQL添加了服務指紋Server 2019,MariaDB和Crate.io CrateDB。更新了PostreSQL的覆蓋範圍和添加了對Docker中運行的最新版本的特定檢測。
23個新的UDP有效負載和許多現有的默認端口為Rapid7的InsightVM掃描引擎開發的有效載荷。這將加快和確保檢測到開放的UDP服務。
為STUN(用於NAT的會話遍歷實用程序)添加了UDP有效負載。
限制Nmap的腳本和數據文件搜索路徑。NMAPDATADIR(在Unix和Linux上定義為${prefix}/share/nmap)不會在Windows上進行了搜索,該窗口先前已定義為C\Nmap。此外,--script選項不會將名稱解釋為目錄名稱,除非它們後跟一個/'。
修復了未經請求的ARP響應為收到:nmap:Target.cc:503:void Target :: stopTimeOutClock(const timeval *):斷言" htn.toclock_running == true"失敗。
修復了移動後遺留的ARP主機發現的迴歸問題從有時在Nmap 4.22SOC8(2007)中按摩到ultra_scan在掃描即將結束時缺少目標的ARP響應。精度和速度都提高了。
通過避免字符串複製,將OS掃描的CPU使用率降低了50%操作和刪除未使用的未記錄指紋語法nmap-os-db(表達式中的"&"和" +")。
允許為以下端口指定多個UDP有效負載:nmap有效載荷。如果第一個有效載荷沒有得到響應,則剩餘的有效負載將循環嘗試。
新選項--discovery-ignore-rst告訴Nmap忽略TCP RST確定目標是否達到目標時作出響應。當防火牆是有用的欺騙RST數據包。
現在可以覆蓋通過--ssl-servername的TLS SNI值。
允許使用--resume恢復IPv6掃描。地址解析是假設IPv4地址,導致"無法解析ip"錯誤。在相關的修復程序中,從XML恢復時,MAC地址不會被解析為IP地址。
在目標主機發現過程中發出新的XML輸出" hosthint"標籤被發現上升。這會比等待主機組以完成所有掃描階段。
用於GPRS隧道協議(GTP)的新UDP有效負載端口2123、2152和3386。
修復了可能掛起的TCP選項的解析(無限循環)如果選項的顯式長度為0。(僅影響Nmap 7.80)。
修復了對非PTR記錄的反向DNS處理小寫。DNS時,Nmap無法識別反向DNS名稱服務器將它們傳遞為".IN-ADDR.ARPA"。
修復IP地址CIDR塊在ppc64,ppc64le和s390x體系結構正確顯示。
[Nping] 由於"使用命名空間標準",導致在libc++下地址構建失敗;在多個標頭中,會導致bind()的定義衝突。
[Ncat] [GH#1868]修復了連接到Linux VM套接字時的致命錯誤啟用詳細輸出。
[Ncat] [GH#2060]代理憑據可以替代地傳遞到Ncat通過設置環境變量NCAT_PROXY_AUTH,防止在流程日誌中捕獲的憑據。
將libpcap升級到1.9.1,解決幾個CVE漏洞。
將libssh2升級到1.9.0,修復使用OpenSSL 1.1.0 API的編譯。
[Zenmap] [GH#1777] 停止在計算機上創建調試輸出文件'tmp.txt'。macOS中的桌面。
Window版本
使用新升級的Npcap, Windows數據包捕獲和發送庫達到里程碑1.00版本。7年內遞增發佈了170個公共預開發版本,包括數十個性能改進,錯誤修復和功能增強。
從Windows中刪除了無提示安裝命令行選項(/S)安裝程序。它導致一些問題。它還將保留在Nmap OEM中,因為其主要用途是為那些與其他軟件一起重新分發Nmap。
在Npcap 0.9983和後續版本。這使Nmap可以直接Windows上掃描localhost,而無需要安裝的Npcap Loopback適配器。
修復了Windows的"iocp" Nsock引擎,使其能夠正確運行處理PCAP讀取事件並使其為Windows版本的默認引擎。
NSE更新
新的Outlib庫合併了與NSE輸出相關的功能,字符串格式約定和結構化輸出。
新的dicom庫實現了用於存儲的DICOM協議和傳輸醫學圖像。
新添加3個NSE腳本,NSE總數達到601個,新增加的腳本為:
dicom-brute:嘗試暴力破解被調用的DICOM服務器AE Title。
dicom-ping:用於發現DICOM服務器並確定是否有潛在的AE Title可以連接。
uptime-agent-info:從Idera收集系統信息正常運行時間基礎結構監視器代理。
afp-ls腳本的性能大幅度改善。
SNMP腳本檢測時候,可以探測非非標準端口的SNMP服務。
SSH腳本現在在可能是SSH的多個端口上運行基於Shodan.io的經驗數據以及netconf-ssh服務。
MS SQL庫從Service Pack中改進了版本分辨率級別到各個累積更新。
http-default-accounts腳本報告匹配目標指紋,即使沒有默認憑據找到,也會提供更多信息。
現在腳本dhcp-discover和broadcast-dhcp-discover支持新的參數" mac"以強制特定的客戶端MAC地址。
受益於與NFS相關的腳本,RPC Dump中的代碼做了大量改進。
腳本ssl-cert的XML輸出現在包括RSA密鑰模數和指數。
當SMB腳本,例如smb-ls,調用smb.find_files 。
添加了HTTP默認賬戶指紋,用於Tomcat主機管理器和Dell iDRAC9。
修復了stun.lua庫中的一次性錯誤,該錯誤阻止瞭解析服務器響應。
修復腳本ssh2-enum-algos將失敗完成協議版本交換之前進行密鑰交換。
修復由於密鑰交換,SSH2密鑰的獲取可能會失敗混亂。
修復解析AFP FPGetFileDirParms和
FPEnumerateExt2FPEnumerateExt2響應無法正常工作。
消除了腳本http-shellshock中的誤報由HTTP請求數據的簡單反映引起的問題。
修復MQTT庫在解析時使用的位置不正確收到回覆。
修復IPMI庫在解析時使用的位置不正確收到回覆。
修復ipmi-brute和deluge-rpc-brute腳本未捕獲成功的暴力認證。
修復IKE庫未正確填充主動模式請求中的協議號。
修復IPP請求對象到字符串的轉換不起作用的問題。
修復IPP響應解析器未正確處理屬性結尾標籤。
修復腳本cups-info因錯誤的雙解碼錯誤而失敗IPP打印狀態。
修復Oracle TNS解析器錯誤地解析了DALC字節數組。
修復Oracle 10g的密碼哈希不能用於非字母數字字符功能的問題。
修復虛擬主機探測列表vhosts-full.lst缺少許多vhosts-default.lst中存在的條目。
修復http-grep腳本計算Luhn校驗和錯誤的問題。
修復RPC代碼使用的端口範圍不正確,這會導致某些調用(例如NFS mountd)間歇性失敗。
修復MongoDB庫在組裝時引起錯誤協議有效負載。
修復RTSP庫未正確生成請求字符串。
修復 VNC握手失敗,插入位置超出邊界錯誤。
修復庫msrpctypes中的函數marshall_dom_sid2不是正確填充ID Authority。
修復msrpctypes庫中的解析函數是嘗試對nil參數進行算術運算。
修復函數庫中的lsa_lookupnames2和lsa_lookupsids2用調試調用時,msrpc錯誤地引用了函數strjoin2級或更高。
修復Samba中的MS-SMB規範不合規導致協議協商失敗,並出現數據字符串太短的錯誤。
修復SMB庫中的錯誤導致腳本因格式參數錯誤而失敗。
修復請求代碼時,HTTP庫不再崩潰摘要身份驗證,但服務器未提供必要的認證身份驗證標頭。
修復http-wordpress-users.nse中的一個錯誤,該錯誤可能會導致不必要的輸出作為用戶名的一部分捕獲。
修復了在處理GZIP編碼的Windows上的崩潰問題HTTP正文。
Npcap OEM版
新發布了Npcap OEM版本。20多年來,Nmap項目已經由出售許可證的公司提供資金來分發Nmap產品,以及商業支持。數百種商品現在將Nmap用於網絡發現任務,例如端口掃描,主機發現,操作系統檢測,服務/版本檢測,當然還有Nmap腳本引擎(NSE)。到目前為止,他們還在使用標準的Nmap,此次推出新的OEM版本是為在其他Windows軟件中使用而定製的。Nmap OEM包含Npcap驅動程序的OEM版本,靜默安裝。還會刪除Zenmap GUI,將安裝程序大小減小一半以上。
Nmap許可證從GPLv2的一種hacked-up版本升級到了更乾淨,組織更好的版本(仍基於GPLv2)現在稱為Nmap公開源代碼許可以避免混淆。
升級更新
Nmap提供了平臺的二進制編譯安裝包,以直接在官方download下載安裝。
也可以下載源碼或者從github倉庫clone源碼編譯安裝。
bzip2 -cd nmap-7.91.tar.bz2 | tar xvf -
cd nmap-7.91
./configure
make
su root
make install
安裝時候,可能會由於缺少組件而報錯,需要先安裝這些組件,比gcc,make,g++等:
yum install gcc make g++ flex bison