网络安全学习之nmap工具的简单使用

nmap

nmap介绍

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有
哪些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和
网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。

image.png

功能:

  • 扫描主机上开启了哪些端口
  • 扫描存活在网络上的主机
  • 检测主机上端口对应的软件和版本
  • 检测主机操作系统、硬件地址、软件版本

安装方法:

mac操作系统
sudo brew install namp
mac 也可以安装zenmap客户端

centos 、 red hat等系统
yum install nmap -y

windows
https://nmap.org/download.html#windows
debian
https://packages.debian.org/stable/nmap
或者
sudo apt-get install alien
wget https://nmap.org/dist/nmap-7.95-2.x86_64.rpm
sudo alien nmap-7.95-2.x86_64.rpm
sudo dpkg --install nmap-7.95-2.amd64.deb

端口状态解析

端口扫描是nmap的基本、核心功能,用于确定目标主机的TCP/UDP端口的开放情况

open:端口处于开放状态,应用程序可以从该端口获取TCP连接或者UDP报文

closed:端口处于关闭状态,关闭的端口nmap也可以访问,它接收nmap探测报文并作出响应,但没有应用程序在其上监听。

open | filtered:无法确定端口是开放还是过滤,开放的端口不响应就是一 个例子。没有响应也 可能味着报文过滤器丢弃了探测报文或者它引发的任何反应。UDP, IP 协议,FIN, Null等扫描会引起

filtered:ICMP无法抵达错误,由于包过滤阻止探测报文到达端口,所以程序无法判断端口是否处于存活状态。过滤可能来自于专业的防火墙设备,路由规则或者主机上的防火墙。

Unfiltered: 未被过滤状态意味着端口可以访问,但是nmap无法确定端口是否开放,只有用于映射防火墙规则集的ACK扫描才会把端口分类到这个状态。

closed I filtered:(关闭或者被过滤的)无法确定端口是关闭的还是被过滤的。

nmap 用法

nmap支持的扫描

  • TCP SYN scanning
  • TCP connect scanning
  • TCP ACK scanning(检测防火墙屏蔽)
  • TCP FIN/Xmas/NULL scanning
  • UDP scanning

常用命令参数

nmap -sT 192.168.0.107       //TCP连接扫描,不安全,慢 ,完整的三次握手过程
nmap -sU 192.168.0.107     //UDP扫描,慢,可得到有价值的服务器程序  
nmap -sS 192.168.0.107        //SYN扫描,半开扫描(half-scan),使用最频繁,安全,快 
nmap -Pn 192.168.0.107       //目标机禁用ping,绕过ping扫描 ,这种方式可以穿透防火墙,避免被防火墙发现
nmap -sI 僵尸ip 目标ip     //使用僵尸机对目标机发送数据包
nmap -sA 192.168.0.107     //检测哪些端口被屏蔽
nmap 192.168.0.107 -p <portnumber>     //对指定的 端口(80) 或者 端口范围(1-1000、-1000、1000-) 进行扫描
nmap 192.168.0.1/24     //对整个网段的主机进行扫描
nmap 192.168.0.107 -oX myscan.xml    //对扫描结果另存在myscan.xml
nmap -T1~6 192.168.0.107    //设置扫描速度,一般T4足够。
nmap -sV 192.168.0.107    //对端口上的服务程序版本进行扫描,展示开启的端口、服务及对应的版本
nmap -O 192.168.0.107      //对目标主机的操作系统进行扫描,显示目标操作系统类型,每个操作系统都有自己的指纹。不一定100%检测出目标系统版本,无法准确定位出系统版本时,nmap会给出几个可能性较高的建议
nmap -sC <scirptfile> 192.168.0.107      //使用脚本进行扫描,耗时长
nmap -A 192.168.0.107      //完整扫描,耗时长,展示的信息包括:目标主机的系统版本、开放的端口、对应的服务等信息
nmap -6 ipv6地址           //对ipv6地址的主机进行扫描
nmap -f 192.168.0.107         //使用小数据包发送,避免被识别出
nmap -F 192.168.0.107        //使用快速扫描模式
nmap –mtu <size> 192.168.0.107 //发送的包大小,最大传输单元必须是8的整数
nmap -D <假ip> 192.168.0.107          // 发送参杂着假ip的数据包检测,即使用诱饵主机隐蔽扫描。
nmap --source-port <portnumber>  192.168.0.107   或 nmap -g   <portnumber>  192.168.0.107   // 针对防火墙只允许的源端口, 即伪造源端口为指定端口对目标进行扫描
nmap –data-length: <length> 192.168.0.107       //改变发生数据包的默认的长度,避免被识别出来是nmap发送的。
nmap -v 192.168.0.107    //显示冗余信息(扫描细节)
nmap -sn 192.168.0.107     //对目标进行ping检测,不进行端口扫描(会发送四种报文确定目标是否存活)
nmap -sP 192.168.0.107     // 仅仅对目标进行ping检测。
nmap -P0 192.168.0.107     // 无ping扫描
nmap -n 192.168.0.107     //-n表示不进行dns解析
nmap --system-dns 192.168.0.107  //扫描指定系统的dns服务器
nmap –traceroute 192.168.0.107  //追踪每个路由节点。
nmap -PE/PP/PM:   使用ICMP echo, timestamp, and netmask 请求包发现主机。
nmap -sP 192.168.0.107       //主机存活性扫描,arp直连方式。
nmap -iR [number]       // 对随机生成number个地址进行扫描,number 为 0 意味着永无休止的扫描。 nmap -sS -PS80 -iR 0 -p 80
nmap -iL <inputfilename>    // 从引入的文件中获取要扫描的目标地址
nmap --exclude <host1[,host2][,host3]...>   //  排除主机 / 网络
nmap -v --randomize-hosts --scan-delay 3000ms -p 80 192.168.0.100-107  // --randomize-hosts: 随机扫描,对目标主机的顺序随机划分,--scan-delay:延时扫描,单位秒,调整探针之间的延迟
nmap  -p 80 1.*.2.3-8  //  使用通配符指定目标 IP地址

