IMPORTANTE: Este processo, caso seja feito sem autorização do detentor do ficheiro, é crime. Mesmo que não o consiga terminar com sucesso, o facto de tentar é por si só um crime.
(Lei do Cibercrime, Lei nº 109/2009; Capitulo II, Artigo 4).

Esta demonstração serve para efeitos de estudo e sensibilização do baixo nível de segurança com comportamentos de risco.

 

Nos dias que correm uma das ferramentas mais usadas no âmbito empresarial é o Microsoft Excel.

Seja para análises, relatórios, registos diversos, simuladores ou mesmo aplicações em VBA, o Excel é a ferramenta preferida.

Na maioria das vezes listas incrivelmente extensas com propostas comerciais, tabelas de preços, dados pessoais, confidenciais ou mesmo segredos de negócio.

Alguns ficheiros estão simplesmente desprotegidos ou com a falsa sensação de segurança no uso de passwords protegendo uma ou outra folha contra alterações.

Vamos mostrar 2 ficheiros diferentes com apenas 1 folha protegida e com formatos diferentes XLS e XLSX.

No caso iremos utilizar uma password minimamente robusta: yN])Z][email protected]*G

 

1. XLS (formato excel 97-2003)

No caso do formato xls o desbloqueio é bastante simples, bastando utilizar uma macro em VBA (Visual Basic for Applications) que devolverá uma das possíveis passwords utilizando o método “brute-force”.

O Excel não grava efetivamente a password que escreve, apenas a password codificada.

Ora quando a password é gravada o Excel envia-a para um codificador que a transforma numa cadeia de caracteres de 16 bits, independentemente do comprimento da password. Ora, os 16 bits permitem apenas 65.536 possíveis valores codificados para muitos bilhões de passwords possíveis, para qualquer password que você defina, há bilhões de outras senhas diferentes que funcionarão para desbloqueá-lo.

Neste caso especifico para desbloquear a folha, se colocar a password yN])Z][email protected]*G ou a password AAABBABBBAAR o Excel vai desbloquear a folha da mesma forma, porque o resultado da sua codificação é o mesmo.

O processo demora apenas alguns segundos.

2. XLSX (formato após 2003)

Neste caso o processo é ligeiramente mais complicado porque o codificador do Excel para este formato passou a usar SHA-512 (512 bits) o que torna o processo de «brute-force» mais demorado.

Apesar de ser bastante seguro não é inviolável, ainda assim não vamos precisar de usar nenhum método de ultima geração nem tão pouco saber a password , apenas usar um pequeno truque que engana o Excel.

Passo 1

Criamos um novo ficheiro Excel em branco e protegemos uma folha com a password 1.

Gravamos no disco como Livro1.xlsx

Passo 2

Criar cópia do ficheiro e mudar a extensão para zip e descomprimir o ficheiro zip.

Passo 3

Editar o ficheiro Livro1_copia\xl\worksheets\sheet1.xml

A tag xml abaixo tem a nossa password (definida no passo 1) codificada.

<sheetProtection algorithmName=”SHA-512″ hashValue=”a5KkaKOyuswOMcmnMWc7eKtqvBCo4MtOSgGF/Xa+XVhi7e63l+hIq4HFujP0qtRjehdcEujy/3TKGUTlzF6GMw==” saltValue=”eWNe1mU24HFZC8dt1OKhCQ==” spinCount=”100000″ sheet=”1″ objects=”1″ scenarios=”1″/>

 

Passo 4

Repetir o Passo 2 mas para o nosso ficheiro original.

Procuramos na pasta \xl\worksheets\sheet1.xml (o nome varia conforme a folha que temos bloqueada).

Procuramos a tag sheetProtection, substituiamo-la pela copiada no Passo 3.

Gravamos as alterações. Comprimimos a pasta em zip e voltamos a mudar a extensão de zip para xlsx.

Passo 5

Abrimos o nosso ficheiro de Excel alterado Folha_com_dados_importantes_copia.xlsx e desbloqueamos a folha, colocando na password a palavra 1 (escolhida no passo 1)

Como fizemos a substituição da hash SHA-512 o Excel reconhecer a palavra passe e desbloquear a folha.

Podemos fazer as alterações que pretendermos, voltar a proteger com a password 1 e repetir o processo para voltar a colocar a hash original.

Ninguém vai perceber que o ficheiro sofreu um ataque.

 

 

Os conselhos para prevenir e mitigar são:

– Não coloque informação confidencial nem explicita em ficheiros Excel.

– Nunca use o formato XLS, use sempre o XLSX com proteção ao nível do ficheiro.

 

Se pretende saber mais sobre estas e outras técnicas, consulte os eventos https://www.cybers3c.pt/