关于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+环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/usdAG/sncscan.git
然后切换到项目目录下,使用pip工具和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:
cd sncscan
python3 -m pip install -r requirements.txt
或者使用下列命令,并运行setup.py脚本完成工具的安装配置:
python3 setup.py test
python3 setup.py install
工具使用
当前版本的SNCScan支持读取SAP路由和DIAG(SAP GUI)连接的SNC配置数据。
SAP路由
SAP路由有可能支持SNC,也有可能不支持,也不存在更细粒度的SNC参数配置了,下列命令可以检测目标是否激活了SNC:
sncscan -H 10.3.161.4 -S 3299 -p router
DIAG / SAP GUI
一个SAP GUI所使用的DIAG连接其SNC配置可能更加通用,下列命令可以读取并查看目标的系统参数概况:
sncscan -H 10.3.161.3 -S 3200 -p diag
下列命令可以直接扫描多个目标:
sncscan -L /H/192.168.56.101/S/3200,/H/192.168.56.102/S/3206
通过SAP路由扫描:
sncscan --route-string /H/10.3.161.5/S/3299/H/10.3.161.3/S/3200 -p diag
工具运行截图
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可协议。
项目地址
SNCScan:【GitHub传送门】
版权归原作者 FreeBuf- 所有, 如有侵权,请联系我们删除。