SNCScan:针对SAP安全网络通信(SNC)的安全分析与评估工具

2024-06-11 15:28:56 浏览数 (2)

关于SNCScan

SNCScan是一款针对SAP安全网络通信(SNC)的安全分析与评估工具,该工具旨在帮助广大研究人员分析SAP安全网络通信(SNC),并分析和检测SNC配置与SAP组件中的潜在问题。

SNC系统参数

SNC基础

SAP协议,例如DIAG或RFC,本身并没有提供较高的安全保护。为了提高安全性并确保身份验证、完整性和加密,则需要使用到SNC(安全网络通信)。SNC可以通过对数据应用已知的加密算法来保护使用SAP系统(使用了RFC、DIAG或路由协议)中各种客户端和服务器组件之间的数据通信路径,以提高其安全性。目前SNC提供有三种不同级别的数据保护,可用于SNC安全连接:

1、仅身份认证:验证通信方的身份; 2、完整性保护:保护数据防止被篡改; 3、机密性保护:对传输的数据进行加密;

SNC参数

每一个SAP系统都可以使用SNC参数进行配置以提升通信安全。SNC连接的等级由保护参数的质量确定,其中包括:

1、snc/data_protection/min:SNC连接所需的最低安全等级; 2、snc/data_protection/max:最高安全等级,由SAP系统初始化; 3、snc/data_protection/use:默认安全等级,由SAP系统初始化;

SNC还提供了其他的参数来处理针对系统的配置选项,比如snc/only_encrypted_gui参数,该参数可以确保强制加密SAPGUI连接。

读取SNC参数

只要SAP系统配置正确且能够发送SNC消息,那么无论为SNC指定哪个IP、端口和CN,它都能够响应有效的SNC请求。该响应中包含了SAP系统针对SNC连接的要求,并且能将其用于获取SNC参数,并检查目标SAP系统是否启用了SNC,以及设置了哪些SNC参数。

工具下载

由于该工具基于Python 3.8开发,因此我们首先需要在本地设备上安装并配置好Python 3.8 环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

代码语言:javascript复制
git clone https://github.com/usdAG/sncscan.git

然后切换到项目目录下,使用pip工具和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:

代码语言:javascript复制
cd sncscan

python3 -m pip install -r requirements.txt

或者使用下列命令,并运行setup.py脚本完成工具的安装配置:

代码语言:javascript复制
python3 setup.py test
代码语言:javascript复制
python3 setup.py install

工具使用

当前版本的SNCScan支持读取SAP路由和DIAG(SAP GUI)连接的SNC配置数据。

SAP路由

SAP路由有可能支持SNC,也有可能不支持,也不存在更细粒度的SNC参数配置了,下列命令可以检测目标是否激活了SNC:

代码语言:javascript复制
sncscan -H 10.3.161.4 -S 3299 -p router

DIAG / SAP GUI

一个SAP GUI所使用的DIAG连接其SNC配置可能更加通用,下列命令可以读取并查看目标的系统参数概况:

代码语言:javascript复制
sncscan -H 10.3.161.3 -S 3200 -p diag

下列命令可以直接扫描多个目标:

代码语言:javascript复制
sncscan -L /H/192.168.56.101/S/3200,/H/192.168.56.102/S/3206

通过SAP路由扫描:

代码语言:javascript复制
sncscan --route-string /H/10.3.161.5/S/3299/H/10.3.161.3/S/3200 -p diag


工具运行截图


许可证协议

本项目的开发与发布遵循GPL-3.0开源许可协议。

项目地址

SNCScan:

https://github.com/usdAG/sncscan

0 人点赞