使用诱饵主机隐蔽扫描

在初始的 ping 扫描(ICMP、 SYN、ACK 等)阶段或真正的端口扫描,以及远程操作系统检测(-O)阶段都可以使用诱饵主机选项。但是在进行版本检测或 TCP 连接扫描时, 诱饵主机选项是无效的。

nmap -D RND:3  192.168.0.107    // 随机3个诱饵主机
nmap -D ME 192.168.0.107   // 使用自己IP作为诱饵
nmap -D 192.168.0.199  192.168.0.107  // 指定单个IP 192.168.0.199 作为诱饵
nmap -D 192.168.0.188,192.168.0.199 192.168.0.107 // 指定多个 IP 作为诱饵对 192.168.0.107 进行探测 

nmap脚本

nmap 允许用户自己编写脚本进行自动化扫描或者扩展nmap已有的功能。
nmap脚本位置: /usr/share/nmap/scripts

SCRIPT SCAN:
  -sC: equivalent to --script=default  ## 使用默认类型脚本进行扫描
  --script=<Lua scripts>: <Lua scripts> is a comma separated list of ## 使用脚本
           directories, script-files or script-categories
  --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts  ## 为脚本提供默认参数
  --script-args-file=filename: provide NSE script args in a file  ## 使用文件来为脚本提供默认参数
  --script-trace: Show all data sent and received   ## 输出脚本执行过程中,发送和接收的所有数据
  --script-updatedb: Update the script database.  ## 更新脚本库
  --script-help=<Lua scripts>: Show help about scripts. ## 输出脚本的帮助信息
           <Lua scripts> is a comma-separated list of script-files or
           script-categories.

nmap脚本类型

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

使用默认脚本进行扫描:nmap -sC <target IP>
扫描是否出现常见漏洞:nmap --script=vnln <target IP>
在局域网内扫描更多的端口开启情况:nmap -n -p135 --script= broadcast <target IP>

nmap中有的些参数需要root权限才能使用

zenmap使用


image.png

zenmap脚本介绍

第一种: Intense scan
(nmap -T4 -A -v)
一般来说, Intense scan 可以满足一般扫描
-T4 加快执行速度
-A 操作系统及版本探测
-v 显示详细的输出

第二种: Intense scan plus UDP
(nmap -sS -sU -T4 -A -v)
即 UDP 扫描
-sS TCP SYN 扫描
-sU UDP 扫描

第三种: Intense scan,all TCP ports
(nmap -p 1-65536 -T4 -A -v)
扫描所有 TCP 端口,范围在 1-65535 ,试图扫描所有端口的开放情况,速度比较慢。 -p 指定端口扫描范围

第四种: Intense scan,no ping
(nmap -T4 -A -v -Pn)
非 ping 扫描
-Pn 非 ping 扫描

第五种: Ping scan
(nmap -sn)
Ping 扫描
优点:速度快。
缺点:容易被防火墙屏蔽, 导致无扫描结果
-sn ping 扫描

第六种: Quick scan
(nmap -T4 -F)
快速的扫描
-F 快速模式。

第七种: Quick scan plus
(nmap -sV -T4 -O -F --version-light)
快速扫描加强模式

第八种: Quick traceroute
(nmap -sn --traceroute)
路由跟踪
-sn Ping 扫描,关闭端口扫描
-traceroute 显示本机到目标的路由跃点。

第九种: Regular scan
常规扫描 (nmap 192.168.0.129)

. 第十种: Slow comprehensive scan
(nmap -sS -sU -T4 -A -v -PE -PP -PS80,443,-PA3389,-PU40125 -PY -g 53 --script all) 慢速全面扫描。

zenmap也可以添加自定义脚本

在这里插入图片描述

可以在文本框里手动添加指令配置
在这里插入图片描述
也可以在下面的菜单栏里选择扫描时要执行的操作或使用的脚本,会自动在命令行里添加对应的指令配置。
在这里插入图片描述

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aurevoirs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值