Nmap渗透测试详解(一)

Nmap渗透测试详解(一)

如今,Nmap享有“扫描之王”盛誉。

Nmap诞生于1996年。在这个信息爆炸的互联网时代,Nmap依然保持着充沛的活力以及旺盛的生命力。原因如下:

知名度高:只要是黑客,肯定知道Nmap,否则就不能称为一名黑客。Nmap绝对是著名的网络安全工具。

功能强大:也许Nmap 在不少人眼里是一个网络端口扫描以及远程操作系统、服务鉴别工具。其实除了这些基础功能外,Nmap还具备相对完整的信息收集、数据库渗透、网络渗透测试等功能。Nmap 在强大的脚本支持下几乎可以做到我们想做的任何网络扫描测试

Nmap介绍

Nmap英文全称为“Network Mapper”(网络映射器)。Nmap是一款开放源代码的网络探测和安全审核的工具,它的设计目标不仅可以扫描单个主机,更重要地是可以快速地扫描大型网络。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,这些主机提供什么服务(应用程序名和版本),服务运行在什么操作系统(包括版本信息),他们使用什么类型的报文过滤器/防火墙,以及一些其他功能。虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息、管理服务升级计划,以及监视主机和服务的运行。

Nmap的基本功能有3个,一是探测一组主机是否在线,其次是扫描主机端口,嗅探所提供的网络服务,还可以推断主机所用的操作系统。Nmap 可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的Ping 操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所使用的操作系统;还可以将所有探测结果记录到各种格式的日志里,供进一步分析操作。

Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。Filtered(被过滤的)意味着防火墙,过滤器或者其他网络障碍阻止了该端口被访问,Nmap无法得知它是Open(开放的)还是Closed(关闭的)。Closed(关闭的)端口上面没有应用程序监听,但是它们随时可能开放。

Nmap-Script功能的使用。在Nmap的安装目录的share/nmap/scripts里,已经有多种写好的脚本提供,使用这些脚本可以轻易地发起渗透测试。

Nmap工作原理

Nmap使用TCP/IP协议栈指纹准确地判断目标主机的操作系统类型,Nmap工作原理如下:

测试描述
T1发送TCP数据包(Flag=SYN)到开放TCP端口
T2发送一个空的TCP数据包到开放的TCP端口
T3发送TCP数据包(Flag=SYN,URG,PSH,FIN)到开放的TCP端口
T4发送TCP数据包(Flag=ACK)到开放的TCP端口
T5发送TCP数据包(Flag=SYN)到关闭的TCP端口
T6发送TCP数据包(Flag=ACK)到开放的TCP端口
T7发送TCP数据包(Flag=URG,PSH,FIN)到关闭的TCP端口

Nmap对目标主机进行一系列的测试,利用测试结构建立相应目标主机的Nmap指纹,然后Nmap会对指纹进行匹配,最终输出相应的结果。

Nmap语法

Nmap固定语法格式如下:
Nmap 【空格】【选项|多选项|协议】【空格】【目标】
选项与多选项之间也是用空格进行分割的,如果某些选项需要指定某些数据,那么在这些选项与指定的数据之间也需要用空格进行分割。

注意:所有的选项与命令以及选项参数都用空格进行分割的,有时候选项与参数知己可以不用空格分割,如-p80,-p为选项,80为参数。为了让Nmap语法更加严谨,建议严格按照空格进行分割。

Nmap的图形界面工具Zenmap

Nmap不仅有命令行的输入方式,还有图形界面,极大地方便了操作。
Zenmap便是它的图形用户界面,它是一个跨平台的开源应用,不仅方便初学者使用,同时为高级使用者提供了很多高级特性。频繁的扫描能够被存储,激进型重复运行。命令行工具提供了直接与Nmap的交互操作。扫描结果能够被存储以便于时候查阅。存储的扫描可以被比较,以辨别其异同。

Nmap的基本知识点

全面扫描

选项解释
-A(即All)全面扫描/综合扫描,一种完整扫描目标信息的扫描方式

