Nmap扫描原理(下)

转自:https://blog.csdn.net/qq_34398519/article/details/89055999

3     Nmap高级用法

3.1    防火墙/IDS规避

防火墙与IDS规避为用于绕开防火墙与IDS(入侵检测系统)的检测与屏蔽,以便能够更加详细地发现目标主机的状况。

Nmap提供了多种规避技巧,通常可以从两个方面考虑规避方式:数据包的变换(Packet Change)与时序变换(Timing Change)。

3.1.1    规避原理

3.1.1.1    分片(Fragmentation)

将可疑的探测包进行分片处理(例如将TCP包拆分成多个IP包发送过去),某些简单的防火墙为了加快处理速度可能不会进行重组检查,以此避开其检查。

3.1.1.2    IP诱骗(IP decoys)

在进行扫描时,将真实IP地址和其他主机的IP地址(其他主机需要在线,否则目标主机将回复大量数据包到不存在的主机,从而实质构成了拒绝服务攻击)混合使用,以此让目标主机的防火墙或IDS追踪检查大量的不同IP地址的数据包,降低其追查到自身的概率。注意,某些高级的IDS系统通过统计分析仍然可以追踪出扫描者真实IP地址。

3.1.1.3    IP伪装(IP Spoofing)

顾名思义,IP伪装即将自己发送的数据包中的IP地址伪装成其他主机的地址,从而目标机认为是其他主机在与之通信。需要注意,如果希望接收到目标主机的回复包,那么伪装的IP需要位于统一局域网内。另外,如果既希望隐蔽自己的IP地址,又希望收到目标主机的回复包,那么可以尝试使用idle scan或匿名代理(如TOR)等网络技术。

3.1.1.4    指定源端口

某些目标主机只允许来自特定端口的数据包通过防火墙。例如FTP服务器配置为:允许源端口为21号的TCP包通过防火墙与FTP服务端通信,但是源端口为其他端口的数据包被屏蔽。所以,在此类情况下,可以指定Nmap将发送的数据包的源端口都设置特定的端口。

3.1.1.5    扫描延时

某些防火墙针对发送过于频繁的数据包会进行严格的侦查,而且某些系统限制错误报文产生的频率(例如,Solaris 系统通常会限制每秒钟只能产生一个ICMP消息回复给UDP扫描),所以,定制该情况下发包的频率和发包延时可以降低目标主机的审查强度、节省网络带宽。

3.1.1.6    其他技术

Nmap还提供多种规避技巧,比如指定使用某个网络接口来发送数据包、指定发送包的最小长度、指定发包的MTU、指定TTL、指定伪装的MAC地址、使用错误检查和(badchecksum)。

更多信息http://nmap.org/book/man-bypass-firewalls-ids.html

3.1.2    规避用法

  1. -f; –mtu <val>: 指定使用分片、指定数据包的MTU.
  2. -D <decoy1,decoy2[,ME],…>: 用一组IP地址掩盖真实地址,其中ME填入自己的IP地址。
  3. -S <IP_Address>: 伪装成其他IP地址
  4. -e <iface>: 使用特定的网络接口
  5. -g/–source-port <portnum>: 使用指定源端口
  6. –data-length <num>: 填充随机数据让数据包长度达到Num。
  7. –ip-options <options>: 使用指定的IP选项来发送数据包。
  8. –ttl <val>: 设置time-to-live时间。
  9. –spoof-mac <mac address/prefix/vendor name>: 伪装MAC地址
  10. –badsum: 使用错误的checksum来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或IDS/IPS)。

3.1.3    规避演示

使用命令:

nmap -v -F -Pn -D192.168.1.100,192.168.1.102,ME -e eth0 -g 3355 192.168.1.1

其中,-F表示快速扫描100个端口;-Pn表示不进行Ping扫描;-D表示使用IP诱骗方式掩盖自己真实IP(其中ME表示自己IP);-e eth0表示使用eth0网卡发送该数据包;-g 3355表示自己的源端口使用3355;192.168.1.1是被扫描的目标IP地址。

我们可以从Wireshark中看到数据包的流动情况:对于每个探测包,Nmap都使用-D选项指定的IP地址发送不同的数据包,从而达到扰乱对方防火墙/IDS检查的目的(更好的方式-D选项中嵌入RND随机数,这样更具有迷惑性)。当探测到80端口时候,目标主机向我们回复了SYN/ACK包回来(当然也向其他诱骗的IP回复SYN/ACK包,我们无法接收到),证明80端口是开放的。

