Nmap 传统上被描述为端口扫描工具。
另一种解释是,Nmap是一个极其流行的黑客工具,用于获取目标信息,特别是侦查工作。而众所周知,侦查被认为是任何渗透测试中最重要的方面之一。
当您需要建立有关您感兴趣的实际目标或 IP 的信息时,该工具确实最适合使用。
该工具几乎可以在所有可以想象的平台上使用,当然,如果您下载并安装了 Kali Linux、Parrot、Backbox 或类似版本的副本,那么 Nmap 会随这些 Linux 发行版一起提供。
在这篇文章中,我们将列出一些非常有用的 Nmap 命令,这些命令将在您执行渗透测试或安全审计时为您提供帮助。
如何针对单个 IP、主机或目标启动基本 Nmap 扫描
如何扫描本地或远程服务器上的特定端口或扫描整个端口范围
如何扫描多个 IP 地址
如何扫描一组 IP 范围
如何扫描最受欢迎和最知名的端口
如何扫描从文本文件中读取的主机和 IP 地址
如何将 Nmap 扫描结果保存到文本文件
如何禁用DNS名称解析
如何扫描操作系统
检测服务/守护程序版本
使用 TCP 或 UDP 协议进行扫描
如何使用 Nmap 执行 CVE 检测
如何使用 Nmap 启动 DoS
如何使用 Nmap 发起暴力攻击
如何检测远程主机上的恶意软件感染
结合 Nikto Scan 和 Nmap
只需键入以下命令即可启动 nmap:
nmap
然后,这是超级简单的,只需输入IP地址,如果你的目标!
nmap 1.1.1.1
您也可以扫描特定的主机名,只需像这样替换主机名的 IP:
nmap hostname.com
如果您刚刚开始使用渗透测试或安全审核,那么这种类型的初始扫描可能是合适的,但是 - 请谨慎行事,因为它会相当嘈杂,任何具有良好设置的防火墙都会立即标记此行为并踢出您。
nmap -p 1-65535 servername
我们上面使用的命令使用了标志,该标志表示 Nmap 将自身与 Ports 相关联(因此是“P”——真的很简单!-P
之所以有 65535 个,是因为这是现实生活中有多少个端口。
使用上面的命令 Nmap 将耐心扫描所有可能的端口,但这可能是不必要的,也许您只想扫描特定端口。为此,请执行以下操作:
nmap -p 80,443 8.8.8.8
这将检查两个访问端口,以便公众查看网页。普通的 HTML 将通过端口 80 提供,而 SSL 当然是 443。
对于其他类似的基本协议,我这里有一个可能有用的资源。
问得好!如果您的客户端有一堆要扫描的域,那么您只需要在语法末尾附加一个逗号,如下所示:
当然,将“X”替换为数字——我只是使用它,因为我想突出显示附加的“2,3,4”以显示额外的 IP 地址。
nmap -p X.X.X.X,2,3,4
这将扫描 、 和 。X.X.X.X
X.X.X.2
X.X.X.3
X.X.X.4
能够扫描整个 IP 范围怎么样?好问题!为此,您可以执行此语法,并为 0-28 CIDR IP 范围附加斜杠。例如:
nmap -p X.X.X.X/28
当然,将 X 替换为实数。
只需点击以下命令即可获得网络上“最受欢迎”和通常打开的端口
nmap --top-ports 30 192.168.1.106
将“30”替换为要扫描的端口数。
通常扫描的 Nmap 端口(实际上是协议)包括以下一些:
PORT STATE SERVICE
21/tcp ftp
22/tcp ssh
23/tcp telnet
25/tcp smtp
53/tcp domain
80/tcp http
110/tcp pop3
111/tcp rpcbind
135/tcp msrpc
139/tcp netbios-ssn
143/tcp imap
443/tcp https
445/tcp microsoft-ds
993/tcp imaps
995/tcp pop3s
1723/tcp pptp
3306/tcp mysql
3389/tcp ms-wbt-server
5900/tcp vnc
8080/tcp http-proxy
您可能有一个要扫描的 IP、域或 DNS 记录的列表。那么不用担心,这就是你会做的:
nmap -iL mylist.txt
将所有引用放在一个简单的文本文件中,如下所示:
192.168.1.110
cloudflare.com
concise-courses.com
如果你在渗透测试中,你会想要保存你的结果,也许可以将它们用于以后查看,甚至可能将它们插入到另一个工具中,如Metasploit。
这是你如何做到的:
nmap -oN outputdata.txt concise-courses.com
而且,要将其转换为只需切换扩展即可。XML
.txt
nmap -oX outputdata.xml concise-courses.com
要加快Nmap扫描速度(它们可能需要很长时间),只需添加将禁用DNS解析的标志即可。-n
nmap -p 80 -n 8.8.8.8
关于速度的问题,追加将改变扫描的速度。这很重要,因为快速扫描将触发防火墙和入侵检测系统。 -T4
T10
只需使用“-A”标志,您就可以开始了,例如:
nmap -A -T4 192.168.1.102.com
这可以通过使用 – 标志来完成:sV
nmap -sV 192.168.1.24
与其他网络扫描程序一样,Nmap 可以针对各种端口协议(如 UDP 和 TCP)执行扫描。有什么区别?一切都在握手中。TCP 是 HTML/IP 协议的“面包和黄油”,它基本上包括任何文本和 Internet 中的绝大多数流量。
TCP非常严格。UDP 不是。视频流服务将使用 UDP,因为如果视频(数据)略有延迟,那么这只是缓冲,用户体验期望这一点。用户永远不会接受半生不熟的收到的电子邮件。
下面是一个 TCP Nmap 命令:
nmap -sT 192.168.1.1
而且,下面是一个 UDP Nmap 命令:
nmap -sU 192.168.1.1
Nmap 有自己独特的脚本,称为“Nmap 脚本引擎”,并具有扩展.nse
因此,要将 CVE 加载到扫描中,您需要触发 -Pn 标志来执行脚本来测试已知漏洞。
nmap -Pn --script vuln 192.168.1.112
当然,你只能用它来测试你自己或你客户的网络作为“压力测试”,看看他们的服务如何应对DoS攻击。
同样,我们将为此命令部署 NSE,并运行如下命令:
nmap 192.168.1.110 -max-parallelism 700 -Pn --script http-name-of-known-hack --script-args http-name-of-known-hack.runforever=true
啊,蛮力永无止境的迷人。我之前已经介绍过关于 THC Hydra 的这个问题,但从本质上讲,假设您试图破解 WordPress,那么您会启动类似的东西:
nmap -sV --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=passwds.txt,http-wordpress-brute.hostname=domain.com, http-wordpress-brute.threads=3,brute.firstonly=true' 192.168.1.105
对于尊贵的 FTP:
nmap --script ftp-brute -p 21 192.168.1.112
当然,正如我们从早期就知道的那样,端口 21 运行一个 FTP 服务,因此标志(用于端口)和 21 用于必要的端口。-p
我必须说,当我研究和更新这篇文章时,我并不知道这一点:Nmap 可以检测恶意软件。很酷的东西。
我建议使用 Google 恶意软件检查资源,您可以将其与 Nmap 结合使用,如下所示:
nmap -p123 --script http-google-malware clientinfectedsitexyz.com
我们在这里介绍了 Nikto,但这里有一个可以与 Nmap 一起使用的命令:
nmap -p80 10.0.1.0/24 -oG - | nikto.pl -h -
Nmap 理所当然地在我每年的黑客工具列表中都占有令人垂涎的位置,并且仍然坚定地在 2024 年依然存在。
只要你能掌握Nmap,你就已经站在了一个很好的起点上。如果你正在努力通过CISSP、OSCP或CEH考试,那么想在网络安全领域有所建树的话,学习Nmap绝对是必不可少的。
还值得一提的是,有一个叫做ZenMap的GUI(图形化)版本。
如果您想要具体的结果,您应该始终将多个端口扫描和渗透测试工具的结果结合起来,以获得可靠且(几乎)无可争议的结果,尤其是在将其呈现给客户时。
本文仅作技术分享,切勿用于非法途径。