Nmap代表Network Mapper,它是一個(gè)免費(fèi)的開(kāi)源網(wǎng)絡(luò)掃描和偵察工具,用于掃描主機(jī)和收集有關(guān)主機(jī)的詳細(xì)信息。在本指南中,我們介紹了如何在Linux系統(tǒng)中安裝Nmap命令,以及列舉了幾個(gè)非常實(shí)用的nmap命令示例。
Nmap代表Network Mapper,它是一個(gè)免費(fèi)的開(kāi)源網(wǎng)絡(luò)發(fā)現(xiàn)和偵察工具,用于發(fā)現(xiàn)主機(jī)和收集有關(guān)主機(jī)的詳細(xì)信息。nmap是用C,C ++和Python編寫(xiě)的,最初于1997年9月發(fā)布,已經(jīng)成為網(wǎng)絡(luò)安全和數(shù)字取證專業(yè)人士不可或缺的工具,依靠它們可以揭示有關(guān)目標(biāo)主機(jī)和發(fā)掘潛在漏洞的詳細(xì)信息。Nmap揭示了諸如網(wǎng)絡(luò)上的活動(dòng)主機(jī),打開(kāi)的端口,操作系統(tǒng)和服務(wù)檢測(cè)以及執(zhí)行隱形掃描等信息。
在本指南中,我們重點(diǎn)介紹了一些方便的Nmap命令,您可以使用這些命令從主機(jī)系統(tǒng)中檢索盡可能多的信息
如何安裝nmap
在研究使用nmap命令的各種方式之前,讓我們檢查一下如何安裝此有用的命令行工具。安裝nmap的最簡(jiǎn)單,通用的方法是使用snap軟件包??煺帐请S庫(kù)和依賴項(xiàng)一起提供的預(yù)構(gòu)建軟件包。它們可以在所有主要的Linux發(fā)行版中找到。您可以在snapstore中找到大量的快照。但是,在從快照包安裝Nmap之前,需要首先啟用快照的守護(hù)程序。這將使您能夠下載和安裝快照包。
要使用快照安裝Nmap,請(qǐng)運(yùn)行以下命令。
# snap install nmap
另外,您可以選擇使用每個(gè)Linux發(fā)行系列獨(dú)有的軟件包管理器來(lái)安裝Nmap。
Ubuntu和Debian安裝nmap
對(duì)于基于Ubuntu / Debian / Mint的發(fā)行版,請(qǐng)使用APT軟件包管理器,如圖所示。
# apt -y install nmap
CentOS 8 / RHEL 8 / Fedora 22及更高版本上安裝nmap
對(duì)于CentOS 8 / RHEL 8和Fedora 22及更高版本,請(qǐng)使用dnf軟件包管理器。
# dnf -y install nmap
CentOS 7和RHEL 7上安裝nmap
對(duì)于CentOS 7 / RHEL 7和更早的版本,請(qǐng)使用yum軟件包管理器。
# yum -y install nmap
Arch Linux / Manjaro安裝nmap
對(duì)于基于Arch的系統(tǒng),請(qǐng)使用pacman軟件包管理器,如圖所示。
# pacman -S nmap
看完nmap的安裝后,讓我們繼續(xù)來(lái)看Linux中20個(gè)很棒的nmap命令示例
如何安裝nmap
在研究使用nmap命令的各種方式之前,讓我們檢查一下如何安裝此有用的命令行工具。安裝nmap的最簡(jiǎn)單,通用的方法是使用snap軟件包??煺帐请S庫(kù)和依賴項(xiàng)一起提供的預(yù)構(gòu)建軟件包。它們可以在所有主要的Linux發(fā)行版中找到。您可以在snapstore中找到大量的快照。但是,在從快照包安裝Nmap之前,需要首先啟用快照的守護(hù)程序。這將使您能夠下載和安裝快照包。
要使用快照安裝Nmap,請(qǐng)運(yùn)行以下命令。
# snap install nmap
另外,您可以選擇使用每個(gè)Linux發(fā)行系列獨(dú)有的軟件包管理器來(lái)安裝Nmap。
Ubuntu和Debian安裝nmap
對(duì)于基于Ubuntu / Debian / Mint的發(fā)行版,請(qǐng)使用APT軟件包管理器,如圖所示。
# apt -y install nmap
CentOS 8 / RHEL 8 / Fedora 22及更高版本上安裝nmap
對(duì)于CentOS 8 / RHEL 8和Fedora 22及更高版本,請(qǐng)使用dnf軟件包管理器。
# dnf -y install nmap
CentOS 7和RHEL 7上安裝nmap
對(duì)于CentOS 7 / RHEL 7和更早的版本,請(qǐng)使用yum軟件包管理器。
# yum -y install nmap
Arch Linux / Manjaro安裝nmap
對(duì)于基于Arch的系統(tǒng),請(qǐng)使用pacman軟件包管理器,如圖所示。
# pacman -S nmap
看完nmap的安裝后,讓我們繼續(xù)來(lái)看Linux中20個(gè)很棒的nmap命令示例
(1)Nmap命令用于掃描單個(gè)主機(jī)
nmap命令的基本形式可用于掃描單個(gè)主機(jī),而無(wú)需傳遞任何參數(shù)。語(yǔ)法如下所示:
# nmap <ip地址>
例如;
# nmap 103.47.83.186

或者,您可以指定域名,而不是指定IP地址,如下
# nmap lanan.fun

