Nmap 学习手册
nmap学习手册
nmap 描述
Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些 主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。 —— 来自nmap官网
nmap语法
nmap [扫描类型&选项] (目标)
nmap目标
nmap的目标可以传递主机名 , IP地址 , 网段等
nmap扫描类型&选项
快速扫描
nmap 192.168.50.148
nmap会发送一个ping包 , 来检测目标主机上以开放的端口(范围暂不清楚) , 不推荐此方法检测,因为结果比较模糊
主机发现
-sL : 列表发现
仅对发现主机列出来,不进行任何扫描
-sP : Ping扫描
只确定是否在线,不进行更深一步扫描
扫描技巧
-sS : 半开放扫描
使用频率比较高的扫描类型 , SYN扫描 , 又称为半开放扫描 , 它不需要建立一个完整TCP连接(建立一次TCP需要进行三次握手 , 而第一次握手则是发送SYN报文),因此 TCP SYN Scan(sS) 被称为半开放扫描
优点 : nmap 发送 SYN包到目标是不会产生任何会话 , 目标主机几乎不会把连接记入系统日志(并非一定 ! ! ! , 能有效阻止目标判断为扫描攻击) , 扫描速度快 , 效率高 , 在工作中使用频率较高
缺点 : 执行命令需要系统最高权限,即 root 或者 Administrator 权限
-sT : TCP扫描
TCP connect() Scan (sT) , 相对于TCP SYN Scan , TCP connect() Scan 是默认的扫描模式,使用TCP connect()扫描需要调用系统的connect()
优点 : 执行命令无需系统最高权限 , 普通用户亦可执行命令
缺点 : 由于扫描会产生会话 , 所以目标主机会记录大量的连接请求记入系统日志 , 并且若有防护程序则会识别出扫描攻击 , 因为要进行三次握手 , 所以速度较慢 , 效率较低
-sU : UDP扫描
UDP Scan(sU) 相对于 SYN扫描和TCP扫描 , UDP扫描无需进行三次握手和发送SYN包 , 因为 UDP Scan是针对UDP端口扫描的,只需发送UDP数据包到目标 , 然后等待响应即可
如果返回是ICMP的错误信息 , 这说明端口是关闭的 , 若返回是正确的回应 , 则说明端口是开放的 , UDP扫描速度会很慢 , 比TCP扫描慢😓
-sF : FIN扫描
FIN扫描也是TCP的一种扫描 , 发送一个FIN标志的数据包 , 有时候目标主机可能存在IDS和IPS系统,会阻止掉SYN数据包 , 因此FIN标志的数据包一般不会阻止 , 而且FIN标志的数据包也是无需进行TCP的三次握手 , 因此FIN扫描也是大概率不会被目标把连接记入系统日志 , 扫描的信息相对较少
-sF -sX -sN : 原理类似
原理大致相同 -sF 是 发送FIN数据包扫描 -sX 是 圣诞树(XmasTree)扫描 -sN是 空(NULL)扫描
有的防火墙可能会阻止 -sS扫描 , 使用这些扫描类型可以绕过阻止进行扫描 , 他们也是没有进行TCP三次握手 , 目标主机大概率不会被目标把连接记入系统日志,且扫描速度比 -sT 块
- 优点 : 能躲过一些无状态防火墙和报文过滤路由器,比SYN还要隐秘
- 缺点 : 现代的IDS产品可以发现,并非所有的系统严格遵循RFC 793
服务版本识别
-sV : Version版本扫描检测
Version 版本检测是用来扫描目标主机上的端口服务版本 , 不过此扫描选项不能用来扫描目标开放端口 , 因此使用此选项之前 , 请使用TCPSYN进行端口开放扫描
–version-intensity “Level” : 设置版本扫描强度 , Level范围为0~9 默认为7
–version-light : 轻量级扫描 , 即 –version-intensity 2
–version-all : 重度扫描 : 即 –version-intensity 9
version-trace : 显示详细的扫描过程 ()
操作系统识别
-O : OS操作系统扫描检测
OS操作系统扫描检测 , 可以远程轿车操作系统信息 , 这些信息是十分有用的 , 通过获取的信息可以知道已知的漏洞
- –osscan-guess : 猜测匹配操作系统
- –osscan-limit : 针对指定的目标进行系统检测
脚本扫描
nmap --script 具体的脚本 目标
nmap官方脚本文档 : https://nmap.org/nsedoc/
左侧列出了脚本的分类,点击分类 可以看到每一个分类下有很多具体的脚本供我们使用。14大分类具体对应为
- 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
对SSH进行暴力破解
账号密码不是弱口令,所以结果是跑不出来🤣
时间模板
-T<0-5> 设置时间模板
nmap -sS -T<0-5> 192.168.1.148
优化时间控制选项的功能很强大也很有效,但有些用户会被迷惑。此外, 往往选择合适参数的时间超过了所需优化的扫描时间。因此,Nmap提供了一些简单的 方法,使用6个时间模板,使用时采用-T选项及数字(0 - 5) 或名称。模板名称有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)
- paranoid、sneaky模式用于IDS躲避
- Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源。
- Normal为默认模式,因此-T3 实际上是未做任何优化。
- Aggressive模式假设用户具有合适及可靠的网络从而加速 扫描.
- nsane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。
其他选项
-A 综合扫描
此选项包含了 1-10000端口ping扫描 , 操作系统扫描 , 脚本扫描 , 路由追踪 , 服务探测
nmap -A 192.168.50.148
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!