3.2    NSE脚本引擎

NSE脚本引擎(Nmap Scripting Engine)是Nmap最强大最灵活的功能之一,允许用户自己编写脚本来执行自动化的操作或者扩展Nmap的功能。

NSE使用Lua脚本语言,并且默认提供了丰富的脚本库,目前已经包含14个类别的350多个脚本。

NSE的设计初衷主要考虑以下几个方面:

  • 网络发现(Network Discovery)
  • 更加复杂的版本侦测(例如skype软件)
  • 漏洞侦测(Vulnerability Detection)
  • 后门侦测(Backdoor Detection)
  • 漏洞利用(Vulnerability Exploitation)

3.2.1    NSE创建脚本方法

下面以daytime.nse脚本为例说明一下NSE格式。

NSE的使用Lua脚本,并且配置固定格式,以减轻用户编程负担。通常的一个脚本分为几个部分:

description字段:描述脚本功能的字符串,使用双层方括号表示。

comment字段:以–开头的行,描述脚本输出格式

author字段:描述脚本作者

license字段:描述脚本使用许可证,通常配置为Nmap相同的license

categories字段:描述脚本所属的类别,以对脚本的调用进行管理。

rule字段:描述脚本执行的规则,也就是确定触发脚本执行的条件。在Nmap中有四种类型的规则,prerule用于在Nmap没有执行扫描之前触发脚本执行,这类脚本并不需用到任何Nmap扫描的结果;hostrule用在Nmap执行完毕主机发现后触发的脚本,根据主机发现的结果来触发该类脚本;portrule用于Nmap执行端口扫描或版本侦测时触发的脚本,例如检测到某个端口时触发某个脚本执行以完成更详细的侦查。postrule用于Nmap执行完毕所有的扫描后,通常用于扫描结果的数据提取和整理。在上述实例中,只有一个portrule,说明该脚本在执行端口扫描后,若检测到TCP 13号端口开放,那么触发该脚本的执行。

action字段:脚本执行的具体内容。当脚本通过rule字段的检查被触发执行时,就会调用action字段定义的函数。

3.2.2    NSE脚本用法

Nmap提供不少脚本使用的命令行参数。

  1. -sC: 等价于 –script=default,使用默认类别的脚本进行扫描。
  2. –script=<Lua scripts>: <Lua scripts>使用某个或某类脚本进行扫描,支持通配符描述
  3. –script-args=<n1=v1,[n2=v2,…]>: 为脚本提供默认参数
  4. –script-args-file=filename: 使用文件来为脚本提供参数
  5. –script-trace: 显示脚本执行过程中发送与接收的数据
  6. –script-updatedb: 更新脚本数据库
  7. –script-help=<Lua scripts>: 显示脚本的帮助信息,其中<Luascripts>部分可以逗号分隔的文件或脚本类别。

3.2.3    NSE用法演示

配合脚本扫描192.168.1.1,查看能否获得有用的信息。

命令如下:

nmap –sV –p 80 –v –script default,http*192.168.1.1

从上图中,我们可以看到Nmap扫描到对方80端口是开放的,然后使用了大量的名字为http开头的脚本对其进行扫描。扫描过程发现在http-auth脚本执行,出现了“Basic relm=TP-LINK Wireless N router WR740”字样(红线划出部分),这里已经挖掘对方的设备类型与具体版本信息。如果我们知道更多关于WR740已知的漏洞,那么就可以进行更进一步的渗透测试了。

4     参考资料

4.1    书籍

Nmap Network Scanning

Nmap创始人Fyodor编写的Nmap的权威指南,非常详尽地描述Nmap的实现原理及使用方法。Nmap官方文档正是来自该书部分章节。

Secrets of Network Cartography

该书对Nmap的实现原理及使用场景有比较丰富的介绍。

Nmap in the Enterprise: Your Guide to Network Scanning

这本书描述Nmap在企业领域的运用

原文地址:https://www.cnblogs.com/wangliangblog/p/10981327.html

时间: 2024-11-12 11:18:48

Nmap扫描原理(下)的相关文章

Nmap扫描原理与用法

