带你玩转系列之Nmap

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: Nmap

Nmap

00x00    介绍

          nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

00x01    功能介绍

       基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。

00x02    安装

       可自行到官网下载https://nmap.org/download.html。安装后进行使用。

00x03、nmap的简单使用方法

1、 扫描参数介绍

       命令行模式查看:nmap –help

 640.png

Nmap 参数详解:

       下面对参数进行介绍

Namp扫描目标的参数:

       -iL filename:从文件中读取待检测的目标

       -iR hostnum:随机选取,进行扫描.如果-iR指定为0,则无休止的扫描

       --exclude host1[, host2]:从扫描任务中需要排除的主机

       --exculdefile exclude_file:排除导入文件中的主机和网段

       Nmap主机发现相关参数:

       -sL :仅仅是显示,扫描的 IP 数目,不会进行任何扫描 。

       -sn :ping 扫描,即主机发现 。

       -Pn :不检测主机存活 。

       -PS/PA/PU/PY[portlist] :TCP SYN Ping/TCP ACK Ping/UDP Ping 发现 。

       -PE/PP/PM :使用 ICMP echo, timestamp and netmask 请求 包发现主机 。

       -PO[prococollist] :使用 IP 协议包探测对方主机是否开启 。

       -n/-R :不对 IP 进行域名反向解析/为所有的 IP 都进行域名 的反向解析

       --dns-servers<serv1[,serv2],...>:指定自定义DNS服务器

       --system-dns:使用操作系统的DNS解析器

       --traceroute:跟踪到每个主机的跳路径

常见端口扫描方法:

       -sS/sT/sA/sW/sM :指定使用TCP SYN/ACK/Connect()/Window/Maimon scans的方式进行扫描

       -sU :UDP 扫描

       -sN/sF/sX :TCP Null,FIN,and Xmas 扫描

       --scanflags<flags>:自定义 TCP 包中的 flags

       -sI<zombie host[:probeport]>:空闲扫描

       -sY/sZ:SCTP INIT/COOKIE - ECHO 扫描

       -sO:使用IP protocol扫描确定目标机支持 的协议类型

       -b<FTP relay host>:使用 FTP bounce scan 指定端口和扫描顺序

       指定端口和扫描顺序参数:

       -p<port ranges>:特定的端口 -p80,443 或者 -p1-65535

       --exclude-ports<port ranges>:排除指定端口扫描

       -F:快速扫描模式,比默认的扫描端口还少

       -r :不随机扫描端口,默认是随机扫描的

       --top-ports < number >:扫描开放概率最高的 number 个端口,出现的概率需要参考nmap-services文件,ubuntu中该文件位于/usr/share/nmap.nmap默认扫前1000个

       --port-ratio<ratio>:扫描指定频率以上的端口

服务版本识别参数:

       -sV :开放版本探测,可以直接使用-A同时打开操作系统探测和版本探测

       --version-intensity<level>:设置版本扫描强度,强度水平说明了应该使 用哪些探测报文。数值越高,服务越有可能被正确识别。默认是7

       --version-light :打开轻量级模式,为--version-intensity 2 的别名

       --version-all :尝试所有探测,为--version-intensity 9 的别名

       --version-trace :显示出详细的版本侦测过程信息

2、 常用方法

       Nmap参数比较繁多,日常渗透通常使用得不多,针对常用的命令,这边列举一些,等熟悉使用了,可加深学习。(此处小编偷懒,便不一一截图了)

       1)进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):

       nmap -sP 192.168.1.0/24

       2)仅列出指定网络上的每台主机,不发送任何报文到目标主机:

       nmap -sL 192.168.1.0/24

       3)探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):

       nmap -PS 192.168.1.234

       4)使用UDP ping探测主机:

       nmap -PU 192.168.1.0/24

       5)使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:

       nmap -sS 192.168.1.0/24

       6)当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:

       nmap -sT 192.168.1.0/24

       7)UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:

       nmap -sU 192.168.1.0/24

       8)确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):

       nmap -sO 192.168.1.19

       9)探测目标主机的操作系统:

       nmap -O 192.168.1.19

       nmap -A 192.168.1.19

00x04 nmap的进一步用法

       上面介绍的是参数的使用,Nmap更进一步的用法,就会用到脚本,下面对脚本扫描进行简单的介绍。

       Nmap的脚本默认存放在安装目录下/nmap/scripts文件夹下

 640.jpg

