Nmap 常用命令及抓包分析
1.主机发现:主机发现也称为ping扫描,但是Nmap中主机发现的技术已经不是简单的采用ping工具发送简单的ICMP回声请求报文。用户完全可以通过使用列表扫描(-sL)或者通过关闭ping(-P0)跳过ping的步骤,也可以使用多个端口把TPC SYN/ACK,UDP和ICMP任意组合使用。通过获得的响应以推测某个IP地址是否是活动的。
-sL:列表扫描
-sn: Ping扫描 – 禁用端口扫描
-Pn: 检测所有在线主机 — 跳过主机发现
-PR:利用ARP协议扫描局域网
-n/-R: 从不DNS解析/始终解析 [默认: 有时]
–dns-servers < 服务器1[,服务器2],…>:指定自定义DNS服务器
–system-dns: 使用系统自带的DNS解析器
–traceroute: 每个主机跟踪一跳路径
准备两台虚拟机 :
我用的是hbza和kali,都设置桥接,然后给kali设置eth0网卡(vim /etc/network/interfaces)设置一个静态ip如下图,设置完成后 systemctl restart networking.service 重启网络服务即可ping通
01:扫描33.1这台机器的所有端口, -p1-65536 = -p-
0端口是默认保留端口,如果不指定端口nmap默认扫描1-1024端口再加上nmap-services列出的端口号(当然格式也要和下面命令中指定的一样)nmap-services是一个包含大约2200个著名的服务的数据库,Nmap通过查询该数据库可以报告那些端口可能对应于什么服务器,但不一定正确。
root@zhaizewen:~# nmap 192.168.2.100 -p-
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 10:53 CST
Nmap scan report for 192.168.2.100
Host is up (0.0028s latency).
Not shown: 65531 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
5901/tcp open vnc-1
6001/tcp open X11:1
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap done: 1 IP address (1 host up) scanned in 44.67 seconds
看抓包文件可以看到,比如80端口没有开放,那么只有一个SYN的请求报文和一个RST的返回报文,其中RST的返回报文中的RST值为1 也就是说 连接不能建立,就代表了这个端口没有开启监听
而已经打开的22端口 也就是ssh端口 ,可以观察一下 ,给我们返回的报文中RST值是0而SYN值是1,所以这个端口开启监听了,并且一共进行了3次报文交互,只不过最后一次是nmap发的RST请求,算是半连接
TCP端口扫描是通过SYN数据包进行的,用于扫描目标机器的端口上是否存在程序监听,通常意义上,普通个人机器上的某个端口如果有程序监听的话,那么它一般是系统漏洞。由于TCP是一个有连接的可靠协议,所以要使用三次握手来建立连接,三次握手的报文分别是(SYN)、(ACK SYN)和(ACK)。进行端口扫描时,首先向对方主机的某一端口发送(SYN)报文,如果对方这一端口上有程序在监听(或者说存在漏洞),则回复(SYN ACK)报文,否则回复(RST)报文。据此就可以判断对方端口上是否有程序在监听了,或者是否存在漏洞了。
比如TCP扫描时处于open状态的端口抓包:
没打开的80端口 就是直接 RST ACK了 而不是SYN ACK
02:扫描一个IP的多个端口
连续的端口可以用横线连起来,端口之间可用逗号隔开,在hbza上再启动两个tcp的监听,分别占用6666和7777端口用于测试,加上&符号可以放入后台。
[root@zh1z3ven ~]# nc -l 6666&
[1] 54408
[root@zh1z3ven ~]# nc -l 7777&
[2] 54415
[root@zh1z3ven ~]#
root@zhaizewen:~# nmap 192.168.2.100 -p1-1000,6666,7777
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 11:29 CST
Nmap scan report for 192.168.2.100
Host is up (0.00057s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
6666/tcp open irc
7777/tcp open cbt
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap done: 1 IP address (1 host up) scanned in 13.67 seconds
root@zhaizewen:~#
03:-sU 扫描UDP端口
UDP扫描发送空的(没有数据)UDP报头到每个目标端口。 如果返回ICMP端口不可到达错误(类型3,代码3), 该端口是closed(关闭的)。 其它ICMP不可到达错误(类型3, 代码1,2,9,10,或者13)表明该端口是filtered(被过滤的)。 偶尔地,某服务会响应一个UDP报文,证明该端口是open(开放的)。 如果几次重试后还没有响应,该端口就被认为是open|filtered(开放|被过滤的)。 先查看哪些ipv4的监听,使用grep -v 排除回环接口上的监听
[root@zh1z3ven ~]# netstat -lnup --inet |grep -v 127.0.0.1
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:5353 0.0.0.0:* 696/avahi-daemon: r
udp 0 0 0.0.0.0:833 0.0.0.0:* 669/rpcbind
udp 0 0 192.168.122.1:53 0.0.0.0:* 1469/dnsmasq
udp 0 0 0.0.0.0:47169 0.0.0.0:* 696/avahi-daemon: r
udp 0 0 0.0.0.0:67 0.0.0.0:* 1469/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 669/rpcbind
[root@zh1z3ven ~]#
这里我只选择了1-1024的端口 如果要全扫描的话需要20多分钟
抓包分析:
可以看到udp这里是有个portmap协议的响应包的,portmap进程的主要功能是把RPC程序号转化为Internet的端口号。portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。
UDP端口扫描是通过普通数据包进行的,也是用于扫描对方端口上是否有程序在运行,就像上面所说的,如果普通个人机器上存在这样的端口,那一般也是系统漏洞。但对于UDP来说,不存在监听这个概念,因为它是无连接不可靠的协议,发送数据包过去以后,通常也不会有任何的对等回应。因此,UDP端口扫描主要是检测是否存在ICMP端口不可达数据包。若该数据包出现,则说明对方这一端口上没有程序在监听,或者说该端口不存在漏洞,否则就说明该端口上有程序在监听,或者说存在漏洞。
以上
UDP和TCP扫描时的区别:
1. TCP是有连接的协议,而UDP是无连接的;
2. TCP扫描检测(ACK SYN)或者是(RST)报文,而UDP检测ICMP端口不可达报文;
3. TCP协议是可靠但低效的,可以有效进行端口扫描,范围广,效率低,可以应用于任何网络中;UDP协议时不可靠但高效的,范围小,效率高,一般应用于局域网内部,随着网络规模的增大,UDP端口扫描的结果准确度会越来越差,极端情况是,如果对Internet使用UDP端口扫描,所得到的结果一定不准确。
那可以看到上图,UDP扫描一般没有程序在其上运行的端口就会返回一个ICMP的无法到达目的主机的包,这也就证明了端口没被监听(close,没有程序在其上运行)而883和111就不一样了,111端口收到了portmap的replay包 所以表示它open (监听,或者有程序在其上运行)而883没有回应也没有目标不可达就代表open|filtered
参考文章
04:扫描多个IP的用法
ip中间可用逗号或者空格连接
连续的ip之间可用- 例如 192.168.2.100-101
root@zhaizewen:~# nmap 192.168.2.100 192.168.2.150
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 12:48 CST
Nmap scan report for 192.168.2.100
Host is up (0.00066s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
5901/tcp open vnc-1
6001/tcp open X11:1
6666/tcp open irc
7777/tcp open cbt
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap scan report for 192.168.2.150
Host is up (0.0000070s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
111/tcp open rpcbind Nmap done: 2 IP addresses (2 hosts up) scanned in 26.62 seconds
root@zhaizewen:~#
用逗号隔开:
root@zhaizewen:~# nmap 192.168.2.100,150
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 12:50 CST
Nmap scan report for 192.168.2.100
Host is up (0.0020s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
5901/tcp open vnc-1
6001/tcp open X11:1
6666/tcp open irc
7777/tcp open cbt
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap scan report for 192.168.2.150
Host is up (0.0000060s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
111/tcp open rpcbind Nmap done: 2 IP addresses (2 hosts up) scanned in 26.39 seconds
root@zhaizewen:~#
0x05:-sP :进行ping扫描
打印出对ping扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
下面去扫描192.168.2.0/24这个网段的的主机
root@zhaizewen:~# nmap -sP 192.168.2.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 14:09 CST
Nmap scan report for 192.168.2.100
Host is up (0.045s latency).
MAC Address: 00:50:56:2D:67:A3 (VMware)
Nmap scan report for 192.168.2.150
Host is up.
Nmap done: 256 IP addresses (2 hosts up) scanned in 29.89 seconds
root@zhaizewen:~#
抓包分析:用ARP协议,直接广播,有响应的主机即为 host is up
06:-sn: Ping Scan - disable port scan ping探测扫描主机, 不进行端口扫描
(测试过对方主机把icmp包都丢弃掉,依然能检测到对方开机状态)
root@zhaizewen:~# nmap -sP 192.168.2.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 14:09 CST
Nmap scan report for 192.168.2.100
Host is up (0.045s latency).
MAC Address: 00:50:56:2D:67:A3 (VMware)
Nmap scan report for 192.168.2.150
Host is up.
Nmap done: 256 IP addresses (2 hosts up) scanned in 29.89 seconds
root@zhaizewen:~#
07:-sA (发送tcp的ack包进行探测,可以探测主机是否存活)
ACK扫描探测报文一般只设置ACK标志位。当扫描未被过滤的系统时, open(开放的)和closed(关闭的) 端口 都会返回RST报文。Nmap把它们标记为 unfiltered(未被过滤的),意思是 ACK报文不能到达,但至于它们是open(开放的)或者 closed(关闭的) 无法确定。不响应的端口 或者发送特定的ICMP错误消息(类型3,代号1,2,3,9,10, 或者13)的端口,标记为 filtered(被过滤的)。
root@zhaizewen:~# nmap 192.168.2.100 -sA
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 14:19 CST
Nmap scan report for 192.168.2.100
Host is up (0.00091s latency).
All 1000 scanned ports on 192.168.2.100 are unfiltered
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap done: 1 IP address (1 host up) scanned in 13.41 seconds
root@zhaizewen:~#
08:-sS 半开放扫描 Tcp SYN Scan
半开放扫描,它只发送一个SYN报文然后等待回应,若SYN/ACK表示端口在监听 (开放),而 RST (复位)表示没有监听者。如果数次重发后仍没响应, 该端口就被标记为被过滤。如果收到ICMP不可到达错误 (类型3,代码1,2,3,9,10,或者13),该端口也被标记为被过滤。
root@zhaizewen:~# nmap -sS 192.168.2.100
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 14:25 CST
Nmap scan report for 192.168.2.100
Host is up (0.0011s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
5901/tcp open vnc-1
6001/tcp open X11:1
6666/tcp open irc
7777/tcp open cbt
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap done: 1 IP address (1 host up) scanned in 13.41 seconds
root@zhaizewen:~#
0x09:-sT 3次握手方式tcp的扫描
正儿八经的三次握手 最后RST掉连接
Tcp connect() scan (sT)和上面的Tcp SYN 对应,TCP connect()扫描就是默认的扫描模式.
不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().
优点:你勿需root权限。普通用户也可以使用。
缺点:这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息,由于它要完成3次握手,效率低,速度慢,建议使用-sS
CPConnect()扫描是默认的TCP扫描,Nmap通过创建connect() 系统调用要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。
root@zhaizewen:~# nmap -sT 192.168.2.100
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 14:31 CST
Nmap scan report for 192.168.2.100
Host is up (0.055s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
5901/tcp open vnc-1
6001/tcp open X11:1
6666/tcp open irc
7777/tcp open cbt
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap done: 1 IP address (1 host up) scanned in 16.36 seconds
root@zhaizewen:~#
10:-sF:FIN scan(sF) 也是tcp的扫描一种,发送一个FIN标志的数据包
有时候TcpSYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手.
和sS扫描效果差不多,比sT速度快
root@zhaizewen:~# nmap -sF 192.168.2.100
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 14:41 CST
Nmap scan report for 192.168.2.100
Host is up (0.00018s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open|filtered ssh
111/tcp open|filtered rpcbind
5901/tcp open|filtered vnc-1
6001/tcp open|filtered X11:1
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap done: 1 IP address (1 host up) scanned in 14.36 seconds
root@zhaizewen:~#
处于open|filtered状态的端口 没有返回RST,ACK包也没有做出响应 而close的端口是会返回RST,ACK的包的
11:-sV:版本检测(sV) 常用
版本检测是用来扫描目标主机和端口上运行的软件的版本,如下扫描,多出了ssh的版本信息
root@zhaizewen:~# nmap -sV 192.168.2.100
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 15:02 CST
Nmap scan report for 192.168.2.100
Host is up (0.00050s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
111/tcp open rpcbind 2-4 (RPC #100000)
5901/tcp open vnc VNC (protocol 3.8)
6001/tcp open X11 (access denied)
MAC Address: 00:50:56:2D:67:A3 (VMware)
Service Info: OS: Unix Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 28.41 seconds
root@zhaizewen:~#
12:--top-ports <number>: Scan <number> most common ports
扫描常用的端口,number如果写成10,那就是扫描最常用的10个端口。比如,ssh,http,ftp等热门端口
也是基于TCP的扫描
root@zhaizewen:~# nmap --top-ports 10 192.168.2.100
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-06 15:04 CST
Nmap scan report for 192.168.2.100
Host is up (0.00028s latency). PORT STATE SERVICE
21/tcp closed ftp
22/tcp open ssh
23/tcp closed telnet
25/tcp closed smtp
80/tcp closed http
110/tcp closed pop3
139/tcp closed netbios-ssn
443/tcp closed https
445/tcp closed microsoft-ds
3389/tcp closed ms-wbt-server
MAC Address: 00:50:56:2D:67:A3 (VMware) Nmap done: 1 IP address (1 host up) scanned in 13.30 seconds
root@zhaizewen:~#
Nmap 常用命令及抓包分析的更多相关文章
- Nmap扫描与Tcpdump抓包分析
扫描与抓包分析 3.1 问题 本案例要求熟悉Linux主机环境下的常用安全工具,完成以下任务操作: 使用NMAP扫描来获取指定主机/网段的相关信息 使用EtterCAP截获明文通信的密码.检测非加密通 ...
- FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接
一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户 ...
- nmap参数原理抓包分析
nmap参数原理抓包分析 实验环境: Nmap7.70 实验步骤: 1.主机发现 2.端口扫描 3.服务版本探测 一.主机发现 主机发现,如果主机活跃,扫描1000个常用的tcp端口 1.Nmap i ...
- Security基础(二):SELinux安全防护、加密与解密应用、扫描与抓包分析
一.SELinux安全防护 目标: 本案例要求熟悉SELinux防护机制的开关及策略配置,完成以下任务: 将Linux服务器的SELinux设为enforcing强制模式 在SELinux启用状态下, ...
- Wireshark抓包分析/TCP/Http/Https及代理IP的识别
前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ...
- 实战录 | 基于openflow协议的抓包分析
<实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...
- Wireshark和TcpDump抓包分析心得
Wireshark和 TcpDump抓包分析心得 1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Window ...
- 转:tcpdump抓包分析(强烈推荐)
转自:https://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666539134&idx=1&sn=5166f0aac71 ...
- 转 Wireshark和TcpDump抓包分析心得
1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话 ...
随机推荐
- docker搭建数据库高可用方案PXC
前言 本方案主要目的是学习, 该方案不太合适于企业项目 是什么? 白话点, 是个提供了必要环境的虚拟机(类似于java的导入部分包一样和c++的头文件差不多), 所以它比普通的VMWare或者Virt ...
- Https:Java代码设置使用证书访问Https
设置证书进行访问或被访问操作 String keyStore = "keyStore的文件路径": String KEY_STORE_PWD = "1234"; ...
- CG-CTF WxyVM2
一.原本以为要动调,因为出现了这个,函数太长,无法反编译 后面才知道这玩意可以在ida的配置文件里面去改,直接改成1024. 里面的MAXFUNSIZE改成1024,就可以反编译了,这个长度是超过这个 ...
- Python小白的数学建模课-B6. 新冠疫情 SEIR 改进模型
传染病的数学模型是数学建模中的典型问题,常见的传染病模型有 SI.SIR.SIRS.SEIR 模型. SEIR 模型考虑存在易感者.暴露者.患病者和康复者四类人群,适用于具有潜伏期.治愈后获得终身免疫 ...
- qtscrcpy使用
点击"USB线"一栏中的"刷新设备列表"按钮,随后设备序列号会显示出来: ·点击"获取设备IP",随后在"无线"一栏中会 ...
- 大疆M3508、M2006必备CAN总线知识与配置方法
使用大疆M3508.M2006的CAN总线知识与配置方法 目录 使用大疆M3508.M2006的CAN总线知识与配置方法 前言: 0x00 需要额外的CAN收发器!!! 0x01 硬件层面分析 为什么 ...
- 【剑指offer】77.调整数组顺序使奇数位于偶数前面
77.调整数组顺序使奇数位于偶数前面 知识点:数组:快速排序:冒泡排序: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部 ...
- java并发编程基础——线程相关的类
线程相关类 java还为线程安全提供了一些工具类. 一.ThreadLocal类(Thread Local Variable) ThreadLocal类,是线程局部变量的意思.功用非常简单,就是为每一 ...
- Requests方法 -- session方法
import requests#禁用安全请求警告from requests.packages.urllib3.exceptions import InsecureRequestWarningreque ...
- 架构之:REST和HATEOAS
目录 简介 HATEOAS简介 HATEOAS的格式 HATEOAS的Spring支持 总结 简介 我们知道REST是一种架构方式,它只是指定了六种需要遵循的基本原则,但是它指定的原则都比较宽泛,我们 ...