업그레이드 후 WSL의 Kali Linux가 충돌함

업그레이드 후 WSL의 Kali Linux가 충돌함

그래서 내 질문은 다음과 같습니다. 을 사용하여 wsl 스토어에서 Kali Linux를 설치했습니다 $wsl --install -d kali-linux. 다음이 설치되었습니다.

PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2019.2"
VERSION_ID="2019.2"
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"

이렇게 하면 $sudo apt-get update다음 오류가 발생합니다.

Get:1 http://kali.download/kali kali-rolling InRelease [30.6 kB]
Err:1 http://kali.download/kali kali-rolling InRelease
  The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
Fetched 30.6 kB in 1s (40.9 kB/s)
Reading package lists... Done
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://kali.download/kali kali-rolling InRelease: The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
W: Failed to fetch http://http.kali.org/kali/dists/kali-rolling/InRelease  The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository <[email protected]>
W: Some index files failed to download. They have been ignored, or old ones used instead.

그런 다음 수동으로 설치했습니다.칼리-아카이브-keyring_2020.2_all.deb그런 다음 $sudo dpkg -i kali-archive-keyring_2020.2_all.deb 방금 이 작업을 수행했고 $sudo apt-get update예상대로 저장소가 업데이트되었습니다.

그런 다음 나는 이것을했고 $sudo apt-get upgrade 지금까지 작동했습니다. Kali를 다음으로 업그레이드했습니다.

PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2021.4"
VERSION_ID="2021.4"
VERSION_CODENAME="kali-rolling"
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"

이제 명령을 실행하면 $sudo apt-get upgrade예약된 패키지가 있다고 표시됩니다.

Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  apt apt-utils bind9-host bsdmainutils bsdutils coreutils cron curl dnsutils dpkg e2fsprogs fdisk findutils iproute2
  iptables isc-dhcp-client libbind9-161 libbsd0 libc-bin libc6 libcryptsetup12 libcurl4 libdevmapper1.02.1 libext2fs2
  libgnutls30 libiptc0 libirs161 libisccc161 libisccfg163 libldap-2.4-2 liblocale-gettext-perl liblwres161 libmount1
  libp11-kit0 libpam-modules libpam-modules-bin librtmp1 libselinux1 libsemanage-common libslang2 libstdc++6
  libsystemd0 libtext-charwidth-perl libtext-iconv-perl libudev1 libxml2 libxtables12 login logrotate mawk mlocate
  mount net-tools passwd perl-base procps rsyslog sed sudo systemd tar udev util-linux vim-common vim-tiny wget whois
0 upgraded, 0 newly installed, 0 to remove and 67 not upgraded.

이 시점부터 무엇을 설치하려고 해도 항상 다음과 같은 오류가 발생하고 kali가 손상되어 더 이상 OS를 사용할 수 없습니다.

/usr/bin/perl: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
dpkg: error processing package libc6:amd64 (--configure):
 installed libc6:amd64 package post-installation script subprocess returned error exit status 127
Errors were encountered while processing:
 libc6:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

예를 들어 $sudo apt-get update나중에 시도해 보면 결과는 다음과 같습니다. sudo: account validation failure, is your account locked?

오류를 찾아봤지만 합리적인 해결책을 찾을 만큼 운이 좋지 않았습니다. 이 문제에 대한 도움을 주시면 감사하겠습니다. 미리 감사드립니다!

답변1

나는 이것을 재현할 수 있고 실제로 그들이 이것을 놓쳤다는 것에 놀랐습니다. 설명된 문제이 답변불행히도 Kali 문서는수동 설치버전.

wsl --install안타깝게도 이 위치가 바로 우리 가 Kali로 수행하는 작업에 사용하고 있는 것 같습니다 .

키링 업데이트(시도한 대로) 문제를 해결하는 데 충분했지만 더 이상은 아닙니다. 더 많은 서명 및/또는 패키지가 이제 더 이상 사용되지 않습니다.

우리를가능한또한 문제를 해결하는 방법을 찾으십시오. 그러나 가장 쉬운 해결책은 명령 대신 Microsoft Store 설치를 사용하는 것입니다 wsl --install. Microsoft Store에서 WSL에 Kali를 설치했는데 2021.3으로 바로 설치되었습니다.

wsl --unregister kali-linuxMicrosoft Store 버전을 설치하기 전에 다른 작업을 수행해야 합니다.

대안

Microsoft Store에서 설치할 수 없는 경우(리뷰에 따르면 회사 정책으로 인해 설치할 수 없는 경우) 몇 가지 대안이 있습니다. 이 모든 작업에는 Kali 타르볼을 가져온 다음 wsl --import컴파일하는 과정이 포함됩니다.