1、Nmap提供的命令行参数如下:

       -sC :根据端口识别的服务,调用默认脚本

       --script=<Lua scripts>:调用的脚本名

       --script-args=<n1=v1,[n2=v2,...]>:调用的脚本传递的参数

       --script-args-file=filename:使用文本传递参数

       --script-trace :显示所有发送和接收到的数据

       --script-updatedb :更新脚本的数据库

       --script-help=<Lua scripts>:显示指定脚本的帮助

2、nmap脚本主要分为以下几类,在扫描时可根据需要设置--script=类别这种方式进行比较笼统的扫描:

       auth: 负责处理鉴权证书(绕开鉴权)的脚本  

       broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务

       brute: 提供暴力破解方式,针对常见的应用如http/snmp等  

       default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力  

       discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等  

       dos: 用于进行拒绝服务攻击  

       exploit: 利用已知的漏洞入侵系统  

       external: 利用第三方的数据库或资源,例如进行whois解析  

       fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞                                intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽  

       malware: 探测目标机是否感染了病毒、开启了后门等信息  

       safe: 此类与intrusive相反,属于安全性脚本  

       version: 负责增强服务与版本扫描(Version Detection)功能的脚本  

       vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067

3、运用实例

       应用弱口令

       nmap --script=auth 192.168.1.1

       暴力破解攻击

       nmap --script=brute 192.168.1.1

       扫描常规漏洞

       nmap --script=vuln 192.168.1.1

       应用服务扫描

       nmap --script=realvnc-auth-ypass 192.168.1.1

       探测局域网内更多服务开启的情况

       nmap -n -p 445 --script=broadcast 192.168.1.1

       whois解析

       nmap -script external baidu.com    

       IIS 短文件泄露

       nmap -p 8080 --script http-iis-short-name-brute 192.168.1.1

       检测CVE-2011-2523中的ftp-vsftpd-backdoor

       nmap -T2 --script ftp-vsftpd-backdoor 192.168.1.1

       验证HTTP.sys 远程代码执行

       nmap -sV --script http-vuln-cve2015-1635 192.168.1.1

       验证http中开启的-methods 方法

       nmap -T3 --script http-methods --script-args http.test-all=true,http.url-path=/www.haoshangjia.com

       验证 SSL POODLE information leak

        nmap -sV -p 443 --version-light --script ssl-poodle 218.19.141.16

       验证mysql 匿名访问

       nmap --script mysql-empty-password 203.195.139.153

       验证cve2015-1427 漏洞

       nmap --script http-vuln-cve2015-1427 --script-args command=ls 203.195.139.153

       验证cve2014-8877漏洞

       nmap -Pn --script http-vuln-cve2014-8877 --script-args http-vuln-cve2014-8877.cmd=dir,http-vuln-cve2014-8877.uri=/wordpress 42.96.170.128

       验证低安全的 SSHv1,sslv2协议

       nmap --script sshv1,sslv2 www.haoshangjia.com

       验证Cisco ASA中的CVE-2014-2126,CVE-2014-2127,CVE-2014-21,CVE-2014-2129漏洞

       nmap -p 443 --script http-vuln-cve2014-2126,http-vuln-cve2014-2127,http-vuln-cve2014-2128,http-vuln-cve2014-2129 203.195.139.153

       验证CVE-2014-0224 ssl-ccs-injection

       nmap -Pn --script ssl-ccs-injection 203.195.139.153

       验证ssl-cert证书问题

       nmap -v -v --script ssl-cert 203.195.139.153

       验证SSL证书的有限期

       nmap -Pn --script ssl-date www.haoshangjia.com

       验证CVE-2014-0160 OpenSSL Heartbleed bug

       nmap -p 443 --script ssl-heartbleed,ssl-known-key 203.195.139.153

       验证 Debian OpenSSL keys

       nmap -p 443 --script ssl-known-key 203.195.139.153

       验证弱加密SSL套件

       nmap --script ssl-enum-ciphers 203.195.139.153

       验证CVE 2015-4000

       nmap --script ssl-dh-params www.haoshangjia.com

       验证多种SSL漏洞问题

       nmap 203.195.139.153 --vv --script sshv1,ssl-ccs-injection,ssl-cert,ssl-date,ssl-dh-params,ssl-enum-ciphers,ssl-google-cert-catalog,ssl-heartbleed,ssl-known-key,sslv2

       在网络中检测某主机是否存在窃听他人流量

       nmap --script sniffer-detect 10.10.167.5

       验证telnet是否支持加密

       nmap --script telnet-encryption 203.195.139.153

       收集VNC信息

       nmap --script vnc-info  203.195.139.153

       暴力破解VNC

       nmap --script vnc-brute --script-args brute.guesses=6,brute.emptypass=true,userdb=/root/dictionary/user.txt,brute.useraspass=true,passdb=/root/dictionary/pass.txt,brute.retries=3,brute.threads=2,brute.delay=3 42.96.170.128

       使用nmap对某主机进行一系列的证书鉴权检查

       nmap --script auth 203.195.139.153

       使用nmap在局域网内探查更多服务开启情况

       nmap --script broadcast 10.10.167.6

       使用nmap 对常见的服务进行暴力破解

       nmap --script brute 203.195.139.153

       使用nmap 进行基本的扫描

       nmap --script default 203.195.139.153

       #nmap --sC 203.195.139.153

       使用nmap 进行信息挖掘

       nmap --script discovery 203.195.139.153

       使用nmap 进行拒绝服务攻击

       nmap --script dos 203.195.139.153

       使用nmap 利用已知的漏洞入侵系统

       nmap --script exploit 203.195.139.153

       使用nmap 进行利用第三方的数据库或资源进行信息收集或者攻击

       nmap --script external 203.195.139.153

       使用nmap 进行模糊测试,发送异常的包到目标机,探测出潜在漏洞

       nmap --script fuzzer 203.195.139.153

       使用nmap 进行入侵,此类脚本可能引发对方的IDS/IPS的记录或屏蔽

       nmap --script intrusive 203.195.139.153

       使用nmap 探测目标机是否感染了病毒、开启了后门等信息

       nmap --script malware 203.195.139.153

       使用nmap 对系统进行安全检查

       nmap --script safe 203.195.139.153

       使用nmap 对目标机进行检查是否存在常见的漏洞

       nmap --script vuln 203.195.139.153

       使用nmap 负责增强服务与版本扫描(Version Detection)功能的脚本

       nmap --script version 203.195.1

