Nmap 简单功能介绍/TCP Header/常见端口

Nmap:Network Mapper,网络扫描和嗅探的工具包

基本功能有3个:

1.扫描主机端口,嗅探所提供的网络服务

2.探测一组主机是否在线

3.推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本

Nmap 简单功能介绍/TCP Header/常见端口

首先需要温习一下tcp包头的相关基础知识

TCP Header:

Nmap 简单功能介绍/TCP Header/常见端口

Source port:源端口 占16位 2个字节,计算机一共65536个端口。0端口保留1-1024为系统服务端口,如果扫描时不指定端口范围,nmap默认扫描1-1024端口。

Destination port :目的端口 16位 2个字节

Sequence number:序列号 4个字节,用来标识从TCP源端向TCP目的端

Acknowledgment number:确认号

Data offset:数据偏移 

Reserved:保留位

TCP标志位:

1.ACK  Acknowledgment    确认标志

2.RST   Reset         复位标志

3.URG  Urgent          紧急标志

4.SYN   Synchronize   建立连接标志

5.PSH   Push       推标志

6.FIN     Finish        结束标志 

Window Size:TCP窗口,用于流量控制,滑动窗口控制机制。每次只能接受一定量的数据

Checksum:校验和

三次握手,一般先发送SYN请求,再发RST重设就断开

Nmap 简单功能介绍/TCP Header/常见端口

ICMP协议属于IP协议的一部分,主要诊断网络的问题

ping 用的是 -0类型 Echo Reply

-3 目标不可达,或者到了那回不来,路由过不去

Nmap 简单功能介绍/TCP Header/常见端口

下面是一个ping的包,可以看到code参数Echo replay

Nmap 简单功能介绍/TCP Header/常见端口

下面是常见端口对应的服务,Telnet主要用于路由器交换机远程调试,在设备上开启Telnet服务,可以远程登录进行调试。Telnet是明文协议,可以用抓包抓到密码,很多现在用ssh,可以用xshell登录。但是Telnet登录需要有这个命令,现在win10基本没有了telnet命令。如果想在win10使用telnet需要自己设置。

Nmap 简单功能介绍/TCP Header/常见端口

SMTP邮件服务器。

DNS发送请求的时候用udp协议

SNMP:网络管理协议

HTTPS:会在链路中对数据加密 443或者8433

RDP:远程桌面协议

1.如果用wireshark抓包分析,会发现几乎所有的情况都是在使用UDP,使用TCP的情况非常罕见,神秘兮兮。其实当解析器发出一个request后,返回的response中的tcp删节标志比特位被置1时,说明反馈报文因为超长而有删节。这是因为UDP的报文最大长度为512字节。解析器发现后,将使用TCP重发request,TCP允许报文长度超过512字节。既然TCP能将data stream分成多个segment,它就能用更多的segment来传送任意长度的数据。

2. 另外一种情况是,当一个域的辅助域名服务器启动时,将从该域的主域名服务器primary DNS server执行区域传送。除此之外,辅域名服务器也会定时(一般时3小时)向PDS进行查询以便了解SOA的数据是否有变动。如有变动,也会执行一次区域传送。区域传送将使用TCP而不是UDP,因为传送的数据量比一个request或response多得多。

发现主机是否存活,有些时候防火墙存在我们扫描不到主机是否存活,-p0或者-pn参数可以跳过发现主机直接扫描端口。局域网扫描时会经常抓到ARP的包,默认先发送ARP请求,如果有ARP的包说明这个主机就已经存在了。

Nmap 简单功能介绍/TCP Header/常见端口

Nmap端口扫描常用命令:

1.进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
nmap -sP 192.168.1.0/24

2.仅列出指定网络上的每台主机,不发送任何报文到目标主机:
nmap -sL 192.168.1.0/24

3.探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234

4.使用UDP ping探测主机:
nmap -PU 192.168.1.0/24

5.使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:
nmap -sS 192.168.1.0/24

6.当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
nmap -sT 192.168.1.0/24

7.UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:
nmap -sU 192.168.1.0/24

8.确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19

9.探测目标主机的操作系统:
nmap -O 192.168.1.19

nmap -A 192.168.1.19

另外,nmap官方文档中的例子:
1.nmap -v scanme.
这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。

2.nmap -sS -O scanme./24
进行秘密SYN扫描,对象为主机Scanme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。

3.nmap -sV -p 22,53,110,143,4564 188.116.0-255.1-127
进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。

其他选项:
-p (只扫描指定的端口)
单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。

-F (快速 (有限的端口) 扫描)

其他

比如探测操作系统,利用ping命令,去观察TTL的值 Linux和windows对应的TTL值是不同的,可依此判断操作系统类型。

Nmap 简单功能介绍/TCP Header/常见端口

Nmap 简单功能介绍/TCP Header/常见端口

防火墙/IDS躲避和哄骗

Nmap 简单功能介绍/TCP Header/常见端口

Nmap保存和输出

Nmap 简单功能介绍/TCP Header/常见端口

漏洞扫描:根据版本信息可以上网查询已知的其存在的漏洞并进行渗透测试。

Nmap 简单功能介绍/TCP Header/常见端口

上一篇:渗透测试工具Nmap从初级到高级使用教程


下一篇:Java面向对象之关键字super 入门实例