저는 개인적으로 Kali를 사용하여 성공적으로 테스트했습니다.

  • 옵션 1: Microsoft Store에 액세스할 수 있는 다른 컴퓨터에서 WSL Kali 복사

    이것이 당신에게 효과가 있다면 아마도 가장 신뢰할 수 있는 방법일 것입니다. 작업 컴퓨터에 Store 패키지를 설치하지 않으므로 위반해서는 안 됩니다.저것적어도 그것이 정책이다.

    • 업무용이 아닌 다른 PC(액세스 권한이 있다고 가정)를 사용하여 앱 스토어에서 WSL 및 Kali를 설치하세요.

    • 사용자 이름과 비밀번호(해당 컴퓨터의 Windows에 존재하는지 여부에 관계없이 궁극적으로 업무 컴퓨터에서 사용하려는 비밀번호)를 사용하여 구성합니다.

    • (선택 사항) 계속하고 sudo apt get update && sudo apt get upgrade.

    • 칼리 출구

    • PowerShell 또는 CMD에서:

      wsl --export kali-linux kali_clean.tar`
      
    • USB 드라이브를 사용하여 결과 tarball을 작업 컴퓨터로 전송합니다(정책에서 허용한다고 가정). USB가 허용되지 않는 경우 결과 tarball을 액세스할 수 있는 클라우드 어딘가에 배치하고 업무 컴퓨터에 다운로드합니다. 어쨌든 대안으로 가상 머신을 설치하려는 경우 이는 내 생각에 해당 프로세스만큼 안전하고 정책을 준수합니다. 결국 다운로드하게 됩니다무엇업무용 컴퓨터에 Kali(또는 기타 배포판)를 설치하세요.

    • 이제 업무용 컴퓨터에서...

    • 아래의 "타르볼에서 Kali 설치 및 구성" 지침으로 건너뛰세요...


  • 옵션 2: Kali WSL 빌드 스크립트에서 빌드

    • Kali는 WSL 빌드 프로세스를 구현하는 몇 안되는 배포판 중 하나입니다.매우쉽게 찾을 수 있습니다. 에 직접 기재되어 있습니다.칼리 받기페이지.

    • 먼저 별도의 WSL 인스턴스가 필요합니다. 우리는 Ubuntu가 처음부터 작동한다는 것을 알고 있으므로 wsl --install -d Ubuntu그것부터 시작하겠습니다. 완료되면 삭제할 수 있습니다.

    • 우분투에서는...

      sudo apt install -y debootstrap
      git clone https://gitlab.com/kalilinux/build-scripts/kali-wsl-chroot.git
      cd kali-wsl-chroot
      sudo ./build_chroot.sh
      # The build should complete for x64 but fail for ARM.  That's okay as long as `./x64/install.tar.gz` is created.
      sudo mv ./x64/install.tar.gz /mnt/c/somewhere/on/c/kali.install.tar.gz`
      
    • 우분투 종료

    • wsl --unregister Ubuntu필요한 경우 Ubuntu 배포판( )을 제거합니다.

    • 아래의 "타르볼에서 Kali 설치 및 구성" 지침으로 건너뛰세요...


  • 옵션 3: Kali Docker 이미지를 사용하여 tarball 만들기

    • Microsoft에서 지침을 제공합니다.여기거의 모든 배포판을 수동으로 가져오는 방법에 대해 설명합니다. 당신이 필요로 할:

    • 먼저 Ubuntu(하다wsl --install물론 패스는 잘 되겠죠)

    • Docker Desktop을 설치합니다(정책 및 라이선스가 허용하는 경우). 이제 Docker Desktop을 사용하려면 회사 규모에 따라 기업용 유료 라이선스가 필요합니다. 대안으로 Ubuntu 배포판에 Docker 엔진을 설치할 수 있습니다(아직 무료/OSS임).

    • docker pull kalilinux/kali또는 docker pull kalilinux/kali-rolling(참조칼리 도커 이미지.

    • 실행이미지( docker run kalilinux/kali:latest)

    • 이미지 이름을 알아보세요docker ps -a

    • 컨테이너를 tarball로 내보내기docker export <name_or_id_from_above> kali.tar

    • "타르볼에서 Kali 설치 및 구성" 아래 지침을 계속 진행하세요...


tarball에서 Kali 설치 및 구성

  • Windows에서 Kali용 디렉터리를 만듭니다. 나는 %userprofile%\WSL\instances\kali나와 같은 것을 사용하는 경향이 있습니다 .

  • cdPowerShell에서 이 디렉터리로 이동합니다.

  • wsl --import Kali . path\to\kali.tar --version 2(또는 kali.tar.gz옵션 2)

  • 그러면 tarball을 사용하여 Kali 인스턴스가 생성되고 wsl -d kali.

  • 를 사용하여 기본값으로 설정할 수도 있습니다 wsl --set-default kali.

  • 두 번째(빌드 스크립트) 및 세 번째(Docker 이미지) 옵션의 경우 adduserWSL 사용자가 필요하며 해당 암호를 설정합니다.

    adduser <username>
    usermod <username> -aG adm,cdrom,sudo,dip,plugdev
    
  • 이 모든 경우에 WSL은 root사용자로 자동 시작됩니다. 이는 /etc/wsl.conf당을 생성하여 변경할 수 있습니다.이 슈퍼유저의 답변.

답변2

나는 이렇게 말할 것이다당신은 그것을 놓쳤어요apt dist-upgrade. 단지 대신 사용하십시오 apt upgrade. 불행히도 Kali가 손상되었을 수 있으므로 지우고 다시 설치해야 합니다.

답변3

이는 롤링 릴리스 배포판의 일반적인 문제입니다. 업데이트를 다소 자주 유지하는 경우 장기간 업데이트가 없는 후 "따라잡기"를 시도하면 업데이트가 실패하게 됩니다.

현재까지 롤링 릴리스 배포판에서는 과거 버전을 현재 최신 버전으로 업데이트할 수 있다고 주장하지 않습니다. 그렇게 하려면 다음이 필요합니다.정말 엄격하다변경 관리는 새로운 기능의 도입 속도를 늦추고 오래된 버그를 제거하거나, 이에 의존하는 모든 패키지와 패키지 자체가 의존하는 모든 새 패키지의 모든 이전 버전으로 모든 새 패키지를 테스트하고 이에 따라 항목 메타데이터에 따라 종속성을 설정합니다. 후자는 많은 작업이 필요하며 새로운 업데이트가 나올 때마다 작업량이 기하급수적으로 늘어날 수 있습니다.

따라서 실제로는 롤링 릴리스 릴리스를 업데이트하는 데 항상 "슬라이딩 윈도우" 시간이 있습니다. 이 창을 놓치면 문제가 발생할 가능성이 높아집니다.

Kali의 문서에는 다음과 같이 나와 있습니다.(강조는 내 것)

Kali를 언제 업데이트해야 합니까?

Kali가 기본으로 설치되어 있다면,몇 주마다 업데이트를 확인해야 합니다.새 버전의 도구가 필요하거나 보안 업데이트 소식을 듣는 경우 일정이 빨라질 수 있습니다. 그러나 참여하기 전에 모든 도구가 제대로 작동하는지 확인하고 참여 중에 업데이트하지 않는 것이 좋습니다. Kali는 롤링 릴리스이므로 때때로 문제가 발생할 수 있으며 필요한 도구가 중단될 수 있습니다.

Kali를 사용하는 경우 last-snapshot해당 연도의 다음 Kali 버전이 출시될 때까지 업데이트를 받을 수 없습니다. 따라서 트위터에서 Kali를 팔로우하거나 몇 달에 한 번씩 Kali 웹사이트를 확인하는 것이 좋습니다. Kali는 1년에 4번 출시되며 편안한 분기별 일정을 따릅니다.

last-snapshot따라서 이 버전 대신 해당 버전을 사용하더라도 rolling분기별 릴리스는 2019.2에서 2021.4로 점프하면 그 사이에 총 9개의 다른 릴리스를 건너뛰게 된다는 것을 의미합니다. 비록 그것이 사용된다 하더라도 apt dist-upgrade, 나는 그것이 성공할 것이라고 장담하지 않을 것입니다.

Microsoft가 오늘 2021년 12월에 WSL에 Kali 2019.2를 제공한다면 이 시점에서는 완전히 동결되어 업그레이드가 불가능할 것으로 예상할 수 있습니다. 요구 사항을 충족하는 경우 그대로 사용할 수 있습니다. 최신 버전의 WSL이 필요한 경우 WSL용으로 특별히 패키지된 최신 버전을 찾아야 합니다.

답변4

이것은 나에게 잘 작동합니다.

wsl --unregister kali-linux
wsl --install kali-linux --web-download

여기서는 --web-downloadMicrosoft Store가 아닌 인터넷에서 배포판을 다운로드한다는 의미입니다.

관련 정보