Nmap(Network Mapper)是一款开源的网络探测和安全审计工具,它广泛应用于网络安全领域,用于网络发现、端口扫描、服务识别、版本检测和操作系统检测等 。Nmap的强大之处在于其能够快速扫描大型网络或单个主机,使用原始IP报文来发现网络上的主机、主机提供的服务、操作系统类型以及可能存在的安全漏洞 。
Nmap的优势包括功能强大、支持多目标扫描、开源且拥有详细的帮助文档,以及其在全球的高流行度 。然而,它也有一些劣势,比如参数众多难以记忆,且在扫描漏洞方面的能力不如其他专业的漏洞扫描器 。
Nmap的常用指令包括:
nmap ip
:对单个目标进行扫描。nmap ip1 ip2
:对多个目标进行扫描。nmap xxx.xxx.xxx.xxx-xxx
:扫描一个范围内的目标。nmap xxx.xxx.xxx.xxx/xx
:扫描目标地址所在某网段。nmap -iL <File path>
:从文件中扫描包含的所有地址 。nmap ip -p 端口号
:扫描目标地址的指定端口。nmap --traceroute ip
:对目标地址进行路由跟踪。nmap -sP ip段
:扫描目标地址C段的在线主机。nmap -O ip
:对目标地址操作系统版本进行探测。nmap -sV ip
:扫描目标地址开放服务(端口)版本。nmap -Pn -A ip
:绕过防火墙进行全面扫描 。
Nmap还支持使用脚本进行扫描,例如使用 `--script=auth` 进行弱口令扫描,或使用 `--script=brute` 进行暴力破解等 。此外,Nmap的脚本引擎NSE允许用户添加自定义脚本,进一步扩展其功能 。
FYI - 在使用Nmap时,应遵循适用的法律和道德准则,确保合法和合规的使用 。
实操:如何在Kali上扫描端口
在Kali Linux虚拟机上使用Nmap进行端口扫描的步骤与在其他Linux发行版上类似,但首先确保你的Kali Linux虚拟机已经安装并启动。以下是详细步骤:
1. 启动Kali Linux虚拟机
确保你的虚拟机已经安装了Kali Linux,并且已经启动。
2. 打开终端
在Kali Linux虚拟机中打开终端窗口。
3. 更新系统和Nmap
在开始扫描之前,更新系统和Nmap到最新版本:
sudo apt-get update
sudo apt-get upgrade
4. 安装Nmap(如果尚未安装)
Kali Linux通常预装了Nmap,但如果没有,可以使用以下命令安装:
sudo apt-get install nmap
5. 基本扫描
对指定的主机进行基本的端口扫描:
nmap 目标IP地址
6. 指定端口扫描
扫描特定的端口或端口范围:
nmap -p 端口范围 目标IP地址
7. 服务版本检测
确定运行在开放端口上的服务及其版本:
nmap -sV 目标IP地址
8. 操作系统检测
确定目标主机的操作系统:
nmap -O 目标IP地址
9. 脚本扫描
运行默认脚本进行更复杂的扫描:
nmap -sC 目标IP地址
10. 避免被追踪
设置扫描的时间模板以降低被发现的风险:
nmap -T4 目标IP地址
11. 保存扫描结果
将扫描结果保存到文件中:
nmap -oN 扫描结果文件名.nmap 目标IP地址
12. 并行扫描
对所有主机进行扫描,不进行主机发现:
nmap -P0 目标IP地址
13. 扫描报告
生成HTML格式的扫描报告:
nmap -oX 扫描报告文件名.xml 目标IP地址
xsltproc -o 扫描报告文件名.html /usr/share/nmap/nmap.xsl 扫描报告文件名.xml
14. 扫描策略文件
Kali Linux中的Nmap还支持使用扫描策略文件,例如:
nmap --datadir /usr/share/nmap/scripts 目标IP地址
注意事项
- 确保你有权扫描目标网络,遵守法律法规。
- 扫描可能会对网络性能产生影响,应避免在高峰时段进行。
- 扫描结果应妥善保存,避免泄露敏感信息。