You are on page 1of 88

Invest in security

to secure investments

SAP Portal: Hacking and forensics


Dmitry Chastukhin Director of SAP pentest/research team
Evgeny Neyolov Security analyst, (anti)forensics research

ERPScan
Developing software for SAP security monitoring
Talks at 35+ security conferences worldwide: BlackHat
(US/EU/DC/UAE), RSA, Defcon, CONFidence, HITB, etc.
First to develop software for NetWeaver J2EE assessment
The only solution to assess all areas of SAP Security
Research team with experience in different areas of security
from ERP and web security to mobile, embedded devices, and
critical infrastructure, accumulating their knowledge on SAP
research.
Leading SAP AG partner in the field of discovering security
vulnerabilities by the number of found vulnerabilities
erpscan.com

ERPScan invest in security to secure investments

Dmitry Chastukhin

Yet another security


researcher
Business application security
expert

erpscan.com

ERPScan invest in security to secure investments

Agenda
SAP security

SAP forensics WTF?!


Say hello to SAP Portal

Breaking SAP Portal


Catch me if you can

Conclusion

erpscan.com

ERPScan invest in security to secure investments

SAP

The most popular business application


More than 180000 customers worldwide
More than 70% of Forbes 500 run SAP
More than 40% of ERP market in Poland

erpscan.com

ERPScan invest in security to secure investments

SAP security
Espionage
Stealing financial information
Stealing corporate secrets
Stealing supplier and customer lists
Stealing HR data
Fraud
False transactions
Modification of master data
Sabotage
Denial of service
Modification of financial reports
Access to technology network (SCADA) by trust relations

erpscan.com

ERPScan invest in security to secure investments

SAP security
35

30

25

20

15

10

BlackHat
Defcon
HITB
RSA
CONFidence
DeepSec
Hacktivity
Troopers
Source

2003

2004

2005

2006

2007

2008

2009

2010

2011

2012

2013

Source: SAP Security in Figures 2013


LINK
erpscan.com

ERPScan invest in security to secure investments

How easy? SAP Security Notes

More than 2600 in total

erpscan.com

ERPScan invest in security to secure investments

Is it remotely exploitable?

sapscan.com

> 5000 non-web SAP services exposed in the world


including Dispatcher, Message server, SapHostControl, etc.
erpscan.com

ERPScan invest in security to secure investments

What about other services?


9

World
8

SAP Dispatcher

erpscan.com

SAP MMC

SAP Message Server

SAP HostControl

SAP ITS Agate

ERPScan invest in security to secure investments

SAP Message Server


httpd

10

What about unpublished threats?


Companies are not interested in publishing information about
their breaches
There are a lot of internal breaches thanks to unnecessarily
given authorizations (An employee by mistake buys hundreds of
excavators instead of ten)
There are known stories about backdoors left by developers in
custom ABAP code
How can you be sure that, if a breach occurs, you can find
evidence?

erpscan.com

ERPScan invest in security to secure investments

11

SAP Forensics
If there are no attacks, it doesnt mean anything

Companies dont like to share it


Companies dont use security audit ~10%
Even if used, nobody manages it ~5%
Even if managed, no correlation ~1%

erpscan.com

ERPScan invest in security to secure investments

12

Typical SAP audit options

ICM log icm/HTTP/logging_0


Security audit log in ABAP
Table access logging rec/client
Message Server log ms/audit
SAP Gateway access log

70%
10%
4%
2%
2%

* The percentage of companies is based on our security assessments and product

implementations.

erpscan.com

ERPScan invest in security to secure investments

13

What do we see?

A lot of research
Real attacks
Lack of logging practice
Many vulnerabilities are hard to close We need to monitor
them, at least

erpscan.com

ERPScan invest in security to secure investments

14

What do we need to monitor?


External attacks on SAP
* Ideally, we should control everything, but this talk has limits, so lets focus on
the most critical areas.