Nmap全面扫描的选项为-A,优点:它可以全面扫描指定IP或域名的所有端口及其目标系统信息等。缺点:它需要等待较长的时间。
如:nmap -A 192.168.126.129

扫描指定段

在Nmap里我们可以指定扫描一个C段,这个功能不需要其他额外的选项,只需要使用“-”连接即可
如:nmap 192.168.126.1-200(扫描192.168.126.1到192.168.126.200这个段)

一次简单的扫描

该扫描方式可以针对IP或域名进行扫描,扫描方式迅速,可以很方便地发现目标端口的开放情况以及主机在线情况。
如:nmap 192.168.126.129

Ping扫描

选项解释
-sP(即scan ping缩写)Ping扫描

Ping扫描只进行Ping,然后显示出在线的主机。扫描时只需要加入-sP选项就可以很方便地启用Ping扫描,使用该选项时,Nmap仅进行Ping扫描,然后会显出做出相应的主机,使用该选项扫描可以轻易地获取目标信息而不会被轻易发现。在默认情况下,Nmap会发送一个ICMP回声请求和一个TCP报文到目标端口。Ping扫描的优点是不会返回太多的信息造成对结果的分析,并且这是一个很高效的扫描方式。
如:nmap -sP 192.168.126.129/24

无Ping扫描

选项解释
-P0(0表示无,即无Ping扫描)无Ping扫描

无Ping扫描通常用于防火墙禁止Ping的情况下,它能确定正在运行的机器。默认情况下,Nmap只对正在运行的主机进行高强度的探测,如端口扫描、版本探测或者操作系统探测用-P0禁止主机发现会让Nmap对每一个指定的目标IP地址进行所要求的扫描,这可以穿透防火墙,也可以避免被防火墙发现。需要注意的是,-P0的第二个字符是数字0而不是字母o。
注意:无Ping扫描可以躲避某些防火墙的防护,可以在目标主机禁止Ping的情况下采用。
格式为:“nmap -P0 【协议1,协议2】【目标】”

协议1ICMP协议
协议2IGMP协议
协议6TCP协议
协议17UDP协议

如果没有指定任何协议,Nmap会默认使用协议1,协议2进行扫描
如:nmap -P0 192.168.126.129

若想知道这些协议是如何判断目标主机是否存活可以使用 --packet-trace选项
如:nmap -P0 --packet-trace scanme.nmap.org

指定TCP,UDP,IGMP协议向目标主机发送包并判断目标主机是否在线
如:nmap -P0 6,17,2 --packet-trace scanme.nmap.org

TCP SYN Ping扫描

选项解释
-PS(即Ping SYN缩写)TCP SYN Ping扫描

TCP协议是面向连接的、可靠的传输层协议,允许发送和接收字节流形式的数据,为了让服务器和客户端以不同的速度产生和消费数据,TCP提供了发送和接收两个缓冲区。TCP提供全双工服务,数据同时能双向流动。通信的每一方都有发送和接收两个缓冲区,可以双向发送数据。TCP在报文里加上一个递进的确认序列号来告诉发送者,接收者期望收到的下一个字节,如果在规定时间内,没有收到关于这个包的确认响应,则重新发送此包,这保证了TCP为一种可靠的传输层协议。

-PS选项发送一个设置了SYN标志位的空TCP报文。默认目的端口为80(可以通过改变nmap.h)文件里的DEFAULT_TCP_PROBE_PORT值进行配置,但不同的端口也可以作为选项指定,甚至可以指定一个以逗号分隔的端口列表(如_PS22,23,25,80,115,3306,3389),在这种情况下,每个端口会并发地扫描。
通常情况下,Nmap默认Ping扫描是采用TCP ACK和ICMP Echo请求对目标进行是否存活的响应,当目标主机的防火墙阻止这些请求时,我们可以采用TCP SYN Ping扫描来进行对目标主机存活的判断。

如:nmap -PS 192.168.126.129

TCP ACK Ping扫描

选项解释
-PA(即Ping ACK 缩写)TCP ACK Ping扫描

