Nmap 扫描原理及使用 ***
Nmap 扫描原理及使用 ***
Namp包含四项基本功能
Nmap基本扫描 ***
2.1 用法引入
2.1.1确定端口状况
确定目标主机在线情况及端口基本状况。
命令形式:
namp targethost
2.1.2 完整全面的扫描
对主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用该选项,nmap 对主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。
1)命令形式:
nmap -T4 -A -v targethost
2)参数详解:
2.2 主机发现
2.2.1 主机发现原理
主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,说明目标主机是开启的。
1)常见主机探测方式:
2)案例:
Nmap的用户位于源端,IP地址192.168.0.5,向目标主机192.168.0.3发送ICMP Echo Request。如果该请求报文没有被防火墙拦截掉,那么目标机会回复ICMP Echo Reply包回来。以此来确定目标主机是否在线。
3)默认情况下:Nmap会发送四种不同类型的数据包来探测目标主机是否在线。
依次发送四个报文探测目标机是否开启。只要收到其中一个包的回复,那就证明目标机开启。使用四种不同类型的数据包可以避免因防火墙或丢包造成的判断错误。
2.2.2 主机发现的用法
2.3 端口扫描
Namp通过探测将端口划分为6个状态:
2.3.1 端口扫描原理
2.3.1.1 TCP SYN scanning
TCP SYN scanning 是Nmap默认的扫描方式,称作半开放扫描。
原理:该方式发送SYN到目标端口。
2.3.1.2 TCP connect scanning
原理:TCP connect 方式使用系统 *** API connect 向目标主机的端口发起连接。
优缺点:该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑选择的方式。
2.3.1.3 TCP ACK scanning
原理:向目标主机的端口发送ACK包。
优缺点:该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。
2.3.1.4 TCP FIN/Xmas/NULL scanning
这三种扫描方式被称为秘密扫描(Stealthy Scan)
原理:FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包
其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP包。
2.3.1.5 UDP scanning
UDP扫描方式用于判断UDP端口的情况。
原理:向目标主机的UDP端口发送探测包。
2.3.2 端口扫描用法
2.3.2.1 扫描方式选项
2.3.2.2 端口参数与扫描顺序
2.4 版本侦测
2.4.1 优缺点
2.4.2 版本侦测原理
2.4.3 版本侦测用法
2.5 OS侦测
2.5.1 OS侦测原理
2.5.2 OS侦测用法
参考:
nmap扫描工具的使用二 *** 探测
Nmap的6种端口状态:
Open:开放状态
Closed:关闭状态
Filtered: 过滤状态(可能被过滤,可能 *** 阻塞)
Unfiltered:未被过滤状态(可以访问,但未知端口处于开放还是关闭状态)
Open|Filtered:开放还是过滤的
Closed|Filtered:不能确定端口事关闭还是被过滤的
-T 时序选项
-p|-F|-r 常用扫描方式
-sS TCP SYN扫描:(需要root权限)
-sT TCP连接扫描:完整三次握手,最基础最稳定的扫描方式
-sU UDP扫描(速度非常慢,一般用-p指定端口范围以节约时间)
-sN/sF/sX 隐蔽扫描
-sA TCP ACK扫描
-sW TCP窗口扫描
-sM TCP Maimon扫描
–scanflags 自定义TCP扫描
-sI 空闲扫描
-sO IP协议扫描
-b * FTP Bounce扫描
时序选项:
-T0(偏执的):非常慢的扫描,用于IDS逃避
-T1(鬼祟的):缓慢的扫描,用于IDS逃避
-T2(文雅的):降低速度以降低对带宽的消耗,一般不同
-T3(普通的):默认,根据目标的反应自动调整时间
-T4(野蛮的):快速扫描,常用,需要在很好的 *** 环境下进行扫描,请求可能会淹没目标
-T5(疯狂的):极速扫描,以牺牲准确度来提升扫描速度
例子:
(1)指定端口扫描:
nmap -p 80 192.168.20.16
如图,直接输入nmap -p 80 192.168.20.16的时候提示Host seems down。我们可以通过ping命令来确定 *** 的连通性,此处使用的命令是ping 192.168.20.16,发现可以ping通,即 *** 是通的, 使用Ctrl+z停止执行ping命令。 再使用nmap -p 80 192.168.20.16命令的时候就可以出现正确的结果了。
ping 192.168.20.16(使用Ctrl+z停止执行ping命令)
nmap -p 80-1000 192.168.20.16
(2)TCP SYN扫描:
ping 192.168.20.16(使用Ctrl+z停止执行ping命令)
nmap -sS 192.168.20.16
又称为半开放(需要root权限),常见扫描方式,扫描速度较快,由于未进行TCP连接,比较隐蔽,很难背防火墙或管理员发现
(3)隐蔽扫描
ping 192.168.20.16(使用Ctrl+z停止执行ping命令)
nmap -sN 192.168.20.16
-sN是Null扫描
ping 192.168.20.16(使用Ctrl+z停止执行ping命令)
nmap -sF 192.168.20.16
-sF是Fin扫描(发送FIN包)
ping 192.168.20.16(使用Ctrl+z停止执行ping命令)
nmap -sX 192.168.20.16
-sX是Xmas扫描(将数据包的FIN/PSH/URG都标记为1)
(4)TCP ACK扫描
ping 192.168.20.16(使用Ctrl+z停止执行ping命令)
nmap -sA 192.168.20.16
致命缺点:无法确定端口是否开放还是被过滤
nmap和masscan 在半开放模式下扫描速度的对比分析
一、扫描命令和参数:
1、nmap x.x.x.x -sS -sU -Pn -p T:80, --source-port 58914 --min-rate 100 --max-rate 100 -n -v -T3 --open --stats-every 5s --min-hostgroup 100 --max-hostgroup 100
2、masscan x.x.x.x --ports T:80, --source-port 58914 --rate 100 --wait 1
带宽都是100,端口都是T:80。都为半开放扫描(其中masscan默认半开放扫描,nmap -sS 指定为半开放扫描)。
二、扫描结果:
1、masscan扫描时会回RST包,有时会回两次RST。
masscan扫描80端口
多回了一个RST包。
masscan扫描C段的80、443端口
用时:
masscan扫描C段的全部常用端口
用时
2、nmap半开放扫描时不回RST包,等待服务器自己关闭。
nmap扫描一个ip的80端口
nmap扫描C段的80、443端口
目标地址会重试连接并返回RST包。
用时:
nmap扫描C段的全部常用端口
三、对比:
经过对比发现,masscan有时会多回一个RST包,而nmap根本不回RST包让目标服务器自己关闭。
由此可以看出,nmap对每个目标会少发一到两个RST包,用时会更少,nmap扫描较快。
四、外网对比:
masscan默认不开启重试。nmap在 *** 性能差的情况下会触发重试机制,可以设置--max-retries=0关闭重试
1、masscan扫描C段全部常用端口,用时
2、nmap扫描C段全部常用端口,用时
扫描C段全部常用端口,用时
nmap扫描C段全部常用端口,关闭重试,用时
外网扫描速度比较:nmap关闭重试扫描 masscan默认扫描 nmap默认扫描
外网扫描端口存活数据比较:nmap默认扫描存活数 masscan默认扫描存活数 nmap关闭重试扫描存活数
有
如何提高 nmap端口扫描速度
Zenmap安装完毕后,你随时可以对自己的 *** 运行全面的端口扫描。 *** 规模将决定运行扫描所花的时间。如果使用Zenmap,你可以运行非常笼统的扫描和非常具体的扫描。不妨先运行非常笼统的扫描,大致了解我们所处理的对象。我们将在整个192.168.1.x *** 上运行扫描。1. 打开Zenmap。2. 在Target(目标)部分,输入192.168.1.1/24(或者你想要扩展的任何庞大的目标)。3. 从Profile(配置文件)中选择Intense Scan(精细扫描)。4. 点击Scan(扫描)按钮。你应该会立马看到结果批量装入到Nmap Output(输出)选项卡;结果显示 *** 中机器上的开放端口(图A)。精细扫描要花很长时间,但是如果你想要获得 *** 方面的最详细信息,就应该进行精细扫描。想知道更多具体 *** ,可以百度这文:如何通过扫描工具Nmap列出开放端口和监听服务
Linux 系统扫描nmap与tcpdump抓包
NMAP扫描
一款强大的 *** 探测利器工具
支持多种探测技术
--ping扫描
--多端口扫描
-- TCP/IP指纹校验
为什么需要扫描?
以获取一些公开/非 *** 息为目的
--检测潜在风险
--查找可攻击目标
--收集设备/主机/系统/软件信息
--发现可利用的安全漏洞
基本用法
nmap [扫描类型] [选项] 扫描目标...
常用的扫描类型
常用选项
-sS TCP SYN扫描(半开) 该方式发送SYN到目标端口,如果收到SYN/ACK回复,那么判断端口是开放的;如果收到RST包,说明该端口是关闭的。简单理解就是3次握手只完成一半就可以判断端口是否打开,提高扫描速度
-sT TCP 连接扫描(全开)
-sU UDP扫描
-sP ICMP扫描
-sV 探测打开的端口对应的服务版本信息
-A 目标系统全面分析 (可能会比较慢)
-p 扫描指定端口
1 ) 检查目标主机是否能ping通
2)检查目标主机所开启的TCP服务
3 ) 检查192.168.4.0/24网段内哪些主机开启了FTP、SSH服务
4)检查目标主机所开启的UDP服务
5 ) 探测打开的端口对应的服务版本信息
6)全面分析目标主机192.168.4.100的操作系统信息
tcpdump
命令行抓取数据包工具
基本用法
tcpdump [选项] [过滤条件]
常见监控选项
-i,指定监控的 *** 接口(默认监听之一个网卡)
-A,转换为 ACSII 码,以方便阅读
-w,将数据包信息保存到指定文件
-r,从指定文件读取数据包信息
常用的过滤条件:
类型:host、net、port、portrange
方向:src、dst
协议:tcp、udp、ip、wlan、arp、……
多个条件组合:and、or、not
案例1
案例2:使用tcpdump分析FTP访问中的明文交换信息
1 ) 安装部署vsftpd服务
2 ) 并启动tcpdump等待抓包
执行tcpdump命令行,添加适当的过滤条件,只抓取访问主机192.168.4.100的21端口的数据通信 ,并转换为ASCII码格式的易读文本。
3 ) case100作为客户端访问case254服务端
4 ) 查看tcpdump抓包
5 ) 再次使用tcpdump抓包,使用-w选项可以将抓取的数据包另存为文件,方便后期慢慢分析。
6 ) tcpdump命令的-r选项,可以去读之前抓取的历史数据文件
0条大神的评论