SHA256 errado ou quebrado na nova VM Kali

SHA256 errado ou quebrado na nova VM Kali

Ontem eu estava configurando uma nova VM convidada Kali no VirtualBox e tive alguns problemas durante a instalação. Na etapa de instalação dos pacotes de software, a instalação falharia, então, após algumas tentativas, decidi pular essa etapa. O resto da instalação terminou sem problemas.

Após o término da instalação, comecei a tentar descobrir quais pacotes estavam faltando. O primeiro problema que encontrei foi me preparar para trabalhar. apt update e install sempre falhavam, então limpei /var/lib/apt e tentei trocar os espelhos do repositório, mas nada ajudou. O erro específico que recebo ao executar o apt update é:

insira a descrição da imagem aqui

Então percebi que as somas de verificação SHA não correspondem, mas o MD5Sum realmente corresponde. Portanto, minha hipótese de trabalho é que não há nada de errado com os downloads ou repositórios, meu sistema está produzindo somas de verificação erradas e é por isso que o apt sempre falha.

Neste ponto, eu provavelmente deveria destruir a VM e reinstalar o sistema, mas prefiro usar isso como uma experiência de aprendizado e corrigir o problema. Então, espero sugestões sobre o que fazer a seguir.

Editarem resposta à ótima resposta de @Gilles 'SO- pare de ser mau'.

Tentei verificar se o arquivo Packages.gz está fora de sincronia com os metadados no InRelease.

root@kali:/var/lib/apt/lists/partial# rm *
root@kali:/var/lib/apt/lists/partial# apt update
Get:1 http://ftp.acc.umu.se/mirror/kali.org/kali kali-rolling InRelease [30.5 kB]
Get:2 http://ftp.acc.umu.se/mirror/kali.org/kali kali-rolling/main amd64 Packages [16.3 MB]                                    
Err:2 http://ftp.acc.umu.se/mirror/kali.org/kali kali-rolling/main amd64 Packages
  Hash Sum mismatch
  Hashes of expected file:
   - Filesize:16317378 [weak]
   - SHA256:77a3e22e7b5ea34fca2d74d79a9d46f4bb27af0dfb56d6052e2d288b3c684d98
   - SHA1:f5b21d796c25dc10d382ffedc1ce4d7bee376057 [weak]
   - MD5Sum:257a18dc4dff52c27f94f6e66a5a82bf [weak]
  Hashes of received file:
   - SHA256:5d1d8ffe97ff7a35ce5537925d7790967b086c75dadd5576688c915830bf0c84
   - SHA1:ce0617edf0193841072c1cba00b6797d2b3dd0eb [weak]
   - MD5Sum:257a18dc4dff52c27f94f6e66a5a82bf [weak]
   - Filesize:16317378 [weak]
  Last modification reported: Fri, 03 Apr 2020 15:48:14 +0000
  Release file created at: Fri, 03 Apr 2020 15:48:24 +0000

