I bought my first Apple laptop in 2005 as I was keen to leverage native UNIX programs on x86 hardware. Since that time there have a number of packaging managers that I have used (Fink, Macports) to now settle on Homebrew for installing UNIX programs on my laptop.

In recent years I have found that even with a package manager, software libraries and dependencies of non-native versions of Python and Ruby make installation of programs quite bloated. While storage these days is relatively cheap, I have also started trying to do more with less in terms of laptop hardware resources.

All of these things have brought me to a point where my primary laptop of choice is currently the Apple M1 Macbook Air (MBA). The form factor, size, weight mean it is perfect for travelling as well as working in the office.

I recently made the decision to rely less on using Homebrew for installing software and start looking at whether I can just leverage a Linux VM instead. This led me to start looking into a Docker container that is a fully fledged Linux operating system. The initial issue with this is that you need a host Linux to run Docker in, which means using virtualisation software. In effect, you are using MacOS to first run a Linux VM using virtualisation technology and then run Docker inside that Linux VM.

The software that makes all this possible on my M1 MBA is Multipass

Pros:

  • Virtualisation on MacOS uses the extremely efficient and performant Hypervisor.Framework
  • No need to install resource intensive software such as Virtualbox or VMWare Fusion

Cons:

  • Container technology is built to be ephemeral and is not typically a good use case for a full operating system

Details on setting up the environment are provided further down below.

Workflow

As containers are ephemeral, I make sure that any changes I make are regularly committed as a new image and pushed to a container registry. This ensures that the next ‘pull’ of the image will contain the latest changes. Changes are not common and typically only related to additional software installed or updates done of packages.

To first detach from a running container to do this, you need to use the Ctrl-P followed by Ctrl-Q key combination.


$ docker ps

CONTAINER ID   IMAGE                    COMMAND        CREATED         STATUS         PORTS                                                           NAMES
986e8b60c680   74000c90faf3             "/bin/zsh"     7 minutes ago   Up 7 minutes                                                                   kali-linux-docker-arm64
ba8229e8aa62   portainer/portainer-ce   "/portainer"   2 hours ago     Up 2 hours     8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer

$ docker container commit kali-linux-docker-arm64 shsingh/kali-linux-docker-arm64:latest

sha256:efff31b12c4c2baebf22203a81bdcd5fbed322f2e605a371d08254be7e0324d7

$ docker push shsingh/kali-linux-docker-arm64:latest

The push refers to repository [docker.io/shsingh/kali-linux-docker-arm64]
30f8ab718298: Pushed
7d4420eb69bf: Layer already exists
1abaf688267c: Layer already exists
e495438ebf4d: Layer already exists
b45e458bde96: Layer already exists
latest: digest: sha256:98c2d327b74aa8652b6a76485f106068dfd97c02762b7da9341690b3c2eacf86 size: 1381

Additional Thoughts

Quirks with the setup

As of the writing of this post, I’ve been using this setup and workflow without any significant issues. It is likely not a scenario others may find appealing for running Linux on Apple laptops, but as I mention above this fits my needs fine.

The only thing I’ve found to be an issue sometimes is terminal emulation quirks. My typical setup is to use iTerm2 with tmux and so attaching to the Docker container means I am using a console and not a login shell into Kali Linux. Software that has reliance on the terminal type (e.g. ncurses) can sometimes be a bit flaky. It doesn’t cause me too much grief as I don’t tend to use TUI based software too much.

Things to look into at some stage

I’m quite enamored with Multipass and will look to using this for MicroK8s at some stage. The installation steps for MicroK8s suggest it natively uses Multipass so that makes things easier. The choice of MicroK8s over other micro Kubernetes alternatives such as k0s or k3s for development use is something @codecowboy covers in a series of posts.

I may look into mounting a local file system from MacOS for use in the Kali Linux container. At this stage there is not much I need from the local filesystem and the information inside the container is fairly transient. I am also a bit cautious with mounting MacOS into other operating systems as I am a very heavy user of metadata and tagging. I had previously found that files with all my MacOS tags all got removed when I mounted them into another operating system as they are MacOS specific.

Example of the metadata included with a file on MacOS:


$ mdls docker

_kMDItemDisplayNameWithExtensions  = "docker"
kMDItemContentCreationDate         = 2022-07-29 22:30:24 +0000
kMDItemContentCreationDate_Ranking = 2022-07-29 00:00:00 +0000
kMDItemContentModificationDate     = 2022-07-29 22:30:24 +0000
kMDItemContentType                 = "public.unix-executable"
kMDItemContentTypeTree             = (
    "public.unix-executable",
    "public.data",
    "public.item",
    "public.executable"
)
kMDItemDateAdded                   = 2022-07-29 22:30:24 +0000
kMDItemDisplayName                 = "docker"
kMDItemDocumentIdentifier          = 0
kMDItemFSContentChangeDate         = 2022-07-29 22:30:24 +0000
kMDItemFSCreationDate              = 2022-07-29 22:30:24 +0000
kMDItemFSCreatorCode               = ""
kMDItemFSFinderFlags               = 0
kMDItemFSHasCustomIcon             = (null)
kMDItemFSInvisible                 = 0
kMDItemFSIsExtensionHidden         = 0
kMDItemFSIsStationery              = (null)
kMDItemFSLabel                     = 0
kMDItemFSName                      = "docker"
kMDItemFSNodeCount                 = (null)
kMDItemFSOwnerGroupID              = 20
kMDItemFSOwnerUserID               = 501
kMDItemFSSize                      = 97
kMDItemFSTypeCode                  = ""
kMDItemInterestingDate_Ranking     = 2022-07-29 00:00:00 +0000
kMDItemKind                        = "Unix Executable File"
kMDItemLogicalSize                 = 97
kMDItemPhysicalSize                = 4096
kMDItemSupportFileType             = (
    MDSystemFile
)

I also haven’t as yet played with creating cloud-init scripts to instantiate the Multipass images. I recently found an extremely useful example that I may look into integrating into my setup.

Kali Linux as desktop operation system

I’ve been a user of Kali Linux and its predecessor Backtrack since 2006. Back then I primarily used Backtrack as a Live CD deployment and got used to the tools it included. Over the years Kali Linux has become more of a complete desktop operating system for daily use and is based on Debian. While there is a large list of Linux desktop systems for use, I have found Kali Linux suitable for my needs. If I ever had a need for a native graphical Linux environment then I’d be quite comfortable with Kali Linux for that purpose. A major reason for this is that a large number of pentesting tools are very useful for diagnostics, troubleshooting and passive reconnaisance to get a better understanding of the applications and networks I work with.

Kali Linux also provides slim Docker images which can be used as the base.


$ docker run --tty --interactive kalilinux/kali-rolling

Unable to find image 'kalilinux/kali-rolling:latest' locally
latest: Pulling from kalilinux/kali-rolling
62c5da721989: Pull complete
Digest: sha256:7012433c7a6843bfc90e1c0ba695fa70b0c0401788a055c08635757fe2f23970
Status: Downloaded newer image for kalilinux/kali-rolling:latest
┌──(root㉿8450debdf88a)-[/]
└─#

The base image does not install any tools and there are metapackages which can be used to install the tools needed. This allows me to install the ‘kali-linux-headless’ metapackage which ensures no extra GUI or X11 packages are unnecessarily installed. While the number of packages installed is quite large, it is worth remembering that is to run a operating system inside the container and this would be a typical build in a standard VM or desktop environment.


$ apt update; apt-get install kali-linux-headless

