在刚开始萌生自学渗透测试想法的时候,我就去网上搜索一些入门教程,在很多文章中都看到一个工具:*Nmap。
Nmap 全称是 Network Mapper,是一款开源、免费的网络扫描工具,主要功能包括:
Nmap 支持 macOS、Linux 和 Windows 系统,并且自带强大的脚本功能(NSE),可用于漏洞扫描、密码猜解、Web 服务识别等任务。
因为我平时使用 macos 和 cenots 比较多,所以使用 yum 和 brew 就可以轻松安装 nmap。
安装完成后,可用 nmap -v
命令验证。
如图,可以看到安装版本 Nmap 7.92,表示安装成功。
接下来我们就看一下 nmap 的一些常见用法。
最简单的用法就是后面跟上IP,扫描单个目标主机,默认会扫描最常用的 1000 个 TCP 端口,并返回开放的端口号和服务信息。
例如,执行 nmap 152.136.9.11
扫描我的云服务器。如下图所示,就返回了云服务器上我部署的一些服务。
后面可以跟着多个IP,同时扫描多个主机。
nmap 192.168.1.1 192.168.1.2
或者扫描整个网段:
nmap 192.168.1.0/24
因为全部端口扫描的话,会很耗费时间,所以我们可以针对于某些常用的端口进行扫描。
nmap -p 22,80,443,3306 192.168.1.1
在之前扫描所有端口用了42s,这里只扫描 22,80,443,3306 四个端口,只耗费了0.12s就完成了。
也可以用范围扫描:
nmap -p 1-1000 192.168.1.1
如果不想枚举端口的的话,我们可以使用-F
,只扫描常用端口。
nmap -F 192.168.1.1
相对于42s,这里只花费了5s就扫描完成了开放的端口,而且返回的扫描结果也是很全面。
通过 -sn
来检测主机是否在线,不会扫描端口。
nmap -sn 192.168.1.0/24
从图中,我们也可以看到 Host is up
,表明服务器在线。
Nmap 有内置脚本引擎(Nmap Scripting Engine,简称 NSE),可进行漏洞扫描、弱口令检测等。
nmap --script=vuln 192.168.1.1
如图所示:
扫描提示,8080 端口存在 Web 页面 /examples/、/docs/,极可能是测试或开发环境,容易暴露漏洞。MySQL 可以远程连接,配合弱口令可能会被突破。
我们在扫描的时候,可以通过 --source-port
指定端口来伪装扫描。
nmap --source-port 53 192.168.1.1
通过 -sV
探测每个开放端口所对应的服务名称和版本号,这样更有助于判断当前服务是否存在漏洞。
nmap -sV 192.168.1.1
如图所示:扫描到了我的MySQL、Tomcat以及SSH的版本信息。
操作系统需要使用root操作权限,启用 TCP/IP 指纹识别技术,判断目标主机的操作系统类型。
nmap -O 192.168.1.1
Nmap 是一款强大的网络扫描工具,使用起来也是非常的简单。本篇文章也只是讲述了最简单常见的用法,对于梳理目标资产、发现服务端口和漏洞也是起到了很大的帮助。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。