使用-PA选项可以进行TCP ACK Png扫描,它与TCP SYN Ping扫描是类似的,唯一的区别是设置TCP的标志位是ACK而不是SYN,使用这类方式扫描可以探测组织SYN包或ICMP Echo请求的主机。
很多防火墙会封锁SYN报文,所以Nmap提供了TCP SYN Ping扫描与TCP ACK Ping扫描
两种探测方式,这两种方式可极大地提高通过防火墙的概率,我们还可同时采用-PS与-SA来既发送SYN又发送ACK。在采用TCP ACK Ping扫描时,Nmap会发送一个ACK标志的TCP包给目标主机,若目标主机不是存活状态则不响应请求,若目标主机在线则会返回一个RST包。

进行TCP ACK Ping扫描:
如:nmap -PA 192.168.126.129

同时使用-PS与-PA选项:
如:nmap -PA -PS 192.168.126.129

UDP Ping扫描

选项解释
-PU (即Ping UDP缩写)UDP Ping扫描

-PU选项是发送一个空的UDP报文到指定端口。若不指定端口则默认为40125.该默认值可以通过在编译时改变nmap.h文件里的DEFAULT-UDP-PROBE-PORT值进行配置。默认采用这样一个奇怪的端口是因为对于开放端口,很少会使用这样的扫描方式。

采用UDP Ping扫描时Nmap会发送一个空的UDP包到目标主机,若目标主机响应则返回一个ICMP端口不可达错误,若目标主机不是存活状态则会返回不同的ICMP错误信息。

如:nmap -PU 192.168.126.129

ICMP Ping Types扫描

选项解释
-PE(即ICMP Echo缩写)向目标发送ICMP Echo数据包
-PP(即ICMP Ping缩写)ICMP时间戳Ping扫描
-PM(即ICMP Mask缩写)ICMP地址掩码Ping扫描

使用-PE;-PP;-PM选项可以进行ICMP Ping Types扫描。ICMP(Internet Control Message Protocol)是Internet控制报文协议。它是TCP/IP协议的一个子协议,用于在IP主机、路由器之间传递控制信息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

Nmap发送一个ICMP type8(回声请求)报文到目标IP地址,从运行的主机得到一个type0(回声响应)报文。

-PE选项简单地来说是通过向目标发送ICMP Echo数据包来探测目标主机是否在线,正因为许多主机的防火墙会禁止这些报文,所以仅仅ICMP扫描对于互联网上的目标通常是不够的。但对于系统管理员监视一个内部网络,它们可能是实际有效的途径。使用选项打开该回声请求功能。

-PP选项是ICMP时间戳Ping扫描,虽然大多数的防火墙配置不允许ICMP Echo请求,但由于配置不当可能回复ICMP时间戳请求,所以可以使用ICMP时间戳来确定目标主机是否存活。

-PM选项可以进行ICMP地址掩码Ping扫描。此扫描方式会试图用备选的ICMP等级Ping指定主机,通常有不错的穿透防火墙的效果。

(1)使用ICMP Echo扫描方式
如:nmap -PE 192.168.126.129

(2)使用ICMP时间戳Ping扫描
如:nmap -PP 192.168.126.129

(3)使用ICMP地址掩码Ping 扫描
如:nmap -PM 192.168.126.129

ARP Ping扫描

选项解释
-PR (即Ping ARP缩写)ARP Ping扫描

-PR选项通常在扫描局域网时可采用。地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议,其功能是:主机将ARP请求广播到网络上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存内,下次请求时直接查询ARP缓存。

ARP Ping扫描是Nmap对目标进行一个ARP Ping的过程,尤其在内网的情况下,采用ARP Ping扫描方式是最有效的,在本地局域网内防火墙不会禁止ARP请求,这就导致它比其他Ping扫描都更加高效,在内网里采用ARP Ping是非常有效的。在默认情况下,若Nmap发现目标主机就在它所在的局域网上,会进行ARP扫描。即使指定了不同的Ping类型(如-PI或者-PS),Nmap也会对任何相同局域网上的目标机使用ARP。若不想用ARP 扫描,可以指定–send-ip。

如:nmap -PR 192.168.126.129

列表扫描

选项解释
-sL (即scan List缩写)列表扫描