Get:1 http://kali.download/kali kali-rolling InRelease [30.6 kB]
Get:2 http://kali.download/kali kali-rolling/contrib arm64 Packages [93.0 kB]
Get:3 http://kali.download/kali kali-rolling/main arm64 Packages [18.2 MB]
Get:4 http://kali.download/kali kali-rolling/non-free arm64 Packages [173 kB]
Fetched 18.5 MB in 2s (8020 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
9 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  adwaita-icon-theme aircrack-ng alsa-topology-conf alsa-ucm-conf amass amass-common apache2 apache2-bin apache2-data apache2-utils apt-file arj arp-scan arping at-spi2-core atftpd attr axel bind9-dnsutils bind9-host bind9-libs binfmt-support binutils binutils-aarch64-linux-gnu
  binutils-common binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 binwalk blt bluez bluez-firmware bluez-hcidump build-essential bulk-extractor bully bundler busybox bzip2 ca-certificates ca-certificates-java cadaver cewl cgpt chntpw cifs-utils clang clang-13 command-not-found
  commix console-setup console-setup-linux cpio cpp cpp-11 crackmapexec cramfsswap creddump7 crunch cryptcat cryptsetup cryptsetup-bin cryptsetup-initramfs cryptsetup-nuke-password curl curlftpfs davtest dbd dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common
  dbus-user-session dconf-gsettings-backend dconf-service dcraw default-jre default-jre-headless default-mysql-server dirb dirmngr distro-info-data dmidecode dmitry dmsetup dns2tcp dnschef dnsenum dnsrecon dos2unix dpkg-dev easy-rsa enum4linux ethtool ettercap-common
  ettercap-graphical evil-winrm exe2hexbat exiv2 expect exploitdb fakeroot ffuf fierce file firebird3.0-common firebird3.0-common-doc firmware-amd-graphics firmware-atheros firmware-intel-sound firmware-iwlwifi firmware-libertas firmware-linux firmware-linux-free
  firmware-linux-nonfree firmware-misc-nonfree firmware-realtek firmware-sof-signed firmware-ti-connectivity firmware-zd1211 flac fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-extra fonts-font-awesome fonts-freefont-ttf fonts-lato fonts-liberation2 fonts-lyx fping
  freeglut3 freerdp2-x11 freetds-common ftp fuse3 g++ g++-11 galera-4 gawk gcc gcc-11 gcc-11-base gcc-12-base gcc-mingw-w64-base gcc-mingw-w64-i686-win32 gcc-mingw-w64-i686-win32-runtime gcc-mingw-w64-x86-64-win32 gcc-mingw-w64-x86-64-win32-runtime gdal-data gdal-plugins gdisk
  geoip-database git git-man gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm gpp-decrypt graphviz groff-base gsettings-desktop-schemas gss-ntlmssp gtk-update-icon-cache hash-identifier hashcat hashcat-data hashcat-utils hashdeep hashid
  hicolor-icon-theme hping3 hwloc hydra hyperion i2c-tools ibverbs-providers icu-devtools ieee-data ifenslave ifupdown ike-scan impacket-scripts inetsim initramfs-tools initramfs-tools-core iodine iproute2 iptables ipython3 isc-dhcp-client isc-dhcp-common iso-codes isympy-common
  isympy3 iw java-common javascript-common john john-data kali-linux-core kali-linux-firmware kali-tweaks kbd keyboard-configuration keyutils kismet kismet-capture-common kismet-capture-linux-bluetooth kismet-capture-linux-wifi kismet-capture-nrf-51822 kismet-capture-nrf-52840
  kismet-capture-nrf-mousejack kismet-capture-nxp-kw41z kismet-capture-rz-killerbee kismet-capture-ti-cc-2531 kismet-capture-ti-cc-2540 kismet-capture-ubertooth-one kismet-core kismet-logtools klibc-utils kmod krb5-locales laptop-detect laudanum lbd ldap-utils less libaec0
  libafflib0v5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libann0 libaom3 libapache2-mod-php libapache2-mod-php8.1 libapparmor1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapt-pkg-perl libarchive-zip-perl libarchive13 libargon2-1
  libarmadillo11 libarpack2 libasan6 libasound2 libasound2-data libassuan0 libasyncns0 libatk-bridge2.0-0 libatk-wrapper-java libatk-wrapper-java-jni libatk1.0-0 libatk1.0-data libatm1 libatomic1 libatspi2.0-0 libaudio2 libauthen-sasl-perl libavahi-client3 libavahi-common-data
  libavahi-common3 libavcodec59 libavutil57 libbcg729-0 libbfio1 libbinutils libblas3 libblosc1 libbluetooth3 libboost-iostreams1.74.0 libboost-thread1.74.0 libbpf0 libbrotli1 libbsd0 libbson-1.0-0 libbtbb1 libbytes-random-secure-perl libc-ares2 libc-dev-bin libc-devtools libc-l10n
  libc6 libc6-dev libcairo-gobject2 libcairo2 libcap2-bin libcapstone-dev libcapstone4 libcbor0.8 libcc1-0 libccid libcdt5 libcephfs2 libcfitsio9 libcgi-fast-perl libcgi-pm-perl libcgraph6 libclang-common-13-dev libclang-cpp13 libclang1-13 libcli1.10 libclone-perl libcodec2-1.0
  libcolord2 libcommon-sense-perl libconfig-inifiles-perl libconfig9 libcrypt-dev libcrypt-random-seed-perl libcrypt-ssleay-perl libcrypto++8 libcryptsetup12 libct4 libctf-nobfd0 libctf0 libcups2 libcurl3-gnutls libcurl4 libdata-dump-perl libdate-manip-perl libdatrie1 libdav1d6
  libdaxctl1 libdbd-mariadb-perl libdbi-perl libdbus-1-3 libdconf1 libde265-0 libdecor-0-0 libdecor-0-plugin-1-cairo libdeflate0 libdevmapper1.02.1 libdigest-bubblebabble-perl libdigest-hmac-perl libdouble-conversion3 libdpkg-perl libdrm-amdgpu1 libdrm-common libdrm-nouveau2
  libdrm-radeon1 libdrm2 libdw1 libedit2 libegl-mesa0 libegl1 libelf1 libencode-locale-perl libepoxy0 liberror-perl libev4 libevdev2 libevent-2.1-7 libevent-core-2.1-7 libevent-openssl-2.1-7 libevent-pthreads-2.1-7 libewf2 libexiv2-27 libexpat1 libexpat1-dev libexporter-tiny-perl
  libfakeroot libfbclient2 libfcgi-bin libfcgi-perl libfcgi0ldbl libfdisk1 libffi-dev libfido2-1 libfile-fcntllock-perl libfile-listing-perl libflac8 libflashrom1 libfluidsynth3 libfmt8 libfont-afm-perl libfontconfig1 libfontenc1 libfreerdp-client2-2 libfreerdp2-2 libfreetype6
  libfreexl1 libfribidi0 libfstrm0 libftdi1-2 libfuse2 libfuse3-3 libfyba0 libgbm1 libgc1 libgcc-11-dev libgcc-s1 libgd3 libgdal31 libgdbm-compat4 libgdbm6 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgeoip1 libgeos-c1v5 libgeos3.11.0 libgeotiff5 libgfapi0
  libgfortran5 libgfrpc0 libgfxdr0 libgif7 libgl1 libgl1-mesa-dri libglapi-mesa libglib2.0-0 libglib2.0-data libglu1-mesa libglusterfs0 libglvnd0 libglx-mesa0 libglx0 libgmp-dev libgmpxx4ldbl libgomp1 libgpgme11 libgpm2 libgprofng0 libgraphite2-3 libgsm1 libgssapi-krb5-2 libgtk-3-0
  libgtk-3-bin libgtk-3-common libgts-0.7-5 libgts-bin libgudev-1.0-0 libgvc6 libgvpr2 libharfbuzz0b libhdf4-0-alt libhdf5-103-1 libhdf5-hl-100 libheif1 libhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhtml-tree-perl
  libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl libhttp-dav-perl libhttp-message-perl libhttp-negotiate-perl libhttp-server-simple-perl libhwasan0 libhwloc-plugins libhwloc15 libi2c0 libibverbs1 libice6 libicu-dev libicu71 libidn12 libimage-exiftool-perl libimagequant0
  libiniparser1 libinput-bin libinput10 libinstpatch-1.0-2 libio-html-perl libio-multiplex-perl libio-socket-inet6-perl libio-socket-ssl-perl libip4tc2 libip6tc2 libipc-shareable-perl libisl23 libitm1 libiw30 libjack-jackd2-0 libjansson4 libjbig0 libjemalloc2 libjpeg-turbo-progs
  libjpeg62-turbo libjs-jquery libjs-jquery-ui libjs-skeleton libjs-sphinxdoc libjs-underscore libjson-c5 libjson-perl libjson-xs-perl libjudydebian1 libk5crypto3 libkeyutils1 libklibc libkmlbase1 libkmldom1 libkmlengine1 libkmod2 libkrb5-3 libkrb5support0 libksba8 liblab-gamut1
  liblapack3 liblbfgsb0 liblcms2-2 libldap-2.5-0 libldap-common libldb2 liblerc3 liblinear4 liblist-moreutils-perl liblist-moreutils-xs-perl libllvm13 libllvm14 liblmdb0 liblocale-gettext-perl liblsan0 libltdl7 liblua5.2-0 liblua5.3-0 libluajit-5.1-2 libluajit-5.1-common
  liblwp-mediatypes-perl liblwp-protocol-https-perl liblz4-dev liblzo2-2 libmagic-dev libmagic-mgc libmagic1 libmailtools-perl libmariadb3 libmath-random-isaac-perl libmath-random-isaac-xs-perl libmaxminddb0 libmd0 libmd4c0 libmemcached11 libmime-charset-perl libminizip1 libmnl0
  libmodplug1 libmongoc-1.0-0 libmongocrypt0 libmotif-common libmp3lame0 libmpc3 libmpdec3 libmpfr6 libmpg123-0 libmtdev1 libncurses-dev libncurses5 libncurses6 libncursesw6 libndctl6 libneon27-gnutls libnet-cidr-perl libnet-dns-perl libnet-dns-sec-perl libnet-http-perl
  libnet-ip-perl libnet-libidn-perl libnet-netmask-perl libnet-server-perl libnet-smtp-ssl-perl libnet-snmp-perl libnet-ssleay-perl libnet-whois-ip-perl libnet1 libnetcdf19 libnetfilter-conntrack3 libnetfilter-queue1 libnewt0.52 libnfnetlink0 libnfsidmap1 libnftables1 libnftnl11
  libnghttp2-14 libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream libnginx-mod-stream-geoip libnl-3-200 libnl-genl-3-200 libnl-route-3-200 libnm0 libnpth0 libnsl-dev libnsl2 libnspr4 libnss-systemd libnss3
  libntfs-3g89 libnuma1 libnumber-bytes-human-perl libobjc-11-dev libobjc4 libodbc2 libodbcinst2 libogdi4.1 libogg0 libopenal-data libopenal1 libopengl0 libopenjp2-7 libopus0 libopusfile0 libout123-0 libpam-cap libpam-systemd libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
  libparted2 libpathplan4 libpcap0.8 libpci3 libpciaccess0 libpcre2-16-0 libpcsclite1 libperl4-corelibs-perl libperl5.34 libpfm4 libpipeline1 libpixman-1-0 libpkcs11-helper1 libpmem1 libpng16-16 libpocl2 libpocl2-common libpod-parser-perl libpolkit-agent-1-0 libpolkit-gobject-1-0
  libpoppler118 libpopt0 libportaudio2 libportmidi0 libpq5 libprocps8 libproj25 libprotobuf-c1 libprotobuf23 libproxychains4 libpsl5 libpulse0 libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-dev libpython3-stdlib libpython3.10 libpython3.10-dev
  libpython3.10-minimal libpython3.10-stdlib libqhull-r8.0 libqt5core5a libqt5dbus5 libqt5designer5 libqt5gui5 libqt5help5 libqt5network5 libqt5opengl5 libqt5printsupport5 libqt5sql5 libqt5sql5-sqlite libqt5svg5 libqt5test5 libqt5widgets5 libqt5xml5 libradare2-5.0.0 libradare2-common
  libradare2-dev librados2 libraqm0 librdmacm1 libreadline8 libregexp-assemble-perl libregexp-ipv6-perl librsvg2-2 librsvg2-common librtlsdr0 librtmp1 librttopo1 libruby3.0 libsamplerate0 libsasl2-2 libsasl2-modules libsasl2-modules-db libsbc1 libsdl2-2.0-0 libsdl2-image-2.0-0
  libsdl2-mixer-2.0-0 libsdl2-ttf-2.0-0 libsensors-config libsensors5 libserf-1-1 libshine3 libsigsegv2 libslang2 libsm6 libsmbclient libsmi2ldbl libsnappy1v5 libsndfile1 libsndio7.0 libsnmp-base libsnmp40 libsocket6-perl libsodium23 libsombok3 libsoxr0 libspandsp2 libspatialite7
  libspeex1 libspeexdsp1 libsqlite3-0 libssh-4 libssh-gcrypt-4 libssh2-1 libssl1.1 libssl3 libstdc++-11-dev libstdc++6 libstring-crc32-perl libstring-random-perl libsuperlu5 libsvn1 libsvtav1enc0 libswresample4 libswscale6 libsybdb5 libsyn123-0 libsystemd-shared libsz2 libtalloc2
  libtcl8.6 libtdb1 libterm-readkey-perl libtevent0 libthai-data libthai0 libtheora0 libtiff5 libtimedate-perl libtinfo-dev libtinfo5 libtirpc-common libtirpc-dev libtirpc3 libtk8.6 libtommath1 libtry-tiny-perl libtsan0 libtsk19 libturbojpeg0 libtwolame0 libtypes-serialiser-perl
  libubertooth1 libubsan1 libuchardet0 libucl1 libunicode-linebreak-perl libunsafessl1.0.2 liburcu8 liburi-perl liburing2 liburiparser1 libusb-1.0-0 libutempter0 libutf8proc2 libuv1 libuv1-dev libva-drm2 libva-x11-2 libva2 libvdpau-va-gl1 libvdpau1 libvhdi1 libvmdk1 libvorbis0a
  libvorbisenc2 libvorbisfile3 libvpx7 libvulkan1 libwacom-bin libwacom-common libwacom9 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwayland-server0 libwbclient0 libwebp7 libwebpdemux2 libwebpmux3 libwebsockets16 libwinpr2-2 libwireshark-data libwireshark15 libwiretap12
  libwrap0 libwsutil13 libwww-mechanize-perl libwww-perl libwww-robotrules-perl libx11-6 libx11-data libx11-xcb1 libx264-164 libx265-199 libxau6 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-present0 libxcb-randr0
  libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxerces-c3.2 libxext6 libxfixes3 libxft2 libxi6 libxinerama1
  libxkbcommon-x11-0 libxkbcommon0 libxkbfile1 libxm4 libxml-dom-perl libxml-parser-perl libxml-perl libxml-regexp-perl libxml-writer-perl libxml2 libxml2-dev libxml2-utils libxmu6 libxmuu1 libxnvctrl0 libxpm4 libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxss1 libxt6
  libxtables12 libxtst6 libxv1 libxvidcore4 libxxf86dga1 libxxf86vm1 libyaml-0-2 libyara9 libz3-4 libz3-dev libzip-dev libzip4 libzvbi-common libzvbi0 linux-base linux-libc-dev llvm-13 llvm-13-dev llvm-13-linker-tools llvm-13-runtime llvm-13-tools locales logrotate lrzsz lsb-release
  lsof lua-lpeg macchanger magicrescue mailcap make manpages manpages-dev mariadb-client-10.6 mariadb-client-core-10.6 mariadb-common mariadb-server-10.6 mariadb-server-core-10.6 maskprocessor masscan media-types mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers
  metasploit-framework mime-support mimikatz mingw-w64-common mingw-w64-i686-dev mingw-w64-x86-64-dev minicom miredo mitmproxy mpg123 msfpc mtd-utils multimac mysql-common nasm nbtscan ncompress ncrack ncurses-hexedit ncurses-term net-tools netbase netcat-traditional netdiscover
  netmask netsed netsniff-ng nfs-common nftables nginx nginx-common nginx-core ngrep nikto nmap nmap-common node-normalize.css ntfs-3g ntpsec ocl-icd-libopencl1 offsec-awae-python2 onesixtyone openjdk-11-jre openjdk-11-jre-headless opensc opensc-pkcs11 openssh-client openssh-server
  openssh-sftp-server openssl openvpn p7zip p7zip-full parted passing-the-hash patator patch pci.ids pcscd pdf-parser pdfid perl perl-base perl-modules-5.34 perl-openssl-defaults php php-common php-mysql php8.1 php8.1-cli php8.1-common php8.1-mysql php8.1-opcache php8.1-readline
  pinentry-curses pipal pixiewps pkexec plocate pocl-opencl-icd polenum policykit-1 polkitd poppler-data postgresql postgresql-14 postgresql-client-14 postgresql-client-common postgresql-common powershell-empire powersploit procps proj-bin proj-data proxychains4 proxytunnel psmisc
  ptunnel publicsuffix pwnat pyqt5-dev-tools python-apt-common python-babel-localedata python-cffi python-cffi-backend python-is-python3 python-matplotlib-data python2 python2-minimal python2.7 python2.7-minimal python3 python3-adblockparser python3-aiocmd python3-aioconsole
  python3-aiodns python3-aiofiles python3-aiohttp python3-aiomultiprocess python3-aiosignal python3-aiosmb python3-aiosqlite python3-aiowinreg python3-ajpy python3-altgraph python3-aniso8601 python3-anyio python3-appdirs python3-apt python3-asciitree python3-asgiref
  python3-asn1crypto python3-async-timeout python3-asysocks python3-attr python3-automat python3-babel python3-backcall python3-backoff python3-bcrypt python3-bidict python3-binwalk python3-blinker python3-bluepy python3-brotli python3-bs4 python3-censys python3-certifi
  python3-cffi-backend python3-chardet python3-charset-normalizer python3-cheroot python3-cherrypy-cors python3-cherrypy3 python3-click python3-click-plugins python3-colorama python3-commonmark python3-constantly python3-cryptography python3-cycler python3-dataclasses-json
  python3-dateutil python3-decorator python3-dev python3-dicttoxml python3-distlib python3-distutils python3-dnslib python3-dnspython python3-docopt python3-docx python3-donut python3-dotenv python3-dropbox python3-dsinternals python3-engineio python3-et-xmlfile python3-exifread
  python3-fastapi python3-filelock python3-flasgger python3-flask python3-flask-restful python3-flask-socketio python3-fonttools python3-frozenlist python3-fs python3-future python3-gdal python3-gexf python3-gpg python3-greenlet python3-h11 python3-h2 python3-hamcrest python3-hpack
  python3-html5lib python3-httpagentparser python3-humanize python3-hyperframe python3-hyperlink python3-idna python3-impacket python3-importlib-metadata python3-incremental python3-iniconfig python3-invoke python3-ipwhois python3-ipy python3-ipython python3-itsdangerous
  python3-jaraco.classes python3-jaraco.collections python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-jdcal python3-jedi python3-jinja2 python3-jq python3-jsonschema python3-kaitaistruct python3-kismetcapturebtgeiger python3-kismetcapturefreaklabszigbee
  python3-kismetcapturertl433 python3-kismetcapturertladsb python3-kismetcapturertlamr python3-kiwisolver python3-ldap3 python3-ldapdomaindump python3-ldb python3-lib2to3 python3-limiter python3-limits python3-lsassy python3-lxml python3-lz4 python3-macholib python3-magic
  python3-mako python3-markdown python3-markupsafe python3-marshmallow python3-marshmallow-enum python3-matplotlib python3-matplotlib-inline python3-mechanize python3-minidump python3-minikerberos python3-minimal python3-mistune0 python3-more-itertools python3-mpmath python3-msgpack
  python3-msldap python3-multidict python3-mypy-extensions python3-mysqldb python3-nacl python3-neo4j python3-neobolt python3-neotime python3-netaddr python3-netifaces python3-networkx python3-newt python3-ntlm-auth python3-ntp python3-numpy python3-olefile python3-opengl
  python3-openpyxl python3-openssl python3-packaging python3-paramiko python3-parso python3-passlib python3-pcapy python3-pefile python3-pexpect python3-phonenumbers python3-pickleshare python3-pil python3-pil.imagetk python3-pip python3-pip-whl python3-pkg-resources
  python3-platformdirs python3-pluggy python3-pluginbase python3-ply python3-portend python3-pptx python3-prettytable python3-prompt-toolkit python3-protobuf python3-psycopg2 python3-ptyprocess python3-publicsuffix2 python3-publicsuffixlist python3-py python3-pyasn1
  python3-pyasn1-modules python3-pycares python3-pycryptodome python3-pycurl python3-pydantic python3-pydispatch python3-pydot python3-pyee python3-pygame python3-pygments python3-pygraphviz python3-pyinotify python3-pyinstaller python3-pylnk3 python3-pyminifier python3-pymssql
  python3-pymysql python3-pyparsing python3-pypdf2 python3-pyperclip python3-pyppeteer python3-pypsrp python3-pypykatz python3-pyqt5 python3-pyqt5.qtopengl python3-pyqt5.sip python3-pyqtgraph python3-pyrsistent python3-pysmi python3-pysnmp4 python3-pytest python3-pyvnc
  python3-pywerview python3-qrcode python3-redis python3-repoze.lru python3-requests python3-requests-ntlm python3-requests-toolbelt python3-responses python3-retrying python3-rich python3-routes python3-rq python3-ruamel.yaml python3-ruamel.yaml.clib python3-samba python3-scapy
  python3-scipy python3-secure python3-serial python3-service-identity python3-setuptools python3-setuptools-whl python3-shodan python3-simplejson python3-six python3-slowapi python3-sniffio python3-socketio python3-socks python3-sortedcontainers python3-soupsieve python3-spnego
  python3-spyse python3-sqlalchemy python3-sqlalchemy-ext python3-sqlalchemy-utc python3-starlette python3-stone python3-sympy python3-talloc python3-tdb python3-tempora python3-termcolor python3-terminaltables python3-texttable python3-tk python3-token-bucket python3-tomli
  python3-tornado python3-tqdm python3-traitlets python3-twisted python3-typing-extensions python3-typing-inspect python3-tz python3-ufolib2 python3-ujson python3-unicodecsv python3-unicodedata2 python3-urllib3 python3-urwid python3-uvicorn python3-uvloop python3-virtualenv
  python3-wcwidth python3-webencodings python3-webob python3-websocket python3-websockets python3-websockify python3-werkzeug python3-wheel python3-wheel-whl python3-whois python3-winacl python3-wsproto python3-xlrd python3-xlsxwriter python3-xlutils python3-xlwt python3-xmltodict
  python3-yaml python3-yara python3-yarl python3-zc.lockfile python3-zipp python3-zlib-wrapper python3-zope.interface python3.10 python3.10-dev python3.10-minimal qsslcaudit qt5-gtk-platformtheme qtbase5-dev-tools qtchooser qttranslations5-l10n racc radare2 rake read-edid
  readline-common reaver rebind recon-ng redsocks responder rfkill rpcbind rpcsvc-proto rsmangler rsync ruby ruby-activesupport ruby-addressable ruby-builder ruby-bundler ruby-cms-scanner ruby-concurrent ruby-dev ruby-domain-name ruby-erubi ruby-ethon ruby-ffi ruby-get-process-mem
  ruby-gssapi ruby-gyoku ruby-http-cookie ruby-httpclient ruby-i18n ruby-ipaddress ruby-little-plugger ruby-logging ruby-mime ruby-mime-types ruby-mime-types-data ruby-mini-exiftool ruby-mini-portile2 ruby-multi-json ruby-net-http-digest-auth ruby-net-telnet ruby-nokogiri ruby-nori
  ruby-ntlm ruby-oj ruby-opt-parse-validator ruby-pkg-config ruby-progressbar ruby-public-suffix ruby-rchardet ruby-rubygems ruby-snmp ruby-spider ruby-sqlite3 ruby-typhoeus ruby-tzinfo ruby-unf ruby-unf-ext ruby-webrick ruby-winrm ruby-winrm-fs ruby-xmlrpc ruby-yajl ruby-zeitwerk
  ruby-zip ruby3.0 ruby3.0-dev ruby3.0-doc rubygems-integration runit-helper sakis3g samba samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules samdump2 sbd scalpel screen scrounge-ntfs sendemail sensible-utils set shared-mime-info skipfish sleuthkit
  smbclient smbmap snmp snmpcheck snmpd socat sphinx-rtd-theme-common spiderfoot spike spooftooph sqlite3 sqlmap sqsh squashfs-tools ssl-cert ssldump sslh sslscan sslsplit statsprocessor stunnel4 sudo swaks sysstat systemd systemd-sysv tasksel tasksel-data tcl-expect tcl8.6 tcpdump
  tcpick tcpreplay tdb-tools telnet testdisk tftp thc-ipv6 thc-pptp-bruter theharvester timgm6mb-soundfont tk8.6-blt2.5 tmux tnftp traceroute tree tshark ucf udev udptunnel unicode-data unicorn-magic unix-privesc-check unixodbc-common unrar unzip update-inetd upx-ucl usbutils
  va-driver-all vboot-kernel-utils vboot-utils vdpau-driver-all vim vim-common vim-runtime vim-tiny vlan voiphopper vpnc vpnc-scripts wafw00f wce webshells weevely wfuzz wget whatweb whois wifite windows-binaries winexe wireless-regdb wireless-tools wireshark-common wordlists wpscan
  x11-common x11-utils xauth xdg-user-dirs xkb-data xxd xz-utils zip zlib1g-dev zsh zsh-autosuggestions zsh-common zsh-syntax-highlighting zstd
Suggested packages:
  gpsd apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser binutils-doc blt-demo pulseaudio-module-bluetooth bzip2-doc winbind bash-completion clang-13-doc snapd libarchive1 cpp-doc gcc-11-locales dosfstools gphoto2 netpbm pinentry-gnome3 tor debian-keyring tk8.6
  gcc-11-doc gawk-doc gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-10-locales gettext-base git-daemon-run | git-daemon-sysvinit git-doc git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn parcimonie xloadimage scdaemon gsfonts graphviz-doc groff
  beignet-opencl-icd nvidia-opencl-icd mesa-opencl-icd hydra-gtk libi2c-dev python3-smbus ppp rdnssd ipcalc network-manager-iodine network-manager-iodine-gnome iproute2-doc firewalld resolvconf avahi-autoipd isc-dhcp-client-ddns isoquery wordlist kismet-doc kismet-plugins festival
  libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal php-pear lrzip libasound2-plugins alsa-utils nas libgssapi-perl libcuda1 libnvcuvid1 libnvidia-encode1 glibc-doc libnss-nis libnss-nisplus pcmciautils colord cups-common libmldbm-perl libnet-daemon-perl
  libsql-statement-perl bzr libgd-tools gdbm-l10n geoip-bin geotiff-bin gdal-bin libgeotiff-epsg gmp-doc libgmp10-doc libmpfr-dev gpm krb5-doc krb5-user gvfs libhdf4-doc libhdf4-alt-dev hdf4-tools libipc-sharedcache-perl icu-doc libposix-strptime-perl jackd2 libjs-jquery-ui-docs
  liblcms2-utils liblinear-tools liblinear-dev mmdb-bin libencode-hanextra-perl libpod2-base-perl ncurses-doc liblog-log4perl-perl libcrypt-des-perl odbc-postgresql tdsodbc ogdi-bin opus-tools libparted-dev libparted-i18n pciutils pulseaudio qt5-image-formats-plugins qtwayland5
  librsvg2-bin libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql xdg-utils lm-sensors snmp-mibs-downloader sndiod speex libstdc++-11-doc libsub-name-perl libbusiness-isbn-perl geoipupdate geoip-database-extra libjs-leaflet libjs-leaflet.markercluster wireshark-doc
  libauthen-ntlm-perl pkg-config llvm-13-doc bsd-mailx | mailx make-doc man-browser mailx mariadb-test netcat-openbsd clamav clamav-daemon wine wine64 jackd oss-compat oss4-base open-iscsi watchdog fcgiwrap nginx-doc ncat ndiff zenmap libjs-html5shiv apparmor certbot ntpsec-doc
  ntpsec-ntpviz libnss-mdns fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic keychain libpam-ssh monkeysphere ssh-askpass molly-guard ufw openvpn-systemd-resolved p7zip-rar parted-doc ed diffutils-doc perl-doc libterm-readline-gnu-perl
  | libterm-readline-perl-perl libtap-harness-archive-perl debhelper pinentry-doc poppler-utils ghostscript fonts-japanese-mincho | fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic fonts-arphic-ukai fonts-arphic-uming fonts-nanum postgresql-doc postgresql-doc-14 ssh
  python2-doc python-tk python2.7-doc python3-doc python3-venv python-aioconsole-doc python-aiosqlite-doc python-altgraph-doc python3-apt-dbg python-apt-doc python-attr-doc python-blinker-doc python-bluepy-doc python-censys-doc python-cryptography-doc python3-cryptography-vectors
  python-cycler-doc python3-trio python-donut-doc python-flask-doc python-future-doc python-gexf-doc python-greenlet-dev python-greenlet-doc python3-genshi python-invoke-doc python-ipwhois-doc python-ipython-doc python-jinja2-doc python-jsonschema-doc python3-pymemcache
  python3-rediscluster python-limits-doc python-lxml-doc python-macholib-doc python3-beaker python-mako-doc python-markdown-doc cm-super-minimal dvipng ffmpeg fonts-staypuft gir1.2-gtk-3.0 inkscape python-matplotlib-doc python3-cairocffi python3-gi python3-gi-cairo python3-gobject
  python3-sip texlive-extra-utils texlive-latex-extra python-mpmath-doc python3-gmpy2 python-nacl-doc python-neo4j-doc python-netaddr-docs python-networkx-doc gfortran python-numpy-doc libgle3 python-openssl-doc python3-openssl-dbg python3-gssapi python-pexpect-doc python-pil-doc
  python-ply-doc python-pptx-doc python-psycopg2-doc subversion python-pycares-doc libcurl4-gnutls-dev python-pycurl-doc python-pydispatch-doc python-pygame-doc timidity python-pygments-doc ttf-bitstream-vera python-pygraphviz-doc python-pyinotify-doc python-pyminifier-doc
  python-pymysql-doc python-pyparsing-doc python-pyppeteer-doc python-pyqtgraph-doc python3-hiredis python-requests-doc python3-paste python3-pyx sox wireshark python-scipy-doc python3-wxgtk3.0 | python3-wxgtk python-setuptools-doc python-shodan-doc python-sortedcontainers-doc
  python-pyspnego-doc python-sqlalchemy-doc python3-fdb python3-asyncpg python3-databases python3-multipart texlive-fonts-extra python-sympy-doc python3-terminaltables-doc tix python3-tk-dbg python-tornado-doc python3-pampy python3-wxgtk4.0 python-urwid-doc python-uvicorn-doc
  python2-pip-whl python2-setuptools-whl python-webob-doc python-werkzeug-doc python3-watchdog python-xlutils-doc python-xlrt-doc python3.10-venv python3.10-doc readline-doc python3-braceexpand ri bind9 bind9utils ctdb ldb-tools ntp | chrony smbldap-tools heimdal-clients ophcrack
  byobu | screenie | iselect sendmail-bin autopsy mac-robber snmptrapd sqlite3-doc openbsd-inetd | inet-superserver logcheck-database isag systemd-container systemd-homed systemd-userdbd systemd-boot libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0 tcl-tclreadline fluid-soundfont-gm
  nvidia-vdpau-driver ctags vim-doc vim-scripts indent dnsmasq hcxdumptool hcxpcaptool mesa-utils zsh-doc
Recommended packages:
  intel-microcode amd64-microcode libnfqueue-perl xar bomutils powershell dotnet-sdk-3.1 python3-rekall-core volatility3
The following NEW packages will be installed:
  adwaita-icon-theme aircrack-ng alsa-topology-conf alsa-ucm-conf amass amass-common apache2 apache2-bin apache2-data apache2-utils apt-file arj arp-scan arping at-spi2-core atftpd attr axel bind9-dnsutils bind9-host bind9-libs binfmt-support binutils binutils-aarch64-linux-gnu
  binutils-common binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 binwalk blt bluez bluez-firmware bluez-hcidump build-essential bulk-extractor bully bundler busybox bzip2 ca-certificates ca-certificates-java cadaver cewl cgpt chntpw cifs-utils clang clang-13 command-not-found
  commix console-setup console-setup-linux cpio cpp cpp-11 crackmapexec cramfsswap creddump7 crunch cryptcat cryptsetup cryptsetup-bin cryptsetup-initramfs cryptsetup-nuke-password curl curlftpfs davtest dbd dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common
  dbus-user-session dconf-gsettings-backend dconf-service dcraw default-jre default-jre-headless default-mysql-server dirb dirmngr distro-info-data dmidecode dmitry dmsetup dns2tcp dnschef dnsenum dnsrecon dos2unix dpkg-dev easy-rsa enum4linux ethtool ettercap-common
  ettercap-graphical evil-winrm exe2hexbat exiv2 expect exploitdb fakeroot ffuf fierce file firebird3.0-common firebird3.0-common-doc firmware-amd-graphics firmware-atheros firmware-intel-sound firmware-iwlwifi firmware-libertas firmware-linux firmware-linux-free
  firmware-linux-nonfree firmware-misc-nonfree firmware-realtek firmware-sof-signed firmware-ti-connectivity firmware-zd1211 flac fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-extra fonts-font-awesome fonts-freefont-ttf fonts-lato fonts-liberation2 fonts-lyx fping
  freeglut3 freerdp2-x11 freetds-common ftp fuse3 g++ g++-11 galera-4 gawk gcc gcc-11 gcc-11-base gcc-mingw-w64-base gcc-mingw-w64-i686-win32 gcc-mingw-w64-i686-win32-runtime gcc-mingw-w64-x86-64-win32 gcc-mingw-w64-x86-64-win32-runtime gdal-data gdal-plugins gdisk geoip-database git
  git-man gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm gpp-decrypt graphviz groff-base gsettings-desktop-schemas gss-ntlmssp gtk-update-icon-cache hash-identifier hashcat hashcat-data hashcat-utils hashdeep hashid hicolor-icon-theme hping3
  hwloc hydra hyperion i2c-tools ibverbs-providers icu-devtools ieee-data ifenslave ifupdown ike-scan impacket-scripts inetsim initramfs-tools initramfs-tools-core iodine iproute2 iptables ipython3 isc-dhcp-client isc-dhcp-common iso-codes isympy-common isympy3 iw java-common
  javascript-common john john-data kali-linux-core kali-linux-firmware kali-linux-headless kali-tweaks kbd keyboard-configuration keyutils kismet kismet-capture-common kismet-capture-linux-bluetooth kismet-capture-linux-wifi kismet-capture-nrf-51822 kismet-capture-nrf-52840
  kismet-capture-nrf-mousejack kismet-capture-nxp-kw41z kismet-capture-rz-killerbee kismet-capture-ti-cc-2531 kismet-capture-ti-cc-2540 kismet-capture-ubertooth-one kismet-core kismet-logtools klibc-utils kmod krb5-locales laptop-detect laudanum lbd ldap-utils less libaec0
  libafflib0v5 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libann0 libaom3 libapache2-mod-php libapache2-mod-php8.1 libapparmor1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapt-pkg-perl libarchive-zip-perl libarchive13 libargon2-1
  libarmadillo11 libarpack2 libasan6 libasound2 libasound2-data libassuan0 libasyncns0 libatk-bridge2.0-0 libatk-wrapper-java libatk-wrapper-java-jni libatk1.0-0 libatk1.0-data libatm1 libatomic1 libatspi2.0-0 libaudio2 libauthen-sasl-perl libavahi-client3 libavahi-common-data
  libavahi-common3 libavcodec59 libavutil57 libbcg729-0 libbfio1 libbinutils libblas3 libblosc1 libbluetooth3 libboost-iostreams1.74.0 libboost-thread1.74.0 libbpf0 libbrotli1 libbsd0 libbson-1.0-0 libbtbb1 libbytes-random-secure-perl libc-ares2 libc-dev-bin libc-devtools libc-l10n
  libc6-dev libcairo-gobject2 libcairo2 libcap2-bin libcapstone-dev libcapstone4 libcbor0.8 libcc1-0 libccid libcdt5 libcephfs2 libcfitsio9 libcgi-fast-perl libcgi-pm-perl libcgraph6 libclang-common-13-dev libclang-cpp13 libclang1-13 libcli1.10 libclone-perl libcodec2-1.0 libcolord2
  libcommon-sense-perl libconfig-inifiles-perl libconfig9 libcrypt-dev libcrypt-random-seed-perl libcrypt-ssleay-perl libcrypto++8 libcryptsetup12 libct4 libctf-nobfd0 libctf0 libcups2 libcurl3-gnutls libcurl4 libdata-dump-perl libdate-manip-perl libdatrie1 libdav1d6 libdaxctl1
  libdbd-mariadb-perl libdbi-perl libdbus-1-3 libdconf1 libde265-0 libdecor-0-0 libdecor-0-plugin-1-cairo libdeflate0 libdevmapper1.02.1 libdigest-bubblebabble-perl libdigest-hmac-perl libdouble-conversion3 libdpkg-perl libdrm-amdgpu1 libdrm-common libdrm-nouveau2 libdrm-radeon1
  libdrm2 libdw1 libedit2 libegl-mesa0 libegl1 libelf1 libencode-locale-perl libepoxy0 liberror-perl libev4 libevdev2 libevent-2.1-7 libevent-core-2.1-7 libevent-openssl-2.1-7 libevent-pthreads-2.1-7 libewf2 libexiv2-27 libexpat1 libexpat1-dev libexporter-tiny-perl libfakeroot
  libfbclient2 libfcgi-bin libfcgi-perl libfcgi0ldbl libfdisk1 libffi-dev libfido2-1 libfile-fcntllock-perl libfile-listing-perl libflac8 libflashrom1 libfluidsynth3 libfmt8 libfont-afm-perl libfontconfig1 libfontenc1 libfreerdp-client2-2 libfreerdp2-2 libfreetype6 libfreexl1
  libfribidi0 libfstrm0 libftdi1-2 libfuse2 libfuse3-3 libfyba0 libgbm1 libgc1 libgcc-11-dev libgd3 libgdal31 libgdbm-compat4 libgdbm6 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgeoip1 libgeos-c1v5 libgeos3.11.0 libgeotiff5 libgfapi0 libgfortran5 libgfrpc0
  libgfxdr0 libgif7 libgl1 libgl1-mesa-dri libglapi-mesa libglib2.0-0 libglib2.0-data libglu1-mesa libglusterfs0 libglvnd0 libglx-mesa0 libglx0 libgmp-dev libgmpxx4ldbl libgomp1 libgpgme11 libgpm2 libgprofng0 libgraphite2-3 libgsm1 libgssapi-krb5-2 libgtk-3-0 libgtk-3-bin
  libgtk-3-common libgts-0.7-5 libgts-bin libgudev-1.0-0 libgvc6 libgvpr2 libharfbuzz0b libhdf4-0-alt libhdf5-103-1 libhdf5-hl-100 libheif1 libhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhtml-tree-perl libhttp-cookies-perl
  libhttp-daemon-perl libhttp-date-perl libhttp-dav-perl libhttp-message-perl libhttp-negotiate-perl libhttp-server-simple-perl libhwasan0 libhwloc-plugins libhwloc15 libi2c0 libibverbs1 libice6 libicu-dev libicu71 libidn12 libimage-exiftool-perl libimagequant0 libiniparser1
  libinput-bin libinput10 libinstpatch-1.0-2 libio-html-perl libio-multiplex-perl libio-socket-inet6-perl libio-socket-ssl-perl libip4tc2 libip6tc2 libipc-shareable-perl libisl23 libitm1 libiw30 libjack-jackd2-0 libjansson4 libjbig0 libjemalloc2 libjpeg-turbo-progs libjpeg62-turbo
  libjs-jquery libjs-jquery-ui libjs-skeleton libjs-sphinxdoc libjs-underscore libjson-c5 libjson-perl libjson-xs-perl libjudydebian1 libk5crypto3 libkeyutils1 libklibc libkmlbase1 libkmldom1 libkmlengine1 libkmod2 libkrb5-3 libkrb5support0 libksba8 liblab-gamut1 liblapack3
  liblbfgsb0 liblcms2-2 libldap-2.5-0 libldap-common libldb2 liblerc3 liblinear4 liblist-moreutils-perl liblist-moreutils-xs-perl libllvm13 libllvm14 liblmdb0 liblocale-gettext-perl liblsan0 libltdl7 liblua5.2-0 liblua5.3-0 libluajit-5.1-2 libluajit-5.1-common liblwp-mediatypes-perl
  liblwp-protocol-https-perl liblz4-dev liblzo2-2 libmagic-dev libmagic-mgc libmagic1 libmailtools-perl libmariadb3 libmath-random-isaac-perl libmath-random-isaac-xs-perl libmaxminddb0 libmd0 libmd4c0 libmemcached11 libmime-charset-perl libminizip1 libmnl0 libmodplug1 libmongoc-1.0-0
  libmongocrypt0 libmotif-common libmp3lame0 libmpc3 libmpdec3 libmpfr6 libmpg123-0 libmtdev1 libncurses-dev libncurses5 libncurses6 libncursesw6 libndctl6 libneon27-gnutls libnet-cidr-perl libnet-dns-perl libnet-dns-sec-perl libnet-http-perl libnet-ip-perl libnet-libidn-perl
  libnet-netmask-perl libnet-server-perl libnet-smtp-ssl-perl libnet-snmp-perl libnet-ssleay-perl libnet-whois-ip-perl libnet1 libnetcdf19 libnetfilter-conntrack3 libnetfilter-queue1 libnewt0.52 libnfnetlink0 libnfsidmap1 libnftables1 libnftnl11 libnghttp2-14 libnginx-mod-http-geoip
  libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream libnginx-mod-stream-geoip libnl-3-200 libnl-genl-3-200 libnl-route-3-200 libnm0 libnpth0 libnsl-dev libnsl2 libnspr4 libnss-systemd libnss3 libntfs-3g89 libnuma1
  libnumber-bytes-human-perl libobjc-11-dev libobjc4 libodbc2 libodbcinst2 libogdi4.1 libogg0 libopenal-data libopenal1 libopengl0 libopenjp2-7 libopus0 libopusfile0 libout123-0 libpam-cap libpam-systemd libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libparted2 libpathplan4
  libpcap0.8 libpci3 libpciaccess0 libpcre2-16-0 libpcsclite1 libperl4-corelibs-perl libperl5.34 libpfm4 libpipeline1 libpixman-1-0 libpkcs11-helper1 libpmem1 libpng16-16 libpocl2 libpocl2-common libpod-parser-perl libpolkit-agent-1-0 libpolkit-gobject-1-0 libpoppler118 libpopt0
  libportaudio2 libportmidi0 libpq5 libprocps8 libproj25 libprotobuf-c1 libprotobuf23 libproxychains4 libpsl5 libpulse0 libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-dev libpython3-stdlib libpython3.10 libpython3.10-dev libpython3.10-minimal
  libpython3.10-stdlib libqhull-r8.0 libqt5core5a libqt5dbus5 libqt5designer5 libqt5gui5 libqt5help5 libqt5network5 libqt5opengl5 libqt5printsupport5 libqt5sql5 libqt5sql5-sqlite libqt5svg5 libqt5test5 libqt5widgets5 libqt5xml5 libradare2-5.0.0 libradare2-common libradare2-dev
  librados2 libraqm0 librdmacm1 libreadline8 libregexp-assemble-perl libregexp-ipv6-perl librsvg2-2 librsvg2-common librtlsdr0 librtmp1 librttopo1 libruby3.0 libsamplerate0 libsasl2-2 libsasl2-modules libsasl2-modules-db libsbc1 libsdl2-2.0-0 libsdl2-image-2.0-0 libsdl2-mixer-2.0-0
  libsdl2-ttf-2.0-0 libsensors-config libsensors5 libserf-1-1 libshine3 libsigsegv2 libslang2 libsm6 libsmbclient libsmi2ldbl libsnappy1v5 libsndfile1 libsndio7.0 libsnmp-base libsnmp40 libsocket6-perl libsodium23 libsombok3 libsoxr0 libspandsp2 libspatialite7 libspeex1 libspeexdsp1
  libsqlite3-0 libssh-4 libssh-gcrypt-4 libssh2-1 libssl1.1 libssl3 libstdc++-11-dev libstring-crc32-perl libstring-random-perl libsuperlu5 libsvn1 libsvtav1enc0 libswresample4 libswscale6 libsybdb5 libsyn123-0 libsystemd-shared libsz2 libtalloc2 libtcl8.6 libtdb1
  libterm-readkey-perl libtevent0 libthai-data libthai0 libtheora0 libtiff5 libtimedate-perl libtinfo-dev libtinfo5 libtirpc-common libtirpc-dev libtirpc3 libtk8.6 libtommath1 libtry-tiny-perl libtsan0 libtsk19 libturbojpeg0 libtwolame0 libtypes-serialiser-perl libubertooth1
  libubsan1 libuchardet0 libucl1 libunicode-linebreak-perl libunsafessl1.0.2 liburcu8 liburi-perl liburing2 liburiparser1 libusb-1.0-0 libutempter0 libutf8proc2 libuv1 libuv1-dev libva-drm2 libva-x11-2 libva2 libvdpau-va-gl1 libvdpau1 libvhdi1 libvmdk1 libvorbis0a libvorbisenc2
  libvorbisfile3 libvpx7 libvulkan1 libwacom-bin libwacom-common libwacom9 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwayland-server0 libwbclient0 libwebp7 libwebpdemux2 libwebpmux3 libwebsockets16 libwinpr2-2 libwireshark-data libwireshark15 libwiretap12 libwrap0
  libwsutil13 libwww-mechanize-perl libwww-perl libwww-robotrules-perl libx11-6 libx11-data libx11-xcb1 libx264-164 libx265-199 libxau6 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-present0 libxcb-randr0 libxcb-render-util0
  libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxerces-c3.2 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxkbcommon-x11-0 libxkbcommon0
  libxkbfile1 libxm4 libxml-dom-perl libxml-parser-perl libxml-perl libxml-regexp-perl libxml-writer-perl libxml2 libxml2-dev libxml2-utils libxmu6 libxmuu1 libxnvctrl0 libxpm4 libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxss1 libxt6 libxtables12 libxtst6 libxv1 libxvidcore4
  libxxf86dga1 libxxf86vm1 libyaml-0-2 libyara9 libz3-4 libz3-dev libzip-dev libzip4 libzvbi-common libzvbi0 linux-base linux-libc-dev llvm-13 llvm-13-dev llvm-13-linker-tools llvm-13-runtime llvm-13-tools locales logrotate lrzsz lsb-release lsof lua-lpeg macchanger magicrescue
  mailcap make manpages manpages-dev mariadb-client-10.6 mariadb-client-core-10.6 mariadb-common mariadb-server-10.6 mariadb-server-core-10.6 maskprocessor masscan media-types mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers metasploit-framework mime-support mimikatz
  mingw-w64-common mingw-w64-i686-dev mingw-w64-x86-64-dev minicom miredo mitmproxy mpg123 msfpc mtd-utils multimac mysql-common nasm nbtscan ncompress ncrack ncurses-hexedit ncurses-term net-tools netbase netcat-traditional netdiscover netmask netsed netsniff-ng nfs-common nftables
  nginx nginx-common nginx-core ngrep nikto nmap nmap-common node-normalize.css ntfs-3g ntpsec ocl-icd-libopencl1 offsec-awae-python2 onesixtyone openjdk-11-jre openjdk-11-jre-headless opensc opensc-pkcs11 openssh-client openssh-server openssh-sftp-server openssl openvpn p7zip
  p7zip-full parted passing-the-hash patator patch pci.ids pcscd pdf-parser pdfid perl perl-modules-5.34 perl-openssl-defaults php php-common php-mysql php8.1 php8.1-cli php8.1-common php8.1-mysql php8.1-opcache php8.1-readline pinentry-curses pipal pixiewps pkexec plocate
  pocl-opencl-icd polenum policykit-1 polkitd poppler-data postgresql postgresql-14 postgresql-client-14 postgresql-client-common postgresql-common powershell-empire powersploit procps proj-bin proj-data proxychains4 proxytunnel psmisc ptunnel publicsuffix pwnat pyqt5-dev-tools
  python-apt-common python-babel-localedata python-cffi python-cffi-backend python-is-python3 python-matplotlib-data python2 python2-minimal python2.7 python2.7-minimal python3 python3-adblockparser python3-aiocmd python3-aioconsole python3-aiodns python3-aiofiles python3-aiohttp
  python3-aiomultiprocess python3-aiosignal python3-aiosmb python3-aiosqlite python3-aiowinreg python3-ajpy python3-altgraph python3-aniso8601 python3-anyio python3-appdirs python3-apt python3-asciitree python3-asgiref python3-asn1crypto python3-async-timeout python3-asysocks
  python3-attr python3-automat python3-babel python3-backcall python3-backoff python3-bcrypt python3-bidict python3-binwalk python3-blinker python3-bluepy python3-brotli python3-bs4 python3-censys python3-certifi python3-cffi-backend python3-chardet python3-charset-normalizer
  python3-cheroot python3-cherrypy-cors python3-cherrypy3 python3-click python3-click-plugins python3-colorama python3-commonmark python3-constantly python3-cryptography python3-cycler python3-dataclasses-json python3-dateutil python3-decorator python3-dev python3-dicttoxml
  python3-distlib python3-distutils python3-dnslib python3-dnspython python3-docopt python3-docx python3-donut python3-dotenv python3-dropbox python3-dsinternals python3-engineio python3-et-xmlfile python3-exifread python3-fastapi python3-filelock python3-flasgger python3-flask
  python3-flask-restful python3-flask-socketio python3-fonttools python3-frozenlist python3-fs python3-future python3-gdal python3-gexf python3-gpg python3-greenlet python3-h11 python3-h2 python3-hamcrest python3-hpack python3-html5lib python3-httpagentparser python3-humanize
  python3-hyperframe python3-hyperlink python3-idna python3-impacket python3-importlib-metadata python3-incremental python3-iniconfig python3-invoke python3-ipwhois python3-ipy python3-ipython python3-itsdangerous python3-jaraco.classes python3-jaraco.collections
  python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-jdcal python3-jedi python3-jinja2 python3-jq python3-jsonschema python3-kaitaistruct python3-kismetcapturebtgeiger python3-kismetcapturefreaklabszigbee python3-kismetcapturertl433
  python3-kismetcapturertladsb python3-kismetcapturertlamr python3-kiwisolver python3-ldap3 python3-ldapdomaindump python3-ldb python3-lib2to3 python3-limiter python3-limits python3-lsassy python3-lxml python3-lz4 python3-macholib python3-magic python3-mako python3-markdown
  python3-markupsafe python3-marshmallow python3-marshmallow-enum python3-matplotlib python3-matplotlib-inline python3-mechanize python3-minidump python3-minikerberos python3-minimal python3-mistune0 python3-more-itertools python3-mpmath python3-msgpack python3-msldap
  python3-multidict python3-mypy-extensions python3-mysqldb python3-nacl python3-neo4j python3-neobolt python3-neotime python3-netaddr python3-netifaces python3-networkx python3-newt python3-ntlm-auth python3-ntp python3-numpy python3-olefile python3-opengl python3-openpyxl
  python3-openssl python3-packaging python3-paramiko python3-parso python3-passlib python3-pcapy python3-pefile python3-pexpect python3-phonenumbers python3-pickleshare python3-pil python3-pil.imagetk python3-pip python3-pip-whl python3-pkg-resources python3-platformdirs
  python3-pluggy python3-pluginbase python3-ply python3-portend python3-pptx python3-prettytable python3-prompt-toolkit python3-protobuf python3-psycopg2 python3-ptyprocess python3-publicsuffix2 python3-publicsuffixlist python3-py python3-pyasn1 python3-pyasn1-modules python3-pycares
  python3-pycryptodome python3-pycurl python3-pydantic python3-pydispatch python3-pydot python3-pyee python3-pygame python3-pygments python3-pygraphviz python3-pyinotify python3-pyinstaller python3-pylnk3 python3-pyminifier python3-pymssql python3-pymysql python3-pyparsing
  python3-pypdf2 python3-pyperclip python3-pyppeteer python3-pypsrp python3-pypykatz python3-pyqt5 python3-pyqt5.qtopengl python3-pyqt5.sip python3-pyqtgraph python3-pyrsistent python3-pysmi python3-pysnmp4 python3-pytest python3-pyvnc python3-pywerview python3-qrcode python3-redis
  python3-repoze.lru python3-requests python3-requests-ntlm python3-requests-toolbelt python3-responses python3-retrying python3-rich python3-routes python3-rq python3-ruamel.yaml python3-ruamel.yaml.clib python3-samba python3-scapy python3-scipy python3-secure python3-serial
  python3-service-identity python3-setuptools python3-setuptools-whl python3-shodan python3-simplejson python3-six python3-slowapi python3-sniffio python3-socketio python3-socks python3-sortedcontainers python3-soupsieve python3-spnego python3-spyse python3-sqlalchemy
  python3-sqlalchemy-ext python3-sqlalchemy-utc python3-starlette python3-stone python3-sympy python3-talloc python3-tdb python3-tempora python3-termcolor python3-terminaltables python3-texttable python3-tk python3-token-bucket python3-tomli python3-tornado python3-tqdm
  python3-traitlets python3-twisted python3-typing-extensions python3-typing-inspect python3-tz python3-ufolib2 python3-ujson python3-unicodecsv python3-unicodedata2 python3-urllib3 python3-urwid python3-uvicorn python3-uvloop python3-virtualenv python3-wcwidth python3-webencodings
  python3-webob python3-websocket python3-websockets python3-websockify python3-werkzeug python3-wheel python3-wheel-whl python3-whois python3-winacl python3-wsproto python3-xlrd python3-xlsxwriter python3-xlutils python3-xlwt python3-xmltodict python3-yaml python3-yara python3-yarl
  python3-zc.lockfile python3-zipp python3-zlib-wrapper python3-zope.interface python3.10 python3.10-dev python3.10-minimal qsslcaudit qt5-gtk-platformtheme qtbase5-dev-tools qtchooser qttranslations5-l10n racc radare2 rake read-edid readline-common reaver rebind recon-ng redsocks
  responder rfkill rpcbind rpcsvc-proto rsmangler rsync ruby ruby-activesupport ruby-addressable ruby-builder ruby-bundler ruby-cms-scanner ruby-concurrent ruby-dev ruby-domain-name ruby-erubi ruby-ethon ruby-ffi ruby-get-process-mem ruby-gssapi ruby-gyoku ruby-http-cookie
  ruby-httpclient ruby-i18n ruby-ipaddress ruby-little-plugger ruby-logging ruby-mime ruby-mime-types ruby-mime-types-data ruby-mini-exiftool ruby-mini-portile2 ruby-multi-json ruby-net-http-digest-auth ruby-net-telnet ruby-nokogiri ruby-nori ruby-ntlm ruby-oj
  ruby-opt-parse-validator ruby-pkg-config ruby-progressbar ruby-public-suffix ruby-rchardet ruby-rubygems ruby-snmp ruby-spider ruby-sqlite3 ruby-typhoeus ruby-tzinfo ruby-unf ruby-unf-ext ruby-webrick ruby-winrm ruby-winrm-fs ruby-xmlrpc ruby-yajl ruby-zeitwerk ruby-zip ruby3.0
  ruby3.0-dev ruby3.0-doc rubygems-integration runit-helper sakis3g samba samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules samdump2 sbd scalpel screen scrounge-ntfs sendemail sensible-utils set shared-mime-info skipfish sleuthkit smbclient smbmap snmp
  snmpcheck snmpd socat sphinx-rtd-theme-common spiderfoot spike spooftooph sqlite3 sqlmap sqsh squashfs-tools ssl-cert ssldump sslh sslscan sslsplit statsprocessor stunnel4 sudo swaks sysstat systemd systemd-sysv tasksel tasksel-data tcl-expect tcl8.6 tcpdump tcpick tcpreplay
  tdb-tools telnet testdisk tftp thc-ipv6 thc-pptp-bruter theharvester timgm6mb-soundfont tk8.6-blt2.5 tmux tnftp traceroute tree tshark ucf udev udptunnel unicode-data unicorn-magic unix-privesc-check unixodbc-common unrar unzip update-inetd upx-ucl usbutils va-driver-all
  vboot-kernel-utils vboot-utils vdpau-driver-all vim vim-common vim-runtime vim-tiny vlan voiphopper vpnc vpnc-scripts wafw00f wce webshells weevely wfuzz wget whatweb whois wifite windows-binaries winexe wireless-regdb wireless-tools wireshark-common wordlists wpscan x11-common
  x11-utils xauth xdg-user-dirs xkb-data xxd xz-utils zip zlib1g-dev zsh zsh-autosuggestions zsh-common zsh-syntax-highlighting zstd
The following packages will be upgraded:
  gcc-12-base libc6 libgcc-s1 libstdc++6 perl-base
5 upgraded, 1540 newly installed, 0 to remove and 4 not upgraded.
Need to get 1349 MB of archives.
After this operation, 5762 MB of additional disk space will be used.
Do you want to continue? [Y/n]

Installing all the tools takes under 10 mins on a reasonable Internet connection.

Environment Setup

Being able to use Multipass on MacOS is extremely simple and this section is a list of steps that I used.

Prerequisites

If Homebrew is not currently installed on the laptop, then use the following script:


$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Further instructions are available at the Homebrew site

Multipass

Multipass is installed as a Cask


$ brew -v install multipass

==> Downloading https://github.com/canonical/multipass/releases/download/v1.10.1/multipass-1.10.1+mac-Darwin.pkg
Already downloaded: /Users/shsingh/Library/Caches/Homebrew/downloads/521aecca03103c46d7d9cd32bc600c97ed07b4c78b94d67cfa4e08562d920976--multipass-1.10.1+mac-Darwin.pkg
==> Verifying checksum for cask 'multipass'
==> Installing Cask multipass
cp -p /Users/shsingh/Library/Caches/Homebrew/downloads/521aecca03103c46d7d9cd32bc600c97ed07b4c78b94d67cfa4e08562d920976--multipass-1.10.1+mac-Darwin.pkg /opt/homebrew/Caskroom/multipass/1.10.1/multipass-1.10.1+mac-Darwin.pkg
==> Running installer for multipass; your password may be necessary.
Package installers may write to any location; options such as `--appdir` are ignored.
installer: Package name is multipass
installer: Installing at base path /
installer:PHASE:Preparing for installation…
installer:PHASE:Preparing the disk…
installer:PHASE:Preparing multipass…
installer:PHASE:Waiting for other installations to complete…
installer:PHASE:Configuring the installation…
installer:STATUS:
installer:%7.797427
installer:PHASE:Writing files…
installer:%13.491799
installer:PHASE:Writing files…
installer:%20.609764
installer:PHASE:Writing files…
installer:%27.727730
installer:PHASE:Writing files…
installer:%36.269288
installer:PHASE:Writing files…
installer:%41.963660
installer:PHASE:Writing files…
installer:%53.352404
installer:PHASE:Writing files…
installer:%91.903978
installer:PHASE:Registering updated components…
installer:%92.615220
installer:PHASE:Registering updated components…
installer:%93.327476
installer:PHASE:Registering updated components…
installer:%94.038851
installer:PHASE:Registering updated components…
installer:%94.751139
installer:PHASE:Registering updated components…
installer:PHASE:Validating packages…
installer:%97.750000
installer:STATUS:Running installer actions…
installer:STATUS:
installer:PHASE:Finishing the Installation…
installer:STATUS:
installer:%100.000000
installer:PHASE:The software was successfully installed.
installer: The install was successful.
🍺  multipass was successfully installed!

Docker

There is already a prebuilt alias for ‘docker’ in Multipass, which will launch a new Linux VM.


$ multipass launch docker

Launched: docker

$ multipass list

Name                    State             IPv4             Image
docker                  Running           10.211.56.4      Ubuntu 22.04 LTS
                                          172.17.0.1

Once Docker is installed you will need an alias for the ‘docker’ command.


$ multipass alias docker:docker

$ which -a docker

/Users/shsingh/Library/Application Support/multipass/bin/docker
/Users/shsingh/Library/Application Support/multipass/bin/docker

$ docker ps

CONTAINER ID   IMAGE                    COMMAND        CREATED       STATUS       PORTS                                                           NAMES
ba8229e8aa62   portainer/portainer-ce   "/portainer"   2 hours ago   Up 2 hours   8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer

Linux desktop as a container

Once Docker is installed you have all the standard tooling available and you can then run any Linux operating system as a container.


$ docker run --tty --interactive shsingh/kali-linux-docker-arm64 /bin/zsh

Unable to find image 'shsingh/kali-linux-docker-arm64:latest' locally
latest: Pulling from shsingh/kali-linux-docker-arm64
5282b35103b9: Pull complete
1c931c2ad3fd: Pull complete
6267781a4897: Pull complete
acf0e86eb47b: Pull complete
Digest: sha256:49b8798fa8d91514602669445e36b2173a793b6da55bf8914a717e3b5c750a04
Status: Downloaded newer image for shsingh/kali-linux-docker-arm64:latest
###
Q:      Minnesotans ask, "Why aren't there more pharmacists from Alabama?"
A:      Easy.  It's because they can't figure out how to get the little
        bottles into the typewriter.
###
Linux 986e8b60c680 5.15.0-41-generic #44-Ubuntu SMP Thu Jun 23 11:20:13 UTC 2022 aarch64 GNU/Linux
 10:30:47 up  2:06,  0 users,  load average: 3.25, 1.70, 0.68
###

/
[Docker] ❯ uname -a
Linux 986e8b60c680 5.15.0-41-generic #44-Ubuntu SMP Thu Jun 23 11:20:13 UTC 2022 aarch64 GNU/Linux