00x05写在最后

       Nmap的使用方法还有很多很多,包括参数使用,脚本使用等,在这里只是起到一个抛砖引玉的作用,更多的方法还需自己多加摸索学习。更多的使用方法,可前往官网https://nmap.org/nsedoc/categories进行翻阅学习。


           


相关文章
|
17天前
|
Python
Python编程--使用NMAP端口扫描
Python编程--使用NMAP端口扫描
14 1
|
17天前
|
网络协议
Nmap 中的各种端口扫描技术
Nmap 中的各种端口扫描技术
65 0
|
17天前
|
网络协议 安全 生物认证
一文带你从了解到精通Nmap扫描器
一文带你从了解到精通Nmap扫描器
|
3月前
|
XML 网络协议 安全
Nmap的使用
Nmap是一款开源的网络安全扫描工具,用于网络发现和安全审计。它能检测网络上的主机和服务,识别操作系统、开放端口、服务版本,并查找潜在的安全漏洞。Nmap支持多种扫描类型,如主机发现(-sn, -sP等)、端口扫描(-sS, -sT等)、服务和版本探测(-sV)以及操作系统检测(-O)。在使用时,要确保合法性和合规性,避免扫描未经授权的网络。常见参数如 `-oX` 用于输出XML报告,`-A` 选项则进行全面扫描。基础用法包括对单个IP、子网或文件中列出的IP进行扫描。注意,扫描可能消耗大量资源并应适时更新以保证准确性。
43 2
|
XML 开发框架 监控
nmap及其他扫描(下)
nmap及其他扫描(下)
572 0
nmap及其他扫描(下)
|
XML 数据格式 Python
|
安全
nmap是什么
nmap 是 kail liunx 一个渗透工具
125 0
|
XML 网络协议 安全
使用nmap端口扫描
nmap是一款实用的网络工具,今天我们来体验如何使用nmap进行端口扫描。
970 0
使用nmap端口扫描
|
网络协议 安全 Linux
|
网络协议 安全 Linux
Nmap工具的使用
nmap是linux最早的网络扫描工具和嗅探工具包,它可以用来扫描网络上电脑开放的网络连接端,确定哪些服务运行在那些连接端,并且推断出计算机运行的是哪个操作系统。它的基本功能有三个,一是探测主机是否在线,然后扫描主机端口,还可以推断主机所使用的操作系统是哪个