主要收集目标主机的相关信息,主要包括端口、服务、漏洞等信息。信息收集手段多样,可借助工具也多种多样。
端口扫描:Nmap
漏洞扫描:awvs\appscan\openvas\nessus等
扫描里用的比较多的就是TCP协议,UDP也用,还有ICMP
传输层控制协议(Transport Control Protocol),TCP/IP协议栈的核心之一。位于应用层与网络层之间,提供面向连接的、可靠的字节流服务。
Source Port(来源端口):16位
Destination Port(目的端口):16位
Sequence Number(序号):32位
TCP报文段中的数据部分,每一个字节都有它的序号(递增)。根据控制标志(Control Bits)中的SYN是否为1,Sequence Number 表达不同的含义:
Acknowledgment Number(确认序号):32位
当控制标志的ACK为1时,表示发送方希望收到的下一个报文段的序号(Sequence Number)。一旦连接建立成功,ACK值一直为1。
Data Offset(数据偏移量):4位
TCP报文段的首部长度,单位是word(4字节)。字面含义是:TCP报文段的数据的起始处,距离TCP报文段的起始处 的偏移量。4个字节最大能表示的数字是15,所以首部最大60字节。
Reserved(保留字段):6位
预留作为后续用途,必须是0。
Control Bits(控制标志):6位 — Tcp标志位扫描常用
一共有6个控制标志,其中SYN/ACK、FIN/ACK主要用于连接的建立、断开阶段。
-
URG: 当置为1时,表示紧急指针(Urgent Pointer)字段有效; —紧急标志
-
ACK: 确认序号字段(Acknowledgment Number)有效; —确认标志
-
PSH: 接收方应立即把这个报文段交给应用层; —推标志
-
RST: 重建连接; —复位标志(TCP建立完握手,想断开,重设连接)
-
SYN: 同步序号,用于建立连接;—建立连接标志,三次握手
-
FIN: 发送端不再发送数据; —结束标志(与RST区别是这是正常结束,表示连接已经完成)
Window Size(窗口大小):16位 —流量控制,滑动窗口控制机制
允许对方发送的数据量。告诉对方自己缓冲区还能容纳多少字节,用来控制对方发送数据的速度。
比如,服务端发送给客户端的TCP报文段中,确认序号是701,窗口字段(Window Size)是1000,表明服务端能够接受客户端发来的,序号从701开始的1000字节数据。
Checksum(校验和):16位
发送端对TCP首部、数据进行CRC运算得出的结果。接收端收到数据后,对接收到的TCP报文段的首部、数据进行CRC运算,并跟TCP首部中的校验和进行对比,确保数据在传输过程中没有损坏。
计算、校验规则这里先不展开。
Urgent Pointer(紧急指针):16位
仅在URG=1时才生效,它的值是一个偏移量,和序号字段中的值相加得到紧急数据最后一个字节的序号。
options(可选字段):大小不固定
最常见的可选字段是MSS(Maximum Segment Size),表示最长报文大小,通信双方通常在连接的第一个报文段中指明这个选项。(只能出现在SYN报文中)
ICMP协议,(“Internet Control Message Protocol”Internet控制消息协议)位于IP层, 。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据。 ——用于诊断网络状态
最常见的是ping,属于下图中的-0 Echo Reply,UDP扫描中的端口拨打