Attack users and SAP GUI

Awareness

SAProuter

Secure configuration and patch management

Exposed SAP services

Disable them

SAP Portal and WEB

Too much issues and custom


configuration
Can be 0-days
Need to concentrate on this area

erpscan.com

ERPScan invest in security to secure investments

15

Say hello to Portal


Point of web access
to SAP systems
Point of web access to
other corporate systems
Way for attackers
to get access to SAP
from the Internet

erpscan.com

ERPScan invest in security to secure investments

16

EP architecture

erpscan.com

ERPScan invest in security to secure investments

17

Okay, okay. SAP Portal is important, and


it has many links to other modules.
So what?

erpscan.com

ERPScan invest in security to secure investments

18

SAP Logging
If you are running an ABAP + Java installation of Web AS with
SAP Web Dispatcher as a load balancing solution, you can safely
disable logging of HTTP requests and responses on J2EE Engine,
and use the corresponding CLF logs of SAP Web Dispatcher. This
also improves the HTTP communication performance. The only
drawback of using the Web Dispatchers CLF logs is that no
information is available about the user executing the request
(since the user is not authenticated on the Web Dispatcher, but
on the J2EE Engine instead).
SOURCE: SAP HELP
*Not the only. There are many complex attacks with POST requests.

erpscan.com

ERPScan invest in security to secure investments

19

SAP J2EE Logging


Categories of system events recording:
System all system related security and administrative logs
Applications all system events related to business logic
Performance reserved for single activity tracing

Default location of these files in your file system:


\usr\sap\<sid>\<id>\j2ee\cluster\<node>\log\

erpscan.com

ERPScan invest in security to secure investments

20

SAP J2EE Logging


The developer trace files of the Java instance
<SID>\<instance name>\work

The developer trace files of the central services


<SID>\<instance name>\work
<SID>\<instance name>\log

Java server logs


<SID>\<instance name>\j2ee\cluster\server<n>\log

erpscan.com

ERPScan invest in security to secure investments

21

Full logging is not always the best option

erpscan.com

ERPScan invest in security to secure investments

22

SAP Management Console

erpscan.com

ERPScan invest in security to secure investments

23

SAP Management Console

SAP MMC: centralized system management


SAP MMC has remote commands
Commands are simple SOAP requests
Allowing to see the trace and log messages
Its not bad if you only use it sometimes and delete logs after
use, but

erpscan.com

ERPScan invest in security to secure investments

24

SAP Management Console

What can we find in logs?


Right!
The file userinterface.log contains calculated JSESIONID

But
The attacker must have credentials to read the log file

WRONG!

erpscan.com

ERPScan invest in security to secure investments

25

SAP Management Console


<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>
<sapsess:Session
xmlns:sapsess="http://www.sap.com/webas/630/soap/features/session/">
<enableSession>true</enableSession>
</sapsess:Session>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:ReadLogFile xmlns:ns1="urn:SAPControl">
<filename>j2ee/cluster/server0/log/system/userinterface.log</filename>
<filter/>
<language/>
<maxentries>%COUNT%</maxentries>
<statecookie>EOF</statecookie>
</ns1:ReadLogFile>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
erpscan.com

ERPScan invest in security to secure investments

26

Prevention

Dont use TRACE_LEVEL = 3


Delete traces when work is finished
Limit access to dangerous methods
Install notes 927637 and 1439348
Mask security-sensitive data in HTTP access log

LINK to SAP HELP


erpscan.com

ERPScan invest in security to secure investments

27

Prevention

The HTTP Provider service can mask securitysensitive URL parameters, cookies, or headers
By default, only for the headers listed below
Path Parameter: jsessionid
Request Parameters: j_password, j_username,
j_sap_password, j_sap_again, oldPassword,
confirmNewPassword,ticket
HTTP Headers: Authorization, Cookie (JSESSIONID,
MYSAPSSO2)

