下载地址 https://nmap.org/download.html
一、列举远程服务器开放的端口
1、nmap命令行是否包含域名
2、利用dns服务器进行域名解析
3、通过ICMP Echo Request 探测主机存活性
扫描远程服务器查看服务器开放哪些端口
1.1 扫描域名
nmap book.weigou365.cn
# 输出
Nmap scan report for book.weigou365.cn (39.105.152.173)
Host is up (0.0083s latency).
Not shown: 993 filtered tcp ports (no-response), 4 filtered tcp ports (host-prohibited)
PORT STATE SERVICE
open ssh
open http
closed zeus-admin
Nmap done: 1 IP address (1 host up) scanned in 5.66 seconds
1.2、指定dns解析服务器
如何dns服务器进行域名解析时不能做解析,需要指定具体的dns服务器通过参数--dns-servers
nmap --dns-servers 223.6.6.6 book.weigou365.cn
# 指定阿里的dns解析服务器地址
Nmap scan report for book.weigou365.cn (39.105.152.173)
Host is up (0.0090s latency).
Not shown: 993 filtered tcp ports (no-response), 4 filtered tcp ports (host-prohibited)
PORT STATE SERVICE
open ssh
open http
closed zeus-admin
Nmap done: 1 IP address (1 host up) scanned in 4.76 seconds
1.3、停止扫描前的ICMP请求
已知主机存活或防火墙开启的服务器,我们可以通过-Pn参数停止扫描前的ICMP请求。目的是不触发防火墙的安全机制。
不使用-Pn参数的情况下nmap扫描,通过wireshark能查看到Icmp协议的Echo request请求和响应。
使用-Pn参数,停止ICMP请求
nmap -Pn book.weigou365.cn
# 输出
Nmap scan report for book.weigou365.cn (39.105.152.173)
Host is up (0.0088s latency).
Not shown: 993 filtered tcp ports (no-response), 4 filtered tcp ports (host-prohibited)
PORT STATE SERVICE
open ssh
open http
closed zeus-admin
Nmap done: 1 IP address (1 host up) scanned in 4.97 seconds
wireshark中没有发送ICMP协议的记录
二、识别目标机器的服务指纹
成功的渗透测试或网络设备监控,必须知道目标系统中服务指纹信息。指纹信息:服务端口、服务名称、版本等,命令如下:
# 服务指纹
nmap -sV 目标机器的ip地址
获取远程主机的所有服务指纹
nmap -sV 39.105.152.173
# 输出
Nmap scan report for 39.105.152.173
Host is up (0.0088s latency).
Not shown: 993 filtered tcp ports (no-response), 4 filtered tcp ports (host-prohibited)
PORT STATE SERVICE VERSION
open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
open http nginx 1.14.0 (Ubuntu)
closed zeus-admin
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.58 seconds
ssh服务:端口是22 软件openssh 版本 7.6p1
https服务:端口80 软件nginx 版本1.14.0
其它命令
# 侵略性探测
nmap -A -v -T4 目标机器的ip地址
# -sC脚探测 -sV 服务信息 -O 操作系统
nmap -sC -sV -O 目标主机地址
三、发现局域网中存活主机
一个局域网中连接多台设备,如何通过扫描发现设备资产呢?命令如下:
nmap -sP CIDR
CIDR(无类别域间路由)可以快速表示一个网络。比如:192.168.1.1/24 表示192.168.1.1 -192.168.1.255之间所有的IP地址。
对CIDR内的所有IP进行ping扫描,以探测主机的存活性。
扫描过程使用TCP SYN扫描,ICMP Echo request来探测主机存活。
扫描本地局域网,查看活跃机器,示例如下:
nmap -sP 192.168.1.1/24
# 输出
Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-12 19:24 ?D1ú±ê×?ê±??
Nmap scan report for bogon (192.168.1.1)
Host is up (0.0020s latency).
MAC Address: C4:67:D1:79:DA:78 (Huawei Technologies)
Nmap scan report for bogon (192.168.1.2)
Host is up (0.0030s latency).
MAC Address: 2C:C5:46:EB:D7:59 (Huawei Device)
Nmap scan report for bogon (192.168.1.40)
Host is up (0.076s latency).
MAC Address: 60:21:01:E5:20:E3 (Guangdong Oppo Mobile Telecommunications)
Nmap scan report for bogon (192.168.1.45)
Host is up (0.11s latency).
MAC Address: 32:EF:72:98:BB:0F (Unknown)
Nmap scan report for bogon (192.168.1.44)
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 8.49 seconds
通过参数-sn 进行ping扫描
# 类似-sP
nmap -sn CIDR
通过-oX xml文件 输出一个xml文件到命令行执行目录
nmap -sn 192.168.1.1/24 -oX output.xml
四、端口探测技巧
针对指定端口或端口区间进行探测,避免全端口扫描耗时,时间过长的问题。
参数-p 扫描指定端口
# 指定80端口
nmap -p80 book.weigou365.cn
# 指定80,22两个端口
nmap -p80,22 book.weigou365.cn
# 指定1到100的端口进行扫描
nmap -p1-100 book.weigou365.cn
# -p- 指定1-65535的所有端口
nmap -p- book.weigou365.cn
# p T:22,U53 TCP 22端口 UDP 53端口
nmap -p T:22,U53 book.weigou365.cn
# 扫描某协议 http mysql等
nmap -p mysql 127.0.0.1
# 模式扫描所有s开头的协议
nmap -p s* 127.0.0.1
示例:
# 不做ICMP请求,直接扫描服务器的75到80的端口服务
nmap -Pn -p75-80 book.weigou365.cn
# 输出
Nmap scan report for book.weigou365.cn (39.105.152.173)
Host is up (0.0080s latency).
PORT STATE SERVICE
filtered priv-dial
filtered deos
filtered priv-rje
filtered vettcp
filtered finger
open http
端口状态说明:
-
Open 端口开发状态、等待连接
-
Closed 端口关闭状态
-
Filtered 端口过滤状态无法收到返回的probe状态
-
UnFiltered 端口收到返回的probe,但无法确定
五、NSE脚本
NSE (Nmap Script Engine) nmap脚本引擎,内置很多可用扫描的,特定任务的脚本。通过NSE扩展nmap扫描策略。
5.1、指定脚本
nmap --script 脚本名称 目标机器
示例:探测http协议的头信息
nmap --script http-headers book.weigou365.cn
# 输出结果
Nmap scan report for book.weigou365.cn (39.105.152.173)
Host is up (0.0087s latency).
Not shown: 993 filtered tcp ports (no-response), 4 filtered tcp ports (host-prohibited)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
| http-headers:
| Server: nginx/1.14.0 (Ubuntu)
| Date: Sun, 12 Feb 2023 12:04:43 GMT
| Content-Type: text/html
| Content-Length: 20900
| Last-Modified: Wed, 20 Apr 2022 16:29:10 GMT
| Connection: close
| ETag: "626034d6-51a4"
| Accept-Ranges: bytes
|
|_ (Request type: HEAD)
9090/tcp closed zeus-admin
Nmap done: 1 IP address (1 host up) scanned in 5.57 seconds
5.2、脚本分类使用
对目标使用多个脚本进行探测,可以快速找到目标信息和弱点。
使用漏洞分类脚本对目标进行探测,命令如下:
nmap --script vuln 目标机器
能够发现csrf dos xss 匿名登录等各种漏洞。
同时使用多个分类的情况
# 多分类逗号分隔
nmap --script version,discovery 目标
5.3、脚本命令
模糊模式、逻辑关系更加准确的探测,示例如下
nmap --script "(http*) and not (http-brute and http-slowloris)" 目标
说明:执行除ddos攻击和暴力破解之外的所有http脚本
5.4、开启调试模式
-d 参数开启调试模式,debug范围[0-9],命令如下:
nmap --script exploit -d 3 --script-trace 目标
开启调试模式,能够详情跟踪查看nmap探测的所有过程。示例如下:
nmap --script mongodb* -d 3 --script-trace 127.0.0.1
能够查看请求响应数据包的详情,部分结果如下:
NSOCK INFO [315.2120s] nsock_trace_handler_callback(): Callback: READ SUCCESS for EID 128354 [127.0.0.1:27017] (272 bytes)
NSE: TCP 127.0.0.1:29190 < 127.0.0.1:27017 | 00000000: 10 01 00 00 06 32 00 00 fa 59 00 00 01 00 00 00 2 Y
00000010: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020: 01 00 00 00 ec 00 00 00 01 6f 6b 00 00 00 00 00 ok
00000030: 00 00 00 00 02 65 72 72 6d 73 67 00 9d 00 00 00 errmsg
00000040: 55 6e 73 75 70 70 6f 72 74 65 64 20 4f 50 5f 51 Unsupported OP_Q
00000050: 55 45 52 59 20 63 6f 6d 6d 61 6e 64 3a 20 67 65 UERY command: ge
00000060: 74 6e 6f 6e 63 65 2e 20 54 68 65 20 63 6c 69 65 tnonce. The clie
00000070: 6e 74 20 64 72 69 76 65 72 20 6d 61 79 20 72 65 nt driver may re
00000080: 71 75 69 72 65 20 61 6e 20 75 70 67 72 61 64 65 quire an upgrade
00000090: 2e 20 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 . For more detai
000000a0: 6c 73 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 64 ls see https://d
000000b0: 6f 63 68 75 62 2e 6d 6f 6e 67 6f 64 62 2e 6f 72 ochub.mongodb.or
000000c0: 67 2f 63 6f 72 65 2f 6c 65 67 61 63 79 2d 6f 70 g/core/legacy-op
000000d0: 63 6f 64 65 2d 72 65 6d 6f 76 61 6c 00 10 63 6f code-removal co
000000e0: 64 65 00 60 01 00 00 02 63 6f 64 65 4e 61 6d 65 de ` codeName
000000f0: 00 1a 00 00 00 55 6e 73 75 70 70 6f 72 74 65 64 Unsupported
00000100: 4f 70 51 75 65 72 79 43 6f 6d 6d 61 6e 64 00 00 OpQueryCommand
wireshark跟踪:
5.5、脚本参数
--script-args 设置脚本参数,命令如下:
nmap -sV -script 脚本 --script-args 脚本参数 目标
扫描远程网站,自定义header头信息,示例如下:
# 设置user-agent为mozilla 1111
nmap -sV -script http-title --script-args http.useragent="Mozilla 1111" book.weigou365.cn
# 返回结果如下:
Nmap scan report for book.weigou365.cn (39.105.152.173)
Host is up (0.0081s latency).
Not shown: 993 filtered tcp ports (no-response), 4 filtered tcp ports (host-prohibited)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.14.0 (Ubuntu)
|_http-title: Go xE8xAFxADxE8xA8x80xE4xBBx8BxE7xBBx8D | Go xE8xAFxADxE8xA8x80xE5xADxA6xE4xB9xA0xE6x96x87xE6xA1xA3
|_http-server-header: nginx/1.14.0 (Ubuntu)
9090/tcp closed zeus-admin
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
wireshark抓包情况如下:
5.6、NSE相关
在线更新脚本、命令行如下:
nmap --script-updatedb
在线文档地址https://nmap.org/book/nse.html
六、特定网卡探测
特定网卡进行探测,命令如下:
nmap -e interface CIDR
获取本机有哪些网卡开启,使用--iflist参数
nmap --iflist
# 输出下面内容
************************INTERFACES************************
DEV (SHORT) IP/MASK TYPE UP MTU MAC
eth0 (eth0) 169.254.25.187/16 ethernet down 1500 50:7B:9D:C7:D2:46
eth1 (eth1) 169.254.224.41/16 ethernet up 1500 0A:00:27:00:00:04
eth2 (eth2) 192.168.99.1/24 ethernet up 1500 0A:00:27:00:00:08
eth3 (eth3) 169.254.180.165/16 ethernet down 1500 00:1E:64:E4:C2:4F
eth4 (eth4) 192.168.1.44/24 ethernet up 1500 00:1E:64:E4:C2:4E
eth5 (eth5) 169.254.26.57/16 ethernet down 1500 00:1E:64:E4:C2:52
lo0 (lo0) ::1/128 loopback up -1
lo0 (lo0) 127.0.0.1/8 loopback up -1
# ipconfig /all
# ip地址为192.168.1.x 所以eth4是up状态
本地ip的活跃网卡为eth4,指定网卡命令如下:
nmap -e eth4 192.168.1.0/24
通过上面的学习我们能够使用nmap进行局域网扫描资产发现,同时能获取目标上服务指纹。并能够针对特定主机进行漏洞扫描,对自己的服务器进行设置优化工作。
原文始发于微信公众号(数据安全治理技术):Nmap使用详细教程-教你如何进行渗透扫描
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论