声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。
本文介绍了Yakit
端口探测和指纹扫描。详情见《Yakit手册》。
功能背景
端口扫描和指纹识别是渗透测试和网络安全领域中常用的基础技术之一,用于评估目标系统的安全性和发现可能存在的漏洞和攻击面。也是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等信息,可以确定目标系统所使用的操作系统类型和版本信息。
使用方法
-
在扫描目标文本框中输入想要扫描的目标(域名/主机/IP/IP段均可,逗号分隔或按行分割),也可以点击在此上传按钮上传TXT、Excle文件进行批量目标的上传。
-
根据实际需求勾选需要的端口选项,也可以在扫描端口中直接自定义想要扫描的端口,按逗号进行分隔。在左侧扫描端口操作台处可以选择想要加载的插件进行勾选,
-
点击开始扫描即可进行开始进行端口的探测。
单次扫描结果可在页面下方进行展示
历史结果可在端口资产管理,或者数据库-端口资产进行查看
详细记录了端口及版本和web指纹。
更多参数
如需设置更多高级扫描选项,点击更多参数即可按照注释进行相应的设置
扫描模式分类:
-
SYN扫描
具有权限要求,Linux下启动yakit需要以root权限启动,windows下需要管理员权限启动,如果不是以root或者管理员权限启动会报如下错误:
-
指纹扫描
无权限要求,可直接进行扫描,识别端口指纹
-
SYN+指纹扫描
具有权限要求,Linux下启动yakit需要以root权限启动,windows下需要管理员权限启动,如果不是以root或者管理员权限启动会报如下错误:
青青子衿,悠悠我心。