Pentesting SAP

SAP简介
SAP代表数据处理中的系统应用和产品。SAP从定义上来说,既是ERP(企业资源规划)软件的名称,也是公司的名称。 SAP系统由多个完全集成的模块组成,几乎涵盖了业务管理的各个方面。
每个SAP实例(或SID)由三层组成:数据库、应用和表示层),每个系统通常由四个实例组成:开发、测试、QA和生产。 每个层面都可以在一定程度上被利用,但攻击数据库可以获得最大的效果。
每个SAP实例被划分为客户端。每个客户端都有一个名为SAP*的用户,相当于应用程序中的“root”。 在初始创建时,此用户SAP*会获得一个默认密码:“060719992”(更多默认密码见下文)。 如果您知道在测试或开发环境中这些密码经常没有更改,您会感到惊讶!
尝试使用用户名adm访问任何服务器的shell。 暴力破解可能有所帮助,但可能存在账户锁定机制。
发现
下一节主要来自https://github.com/shipcod3/mySapAdventures用户shipcod3的内容!
检查应用范围或程序简介以进行测试。注意主机名或系统实例,以连接到SAP GUI。
如果应用程序面向互联网或公共,使用OSINT(开源情报)、Shodan和Google Dorks检查文件、子域和有趣的信息:
这是 http://SAP:50000/irj/portal 的页面

使用 nmap 检查开放端口和已知服务(sap 路由器,webdnypro,web 服务,web 服务器等)
如果有 web 服务器运行,请爬取 URL。
如果某些端口上有 web 服务器,请对目录进行模糊测试(可以使用 Burp Intruder)。以下是 SecLists 项目提供的一些良好字典,用于查找默认 SAP ICM 路径和其他有趣的目录或文件:
https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls_SAP.txt https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt
使用 SAP SERVICE DISCOVERY 辅助 Metasploit 模块来枚举 SAP 实例/服务/组件:
测试厚客户端 / SAP GUI
以下是连接到 SAP GUI 的命令 sapgui <sap 服务器主机名> <系统编号>
检查默认凭据(在 Bugcrowd 的漏洞评级分类中,这被视为 P1 -> 服务器安全配置错误 | 使用默认凭据 | 生产服务器):
运行Wireshark,然后使用获取的凭据对客户端(SAP GUI)进行身份验证,因为一些客户端在没有SSL的情况下传输凭据。已知有两个Wireshark插件可以解析SAP DIAG协议使用的主要标头:SecureAuth Labs SAP dissection插件和Positive Research Center的SAP DIAG插件。
检查特权升级,例如低权限用户使用某些SAP事务代码(tcodes):
SU01 - 创建和维护用户
SU01D - 显示用户
SU10 - 用于大规模维护
SU02 - 手动创建配置文件
SM19 - 安全审计 - 配置
SE84 - SAP R/3授权信息系统
检查是否可以在客户端执行系统命令/运行脚本。
检查是否可以在BAPI Explorer上执行XSS
测试Web界面
爬取URL(参见发现阶段)。
像在发现阶段那样对URL进行模糊测试。这是http://SAP:50000/index.html的外观:

寻找常见的Web漏洞(参考OWASP十大),因为某些地方存在XSS、RCE、XXE等漏洞。
查看Jason Haddix的“The Bug Hunters Methodology”以测试Web漏洞。
通过动词篡改进行身份验证绕过?也许:)
打开
http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#,然后点击“Choose”按钮,然后在打开的窗口中按“Search”。您应该能够看到SAP用户列表(漏洞参考:ERPSCAN-16-010)凭据是否通过HTTP提交?如果是,则根据Bugcrowd的漏洞评级分类被视为P3:基于HTTP的身份验证和会话管理不安全 | 弱登录功能。提示:也可以查看http://SAP:50000/startPage或登录门户:)

尝试
/irj/go/km/navigation/以查看可能的目录列表或身份验证绕过http://SAP/sap/public/info包含一些有趣的信息:
攻击!
检查是否在旧服务器或技术上运行,如Windows 2000。
计划可能的利用/攻击,有许多用于SAP发现(辅助模块)和利用的Metasploit模块:
尝试使用一些已知的漏洞(查看Exploit-DB)或攻击,比如老但经典的“SAP ConfigServlet远程代码执行”在SAP门户中:

在执行发现阶段的bizploit脚本的
start命令之前,您还可以添加以下内容以执行漏洞评估:
测试中其他有用的工具
PowerSAP - 用于评估 SAP 安全性的 Powershell 工具
Burp Suite - 目录模糊测试和 Web 安全评估必备工具
pysap - 用于构建 SAP 网络协议数据包的 Python 库
https://github.com/gelim/nmap-erpscan - 帮助 nmap 检测 SAP/ERP
参考资料
https://github.com/davehardy20/SAP-Stuff - 用于半自动化执行 Bizploit 的脚本

最后更新于