Nmap扫描原理与用法 2012年6月16日 1     Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字Nmap是Network Mapper的简称.Nmap最初是由Fyodor在1997年开始创建的.随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一.最新版的Nmap6.0在2012年5月21日发布,详情请参见:www.nmap.or

nmap扫描工具的安装与使用

概念 NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. 其基本功能有三个: (1)是扫描主机端口,嗅探所提供的网络服务 (2)是探测一组主机是否在线 (3)还可以推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本 nmap端口状态解析 open : 应用程序在该端口接收 TCP 连接或者 UDP 报文. closed :关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应.但没有应用程序在其上监听. filtered :由于

Nmap扫描教程之Nmap基础知识

Nmap扫描教程之Nmap基础知识 Nmap扫描Nmap基础知识 Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper).Nmap工具可以用来扫描电脑上开放的端口,确定哪些服务运行在哪些端口,并且推断出计算机运行的操作系统.通过使用该工具,可以评估网络系统安全.所以,Nmap是大部分用户所必要的工具之一.本章将对Nmap工具的基础知识进行详细介绍. Nmap扫描Nmap概述 Nmap是一款非常不错的网络扫描工具,支持各种操作系统,如Windows.Linux

最好的 NMAP 扫描策略

# 适用所有大小网络最好的 nmap 扫描策略 # 主机发现,生成存活主机列表 $ nmap -sn -T4 -oG Discovery.gnmap 192.168.56.0/24 $ grep "Status: Up" Discovery.gnmap | cut -f 2 -d ' ' > LiveHosts.txt # 端口发现,发现大部分常用端口 # http://nmap.org/presentations/BHDC08/bhdc08-slides-fyodor.pdf

Nmap扫描教程之基础扫描详解

Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在实施这些扫描工作之前,需要先简单了解下Nmap工具的使用,以方便后面实施扫描.所以,本章将通过使用Nmap工具实施基础的扫描,来帮助用户了解该工具. Nmap扫描扫描概述 在实施基本的扫描之前,需要先了解一些Nmap网络扫描的基本知识,及需要考虑的一些法律边界问题.本节将对网络基本扫描进行一个简单介

nmap扫描工具

nmap:网络探测和安全扫描程序 下载地址:https://nmap.org/download.html 根据系统版本下载 实验环境: Rhel 6.5      安装包:nmap-7.01-1.x86_64 rpm -qa | grep nmap     //查看系统下是否已经安装了nmap,如果有通过rpm -e卸载,有依赖关系加上--nodeps rpm -ivh nmap-7.01-1.x86_64.rpm     //rpm安装nmap包 nmap 192.168.41.160    

linux安全---系统更新+弱口令检测工具+nmap扫描工具

1.添加yum及更新系统 a.更新设置: echo  "0 3 * * 6 yum -y  update" >>/var/spool/cron/root b.添加repo源也叫yum源 添加国内mirrors,提速: cd  /etc/yum.repos.d/ mv  ./*  /root/ wget http://mirrors.aliyun.com/repo/Centos-6.repo   ##下载阿里云yum源 yum  makecache  ##生成缓存 yum  

nmap 扫描信息收集

1.端口镜像 port Mirroring 功能通过在交换机上或者路由器上,将一个或者多个源端口的数据流量妆发大奥某一个指定的端口来实现对网络的监听,指定端口成为镜像端口或目的端口. 2.ARP攻击捕获数据包 当用户不具备上网功能的时候,可以通过发起ARP攻击,来捕获目标主机上的数据,APR攻击就是通过伪造IP地址和MAC地址来实现ARP欺骗,能够在网络中产生大量的ARP通信量阻塞网络,这样持续不断的发起攻击,目标主机ARP缓存中的IP-MAC条目就会更新,造成网络中断或中间人攻击. 3.使用伪

黑客最喜欢的15个Nmap扫描命令,熟练掌握你也能成为黑客大神

1.针对IP或主机的基本Nmap扫描 nmap IP 现在,如果要扫描主机名,只需替换主机的IP,如下所示: nmap 域名 2.扫描本地或远程服务器上的特定端口或扫描整个端口范围 nmap -p 1-65535 localhost 在此示例中,我们扫描了本地计算机的所有65535端口. Nmap能够扫描所有可能的端口,但是您也可以扫描特定的端口. nmap -p 80,443 8.8.8.8 3.扫描多个IP地址 让我们尝试扫描多个IP地址.为此,您需要使用以下语法: nmap 1.1.1.1