{"id":19712177,"url":"https://github.com/fmstrat/kali-profiles","last_synced_at":"2026-04-14T02:31:55.960Z","repository":{"id":76612748,"uuid":"158399724","full_name":"Fmstrat/kali-profiles","owner":"Fmstrat","description":"A profile and network manager for Kali VMs to keep client information encrypted and seperate on a single VM","archived":false,"fork":false,"pushed_at":"2018-12-14T16:51:48.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-27T19:59:51.838Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fmstrat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-20T14:10:46.000Z","updated_at":"2020-06-03T10:39:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"b461011f-7371-4d7e-a8d8-8a1ae57424cd","html_url":"https://github.com/Fmstrat/kali-profiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Fmstrat/kali-profiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fkali-profiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fkali-profiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fkali-profiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fkali-profiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fmstrat","download_url":"https://codeload.github.com/Fmstrat/kali-profiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fmstrat%2Fkali-profiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31779943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T22:15:56.930Z","updated_at":"2026-04-14T02:31:55.940Z","avatar_url":"https://github.com/Fmstrat.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kali-profiles\nKali Profiles is a boot script for Offensive Security's Kali Virtual Machine images that allow you to create and select client profiles at boot along with Clearnet or Whonix network profiles, all while encrypting files with [gocryptfs](https://nuetzlich.net/gocryptfs/).\n\n## How it works\n\nAt boot it asks for your encryption password, then displays the menus which will replace your user directory with the profile before starting the network and logging in:\n```\n-------------------------------\n[1] Client A\n[2] Client B\n[D] Default\n[C] Create new profile\n[S] Drop to shell\n-------------------------------\nChoose profile: \n```\n\nAnd then ask you to select your network profile:\n```\n-------------------------------\n[C] Clearnet\n[W] Whonix\n-------------------------------\nChoose network: \n```\nThe VM will retain the selected user and network profile even through reboots until you change profiles (See usage below).\n\n\n## To set up\n1) Set up a Whonix Gateway from [Whonix](https://www.whonix.org/download/)\n2) Set up a Kali VM from [Offensive Security](https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/)\n3) In VirtualBox for the Kali VM, add a second network adapter using the `Internal Network` of `Whonix`\n4) In VirtualBox for the Kali VM, add a shared folder named `Vault`. This can be on a cloud storage provider such as [Nextcloud](https://nextcloud.com/) as client files will be encrypted in the VM with gocryptfs.\n4) Boot the Whonix Gateway\n5) Boot the Kali VM\n6) Set up the Kali VM's root profile in X Windows however you would like as a default profile\n7) As root, enable internet on eth0 (this may not be required if internet is already active):\n```\necho \"auto eth0\" \u003e\u003e /etc/network/interfaces\necho \"iface eth0 inet dhcp\" \u003e\u003e /etc/network/interfaces\nifup eth0\n```\n7) As root, install kali-profiles:\n```\nmount -t vboxsf Vault /media/Vault\ncd /media/Vault\ngit clone https://github.com/Fmstrat/kali-profiles.git .\n/media/Vault/plain/setup.sh\n```\n\nThe first thing the script will do is set up gocryptfs and then ask which user you would like to set up multiple profiles for. In most cases, this is `root`:\n```\nEnter the user you would like to sync (most commonly root): root\n```\n\nNext, it will create a `/media/Vault/cipher` directory and encrypt it with the selected password in gocryptfs:\n```\nEnter password for encryption: \nConfirm password: \n```\nThe Vault share could be included in cloud storage since it is encrypted. This is where profiles (copies of the user folder) will be stored.\n\nAfter this, the script will:\n- Set up an `/etc/rc.local` that forces profile selection at boot\n- Add the `Vault` share to `/etc/fstab` so we can mount the `cipher` folder as `/mnt/Vault` after boot.\n- Create a `/mnt/Vault/profiles` directory where profiles are stored\n- Create a `/mnt/Vault/bin` directory in the path, so you can store encrypted scripts for use across all profiles\n- Create a `/mnt/Vault/data` directory where any data can be stored encrypted and shared accross profiles\n- Create a `/mnt/Vault/bashrc` that is encrypted and called by every profiles `~/.bashrc` to keep static aliases/etc.\n- Create the `Default` profile based off your existing user.\n\nAfter the script completes, reboot and you will be in the default profile with clearnet access. To create new or change profiles, see Usage below.\n\nIf you wish to edit the network profiles, take a look at the following files:\n```\n/media/Vault/plain/setup/interfaces.clearnet\n/media/Vault/plain/setup/resolv.conf.clearnet\n/media/Vault/plain/setup/interfaces.whonix\n/media/Vault/plain/setup/resolv.conf.whonix\n```\n- When the `clearnet` profile is enabled, `eth0` is used for clearnet access, and `eth1` is not used.\n- When the `whonix` profile is enabled, `eth1` is used for TOR access via Whonix, and `eth0` is not used.\n\n\n## Usage\n\nSee current profile:\n```\ncurprofile\n```\n\nSync existing profile back to Vault share, clear out existing profile in VM, disable the network, then reboot to change to or create new one:\n```\nchangeprofile reboot\n```\n\nSync existing profile back to Vault share, clear out existing profile in VM, disable the network, then power off and be brought to the profile selection at next boot:\n```\nchangeprofile\n```\n\nSync existing profile back to Vault share, but stay logged in and don't reboot or shutdown.\n```\nbackupprofile\n```\n\n## Changing network settings\n\nIf you wish to change the network settings for `Clearnet` or `Whonix`, you can simply edit the files in `/mnt/Vault/networks`.\n\n## Adding to another VM\n\nTo add to another VM, just spin up another Kali instance with the same config, and use `/media/Vault/addmachine.sh`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmstrat%2Fkali-profiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffmstrat%2Fkali-profiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmstrat%2Fkali-profiles/lists"}