ERP漏洞
0x01、综述
SAP ERP系统是一套十分成熟的用于财务方面的系统,国内主要应用在大型国企央企等企业,对于此系统安全方面的研究,主要来自于国外的一个安全团队。该安全团队开发的ERPSCAN扫描器可进行一些简单的安全扫描,但真正对部署于内网的系统进行检测的时候,出于安全的考虑,将尽量采用手工的方式进行而非采用公网的集成工具。在阅读了大量的安全团队公开的文献后,总结出了一套相对容易出漏洞的测试点,以下将对这些点进行简述。
0x02、ERP
分类:ERP系统常规部署分为两类
1.ERP Web网站类型
漏洞和普通网站漏洞类型以及测试方法接近,一般容易出现有注入、接口未授权等。
2.SAP GUI类型
类似于开发的电脑专业应用程序,采用的语言也是其公司开发的专门用来写ERP系统的语言(ABAP),其测试方法和测试点有别于常规的系统。
根据上述两类,ERP系统的引擎也分为两类。
- 1)Web页面对应的J2EE引擎,允许java代码执行。
- 2)SAP GUI对应的ABAP引擎
如下图所示:图1 ERP引擎
0x03、SAP GUI漏洞
1.CVE-2012-2611
该漏洞是由于DiagTraceR3Info()函数引起的缓冲区溢出漏洞,涉及到 disp+work.exe进程。
攻击可通过metasploit,所用模块:
sap_netweaver_dispatcher
攻击过程如下图所示:
2.SAP GUI弱口令漏洞
ERP系统存在多个登陆默认口令,如下图所示:
其中需要值得注意的是SAP\账号,该账号为ERP系统的超级管理员账号,但运维人员在进行安全管理的时候,多数会将SAP*的账号进行直接删除,但ERP系统的特殊之处在于,一旦将该账号进行删除,则SAP*的账号可以输入任意密码均能登陆。整改只能通过,修改的密码为高强度密码。
3.SAP ERP权限绕过漏洞
(1)垂直越权
通过一般用户账号如:p31xxxxxx等账号可绕过权限限制,创建管理员级别账号如TEST04
普通用户登录后,输入ERP系统事物码SU01,对高权限账号如管理员账号进行复制。
新建用户名如TEST02,作为复制账号备用
DDIC为高权限账号,如DDIC账号无法复制,也可对、EARLYWATCH账号进行复制,均为高权限账号。
再进行设置初始密码。分组选定为SUPER
参数文件栏对参数文件添加SAP_ALL以及S_A.SYSTEM。此两参数文件为管理员权限
设置完毕,保存账号:
登陆TEST02账号,初次登陆需要对密码进行修改
通过上述步骤,可得到一个高权限的账号(管理员)
(2)普通用户权限——>系统开发级别权限
ERP系统普通用户账号只能进行查看以及财务方面表格的浏览修改等操作,不能对系统进行代码的写入。
在(1)权限绕过后复制出高权限账号的情况下,可以进行任意代码的写入。注:该顶层代码为ERP公司自行开发封装的语言,涉及ABAP,所用仅为测试代码,实操可进行反弹shell等攻击方式。
输入事物码SE38进行代码写入。
新建程序,程序名可任意,可使用常规具有隐蔽性的命名,此处命名为malware仅测试用,添加代码需选择源代码。
在创建代码时,要求输入developer key,通常是ERP公司授权给使用方进行自定义开发。此处可通过破解计算机对developer key进行破解,从而绕过授权。
输入正确的developer key之后,对恶意代码需选择可执行程序
对象为R3TR PROG为固定字段,后面跟自己设定的恶意代码名。
写入代码后,先保存再进行激活
代码执行:略总结:
ERP GUI系统常规测试点主要针对上述两种方式,经实际测试来看,漏扫对于此类系统无法给出相对比较清晰明确的判断,Nessus无法探测,某大厂漏扫所报漏洞为:SAP 代码版本方面的告警,漏扫无法直接注入代码进行尝试,包含弱口令方面,常规漏扫亦无法针对此类系统做出有效判断,或因SAP GUI的特殊性,需在本机以应用安装的方式,端口虽开放,但在服务器端没有直接可注入的漏洞,打开后因不走HTTP或者HTTPS协议的方式,AWVS因此也无法进行扫描,仍需大量的手工测试。
0x03、ERP WEB漏洞
ERP web网站的漏洞测试,则与常规web网站测试相同。工具可通用
如在外网,对工具无使用限制,可用ERPSCAN进行扫描探测,此处略。
以下为erp web漏洞的类型:
对Web上的主要可以尝试metasploit。具备多个可用模块能对ERP WEB进行渗透。
0x05、小结
ERP GUI系统由于开发的特殊性,针对GUI部分的测试,大部分需要采取手工测试的方式,常见的漏洞为权限绕过漏洞,以及默认口令的问题。针对SAP*的账号由于运维可能存在的失误,会导致任意密码登陆的问题。整改只能通过修改的密码为高强度密码修复。
针对Web方面的,则测试方法与普通网站类似。可用metasploit的模块进行渗透测试。模块可参考:
https://repository.root-me.org/Exploitation%20-%20Syst%C3%A8me/EN%20-%20SAP%20Penetration%20Testing%20Using%20Metasploit.pdf
(SAP Penetration Testing Using Metasploit-How to Protect Sensitive ERP Data)
参考链接
https://erpscan.io/tag/sap-netweaver-abap-security-configuration/
https://medium.com/swlh/erp-pentest-metasploit-writeup-e65de8ece7d1
.https://book.hacktricks.xyz/network-services-pentesting/pentesting-sap
https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/
https://www.blackhat.com/presentations/bh-europe-07/Nunez-Di-Croce/Whitepaper/bh-eu-07-nunez_di_croce-WP-apr19.pdf
https://erpscan.io/wp-content/uploads/2014/05/Practical-SAP-pentesting-workshop.pdf
http://www.cybsec.com/upload/CYBSEC-SAP_Penetration_Testing_Defense_InDepth.pdf
https://www.exploit-db.com/docs/english/43859-hardcore-sap-penetration-testing.pdf