(2)nmap如何掃描多臺(tái)主機(jī)
一次掃描多個(gè)主機(jī)特別適用于要一次掃描多個(gè)主機(jī)的廣泛網(wǎng)絡(luò)。這是在單個(gè)命令中掃描主機(jī)的簡(jiǎn)便方法,而不是分別掃描每個(gè)主機(jī)。例如,您在處理其他內(nèi)容時(shí)可以掃描10個(gè)或更多主機(jī)或整個(gè)子網(wǎng)。有不同的解決方法。
首先,您可以在一行中指定多個(gè)IP地址或域,并用空格隔開(kāi),如圖所示;
# nmap 103.47.83.186 103.23.11.114

(3)nmap通過(guò)詳細(xì)選項(xiàng)獲取更多信息
要在nmap掃描期間獲得更強(qiáng)大的輸出,請(qǐng)使用-v選項(xiàng)。此選項(xiàng)打印出掃描的詳細(xì)信息,例如掃描的性質(zhì)和發(fā)現(xiàn)的打開(kāi)的端口。
# nmap -v 103.47.83.186

(4)nmap執(zhí)行快速掃描
顧名思義,您可以通過(guò)傳遞-F標(biāo)志來(lái)使用nmap進(jìn)行更快的掃描,如下所示:
# nmap -F 103.47.83.186

(5)nmap執(zhí)行掃描以檢測(cè)防火墻
防火墻檢測(cè)在執(zhí)行漏洞測(cè)試或道德黑客攻擊時(shí)特別有用。它使系統(tǒng)管理員可以知道是否啟用了目標(biāo)主機(jī)的防火墻。要了解防火墻的狀態(tài),請(qǐng)使用-sA標(biāo)志,如圖所示。
# nmap -sA 103.47.83.186

這將啟動(dòng)ACK掃描,以檢查數(shù)據(jù)包是否可以未經(jīng)過(guò)濾通過(guò)。使用-n標(biāo)志可防止目標(biāo)主機(jī)上的DNS反向解析。
(6)nmap收集系統(tǒng)服務(wù)版本和端口信息
掃描可能的漏洞時(shí),檢測(cè)正在運(yùn)行的服務(wù)及其版本以及它們正在偵聽(tīng)的端口至關(guān)重要。這使您知道攻擊者可以利用哪些服務(wù)來(lái)破壞您的系統(tǒng)。有關(guān)服務(wù)和端口版本的知識(shí)使您可以決定是將服務(wù)更新為最新版本還是完全卸載它們。
要收集服務(wù)和端口信息,請(qǐng)使用-sV標(biāo)志。
# nmap -sV 103.47.83.186

(7)nmap打印出主機(jī)接口和路由
有時(shí),您可能會(huì)發(fā)現(xiàn)需要找到主機(jī)系統(tǒng)的接口和路由以進(jìn)行調(diào)試??梢酝ㄟ^(guò)傳遞–iflist選項(xiàng)輕松實(shí)現(xiàn)。
# nmap --iflist

(8)nmap執(zhí)行主動(dòng)掃描
使用-A選項(xiàng)時(shí),nmap會(huì)給出非常詳細(xì)的掃描結(jié)果,包括打開(kāi)的端口和正在運(yùn)行的服務(wù)的版本,操作系統(tǒng)檢測(cè),甚至執(zhí)行目標(biāo)主機(jī)的跟蹤路由。
# nmap -A 103.47.83.186
(9)配合腳本使用
0x03 使用系列的nmap NSE 進(jìn)行檢查
#nmap腳本主要分為以下幾類,在掃描時(shí)可根據(jù)需要設(shè)置--script=類別這種方式進(jìn)行比較籠統(tǒng)的掃描:
auth: 負(fù)責(zé)處理鑒權(quán)證書(shū)(繞開(kāi)鑒權(quán))的腳本
broadcast: 在局域網(wǎng)內(nèi)探查更多服務(wù)開(kāi)啟狀況,如dhcp/dns/sqlserver等服務(wù)
brute: 提供暴力破解方式,針對(duì)常見(jiàn)的應(yīng)用如http/snmp等
default: 使用-sC或-A選項(xiàng)掃描時(shí)候默認(rèn)的腳本,提供基本腳本掃描能力
discovery: 對(duì)網(wǎng)絡(luò)進(jìn)行更多的信息,如SMB枚舉、SNMP查詢等
dos: 用于進(jìn)行拒絕服務(wù)攻擊
exploit: 利用已知的漏洞入侵系統(tǒng)
external: 利用第三方的數(shù)據(jù)庫(kù)或資源,例如進(jìn)行whois解析
fuzzer: 模糊測(cè)試的腳本,發(fā)送異常的包到目標(biāo)機(jī),探測(cè)出潛在漏洞
intrusive: 入侵性的腳本,此類腳本可能引發(fā)對(duì)方的IDS/IPS的記錄或屏蔽
malware: 探測(cè)目標(biāo)機(jī)是否感染了病毒、開(kāi)啟了后門(mén)等信息
safe: 此類與intrusive相反,屬于安全性腳本
version: 負(fù)責(zé)增強(qiáng)服務(wù)與版本掃描(Version Detection)功能的腳本
vuln: 負(fù)責(zé)檢查目標(biāo)機(jī)是否有常見(jiàn)的漏洞(Vulnerability)
配合腳本使用案例:
# nmap --script http-headers www.tjdsmy.cn

驗(yàn)證SSL-cert證書(shū)問(wèn)題
Nmap -v -v --scripts ssl-cert 103.47.83.186
