RECON(NetWeaver 上的远程可利用代码,Remotely Exploitable Code On NetWeaver)是一个严重影响众多基于 SAP NetWeaver Java 技术栈运行的 SAP 业务和技术应用程序的关键(CVSSv3 10)漏洞。该漏洞由 Onapsis 研究实验室发现,并与 SAP 密切合作,于 2020 年 7 月 14 日开发并发布了补丁。鉴于该问题的严重性,美国 DHS CISA、BSI CERT-Bund 以及其他多个政府机构发布了警报,敦促 SAP 客户保护易受攻击的应用程序,并优先考虑面向互联网的应用程序。
在观察到针对 RECON 的恶意活动显著增加后,考虑到面向互联网且易受攻击的 SAP 应用程序数量,以及这些系统通常所支持的数据和流程的敏感性,Onapsis 决定尽快开发并发布这一开源工具。其目标是帮助所有 SAP 客户的信息安全和运维团队保护其关键任务型应用程序,使他们能够评估自身暴露面,并判断其 SAP 系统是否可能已被入侵。随着我们的产品、研究团队及更广泛社区捕获到新的威胁情报和取证数据,我们计划进一步完善该工具。
该工具可以:
该工具不能:
然而,该工具存在若干已知局限性,其使用不应被视为 SAP 应用程序未暴露于 RECON(以及其他漏洞)或未被入侵的保证。多种条件可能会影响被评估应用程序和/或日志文件的状态,从而导致误报和/或漏报。
如果识别出 IoC,强烈建议对受评估的系统(以及互联系统)进行深入的取证检查,以确定潜在入侵的范围和程度。
此工具按“原样”提供,不附带任何担保。
替代在线版本
为了帮助 SAP 客户对面向互联网的系统进行针对 RECON 的快速评估,我们还开发了一个支持这两种用例的免费在线版本。如果您愿意,可以使用以下服务:https://recon.onapsis.com。
这些脚本使用 Python 3 开发,要求您安装以下依赖项:
# python3 -m venv .venv
# . .venv/bin/activate
# pip install -r requirements.txt
安装依赖项后,您可以使用 Python 运行这两个脚本,并从命令行获取帮助信息。
要进行漏洞检测,请执行以下脚本:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -h
您必须在能够与所分析的 SAP 目标应用程序建立网络连接的系统上执行该脚本。SAP NetWeaver JAVA 应用服务器的 HTTP(S) 端口应当可达(例如,对于实例 00,HTTP 端口为 50000,但可能通过代理/负载均衡器暴露,或可通过其他 TCP 端口(如 80 或 443)访问)。
应使用 -u 参数,将有效的 URL 作为测试 RECON 漏洞的参数:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -u http://myinternalportal.mycompany.com:50000/
您还可以使用 -f 参数,通过提供一个包含所有待分析 URL 的文件来评估多个 URL:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls
评估结果输出到 stdout。可以通过以下方式将其转储到文件中:
# python3 RECON_CVE-2020-6287_vuln_scanner.py -f file_with_urls >> results
要检测失陷指标,请执行以下脚本:
python3 RECON_CVE-2020-6287_ioc_scanner.py -h
该脚本接收一个文件名,解析该文件以基于 LM CTC 应用程序的使用情况查找 IoC。支持以下文件类型:
applications_xx.y.log
所需文件位于以下文件夹中:
Linux:/usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/
Windows:\usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\
responses_xx.y.trc
使用默认格式配置。如果标准日志格式配置被更改,解析可能会失败。在这种情况下,应手动调整内部正则表达式以反映新格式。所需文件位于以下文件夹中:
Linux:/usr/sap/<SID>/<INSTANCE>/j2ee/cluster/server<X>/log/system/httpaccess/
Windows:\usr\sap\<SID>\<INSTANCE>\j2ee\cluster\server<X>\log\system\httpaccess\
您可以使用 -f 参数执行脚本以分析特定文件:
python3 RECON_CVE-2020-6287_ioc_scanner.py -f path_to_logfile
您可以使用 bash 脚本同时针对多个文件运行该脚本。例如,如果包含多个日志的目录位于 /tmp/sap_RECON_logs/,则执行将如下所示:
path_to_log_folder="/tmp/sap_RECON_logs/";for log_file in `ls $path_to_log_folder`; do python RECON_CVE-2020-6287_ioc_scanner.py -f $path_to_log_folder/$log_file -o csv; done
Onapsis 的网络安全专家团队可随时回答任何后续问题,或进一步协助您了解已识别指标的相关情况。您可以通过 [email protected] 联系 Onapsis。