列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机,不发送任何报文到目标主机。默认情况下,Nmap仍然会对主机进行反向域名解析以获取它们的名字。

如:nmap -sL 192.168.126.129/24

扫描一个IPv6地址

选项解释
-6(即IPv6缩写)扫描IPv6地址

IPv6是Internet Protocol Version 6 的缩写,是IPv4的下一代IP协议。
Nmap很早就支持IPv6的扫描,在Nmap选项后加入-6选项就可以对IPv6扫描。

IPv6将会逐渐替换IPv4,但在一段相当长的时间内,IPv4还会大量地存在。若需要扫描IPv6地址,则需要在语句的IPv6目标地址前面加上-6选项。

如:nmap -6 fe80::20c:29ff:;fee0:2e76

路由跟踪

选项解释
–traceroute路由跟踪

采用–traceroute选项即可进行路由跟踪,它可以帮助用户了解网路偶的同行情况,通过此选项可以轻松地查出从本地计算机到目标之间所经过的网络节点,并可以看到通过各个节点的时间。

如:nmap --traceroute www.baidu.com

后面内容请见Nmap渗透测试详解(二)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

必须建筑师附体!像盖大楼那样打造数据即服务

近两年产业界总用“数据洪流”来形容数据的大爆发,但如果我们真把它视作洪水,那么它只会带来冲击;如能积极发掘其潜藏的价值,它则可能变成一条流金之河,正如麦肯锡在研究中发现的那样:与竞争对手相比&#…

华为鸿蒙用着怎么样,首批华为鸿蒙用户体验如何?“差评”有点难听,但是很真实!...

为了实现国产替代,打破海外企业对操作系统的垄断。华为集团推出了鸿蒙操作系统,这是一款真正意义上的国产操作系统,可以从一定程度上突破海外企业对手机操作系统的限制 。当然,一款操作系统的发展需要广大用户的支持,尽…

Python return逻辑判断表达式 - 零基础入门教程

目录 一.return 逻辑判断表达式 and二.return 逻辑判断表达式 or三.return 逻辑判断表达式 and 和 or 配合使用四.return 逻辑判断表达式重点总结五.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.return 逻辑判断表达式 and and&…

Metasploit渗透测试框架

Metasploit渗透测试框架 渗透测试是一类有目的性的、针对目标机构计算机系统安全的监测评估方法。渗透测试可以发现系统的漏洞和安全机制方面的隐患,并以此进行渗透攻击来取得目标计算机的控制权。通过渗透测试可以知道目标机构的计算机系统是否易于受到攻击&#…

用 Python 分析《斗破苍穹》,分析其究竟是烂片无疑还是沧海遗珠?

作者 | 量化小白H责编 | 郭芮近期根据小说《斗破苍穹》改编的同名电视剧正在热映,本文对《斗破苍穹》进行文本分析,分为两部分。首先爬取豆瓣影评进行简单分析,随后对于原创小说文本中的人物进行详细分析。影评分析爬取影评使用的也是之前《用…

android面试service,Android面试,与Service交互方式(4)

自定义接口交互4何谓自定义接口呢,其实就是我们自己通过接口的实现来达到Activity与Service交互的目的,我们通过在Activity和Service之间架设一座桥樑,从而达到数据交互的目的,而这种实现方式和AIDL非常类似(后文会说到)。4.1 实现…

Python input 函数 -Python零基础入门教程

目录 一.前言二.Python input 函数简介三.Python input 函数实战四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Python 内置函数其实挺多的,其中 input 和 eval 算得上比较特殊,input 属于交互式内置函数…

Metasploit基础和基本命令详解

Metasploit基础 2003年H.D Moore创建了Metasploit,从那之后Metasploit便快速发展起来,如今被公认为最为流行的渗透测试工具之一。Metasploit是一个完全的Ruby驱动项目,提供了大量的漏洞渗透、攻击载荷(payload)、编码…

综评:5个方面看刚刚发布的Kubernetes 1.12

Kubernetes项目在过去几年中发展迅速,并且作为容器编排和管理解决方案的领导者而备受尊重。有了这个地位,Kubernetes开发者有责任提供经过充分测试,易于维护,高性能和可扩展的API和工具。在即将到来的每个发布周期中,大…

