端口扫描和指纹识别是渗透测试和网络安全领域中常用的基础技术之一,用于评估目标系统的安全性和发现可能存在的漏洞和攻击面。也是Yakit基础工具的模块之一。
是指通过扫描目标系统上的端口,确定哪些端口是开放的,并确定这些开放的端口上运行的服务类型和版本信息。
Yakit 使用的端口扫描的技术主要有以下几种:
TCP SYN扫描:该技术利用TCP协议的三次握手过程中的SYN和ACK标志来判断端口的开放情况。扫描模块发送一个SYN标志的数据包给目标主机,如果目标主机回应了一个SYN/ACK数据包,就表明该端口是开放的。扫描模块随即发送一个RST数据包,以关闭连接。如果目标主机回应了一个RST/ACK数据包,表明该端口是关闭的。如果没有任何响应,表明该端口可能被防火墙或者入侵检测系统屏蔽了。
TCP Connect扫描:该技术利用TCP协议的三次握手过程来判断端口的开放情况。扫描模块向目标主机发起一个TCP连接请求,如果目标主机回应一个SYN/ACK数据包,表明该端口是开放的,扫描模块会回应一个ACK数据包,以建立连接。如果目标主机回应一个RST数据包,表明该端口是关闭的。如果没有任何响应,表明该端口可能被防火墙或者入侵检测系统屏蔽了。
UDP扫描:UDP协议没有像TCP协议一样的连接状态,因此UDP扫描更加复杂。扫描模块向目标主机发送一个UDP数据包,如果目标主机回应了一个ICMP端口不可达数据包,表明该端口是关闭的。如果没有任何响应,表明该端口可能是开放的。需要注意的是,由于UDP协议没有连接状态,因此UDP扫描的准确性比TCP扫描要低。
是通过对目标系统上的服务和应用程序进行识别,来确定目标系统上的操作系统、应用程序和服务信息。指纹识别技术主要通过解析网络数据包和应用程序响应消息来实现。
以下是常见的几种指纹识别技术及其原理:
应用程序指纹识别:该技术通过解析应用程序的响应消息,来确定应用程序的类型和版本信息。例如,HTTP协议中的服务器响应头信息就包含了Web服务器的类型和版本信息。指纹识别器通过向目标系统发送HTTP请求,并解析响应消息中的服务器头信息,来确定Web服务器的类型和版本信息。
协议指纹识别:该技术通过解析网络数据包,来确定目标系统所使用的协议类型和版本信息。例如,通过解析TCP数据包的TCP标志位、TCP选项和窗口大小等信息,可以确定目标系统上的TCP/IP协议的版本信息。
操作系统指纹识别:该技术通过解析网络数据包中的特征信息,来确定目标系统所使用的操作系统类型和版本信息。例如,通过解析TCP数据包中的MSS、TTL、IP ID等信息,可以确定目标系统所使用的操作系统类型和版本信息。
扫描模式的使用解释:
SYN扫描
具有权限要求,Linux下启动yakit需要以root权限启动,windows下需要管理员权限启动,如果不是以root或者管理员权限启动会报错误。
指纹扫描
无权限要求,可直接进行扫描,识别端口指纹。
SYN+指纹扫描
具有权限要求,Linux下启动yakit需要以root权限启动,windows下需要管理员权限启动,如果不是以root或者管理员权限启动会报错误。
端口探测就说到这里!
更多使用技巧后续持续更新!