NMAP 使用教程
Nmap 简介
是一个开源、免费的 络探测工具,适用于 等多种操作系统。能够快速扫描大型 络或者单个主机,可以发现 络上有哪些主机,这些主机提供什么服务,服务运行在什么操作系统(包括版本系统),扩大攻击范围。
-
识别目标 络内活跃主机
-
扫描主机端口
-
探测主机的操作系统
-
利用自带脚本检测漏洞
端口状态
-
open 目标端口开发放
-
closed 目标端口关闭
-
filtered 通常被防火墙过滤,无法判断目标端口状态 防火墙 路由器
-
**unfiltered 目标端口可以访问 但无法判断状态 ** 很少见 通常只有在ACK扫描中出现
-
open | filtered 无法确定端口开启还是 filtered 开放端口无响应
-
closed | filtered 无法确定端口关闭还是 filtered
扫描技术
nmap [Scan Type(s)] [Options] {target specification}
目标范围
域名 ip 段 范围
scanme.nmap.org microsoft.com/24 192.168.0.1 10.0.0-255.1-254
-iL 从文件中读取目标
-iR 随机扫描ip
–exclude
**–excludefile 排除文件中的目标 **
主机发现
**-sL 列表扫描 **
- 列出指定 络上的每台主机,不发送任何 文到目标主机 默认下,Nmap仍对主机进行反向域名解析以获取目标主机的名字
-sn ping 扫描
- 使用ping进行主机发现 , 不对端口或系统服务等等进行扫描
-Pn 将所有主机视为在线
- 跳过主机发现
-PR 使用ARP发现主机
- 同一 段使用ARP探测在线主机
-PS/PA/PU/PY SYN/ACK UDP SCTP发现指定端口
- PS SYN 扫描 向目标主机发送SYN数据包 主机发现
- PA ACK 扫描
- PU UDP协议主机发现
- PY SCTP 主机发现 向目标主机发送SCTP INIT 数据包
-PE/PP/PM ICMP echo, timestamp, netmask request 发现探测
- PE 使用ICMP 协议主机发现 跟ping 一样
- PP 使用ICMP协议的时间戳主机发现
- PM 使用ICMP协议的地址掩码请求主机发现
-PO IP Protocol Ping
- 使用 ip 协议ping
-n/-R 不做DNS解析 / 使用DNS解析
–dns-servers 指定 DNS 服务器
- –dns-servers
–system-dns 使用系统的DNS 解析
–traceroute 开启路由追踪
–packet-trace 追踪nmap 发送的数据包
端口扫描
-sS TCP SYN 扫描端口
-sT TCP connect扫描端口
-sF TCP FIN 扫描端口
-sN TCP NULL 扫描端口
-sX TCP Xmas Tree扫描端口
-sU UDP扫描端口
指定扫描的端口
-r 连续扫描端口
-p 描指定的端口
-F 快速扫描端口
扫描某一个端口
语法 : nmap -p [port] [taget]
指定服务名扫描
语法 : nmap -p [port [name] ] [taget]
指定协议扫描端口
语法 : nmap -p U:[UDP ports], T:[TCP potrs ] [taget]
扫描所有端口
语法 : nmap -p * [taget]
扫描常用端口
语法 : nmap –top-ports [mun] [target]
服务版本探测
namp 进行识别的探针和响应对应的关系保存在哪Namp-os-db文件中。
namp会尝试验证一下参数
- 供应商名称
- 操作系统
- 系统版本
- 设备类型
-sV 打开版本探测
- 也可以用-A同时打开操作系统探测和版本探测
-sR RPC 扫描
- 开放的TCP/UDP端口执行SunRPC程序NULL命令 确实是否是RPC端口
–allports 不为版本探测排除任何端口
- –allports扫描所有端口
–version-intensity 设置版本扫描强度
- 强度值必须在0和9之间。 默认是7
–version-all 尝试每个探测
- 保证对每个端口尝试每个探测 文
–version-light 版本轻量模式扫描
- 轻量级模式使 版本扫描快许多,但它识别服务的可能性也略微小一点
–version-trace 跟踪版本扫描活动
- 打印出详细的关于正在进行的扫描的调试信息
操作系统探测
-O 启用操作系统检测
- 也可以使用 -A 来同时启用操作系统检测和版本检测
–osscan-limit 针对指定的目标进行操作系统检测
- 只对满足同时具有状态为open和closed端口 的主机进行操作系统检测
–osscan-guess –fuzzy 推测操作系统检测结果
- Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配
防火墙/IDS 绕过
-f 文分段
- 将TCP头分段在几个包中,使得包过滤器、 IDS以及其它工具的检测更加困难
-D
- 使用逗 分隔每个诱饵主机,也可用自己的真实IP作为诱饵
- 使用 ME选项,一些常用 端口扫描检测器就不会 告 这个真实IP
- 不使用选项,Nmap 将真实IP放在一个随机的位置
-S
- 无法确定你的源地址
–source-port
-g 源端口哄骗
- -g和–source-port选项
-data-length 发送 文时 附加随机数据
- Nmap在发送的 文上 附加指定数量的随机字节
–spoof-mac
- 使用字符串“0”,Nmap选择一个完全随机的MAC 地址
- 给定的字符品是一个16进制偶数(使用:分隔),Nmap将使用这个MAC地址
- 小于12的16进制数字,Nmap会随机填充剩下的6个字节
- 参数不是0或16进 制字符串,Nmap将通过nmap-mac-prefixes查找 厂商的名称(大小写区分),如果找到匹配,Nmap将使用厂商的OUI(3字节前缀),然后 随机填充剩余的3个节字
–mtu 使用指定的MTU
- 偏移量必须 是8的倍数
–ttl 设置IP time-to-live域
- 设置IPv4 文的time-to-live域为指定的值
格式化输出
Nmap提供5种不同的输出格式
-
-oX 扫描结果保存XML文件
-
-oG 扫描结果保存grep 文件
-
-oS 脚本小子输出 类似于交互工具输出
-
-oA 输出至所有格式
-v 提高输出信息的详细度
NSE脚本
kali 下 脚本路径
NSE 脚本的分为14个大类
分类 | 描述 |
---|---|
auth | 都是包含负责处理鉴权证书(绕开鉴权)的脚本 |
broadcase | 都是包含局域 内探查更多服务开启状况 |
brute | 包含常见的应用的暴力破解模块 |
default | -sC 或 -A 参数扫描的默认脚本 |
discovery | 更多的信息收集,如SMB枚举 |
dos | DOS攻击脚本 |
exploit | 用来完成对目标系统安全漏洞渗透的脚本 |
external | 针对第三方服务的脚本 |
fuzzer | 进行模糊测试的脚本 |
intrusive | 可能会导致目标系统奔溃,或者目标 络极大的负担。容易被防火墙或IDS发现 |
malware | 用来检测恶意软件的脚本 |
safe | 任何情况下都是安全无害的脚本 |
version | 增强服务与版本扫描工的脚本 |
vuln | 检测目标主机是否有常见的漏洞 |
脚本的使用
–script 来完成对脚本的选择
后面可以跟 脚本名称 脚本种类 脚本路径
–script-args 用来指定脚本的运行时的参数
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!