Fetched 16.3 MB in 5s (3368 kB/s)
Failed to fetch http://ftp.acc.umu.se/mirror/kali.org/kali/dists/kali-rolling/main/binary-amd64/Packages.gz
  Hash Sum mismatch
   Hashes of expected file:
    - Filesize:16317378 [weak]
    - SHA256:77a3e22e7b5ea34fca2d74d79a9d46f4bb27af0dfb56d6052e2d288b3c684d98
    - SHA1:f5b21d796c25dc10d382ffedc1ce4d7bee376057 [weak]
    - MD5Sum:257a18dc4dff52c27f94f6e66a5a82bf [weak]
   Hashes of received file:
    - SHA256:5d1d8ffe97ff7a35ce5537925d7790967b086c75dadd5576688c915830bf0c84
    - SHA1:ce0617edf0193841072c1cba00b6797d2b3dd0eb [weak]
    - MD5Sum:257a18dc4dff52c27f94f6e66a5a82bf [weak]
    - Filesize:16317378 [weak]
   Last modification reported: Fri, 03 Apr 2020 15:48:14 +0000
   Release file created at: Fri, 03 Apr 2020 15:48:24 +0000[0m
    Some index files failed to download. They have been ignored, or old ones used instead.[0m
root@kali:/var/lib/apt/lists/partial# ls
ftp.acc.umu.se_mirror_kali.org_kali_dists_kali-rolling_InRelease
ftp.acc.umu.se_mirror_kali.org_kali_dists_kali-rolling_main_binary-amd64_Packages.gz.FAILED

root@kali:/var/lib/apt/lists/partial# md5sum ftp.acc.umu.se_mirror_kali.org_kali_dists_kali-rolling_ main_binary-amd64_Packages.gz.FAILED 
257a18dc4dff52c27f94f6e66a5a82bf  ftp.acc.umu.se_mirror_kali.org_kali_dists_kali-rolling_main_binary-amd64_Packages.gz.FAILED

root@kali:/var/lib/apt/lists/partial# sha1sum  ftp.acc.umu.se_mirror_kali.org_kali_dists_kali-rollingg_main_binary-amd64_Packages.gz.FAILED 
f5b21d796c25dc10d382ffedc1ce4d7bee376057  ftp.acc.umu.se_mirror_kali.org_kali_dists_kali-rolling_main_binary-amd64_Packages.gz.FAILED

root@kali:/var/lib/apt/lists/partial# sha256sum ftp.acc.umu.se_mirror_kali.org_kali_dists_kali-rollinng_main_binary-amd64_Packages.gz.FAILED 
77a3e22e7b5ea34fca2d74d79a9d46f4bb27af0dfb56d6052e2d288b3c684d98  ftp.acc.umu.se_mirror_kali.org_kali_dists_kali-rolling_main_binary-amd64_Packages.gz.FAILED

Pelo que sei, o arquivo Packages.gz foi baixado corretamente e os hashes reais correspondem ao que é esperado do arquivo InRelease. Mas o apt ainda reporta hashes errados.

Editar 2:

Então, depois de mexer muito, finalmente consegui entrar em um estado de funcionamento, fazendo o downgrade manualmente para a versão 1.8.4 (a versão original era 2.0.2). O problema é reproduzível, a execução apt upgradeinstala o 2.0.2 e o problema retorna.

Responder1

O arquivo do pacote Kali está atualmente em um estado inconsistente. Você não pode fazer nada sobre isso.

Seria muito improvável que o seu sistema produzisse somas de verificação erradas. Existem vários motivos pelos quais isso pode acontecer, mas nenhum deles é plausível.

  • O software que calcula a soma de verificação pode apresentar erros. Isto é extremamente improvável: calcular somas de verificação é fácil e o código para fazer isso é muito estável e fácil de testar.
  • O software que baixa os arquivos, os armazena, os verifica e assim por diante pode apresentar erros. É muito improvável que haja erros de tal forma que calcule somas de verificação erradas, em vez de cometer erros.
  • O software pode estar baixando os arquivos errados, truncando-os ou codificando-os de uma forma que não seja detectada. Este é o ponto menos implausível aqui.
  • Seu sistema pode ser comprometido de forma a calcular somas de verificação erradas. Isso é implausível porque um invasor que consegue fazer isso pode fazer coisas muito mais úteis de uma forma menos visível.

É um pouco menos improvável que sua rede esteja sob ataque e que um invasor esteja manipulando ativamente os arquivos que você está baixando. Ainda é improvável porque o invasor saberia que o ataque seria detectado e ineficaz devido às verificações criptográficas que o apt faz (explicarei essas verificações abaixo). O ataque só seria útil contra um usuário que ignorasse o erro ou que baixasse .debarquivos manualmente e os instalasse com o dpkg.

Improvável não significa impossível, é claro. Você pode verificar se nada disso está acontecendo baixando os arquivos e calculando sua soma de verificação em um sistema diferente e em bom estado. Fiz isso e obtive os mesmos valores de somas de verificação esperadas e reais.

A corrupção pode estar em um espelho, então usei um espelho diferente (https://http.kali.org/dists/kali-rolling/). O InReleasearquivo contém as somas de verificação esperadas e Packages.gzé o arquivo cujas somas de verificação são verificadas.

$ wget -q https://http.kali.org/dists/kali-rolling/InRelease https://http.kali.org/dists/kali-rolling/main/binary-arm64/Packages.gz
$ TZ=UTC \ls -log InRelease Packages.gz
-rw-rw-r-- 1    30501 Apr  3 15:48 InRelease
-rw-rw-r-- 1    30501 Apr  3 15:48 InRelease
-rw-rw-r-- 1 16179052 Apr  3 12:04 Packages.gz
$ md5sum Packages.gz
31a332531ecf9d092aaad9a3f4885767  Packages.gz
$ sha1sum Packages.gz
138883655ff0d58a3779acbeda0d61f7552c03eb  Packages.gz
$ sha256sum Packages.gz
63ae17c54bc57dc445ba4a3555bec3fa077c5de6eec0b11363680efc23fd09ec  Packages.gz
$ grep main/binary-amd64/Packages.gz InRelease
 257a18dc4dff52c27f94f6e66a5a82bf 16317378 main/binary-amd64/Packages.gz
 f5b21d796c25dc10d382ffedc1ce4d7bee376057 16317378 main/binary-amd64/Packages.g
 77a3e22e7b5ea34fca2d74d79a9d46f4bb27af0dfb56d6052e2d288b3c684d98 16317378 main/binary-amd64/Packages.gz

Como você pode ver, as somas de verificação esperadas e reais são diferentes. Os tamanhos esperados e reais também são diferentes. Eu tenho uma versão diferente e mais antiga da Packages.gzsua, embora tenha baixado mais recentemente, mas de um espelho diferente.

Eu também baixei os arquivos deo mesmo espelho que vocêe aí os arquivos tiveram as somas de verificação esperadas, então o problema foi reparado naquele espelho. Parece um erro temporário e a correção ainda não foi totalmente propagada.

Não sei o que causou o problema. Poderia ser uma tentativa de ataque (mas, nesse caso, parece ter falhado, pois nem todos os arquivos que precisavam ser corrompidos foram corrompidos). O mais provável é que tenha sido uma falha de sincronização em algum lugar dentro da infraestrutura de Kali.

Não sei por que você está vendo um MD5 correspondente. Ou o InReleasearquivo que você baixou contém dados inconsistentes ou o apt nem se preocupa em calcular o MD5 porque é considerado fraco.

Conforme prometido, veja como o apt garante a segurança dos downloads. A seguinte infraestrutura criptográfica gera os dados que garantem que os pacotes são genuínos:

  • Um servidor de compilação calcula ohash criptográfico¹ de cada pacote ( .deb, ou arquivo de um pacote fonte).
  • Um servidor de hash constrói a lista de pacotes ( Packagese uma versão compactada Packages.gz) a partir dos hashes enviados pelo servidor de construção para cada parte da distribuição e gera um Releasearquivo contendo os hashes dos Packagesarquivos.
  • Um servidor de assinatura, que possui umPGPchave privada, gera umaassinatura criptográficado Releasearquivo e o armazena em Release.gpg. Há também um arquivo InReleaseque contém os dados e a assinatura no mesmo arquivo.

No seu sistema:

  • Sua imagem de instalação inicial contém a chave pública PGP para a chave privada do servidor de construção, bem como todas as ferramentas necessárias para validar se um arquivo está assinado corretamente com esta chave.
  • Quando o apt baixa a lista de pacotes, ele baixa o InReleasearquivo (ou talvez Releasee Release.gpg) e verifica se está assinado corretamente. Ele também verifica se os hashes criptográficos dos Packagearquivos correspondem ao valor do InReleasearquivo.
  • Quando o apt baixa um pacote, ele verifica se os hashes do arquivo do pacote correspondem aos valores do Packagesarquivo.

Isto é suficiente porque:

  • Ninguém sabe como criar um arquivo com o mesmo hash criptográfico de outro arquivo existente. (Isso é verdade mesmo para MD5 e SHA-1, para os quais sabemos como fazer uma colisão, ou seja, como fazer dois arquivos com o mesmo hash, mas não como calcular uma segunda pré-imagem, ou seja, encontrar outro arquivo cujo hash seja o mesmo que um determinado arquivo.)
  • Ninguém sabe como gerar uma assinatura PGP válida sem ter a chave privada.

É isso. Observe que não importa como os arquivos foram transferidos entre a infraestrutura Kali e o espelho de download, ou entre o espelho de download e seu sistema. Usar TLS para eles é uma melhoria de segurança porque evita que um invasor de rede forneça arquivos obsoletos (por exemplo, de fingir que uma atualização de segurança para um software crítico nunca aconteceu, fornecendo pacotes genuínos, mas obsoletos, com a versão obsoleta correspondente do Releasearquivo e sua assinatura).

A única maneira de algo passar despercebido é dentro da infraestrutura Kali: se a chave de assinatura estiver comprometida ou se os servidores de compilação reportarem os hashes errados.

¹ Neste contexto, “checksum (criptográfico)”, “hash (criptográfico)” e “digest (criptográfico)” são sinônimos. Existem somas de verificação e hashes não criptográficos, mas eles não estão envolvidos aqui.

Responder2

Esta resposta pressupõe um host do Windows 10.

Encontrei o que parece ser o mesmo erro “Hash Sum incompatível” em “Packages.gz” durante a etapa “Instalando o sistema básico” de qualquer um dos ISOs AMD-64 2020-2 no VirtualBox. Também inicializei o Kali 2020-2 amd-64 VirtualBox OVA e recebi o mesmo erro ao tentar um arquivo apt-get update. Parece que foi resolvido para mim com a desativação do recurso "Windows Defender Credential Guard", também conhecido como "Device Guard" ou "Virtualization Based Security".

Gerenciar o Windows Defender Credential Guard

Introduzido no Windows 10 Enterprise e no Windows Server 2016, o Windows Defender Credential Guard usa segurança baseada em virtualização para isolar segredos para que apenas softwares de sistema privilegiados possam acessá-los. O acesso não autorizado a esses segredos pode levar a ataques de roubo de credenciais, como Pass-the-Hash ou Pass-The-Ticket. O Windows Defender Credential Guard evita esses ataques protegendo hashes de senha NTLM, tíquetes de concessão de tíquetes Kerberos e credenciais armazenadas por aplicativos como credenciais de domínio. Link de referência

Existem vários métodos para desabilitar esse recurso, conforme explicado no link. Usei a "ferramenta de preparação de hardware do Windows Defender Credential Guard", disponívelaqui.

DG_Readiness_Tool_v3.6.ps1 -Disable -AutoReboot

Responder3

Desativando o Hyper-V

Desativar o Hyper-V funcionou para mim.

Poreste comentário, encontrei os recursos necessários para fazer exatamente isso.

  1. Abra um prompt cmd elevado
  2. Execute bcdedite verifique a configuração hypervisorlaunchtypeem{current}
  3. Correrbcdedit /set {current} hypervisorlaunchtype off
  4. Reinício

Depois de fazer isso, não vejo mais a “tartaruga verde” na barra de status do convidado.

Para ligá-lo novamente, salve o processo conforme acima com esta etapa alternativa 3:

  1. Correrbcdedit /set {current} hypervisorlaunchtype auto

https://www.tenforums.com/tutorials/139405-run-hyper-v-virtualbox-vmware-same-computer.html#Part1

Observação:

Percebi que o Docker para Windows usa Hyper-V, então é possível que desligar o Docker resolva os problemas do VBox se você estiver usando o Docker.

informação relacionada