昨日、新しいKaliゲストをセットアップしていましたVM VirtualBoxで、インストール中に問題が発生しました。ソフトウェアパッケージをインストールするステップで、インストールが失敗するため、何度か再試行した後、スキップすることにしましたインストールの残りの部分は問題なく終了しました。
インストールが終了した後、私はどのパッケージが欠けているのかを解明しようとし始めました。私が最初に遭遇した問題は、働きがちなgettinでした。 aptの更新とインストールは常に失敗するため、/ var/lib/aptを削除してレポミラーの切り替えを試みましたが、何も役に立ちませんでした。 apt updateを実行するときに私が得る具体的なエラーは次のとおりです。
次に、SHA=チェックサムは一致しないが、MD5Sumは実際には一致することに気づきました。そのため、私の作業仮説は、ダウンロードまたはリポジトリに何も問題がなく、システムが間違ったチェックサムを生成していることです。 aptが常に失敗する理由。
この時点で、おそらくVMを核にしてシステムを再インストールする必要がありますが、これを学習体験として使用して問題を修正したいと思います。そのため、次に行うこと。
Edit@Gilles 'SO- stop be evil be great'の素晴らしい回答に応えて。
Packages.gzファイルが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
したがって、私が知る限り、Packages.gzファイルは正しくダウンロードされ、実際のハッシュはInReleaseファイルから期待されるものと一致します。しかし、aptは依然として間違ったハッシュを報告します。
編集2:
したがって、多くのことをいじった後、aptを手動でバージョン1.8.4(元のバージョンは2.0.2)にダウングレードすることにより、最終的にaptを動作状態にしました。この問題は再現可能であり、apt upgrade
は2.0.2をインストールし、問題が再発します。
この回答は、Windows 10ホストを想定しています。
VirtualBoxの2020-2 AMD-64 ISOのいずれかの「ベースシステムのインストール」ステップ中に「Packages.gz」で同じ「ハッシュサム不一致」エラーのように見えるものに遭遇しました。また、Kali 2020-2 AMD-64 VirtualBox OVAを起動し、apt-get update
を試行中に同じエラーを受け取りました。 「デバイスガード」または「仮想化ベースのセキュリティ」とも呼ばれる「Windows Defender Credential Guard」機能を無効にすることで解決されたようです。
Windows Defender Credential Guardの管理
Windows 10 EnterpriseおよびWindows Server 2016で導入されたWindows Defender Credential Guardは、仮想化ベースのセキュリティを使用してシークレットを分離し、特権のあるシステムソフトウェアのみがアクセスできるようにします。これらのシークレットへの不正アクセスは、Pass-the-HashやPass-The-Ticketなどの資格情報の盗難攻撃につながる可能性があります。 Windows Defender Credential Guardは、NTLMパスワードハッシュ、Kerberosチケット許可チケット、およびアプリケーションによってドメイン資格情報として保存されている資格情報を保護することにより、これらの攻撃を防ぎます。 参照リンク
リンクで説明されているように、この機能を無効にする方法はいくつかあります。 「Windows Defender Credential Guardハードウェア準備ツール」を使用しました ここ を利用できます。
DG_Readiness_Tool_v3.6.ps1 -Disable -AutoReboot
Kaliパッケージアーカイブは現在、矛盾した状態にあります。それについては何もできません。
システムが誤ったチェックサムを生成することはほとんどありません。それが起こり得るいくつかの理由がありますが、それらのどれももっともらしいものではありません。
ネットワークが攻撃を受けている可能性はやや低く、攻撃者がダウンロードしているファイルを積極的に操作しています。 aptが行う暗号チェックにより攻撃が検出され、効果がないことを攻撃者が知っているため、それはまだありそうにありません(これらのチェックについては以下で説明します)。この攻撃は、エラーを無視するか、.deb
ファイルを手動でダウンロードしてdpkg
でインストールするユーザーに対してのみ有効です。
もちろん、不可能という意味ではありません。ファイルをダウンロードし、別の既知の正常なシステムでチェックサムを計算することにより、これが発生していないことを確認できます。私はそれを行い、期待値と実際のチェックサムの同じ値を得ました。
破損が1つのミラーにある可能性があるため、別のミラーを使用しました( https://http.kali.org/dists/kali-rolling/ )。 InRelease
ファイルには予想されるチェックサムが含まれ、Packages.gz
はチェックサムが検証されるファイルです。
$ 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
ご覧のとおり、期待されるチェックサムと実際のチェックサムは異なります。予想サイズと実際のサイズも異なります。最近ダウンロードしたにもかかわらず、別のミラーからPackages.gz
の別の古いバージョンを使用しています。
私は あなたと同じミラー からもファイルをダウンロードしましたが、ファイルには期待されるチェックサムがあったため、そのミラーで問題が修復されました。これは一時的なエラーのようで、修正はまだ完全には伝達されていません。
問題の原因がわかりません。これは攻撃の試みである可能性があります(ただし、破損している必要があるすべてのファイルが破損しているわけではないため、失敗したようです)。より可能性が高いのは、Kaliインフラストラクチャ内のどこかで同期が失敗したことです。
一致するMD5が表示される理由がわかりません。ダウンロードしたInRelease
ファイルに一貫性のないデータが含まれているか、MD5は弱いと見なされているため、aptはMD5を計算する必要さえありません。
約束どおり、aptがダウンロードのセキュリティを確保する方法は次のとおりです。次の暗号化インフラストラクチャは、パッケージが本物であることを保証するデータを生成します。
.deb
、またはソースパッケージのファイル)の 暗号化ハッシュ ¹を計算します。Packages
、および圧縮バージョンPackages.gz
)を構築し、Release
ファイルを生成しますPackages
ファイルのハッシュを含みます。Release
ファイルの 暗号化署名 を生成して保存しますRelease.gpg
にあります。同じファイルにデータと署名の両方を含むファイルInRelease
もあります。システム上:
InRelease
ファイル(またはRelease
およびRelease.gpg
)をダウンロードし、正しく署名されていることを確認します。また、Package
ファイルの暗号化ハッシュがInRelease
ファイルの値と一致することも確認します。Packages
ファイルの値と一致することを確認します。次の理由によりこれで十分です。
それでおしまい。 Kaliインフラストラクチャとダウンロードミラーの間、またはダウンロードミラーとシステムの間でファイルがどのように転送されたかは関係ありません。それらに対してTLSを使用すると、ネットワークの攻撃者が古いファイルを提供するのを防ぐことができるため、セキュリティが向上します(たとえば、重要なソフトウェアへのセキュリティ更新が行われなかったふりをして、対応する廃止されたバージョンの正規のパッケージを提供することにより、 Release
ファイルとその署名)。
何かが検出されない唯一の方法は、Kaliインフラストラクチャの内部です。署名キーが危険にさらされている場合、またはビルドサーバーが誤ったハッシュを報告している場合。
¹ この文脈では、「(暗号)チェックサム」、「(暗号)ハッシュ」、「(暗号)ダイジェスト」は同義語です。暗号化されていないチェックサムとハッシュがありますが、それらはここには含まれていません。
Hyper-Vを無効にするとうまくいきました。
このコメント に従って、私はそれを行うために必要なリソースを見つけました。
bcdedit
を実行し、{current}
の下のhypervisorlaunchtype
の設定を確認しますbcdedit /set {current} hypervisorlaunchtype off
を実行しますこれを実行すると、ゲストのステータスバーに「アオウミガメ」が表示されなくなります。
オンに戻すには、上記のように、次の代替手順3でプロセスを保存します。
bcdedit /set {current} hypervisorlaunchtype auto
を実行しますhttps://www.tenforums.com/tutorials/139405-run-hyper-v-virtualbox-vmware-same-computer.html#Part1
Docker For WindowsはHyper-Vを使用しているので、Dockerを使用している場合、DockerをシャットダウンするとVBoxの問題が解決する可能性があります。