Nmap网络安全技术笔记

网络安全自学日志工具篇

一、nmap介绍

Nmap是一个开源,免费的网络探测工具,可以用来探测存活主机以及开放的端口等,支持windows,linux,mac等多种操作系统。

二、nmap常用功能

  • 探测主机存活
  • 扫描端口
  • 探测主机操作系统信息
  • 检测漏洞

三、nmap基本操作

nmap <目标IP>
nmap <IP地址的范围>
nmap <IP地址/掩码位数>
nmap <扫描目标1 扫描目标2 >
nmap <目标> --exclude<目标2> 排除目标2
nmap -iL <文本文件> 对文本文件中的地址进行扫描

HOST DISCOVERY 主机发现

-sn 和-sP一样,只利用ping扫描进行主机发现,不扫描目标主机的端口
-PR 使用ARP ping
-PE ICMP主机发现
-PP ICMP时间戳主机发现
-sL 列表扫描,仅将指定的目标IP列举出来,不进行主机发现
-Pn 将所有指定的主机视为已开启状态,跳过主机发现过程
-PS TCP SYN ping ,发送一个设置了SYN标志位的TCP报文,默认端口为80,也可指定端口
-PA TCP ACK ping,发送一个设置了ACK标志位的TCP报文,默认端口为80,也可指定端口(效果没有上面的好)
-PU UDP ping ,发送一个空的UDP报文到指定端口,可穿透只过滤TCp的防火墙(可靠性低)
-P0 使用IP协议ping
-n/-R -n不用域名解析,加速扫描,-R为目标IP做为反向解析域名,扫描较慢一些
-dns-servers 自定义域名解析服务器地址
-traceroute 目标主机路由追踪

端口扫描技术

nmap 将目标端口分为6种状态:
open(开放的)
closed(关闭的)
filtered (被过滤的)
unfiltered (未被过滤的)可访问但不确定开发情况
open|filtered (开放或者被过滤)无法确定端口是否开放的还是被过滤的
closed|filtered (关闭或者被过滤)无法确定端口是否关闭还是被过滤的
nmap产生的结果基于目标机器的响应报文的,而这些主机可能是不可信任的。会产生迷惑或者误导nmap的报文

-sS TCP SYN 扫描,不进行ping 半开放扫描,速度快隐蔽性好(不完成TCP连接),能够明确区分端口状态
-sT TCP 连接扫描,容易产生记录,效率低
-sA TCP ACK扫描,只设置ACK标志位,区别被过滤与未被过滤的
-sU UDP 服务扫描,例如DNS/DHCP等,效率低
-sN;-sF;-sX TCP Null,Fin,Xmas扫描,从RFC挖掘的微妙方法来区分开放关闭端口
-sl 利用僵尸主机上已知IP分段ID序列生成算法来探测目标上开放端口的信息,极端隐蔽
-sO IP协议扫描,可以确定目标主机支持哪些IP协议,例如TCP/ICMP等
PORT SPECIFICATION AND SCAN ORDER 端口说明和扫描顺序
-p 指定扫描的端口,可以是单个端口,也可以是端口范围,可以指定UDP或TCP协议扫描特定端口
-p 指定扫描的协议,例如-p http 即可扫描http协议的端口状态
–exclude-ports 排除指定端口不扫描
-F 极速模式,仅扫描100个常用端口

操作系统探测

用TCP/IP协议栈fingerprinting进行探测,Nmap发送一系列TCP和UDP报文到远程主机,检查响应的每一个比特。测试后Nmap吧结果和数据库中超过1500个已知的fingerprints比较,如匹配则输出结果
-O 启用操作系统探测
-A 同时启用操作系统探测和服务版本探测
–osscan-limit 针对指定的目标进行操作系统检测
–osscan-guess 当nmap无法确定所检测的操作系统时,会尽可能地提供相近的匹配

服务与版本探测。

Nmap-services 包含大量服务的数据库,Nmap通过查询该数据库可以报告哪些端口可能对应于扫描服务,但不一定正确
-sV 进行服务版本探测
–allports 不为版本排除任何端口
–version-intensity level 设置版本扫描强度,范围为0-9,默认是7,强度越高,时间越长,服务越可能被正确识别
–version-light 相当于–version-intensity 2
–version-all 相当于–version-intensity 9
–version-trace 跟踪版本扫描活动

四、Nmap高级技术

Nmap伪装技术

nmap -f 目标 会将nmap的探测数据包分段
–mtu 指定MTU大小
-D decoy1 [, decoy2][, ME],… 使用诱饵进行主机隐蔽扫描,ME选项表示你的真实IP,诱饵主机需存活
–source-port portnumber ; -g portnumber 源端口欺骗 只需要目标有一个被检测机制遗忘的端口好,Nmap就可以从这个端口发送数据
–data-length 附加随机数据
–ttl 设置TTL值
–spoof-mac <mac address, prefix, or vendor name> MAC地址欺骗,伪造MAC地址
-oN 保存扫描结果

五、NSE(Nmap脚本引擎)

允许用户自己编写的脚本来执行自动化的操作或者扩展nmap的功能,使用Lua脚本语言。
-sC 使用默认类别的脚本进行扫描
nmap脚本主要分为以下几类,在扫描时可根据需要设置–script=类别这种方式进行比较笼统的扫描:

1. auth: 负责处理鉴权证书(绕开鉴权)的脚本
2. broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
3. brute: 提供暴力破解方式,针对常见的应用如http/snmp等
4. default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
5. discovery:对网络进行更多的信息,如SMB枚举、SNMP查询等
6. dos: 用于进行拒绝服务攻击
7. exploit: 利用已知的漏洞入侵系统
8. external: 利用第三方的数据库或资源,例如进行whois解析
9. fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
10. intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
11. malware: 探测目标机是否感染了病毒、开启了后门等信息
12. safe: 此类与intrusive相反,属于安全性脚本
13. version: 负责增强服务与版本扫描(Version Detection)功能的脚本
14. vuln: 负责检查目标机是否有常见的漏洞(Vulnerability)

有关脚本详细信息可参考官方文档https://nmap.org/nsedoc/scripts/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值