主动扫描之Nmap
主动扫描之Nmap
本文参考于李华峰等人的图书《Kali Linux2 网络渗透测试实践指南》2018年第1版
主动扫描一般都是针对目标发送特定的数据包,然后根据目标的反应来获得一些信息。
Nmap是非常优秀的主动扫描工具,通过Nmap对一台计算机进行扫描,我们可以得到的目标信息如下:
- 目标主机是否在线
- 目标主机所在的网络结构
- 目标主机上开放的端口
- 目标主机所使用的操作系统
- 目标主机上所运行的服务及版本
- 目标主机上所存在的漏洞
基本用法
对单个主机进行扫描nmap <目标ip地址>
对多个不连续的主机进行扫描nmap [目标1 目标2 目标3 目标4...]
对连续范围内的主机进行扫描nmap [ip范围],如nmap 192.168.164.1-255
使用CIDR扫描整个子网nmap [ip地址/掩码位数],如nmap 192.168.164.1/24
主机发现
跳过Ping扫描阶段
通常在Nmap进行其他扫描前,先对目标主机进行Ping扫描,若该扫描无反应,则结束整个扫描过程。然而有时目标主机其实在线,但采用某种手段屏蔽了Ping扫描,因此也会躲过其他扫描操作。所以我么可以指定无论目标是否响应Ping,都要完成整个扫描过程,该参数为-PN,例如
nmap -PN 192.168.169.131
使用ARP协议进行主机发现
当目标主机与我们处于同一网段时,使用ARP协议扫描是最佳选择,不仅速度最快,而且扫描结果也是最精准的,因为没有任何安全措施会阻止正常的ARP请求。参数-PR,例如
nmap -PR 192.168.169.131
仅使用Ping协议进行主机发现
有时我们要对大量主机进行扫描,若采用所有方式进行扫描的话就会花费大量的时间,这时我们可以只对目标主机进行Ping扫描,参数为-sP,例如
nmap -sP 192.168.169.131
使用TCP协议进行主机发现
TCP协议主要由三次握手构成,其中最后一步意义不大,所以扫描的时候也可以不完成最后一步。若完成最后一步,则称为全开(Connect)扫描,参数为-sT,否则称为半开(SYN)扫描,参数为-sS,例如
nmap -sS 192.168.169.131
nmap -sT 192.168.169.131
使用UDP协议进行主机发现
UDP协议比TCP协议简单,但在扫描时所花时间却比TCP长,因此这种扫描方式并不常用。参数-sU,例如
nmap -sU 192.168.164.131
端口发现
端口状态
Nmap对目标端口进行扫描时,对端口的状态判断有5种:
- open,应用程序在该端口接收TCP连接或者UDP报文
- closed,关闭的端口对于nmap也是可访问的,它接收nmap探测报文并作出响应,但没有应用程序在其上监听。
- filtered,由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则或者主机上的软件防火墙。
- unfiltered,未被过滤状态意味着端口可访问,但nmap无法确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这个类别。
- open|filtered,无法确定端口是开放还是被过滤,开放的端口不响应就是一个例子。
扫描全部端口
每个网络设备有65536个端口,如果对这些端口全部进行扫描,那么就会花费很长的时间,所以Nmap默认扫描的端口只有最常用的1000个。
若要对所有的65536个端口进行扫描,可使用参数-p "*",例如
nmap -p "*" 192.168.164.131
扫描前n个端口
如果只想扫描使用频率最高的n个端口,可以使用参数--top-ports n,例如
nmap --top-ports 10 192.168.164.131
扫描指定端口
如果只对指定端口进行测试的话,可以使用参数-p 端口号,例如
nmap -p 80 192.168.164.131
扫描目标操作系统
如果我们知道目标所使用的操作系统,之后就可以大大减少工作量。但没有一种工具可以提供绝对准确的信息,所有的工具都是使用“猜”的方法:通过向目标发送探针,不同系统对这些探针会做出不同的响应,Nmap将这些响应特征提取出来并记录在一个数据库中,然后根据目标的回应来猜测系统。探针和响应特征的对应关系存放在安装目录的Nmap-os-db文件中。
Nmap会尝试验证如下参数:
- 操作系统供应商的名字,如微软或sun
- 操作系统的名字,如windows、Mac OS X、Linux
- 操作系统的版本,如XP、2000、2003、2008
- 当前设备的类型,比如通用计算机、打印服务器、媒体播放器、路由器、WAP或者电力装置
除此之外,操作系统检测还提供关于系统运行时间和TCP序列可预测性信息的分类。
对系统的扫描使用参数-O,例如
nmap -O 192.168.164.131
扫描目标服务
对操作系统而言,那些安装在操作系统之上的软件更是网络安全的重灾区,因此在进行渗透时,要尽量的检测出目标系统运行的各种软件。
有时我们并没有使用Nmap进行服务识别操作,也得到了服务类型的信息。其实Nmap并没有进行服务的识别,只是将端口号在自己的端口服务表数据(nmap-services)中进行查找,然后返回。即这种返回的服务只是数据库中的,并非事实中端口所运行的服务。
Nmap提供了更精准的服务及版本检测选项,参数为-sV,例如
nmap -sV 192.168.164.131
扫描结果保存
Nmap支持多种保存格式,若保存为XML格式,可使用参数-oX 文件名,例如
nmap -oX Report.xml 192.168.164.131
主动扫描之Nmap的更多相关文章
- 网络安全-主动信息收集篇第二章-二层网络扫描之nmap
nmap是网络层.传输层最重要的扫描工具之一,可以结合脚本对应用层的扫描和对网络弱点发现. 网络层发现nmap使用: Usage: nmap [Scan Type(s)] [Options] {tar ...
- Nikto主动扫描神器!!!
Perl语言开发的开源web安全扫描器 Nikto只支持主动扫描:可扫描web服务器类型是不是最新版本(分析先版本与新版相比有哪些漏洞) 针对:1.软件版本.2.搜索存在安全隐患的文件.3.服务器配置 ...
- 端口扫描工具nmap
nmap 使用介绍 nmap是目前为止最广为使用的国外端口扫描工具之一.我们可以从[url]http://www.insecure.org/[/url]进行下载,可以很容易的安装到Windows和un ...
- kali 系列学习03 - 主动扫描
主动扫描首先考虑使用代理IP保护自己,其次掌握 Nmap 工具使用 第一部分 扫描对方时,最好隐藏一下自己root@kali:/etc# service tor statusUnit tor.serv ...
- 扫描工具nmap介绍
NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包. 简介 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推 ...
- wifi的主动扫描和被动扫描
要实现wifi上的探针模块,简单了了解了802.11中的各种帧,对一些帧的发送频率和方式也有简单了解.不过了解的都不够细致.只是简单知道手机打开wifi后回不停的向外发送probe request这个 ...
- 网络扫描工具nmap
nmap一般就用来扫描主机是否在线(特别是扫描局域网内存活的机器).开放了哪些端口.其他的功能用的比较少,做渗透的人可能要了解的多些. 1.1 选项说明 nmap需要自行安装. shell> y ...
- 扫描工具——Nmap用法详解
Nmap使用 Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp. Nmap可以完成以下任务: 主机探测 端口扫描 版本检测 系统检测 支持探测脚本的编写 Nmap在实际中应 ...
- Android Wifi 主动扫描 被动扫描
介绍主动扫描,被动扫描以及连接的wifi的扫描过程 参考文档 <802.11无线网络权威指南> <80_Y0513_1_QCA_WCN36X0_SOFTWARE_ARCHITECTU ...
随机推荐
- 北鲲云超算如何让仿真技术、HPC和人工智能之间的深度融合?
在CAE领域,随着仿真技术在多个行业的深度应用,也带来了仿真模型日益复杂.仿真过程数据倍增.仿真计算费用昂贵等问题,降阶模型.人工智能.云计算等多种技术和仿真技术的深度融合,成为了仿真技术的重要发展趋 ...
- java设计模式_工厂模式
关于设计模式 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结,是一种设计思维,使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证 ...
- Python中pymongo find 遍历数据导致timeout
背景 在读取大约200W左右的数据的时候采用游标形式进行数据遍历时,超过10分钟就报错 timeout 原因 pymongo游标会在10分钟之后被关闭 解决方案 db.find({}, no_curs ...
- Bootstrap移动端导航(简易)
效果 在线查看 代码少,都在HTML里 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- 【UE4 C++ 基础知识】<10>资源的引用
2种引用方式 硬引用(Hard Reference) 即对象 A 引用对象 B,并导致对象 B 在对象 A 加载时加载 硬引用过多会导致运行时很多暂时用不到的资源也被加载到内存中 大量资源会导致进程阻 ...
- [火星补锅] 水题大战Vol.2 T2 && luogu P3623 [APIO2008]免费道路 题解
前言: 如果我自己写的话,或许能想出来正解,但是多半会因为整不出正确性而弃掉. 解析: 这题算是对Kruskal的熟练运用吧. 要求一颗生成树.也就是说,最后的边数是确定的. 首先我们容易想到一个策略 ...
- BOOST内存管理-intrusive_ptr
参考链接https://blog.csdn.net/harbinzju/article/details/6754646 intrusive_ptr 是shared_ptr的插入式版本.与shared_ ...
- 一文读懂Android进程及TCP动态心跳保活
一直以来,APP进程保活都是 各软件提供商 和 个人开发者 头疼的问题.毕竟一切的商业模式都建立在用户对APP的使用上,因此保证APP进程的唤醒,提升用户的使用时间,便是软件提供商和个人开发者的永恒追 ...
- IPv6(诞生原因、数据报格式、与IPv4的不同、地址表现形式、基本地址类型、IPv6与IPv4的过渡策略)
文章转自:https://blog.csdn.net/weixin_43914604/article/details/105297642 学习课程:<2019王道考研计算机网络> 学习目的 ...
- 运用Tomcat创建第一个web项目
一.了解Web服务器软件 在部署tomcat前,先说一说web服务器软件是用来干什么的?简单来说,就是web容器,可以部署web项目,让用户通过浏览器来访问这些项目. 1.常见的javaweb服务器软 ...