Parrot on WSL2

You can edit the topic to [Tutorial] and write here. The forum supports markdown syntax. We’ll copy it and add you to list of contributors :smiley:

@dmknght Done! Lmk if there is anything else I should include :gift:

FYI, I could only include two links in my post, I wanted to include the MSI link and How-To-Upgrade Community post.

Oh i don’t know much about that. @tissy can you help him about the writing tutorial please?

Hi, sorry for being late. I am also new to ParrotSec OS, but does wsl2 use the pre-built wireless adapter of Windows? Can you use major programs like Nmap, BurpSuite, and Ettercap?

yes sure it does

1 Like

I saw you message about the public key. Did you resolve it with verify-keys tutorial?

I had the same issue, but it was too late to change this thread

Well kinda… I didn’t have all the packages to get that pub ,I did manual installing for each one

so i tried this tutorial and got up to getting parrot-install.sh on the system but instead of installing core only i selected security. /etc/apt/sources.list.d/* access is denied or not found (its tempramental). and i cant update or install anything as it cant be found or the public key is not available. should i reinstall debian and start from there or can i save this?

Did you get this to work?

  1. Set up the public key immediately after installing core for the security packages in some cases return 404 due to a failed mirror list
  2. Regarding Access denied did you run it as root? and then try to access it as a user?

Since this is purely a sources.list issue, you can just delete the sources.list.d/ dir and just copy the sources.list from Debian :slight_smile:

Lmk is this is helpful!

I’m having some issues with the install
Err:1 https://deb.parrot.sh/parrot lts/main amd64 libtext-iconv-perl amd64 1.7-5+b7
404 Not Found [IP: 104.27.130.193 443]

WSL2 system allows user to import tarball file. So Parrot team can try very first WSL2 build for 4.11

I’ve managed to have Parrot runs on WSL 2 after tons of trials and errors.
Some issues I encountered:

  1. the script ran and failed later because I didn’t have gnupg, gnupg1, and gnupg2 installed
  2. getting a 403 forbidden from some mirrors
  3. failed resolving DNS for https://deb.parrot.sh
  4. getting 404 not found when the apt is updating files

What I did:

  1. installing gnupg, gnupg1, and gnupg2 before running parrot-install.sh as fresh Debian from Microsoft store doesn’t include them
  2. ping the https://deb.parrot.sh to get the IP, put the IP into /etc/hosts
  3. using VPN to connect to another country since I still always get 403 forbidden from the mirror in my country – also ping the domain I select from APT Mirror list and put the IP into /etc/hosts
  4. ignoring the 404 not found
  5. using the rolling instead of lts (to solve the 404 I think) as described by thread starter (manually edit the parrot.list after successfully running the parrot-install.sh and before running the parrot-upgrade)

Hopefully it will be officially supported in the future.

3 Likes

I had a similar issue, I rewrote the script to prevent it from wiping out the debian repo list and updated from lts to rolling release.
I did notice a memory issue when trying to run xrdp, seems to slowly increase over a very short time. this forced me to shutdown debian.
It would be awesome to see the implementation of something similar to winkex for kali.

We would like to do that but we need more devs for this.
it would be nice to have wsl 2 image instead of just build from debian repo which we can’t really control the quality build.
If anybody has experiences on this and want to contribute feel free to send email to [email protected].

3 Likes

I had a similar thought; right now Parrot’s filesystem.squashfs is being compressed to a tar.gz which will then be imported into WSL2 and I’ll go ahead set it up from there. Previously I’d been using Kali but wanted to switch out back to Parrot, as I haven’t visited Parrot in a while and felt like coming back. I’ve been trying to build a secure WSL2 image for the sake of a pentesting project I’ve been working on. I’ll be making a distro installer and you can find that project here.
Win-KeX was a thought that crossed my mind and as soon as I was about to make a comment I’d seen someone else already did, which was pretty cool! I think I’ll be working on that myself shorty after I get Parrot working here. I’ll be making a GitHub for that when I begin - I already have a fixed systemd & kalitorify installer for Kali, inspired/built off of Parrot’s torifying script. It’s working just fine as far as I know and I had it running on my kali build.
I’ll go ahead and be grabbing win-kex from the package manager likely tomorrow and such and taking it apart to see how I can change things around to work with Parrot (and work well). I’d like to see it happen, and if Parrot doesn’t have the devs for this, I’ll just have to do it myself! I could use some help though, so here’s the GitHub project for now; it’s empty at the moment (it’s 5 in the morning), but I’ll start uploading everything over the next few days.

If Parrot devs are interested in working with me at all to help me out with some questions that’ll be awesome; I’ll be emailing them when I’m ready.
As for the community, I’ll probably need your help too, and your guys’ creativity and engineering skills would be more than welcome. Discussions are open.

See you there!

awesome tutorial

just to point out in case anyone suffer the same issues as me
issues encountered when installing this:

  • when running the install script had an issue with a public key not available

The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY “363A96A5CEA9EA27”

  • Also found an issue about the dns not resolving properly in WSL

what i did to fix this issues:

  • For the key issue i tried importing the key with several key servers but they were failing, but the one that worked for me was

sudo apt-key adv --keyserver hkp://keys.gnupg.net:80 --recv-keys 363A96A5CEA9EA27

Credits to this article, there is a message from Chris Jean the February 27, 2020 that has various alternative servers. I could import the key from there.

  • Regarding the issue of the dns, i did 2 things:
  • Modify the file with the dns config /etc/resolv.conf to point to google dns servers “8.8.8.8”
  • And to avoid having issues with WSL changing this i also modified the config file /etc/wsl.conf to add this 2 entries:

[network]
generateResolvConf = false

After this all the setup was smooth.
Thank you for the tutorial again, you all made a process that could be painfully slow and tedious into a very easy and enjoyable experience

Thank you to everyone involved.

Palinuro can support this

That is not our official scope for now but we surely love to support this.

1 Like

Hello. I get the following problem when trying to run the parrot-install.sh:
(I denoted https://deb.parrot.sh/parrot to be URL)

W: --force-yes is deprecated, use one of the options starting with --allow instead.
Get:1 URL lts InRelease [14.4 kB]
Err:1 URL lts InRelease
  The following signatures were invalid: EXPKEYSIG B56FFA946EB1660A Parrot project <[email protected]>
Get:2 URL lts-security InRelease [14.2 kB]
Err:2 URL lts-security InRelease
  The following signatures were invalid: EXPKEYSIG B56FFA946EB1660A Parrot project <[email protected]>
Reading package lists... Done
W: GPG error: URL lts InRelease: The following signatures were invalid: EXPKEYSIG B56FFA946EB1660A Parrot project <[email protected]>
E: The repository 'URL lts InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: URL lts-security InRelease: The following signatures were invalid: EXPKEYSIG B56FFA946EB1660A Parrot project <[email protected]>
E: The repository 'URL lts-security InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package parrot-core is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

W: --force-yes is deprecated, use one of the options starting with --allow instead.
E: Package 'parrot-core' has no installation candidate
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
W: --force-yes is deprecated, use one of the options starting with --allow instead.
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
W: --force-yes is deprecated, use one of the options starting with --allow instead.
Reading package lists... Done
Building dependency tree
Reading state information... Done
W: --force-yes is deprecated, use one of the options starting with --allow instead.
E: Unable to locate package parrot-interface
E: Unable to locate package parrot-interface-full
E: Unable to locate package parrot-tools-full

What shall I do with it?

@jeffmur @haise0 Here is my tutorial for creating Parrot’s WSL image. The method is export from docker and install on top of Debian is not needed.

2 Likes

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.