Nmap使用详细教程-教你如何进行渗透扫描

admin 2023年2月13日10:27:49评论1,327 views字数 7411阅读24分42秒阅读模式
Nmap是一套开源的、免费的网络探测、安全审计的工具

下载地址 https://nmap.org/download.html

一、列举远程服务器开放的端口

扫描原理如下图:

Nmap使用详细教程-教你如何进行渗透扫描

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 SERVICE22/tcp open ssh80/tcp open http9090/tcp 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 SERVICE22/tcp open ssh80/tcp open http9090/tcp 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请求和响应。

Nmap使用详细教程-教你如何进行渗透扫描


使用-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 SERVICE22/tcp open ssh80/tcp open http9090/tcp closed zeus-admin
Nmap done: 1 IP address (1 host up) scanned in 4.97 seconds

wireshark中没有发送ICMP协议的记录

Nmap使用详细教程-教你如何进行渗透扫描

二、识别目标机器的服务指纹

成功的渗透测试或网络设备监控,必须知道目标系统中服务指纹信息。指纹信息:服务端口、服务名称、版本等,命令如下:

# 服务指纹nmap -sV 目标机器的ip地址


获取远程主机的所有服务指纹

nmap -sV 39.105.152.173
# 输出Nmap scan report for 39.105.152.173Host is up (0.0088s latency).Not shown: 993 filtered tcp ports (no-response), 4 filtered tcp ports (host-prohibited)PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)80/tcp open http nginx 1.14.0 (Ubuntu)9090/tcp closed zeus-adminService 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扫描

# 类似-sPnmap -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 SERVICE75/tcp filtered priv-dial76/tcp filtered deos77/tcp filtered priv-rje78/tcp filtered vettcp79/tcp filtered finger80/tcp 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 SERVICE22/tcp open ssh80/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   Y00000010: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000000020: 01 00 00 00 ec 00 00 00 01 6f 6b 00 00 00 00 00          ok00000030: 00 00 00 00 02 65 72 72 6d 73 67 00 9d 00 00 00      errmsg00000040: 55 6e 73 75 70 70 6f 72 74 65 64 20 4f 50 5f 51 Unsupported OP_Q00000050: 55 45 52 59 20 63 6f 6d 6d 61 6e 64 3a 20 67 65 UERY command: ge00000060: 74 6e 6f 6e 63 65 2e 20 54 68 65 20 63 6c 69 65 tnonce. The clie00000070: 6e 74 20 64 72 69 76 65 72 20 6d 61 79 20 72 65 nt driver may re00000080: 71 75 69 72 65 20 61 6e 20 75 70 67 72 61 64 65 quire an upgrade00000090: 2e 20 46 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 . For more detai000000a0: 6c 73 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 64 ls see https://d000000b0: 6f 63 68 75 62 2e 6d 6f 6e 67 6f 64 62 2e 6f 72 ochub.mongodb.or000000c0: 67 2f 63 6f 72 65 2f 6c 65 67 61 63 79 2d 6f 70 g/core/legacy-op000000d0: 63 6f 64 65 2d 72 65 6d 6f 76 61 6c 00 10 63 6f code-removal  co000000e0: 64 65 00 60 01 00 00 02 63 6f 64 65 4e 61 6d 65 de `    codeName000000f0: 00 1a 00 00 00 55 6e 73 75 70 70 6f 72 74 65 64      Unsupported00000100: 4f 70 51 75 65 72 79 43 6f 6d 6d 61 6e 64 00 00 OpQueryCommand

wireshark跟踪:

Nmap使用详细教程-教你如何进行渗透扫描

5.5、脚本参数

--script-args 设置脚本参数,命令如下:

nmap -sV -script 脚本 --script-args 脚本参数 目标

扫描远程网站,自定义header头信息,示例如下:

# 设置user-agent为mozilla 1111nmap -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 VERSION22/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-adminService Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

wireshark抓包情况如下:

Nmap使用详细教程-教你如何进行渗透扫描

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 MACeth0 (eth0) 169.254.25.187/16 ethernet down 1500 50:7B:9D:C7:D2:46eth1 (eth1) 169.254.224.41/16 ethernet up 1500 0A:00:27:00:00:04eth2 (eth2) 192.168.99.1/24 ethernet up 1500 0A:00:27:00:00:08eth3 (eth3) 169.254.180.165/16 ethernet down 1500 00:1E:64:E4:C2:4Feth4 (eth4) 192.168.1.44/24 ethernet up 1500 00:1E:64:E4:C2:4Eeth5 (eth5) 169.254.26.57/16 ethernet down 1500 00:1E:64:E4:C2:52lo0 (lo0) ::1/128 loopback up -1lo0 (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使用详细教程-教你如何进行渗透扫描

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月13日10:27:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Nmap使用详细教程-教你如何进行渗透扫描http://cn-sec.com/archives/1550513.html

发表评论

匿名网友 填写信息