LINK to SAP HELP


erpscan.com

ERPScan invest in security to secure investments

28

SAP NetWeaver J2EE

erpscan.com

ERPScan invest in security to secure investments

29

Access Control

Declarative

Programmatic

By WEB.XML

By UME

Web Dynpro
Portal iViews
J2EE Web apps

erpscan.com

- programmatic
- programmatic
- declarative

ERPScan invest in security to secure investments

30

Access Control
The central entity in the J2EE authorization model is the security
role
Programmers define the application-specific roles in the J2EE
deployment descriptor

web.xml

erpscan.com

web-j2ee-engine.xml

ERPScan invest in security to secure investments

31

web.xml
<servlet>
<servlet-name>CriticalAction</servlet-name>
<servlet-class>com.sap.admin.Critical.Action</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CriticalAction</</servlet-name>
<url-pattern>/admin/critical</url-pattern>
</servlet-mapping
<security-constraint>
<web-resource-collection>
<web-resource-name>Restrictedaccess</web-resource-name>
<url-pattern>/admin/*</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>administrator</role-name>
</auth-constraint>
</security-constraint>

Verb Tampering
erpscan.com

ERPScan invest in security to secure investments

32

Verb Tampering
If we are trying to get access to an application using GET we
need a login:pass and administrator role
What if we try to get access to application using HEAD instead
GET?
PROFIT!
Did U know about ctc?

erpscan.com

ERPScan invest in security to secure investments

33

Verb Tampering
Need Admin account in SAP Portal?
Just send two HEAD requests
Create new user CONF:idence
HEAD /ctc/ConfigServlet?param=com.sap.ctc.util.UserConfig;
CREATEUSER;USERNAME=CONF,PASSWORD=idence

Add the user CONF to the group Administrators


HEAD /ctc/ConfigServlet?param=com.sap.ctc.util.UserConfig;
ADD_USER_TO_GROUP;USERNAME=CONF,GROUPNAME=Administrators

* Works when UME uses JAVA database.


erpscan.com

ERPScan invest in security to secure investments

34

Prevention

Install SAP notes 1503579, 1616259, 1589525,


1624450
Install other SAP notes about Verb Tampering
Scan applications with ERPScan WEB.XML
checker
Disable the applications that are not necessary

erpscan.com

ERPScan invest in security to secure investments

35

Investigation
[Apr 3, 2013 1:23:59 AM
] - 192.168.192.14
: GET /ctc/ConfigServlet HTTP/1.1 401 1790
[Apr 3, 2013 1:30:01 AM
] - 192.168.192.14
: HEAD /ctc/ConfigServlet HTTP/1.1 200 0

[Apr 3, 2013 1:30:01 AM


] - 192.168.192.14
: HEAD
/ctc/ConfigServlet?param=com.sap.ctc.util.Use
rConfig;CREATEUSER;USERNAME=CONF,PASSWORD=ide
nce HTTP/1.0 200 0
j2ee\cluster\<node>\log\system\httpaccess\responses.trc
erpscan.com

ERPScan invest in security to secure investments

36

web.xml
<servlet>
<servlet-name>CriticalAction</servlet-name>
<servlet-class>com.sap.admin.Critical.Action</servletclass>
</servlet>
GET /admin/critical/CriticalAction
<servlet-mapping>
<servlet-name>CriticalAction</</servlet-name>
<url-pattern>/admin/critical</url-pattern>
</servlet-mapping
<security-constraint>
GET /servlet/com.sap.admin.Critical.Action
<web-resource-collection>
<web-resource-name>Restrictedaccess</web-resource-name>
<url-pattern>/admin/*</url-pattern>
<http-method>GET</http-method>
<http-method>HEAD</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>administrator</role-name>
</auth-constraint>
Invoker servlet
</security-constraint>

erpscan.com

ERPScan invest in security to secure investments

37

Invoker Servlet
Want to execute an OS command on J2EE server remotely?
Maybe upload a backdoor in a Java class?
Or sniff all traffic?

Still remember ctc?

erpscan.com

ERPScan invest in security to secure investments

38

Invoker Servlet

erpscan.com

ERPScan invest in security to secure investments

39

Prevention

Update to the latest patch 1467771, 1445998


EnableInvokerServletGlobally must be false
Check all WEB.XML files with ERPScan WEBXML
checker

erpscan.com

ERPScan invest in security to secure investments

40

Investigation
#1.5#000C29C2603300790000003A000008700004D974E7CCC6D8#13649960352
03#/System/Security/Audit#sap.com/tc~lm~ctc~util~basic_ear#com.sa
p.security.core.util.SecurityAudit#Guest#0#SAP J2EE Engine JTA
Transaction :
[024423a006e18]#n/a##217c5d309c6311e29bca000c29c26033#SAPEngine_A
pplication_Thread[impl:3]_22##0#0#Info#1#com.sap.security.core.ut
il.SecurityAudit#Plain###Guest
| USER.CREATE |
USER.PRIVATE_DATASOURCE.un:CONF
|
| SET_ATTRIBUTE:
uniquename=[CONF]#

#1.5#000C29C2603300680002C97A000008700004D974E8354D1D#13649960420
62#/System/Security/Audit/J2EE#sap.com/irj#com.sap.engine.service
s.security.roles.audit#Guest#182818##n/a##0c5bfef08bc511e287e6000
c29c26033#Thread[Thread50,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#com.
sap.engine.services.security.roles.audit#Java###{0}:
Authorization check for caller assignment to J2EE security role
[{1} : {2}].#3#ACCESS.OK#SAP-J2EE-Engine#guests#

erpscan.com

ERPScan invest in security to secure investments

41

Investigation

erpscan.com

ERPScan invest in security to secure investments

41

XSS
Many XSSs in Portal
But sometimes HttpOnly
But when we exploit XSS, we can use the features of SAP Portal

EPCF
erpscan.com

ERPScan invest in security to secure investments

43

EPCF
EPCF provides a JavaScript API designed for the client-side
communication between portal components and the portal core
framework
Enterprise Portal Client Manager (EPCM)
iViews can access the EPCM object from every portal page
or IFrame
Every iView contains the EPCM object
<SCRIPT>
alert(EPCM.loadClientData("urn:com.sap.myObjects", "person");
</SCRIPT>

For example, EPCF used for transient user data buffer for iViews

erpscan.com

ERPScan invest in security to secure investments

44

Prevention

Install SAP note 1656549

erpscan.com

ERPScan invest in security to secure investments

45

Investigation
#Plain###192.168.192.26 : GET
/irj/servlet/prt/portal/prtroot/com.sap.porta
l.usermanagement.admin.UserMapping?systemid=M
S_EXCHANGEaaaa%3C/script%3E%3Cscript%3Ealert(
%27xSS%27)%3C/script%3E HTTP/1.1 200 3968#

j2ee\cluster\<node>\log\system\httpaccess\res
ponses.trc

erpscan.com

ERPScan invest in security to secure investments

46

Web Dynpro JAVA


Web Dynpro unauthorized modifications
For example:
somebody steals an account using XSS/CSRF/Sniffing
then tries to modify the severity level of logs

erpscan.com

ERPScan invest in security to secure investments

47

Web Dynpro JAVA

LINK to SAP HELP


erpscan.com

ERPScan invest in security to secure investments

48

Investigation
No traces of change in default log files
\cluster\server0\log\system\httpaccess\responses.log

Web Dynpro sends all data by POST, and we only see GET URLs in
responses.log
But sometimes we can find information by indirect signs
[Mar 20, 2013 9:35:49 AM ] - 172.16.0.63 : GET
/webdynpro/resources/sap.com/tc~lm~webadmin~log_config
~wd/Components/com.sap.tc.log_configurator.LogConfigur
ator/warning.gif HTTP/1.1 200 110

The client loaded images from the server during some changes

erpscan.com

ERPScan invest in security to secure investments

49

Investigation

Most actions have icons


They have to be loaded from the server
Usually, legitimate users have them all in cache
Attackers usually dont have them, so they make requests to the
server
Thats how we can identify potentially malicious actions
But there should be correlation with a real users activity
False positives are possible:
New legitimate user
Old user clears cache
Other

erpscan.com

ERPScan invest in security to secure investments

50

Directory traversal

FIX
erpscan.com

ERPScan invest in security to secure investments

51

Directory traversal fix bypass

erpscan.com

ERPScan invest in security to secure investments

52

Prevention

Install SAP note 1630293

erpscan.com

ERPScan invest in security to secure investments

53

Investigation

/../
!252f..!252f

erpscan.com

ERPScan invest in security to secure investments

54

Breaking SAP Portal


Found a file in the OS of SAP Portal with the encrypted
passwords for administration and DB
Found a file in the OS of SAP Portal with keys to decrypt
passwords
Found a vulnerability (another one ;)) which allows reading the
files with passwords and keys
Decrypt passwords and log into Portal
PROFIT!

erpscan.com

ERPScan invest in security to secure investments

55

Read the file


How can we read the file?

Directory Traversal
OS Command execution
XML External Entity (XXE)

erpscan.com

ERPScan invest in security to secure investments

56

XXE in Portal: Details

Injection of malicious requests into XML packets


Can lead to unauthorized file read, DoS, SSRF
There is an XXE vulnerability in SAP Portal
Can be exploited by modification of POST request
It is possible to read any file from OS and much more

erpscan.com

ERPScan invest in security to secure investments

57

XXE in Portal

erpscan.com

ERPScan invest in security to secure investments

58

XXE in Portal

erpscan.com

ERPScan invest in security to secure investments

59

XXE

Error based XXE


erpscan.com

ERPScan invest in security to secure investments

60

XXE in Portal: Result


We can read any file
Including config with passwords
The SAP J2EE Engine stores the database user SAP<SID>DB; its
password is here:
\usr\sap\<SID>\SYS\global\security\data\SecStore.properties

erpscan.com

ERPScan invest in security to secure investments

61

Where are the passwords?


(config.properties)
rdbms.maximum_connections=5
system.name=TTT
secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/
data/SecStore.key
secstorefs.secfile=/oracle/TTT/sapmnt/global/security/
data/SecStore.properties
secstorefs.lib=/oracle/TTTsapmnt/global/security/lib
rdbms.driverLocation=/oracle/client/10x_64/instantclie
nt/ojdbc14.jar
rdbms.connection=jdbc/pool/TTT
rdbms.initial_connections=1

erpscan.com

ERPScan invest in security to secure investments

62

Where are the passwords?


(config.properties)
rdbms.maximum_connections=5
system.name=TTT
secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/
data/SecStore.key
secstorefs.secfile=/oracle/TTT/sapmnt/global/security/
data/SecStore.properties
secstorefs.lib=/oracle/TTTsapmnt/global/security/lib
rdbms.driverLocation=/oracle/client/10x_64/instantclie
nt/ojdbc14.jar
rdbms.connection=jdbc/pool/TTT
rdbms.initial_connections=1

erpscan.com

ERPScan invest in security to secure investments

63

SecStore.properties
$internal/version=Ni4zFF4wMSeaseforCCMxegAfx
admin/host/TTT=7KJuOPPs/+u+14jM7uy7cy7exrZuYvevkSrPxwu
eur2445yxgBS
admin/password/TTT=7KJuOPPs/+uv+14j56vDc7M7v7dytbGbkgq
Dp+QD04b0Fh
jdbc/pool/TTT=7KJuOPPs/+u5jM6s1cvvgQ1gzFvarxuUzEJTHTJI
0VGegH
admin/port/TTT=7KJuOPPs/+u+1j4vD1cv6ZTvd336rzEd7267Rwr
4ZUgRTQ
$internal/check=BJRrzfjeUA+bw4XCzdz16zX78ufbt
$internal/mode=encrypted
admin/user/TTT=7KJuOPPs/+u+14j6s14sTxXU3ONl3rL6N7yssV7
5eC6/5S3E

But where is the key?

erpscan.com

ERPScan invest in security to secure investments

64

config.properties
rdbms.maximum_connections=5
system.name=TTT
secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/
data/SecStore.key
secstorefs.secfile=/oracle/TTT/sapmnt/global/security/
data/SecStore.properties
secstorefs.lib=/oracle/TTTsapmnt/global/security/lib
rdbms.driverLocation=/oracle/client/10x_64/instantclie
nt/ojdbc14.jar
rdbms.connection=jdbc/pool/TTT
rdbms.initial_connections=1

erpscan.com

ERPScan invest in security to secure investments

65

Get the password


We have an encrypted password
We have a key to decrypt it

We got the J2EE admin and JDBC


login:password!

erpscan.com

ERPScan invest in security to secure investments

66

Prevention

Install SAP note 1619539


Restrict read access to files SecStore.properties
and SecStore.key

erpscan.com

ERPScan invest in security to secure investments

67

Investigation
POST
/irj/servlet/prt/portal/prteventname/HtmlbE
vent/prtroot/pcd!3aportal_content!2fadminis
trator!2fsuper_admin!2fsuper_admin_role!2fc
om.sap.portal.content_administration!2fcom.
sap.portal.content_admin_ws!2fcom.sap.km.Ad
minContent!2fcom.sap.km.AdminContentExplore
r!2fcom.sap.km.AdminExplorer/ HTTP/1.1

erpscan.com

ERPScan invest in security to secure investments

68

Investigation
The only one way to get HTTP POST request values is to enable
HTTP Trace
Visual Administrator Dispatcher HTTP Provider
Properties: HttpTrace = enable
For 6.4 and 7.0 SP12 and lower:
On Dispatcher:
/j2ee/cluster/dispatcher/log/defaultTrace.trc

On Server
\j2ee\cluster\server0\log\system\httpaccess\responses.0.trc

For 7.0 SP13 and higher:


/j2ee/cluster/dispatcher/log/services/http/req_resp.trc

Manually analyze all requests for XXE attacks


erpscan.com

ERPScan invest in security to secure investments

69

Malicious file upload: Attack


Knowledge management allows uploading to the server
different types of files that can store malicious content
Sometimes, if guest access is allowed, it is possible to upload
any file without being an authenticated user
For example, it can be an HTML file with JavaScript that steals
cookies

erpscan.com

ERPScan invest in security to secure investments

70

Malicious file upload: Attack

erpscan.com

ERPScan invest in security to secure investments

71

Malicious file upload: Attack

erpscan.com

ERPScan invest in security to secure investments

72

Malicious file upload: Forensics


[Apr 10, 2013 2:26:13 AM ] - 192.168.192.22 : POST
/irj/servlet/prt/portal/prteventname/HtmlbEvent/prt
root/pcd!3aportal_content!2fspecialist!2fcontentman
ager!2fContentManager!2fcom.sap.km.ContentManager!2
fcom.sap.km.ContentExplorer!2fcom.sap.km.ContentDoc
Explorer!2fcom.sap.km.DocsExplorer/documents
HTTP/1.1 200 13968
[Apr 10, 2013 2:26:14 AM ] - 192.168.192.22 : GET
/irj/go/km/docs/etc/public/mimes/images/html.gif
HTTP/1.1 200 165

*Again, images can help us.

erpscan.com

ERPScan invest in security to secure investments

73

Malicious file upload: Prevention

Enable File Extension and Size Filter:


System Administration System Configuration
Content Management Repository Filters Show
Advanced Options File Extension and Size Filter
Select either the All repositories parameter or at least
one repository from the repository list in
the Repositories parameter

erpscan.com

ERPScan invest in security to secure investments

74

Malicious file upload: Prevention

Enable Malicious Script Filter:


System Administration System Configuration
Content Management Repository Filters Show
Advanced Options Malicious Script Filter
The filter also detects executable scripts in files that are
being modified and encodes them when they are saved
enable Forbidden Scripts. Comma-separated list of banned
script tags that will be encoded when the filter is applied
enable the Send E-Mail to Administrator option

erpscan.com

ERPScan invest in security to secure investments

75

Portal post-exploitation
Lot of links to other systems in corporate LAN
Using SSRF, attackers can get access to these systems

What is

erpscan.com

SSRF?

ERPScan invest in security to secure investments

76

SSRF History: Basics

We send Packet A to Service A


Service A initiates Packet B to service B
Services can be on the same or different hosts
We can manipulate some fields of packet B within packet A
Various SSRF attacks depend on how many fields we can control
on packet B

Packet A
Packet B

erpscan.com

ERPScan invest in security to secure investments

77

Partial Remote SSRF:


HTTP attacks on other services

HTTP Server

Corporate
network
Direct attack
GET /vuln.jsp
SSRF Attack
Get /vuln.jst

SSRF Attack

erpscan.com

ERPScan invest in security to secure investments

78

Gopher uri scheme

Using gopher:// uri scheme, it is possible to send TCP


packets

Exploit OS vulnerabilities
Exploit old SAP application vulnerabilities
Bypass SAP security restrictions
Exploit vulnerabilities in local services

More info in our BH2012 presentation:


SSRF vs. Business Critical Applications
LINK
erpscan.com

ERPScan invest in security to secure investments

79

Portal post-exploitation

erpscan.com

ERPScan invest in security to secure investments

80

Anti-forensics

erpscan.com

ERPScan invest in security to secure investments

81

Anti-forensics
Flooding
Deleting
Changing

erpscan.com

ERPScan invest in security to secure investments

82

Anti-forensics
Log flooding
5 active logs
Maximum log file size is 10 Mb
Archiving when all logs reach the maximum size
If file.0.log -> max size then open file.1.log
If file.4.log -> max size then zip all and backup
Rewriting the same files after archiving

erpscan.com

ERPScan invest in security to secure investments

83

Anti-forensics
Log deleting
SAP locks write access to the only one active log
SAP allows reading/writing logs, so it is possible to delete them
It could compromise the attackers presence

Log changing
SAP locks write access only to the one active log
It is possible to write into any other log file

erpscan.com

ERPScan invest in security to secure investments

84

Securing SAP Portal

Patching
Secure configuration
Enabling HTTP Trace with masking
Malicious script filter
Log archiving
Additional place for log storage
Monitoring of security events
Own scripts, parse common patterns
ERPScan has all existing web vulns/0-day patterns

erpscan.com

ERPScan invest in security to secure investments

85

Conclusion
It is possible to protect yourself from these kinds of issues,
and we are working close with SAP to keep customers secure

SAP Guides
Regular security assessments
Monitoring technical security

ABAP code review


Segregation of Duties
Security events monitoring

Its all in your hands

Future work
I'd like to thank SAP's Product Security Response Team for the
great cooperation to make SAP systems more secure. Research
is always ongoing, and we can't share all of it today. If you want
to be the first to see new attacks and demos, follow us at
@erpscan and attend future presentations:
July 31 BlackHat (Las Vegas, USA)

erpscan.com

ERPScan invest in security to secure investments

87

Web:
www.erpscan.com
e-mail: info@erpscan.com

Twitter:
@erpscan
@_chipik
@neyolov

You might also like