华为麒麟1020鸿蒙系统,华为P50pro最新确认:麒麟1020+立体全面屏+鸿蒙系统,这才是华为...

原标题:华为P50pro最新确认:麒麟1020立体全面屏鸿蒙系统,这才是华为华为P系列一直是领导华为手机上半年的发展,而今年的华为P40系列更是实现了大爆发,市场上手机销量不断的攀升,并且权威的科技评测也给出了…

Python eval 函数 -Python零基础入门教程

目录 一.前言二.Python eval 函数简介三.Python eval 函数实战四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Python 内置函数其实挺多的,其中 input 和 eval 算得上比较特殊,input 属于交互式内置函数&…

Ruby-Metasploit的核心

Ruby-Metasploit的核心 Ruby编程语言可以说是Metasploit框架的核心。 根据Ruby官方网站介绍,Ruby编程语言简单而又强大,面向对象,为解释性语言,执行速度快,项目开发周期短,可以构建自动化类来重用代码是R…

干货 | 算法和编程面试题精选TOP50!(附代码+解题思路+答案)

作者 | javinpaul编译 | 王天宇、Jane整理 | Jane【导读】之前我们给同学们推荐了很多关于 Python 的面试资源,大家都表示很有用。这次营长表示要翻 Java 的牌子啦~ 应大家的强烈反馈,我们找了一套 Java 语言的算法和编程的面试题。这份面试资源主要包含…

Xml转换成html表格代码,如何用C++代码将XML文件转换为HTML表格?

我有一个XML文件。我想把它转换成HTML文件,并用我的C应用程序像HTML表一样表示它。有没有任何C库可以用来解析XML文件并创建HTML文件?示例:Belgian Waffles$5.95Two of our famous Belgian Waffles with plenty of real maple syrup650Strawberry Belgia…

Python map 函数 -Python零基础入门教程

目录 一.前言二.Python map 函数语法简介三.Python map 函数实战 1.使用 map 函数2.map 函数配合 lambda 匿名函数一起使用 四.Python map 函数效率对比五.Python map 函数总结六.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 截…

鸿蒙os2.0开发者beta版,鸿蒙 OS 2.0 开发者beta版针对Mate 40系列设备开放

华为开始针对包括P40,Mate 30和MatePad Pro设备在内的设备招募HarmonyOS 2.0 Mobile开发人员beta版。招募之后,华为还开始向选定的测试人员推出HarmonyOS 2.0移动开发人员更新。根据最新信息,华为现已决定扩展适用于华为Mate X2可折叠手机&am…

python2版本libnum

如果运行RsaCtfTool工具 需要用到libnum,而网上基本上都是python3的libnum讲解,下面我就来说说python2的libnum https://github.com/ryanInf/python2-libnum 这个链接讲述的是python2的libnum模块 安装 git clone https://github.com/ryanInf/python2-l…

1.7亿条数据,比胡同和撸串更真实的北京

作者王越来源DT财经原创作品,如有转载,请联系公众号授权。“宇宙中心”是哪里?哪里又是北京的城市活力中心?北京究竟是一座怎样的城市?是汇聚了政治中心、国际交往中心、科技创新中心等多项顶级职能的大国之都,是拥有…

Python 文件读写操作-Python零基础入门教程

目录 一.Python 文件的打开 open二.Python 文件的关闭 close三.Python 文件的读取 read 1.read 函数2.readline 函数3.readlines 函数 四.Python 文件的写入 write 1.write 函数语法2.write 函数使用案例 五.Python 文件偏移 seek 1.seek 函数2.tell 函数3.seek / tell 函数示…

html box 竖线,CSS3 小竖条脉冲型LOADING动效

CSS语言:CSSSCSS确定.loader-wrap {position: absolute;left: 0;right: 0;top: 0;bottom: 0;margin: auto;background-color: #ff9328;}.loader {position: absolute;left: 0;right: 0;top: 0;bottom: 0;margin: auto;height: 40px;width: 80px;box-sizing: border-…