带你玩转系列之Nmap

admin 2022年3月29日03:13:06评论158 views字数 8121阅读27分4秒阅读模式

Nmap


00x00    介绍

        

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


00x01    功能介绍


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


00x02    安装

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

00x03、nmap的简单使用方法


1、 扫描参数介绍

        命令行模式查看:nmap –help

 

带你玩转系列之Nmap



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文件夹下

 

带你玩转系列之Nmap

 

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进行翻阅学习。


            


手握日月摘星辰,安全路上永不止步。

                                                   - Khan攻防安全实验室




本文始发于微信公众号(Khan安全攻防实验室):带你玩转系列之Nmap

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月29日03:13:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   带你玩转系列之Nmaphttps://cn-sec.com/archives/536373.html

发表评论

匿名网友 填写信息