nmap攻击技术原理简述

Nmap扫描原理简介
Nmap(NetWork Mapper)最初是由Fyodor在1997年创建的一款开源免费的网络发现和安全审计工具。随后在开源社区众多的志愿者参与下,该工具逐渐完善并成为了最为流行的安全必备工具。Nmap可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息。它已成为网络管理员用以评估网络系统安全的必备工具之一。

Nmap的四大基本功能与两大扩展功能:
基本功能:
1. 主机发现
2. 端口扫描
3. 版本侦测
4. 操作系统侦测

扩展功能:
1. 防火墙/IDS规避
2. NSE脚本引擎

在这里插入图片描述

一般情况下,nmap顺序进行各种功能,首先需要进行主机发现,随后确定端口状况,在已经确定的端口上查找运行的具体应用程序的名字与版本信息,然后可以进行操作系统的侦测。而在四项基本功能的基础上,Nmap提供防火墙与IDS(入侵检测系统)的规避技巧,以及强大的NSE(Nmap Scripting Language)脚本引擎功能,可以综合运用到四个基本功能的各个阶段,对基本功能进行补充和扩展。

Nmap与渗透测试:
Nmap常用在渗透测试中信息搜集阶段,用于搜集目标机主机的基本状态信息,列举网络主机清单、管理服务升级调度、监控主机、服务运行状况。Nmap不仅可以用于扫描单个目标机,也可以适用于扫描大规模的计算机网络。扫描结果可以作为漏洞扫描、漏洞利用和权限提升阶段的输入。例如,漏洞扫描工具Nessus与漏洞利用工具Metasploit都可以导入Nmap的XML形式的扫描结果。
Nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)和Null扫描。Nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定。
根据使用的功能选项,Nmap也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS名、主机地址是否是欺骗地址、以及其它一些东西。

Nmap工作原理分析:
1. 主机发现
----目的:
用于发现目标主机是否处于存活状态。
----原理:
主机发现的原理类似于Ping命令,即发送探测包到目标主机,如果可以收到回复报文,那么就证明目标主机是开启状态。默认情况下,Nmap会默认发送四种不同类型的数据包来探测目标主机是否在线(ICMP echo request // TCP SYN // TCP ACK // ICMP timestamp request),依次发送四个报文来探测目标机是否开启。只要成功收到其中一个的返回包,就证明目标机开启。除此之外,Nmap还支持一些其他类型的探测包, (SCTP INIT // COOKIE-ECHO //NETMASK)等。使用不同类型的数据包可以避免因防火墙过滤或丢包造成的判断失误。
2. 端口扫描
----目的:
用于扫描目标机上的端口状态。
在默认状态下,Nmap会扫描1660个常用的端口,可以覆盖大多数基本应用情况。
----原理:
端口扫描实际上是运用TCP和UDP以及一些其他连接方式对目标机的各个端口进行连接,根据返回包的结果判断端口是否处于正常开放(open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)的状态。根据连接方式以及返回的数据包的不同可以大致可以分成以下几种扫描方法。TCP connect()、 TCP SYN、 TCP ACK、 UDP、 FIN、 XMAS、 NULL扫描等。
----类型图解:
在这里插入图片描述
TCP connect()扫描:
TCP connect()方式使用系统网络API connect向目标主机的端口发起TCP连接,如果目标端口有程序监听,connect()就会成功收到返回包,否则这个端口是不可达的。这项技术最大的优点是,不需root权限。任何UNIX用户都可以自由使用这个系统调用。缺点是,扫描速度较慢(因为要经历完整的 “三次握手“ 过程),且很容易被检测到,会在目标主机的日志中会记录大批的连接请求以及错误信息。

TCP connect()探测到端口关闭:
在这里插入图片描述
TCP connect()探测到端口打开:
在这里插入图片描述

TCP SYN 扫描:
这是Nmap默认的扫描方式,也叫TCP半开放扫描。该扫描在发送SYN报文至目 标端口后,如果收到了SYN / ACK的回复包,就可以判断端口是开放状态。如果收到了RST 包,证明端口是关闭状态的。如果没有收到回复包,那么判断端口是被屏蔽的。
不同于connect全扫描,半开放扫描并不需要经历完整的 “三次握手” ,不需建立完整的TCP

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值