# pimpmykali.sh # Fixes for new imported Kali Linux virtual machines - Author assumes zero liability for any data loss or misuse of pimpmykali - Can be used on a bare metal machines, but thats on you - Menu breakdown added below revision history # Github index updated added +x permission: - Script is now be executable upon clone (perms: 755 rwxr-xr-x added to github) - There is no need to chmod +x pimpmykali.sh upon git clone # Installation script: - rm -rf pimpmykali/ - git clone https://github.com/Dewalt-arch/pimpmykali - cd pimpmykali - sudo ./pimpmykali.sh - For a new kali vm, run menu option N # Revision 1.2.4 - added common missing items - Added to menu options : 1 - Fix Missing, 0 - Fix All, and N - new vm setup - gcc-mingw-w64-x86-64-win32 - libssl-dev - set - Resolved an issue with vscode installer menu option V # Revision 1.2.3 - fix_broken_xfce - only_upgrade function modified - function virt_what was called to early in only_upgrade - moved to later part of the only_upgrade function after apt update - fix_broken_xfce function is no longer necessary as of Kali 2021.1 - fix_broken_xfce removed from all script processing - fix_broken_xfce has been moved to stand alone function - not called by any other part of the script except (menu F) - fix_broken_xfce (menu F) - left as a stand alone function as a fail-safe for older versions of Kali - fix_broken_xfce code and function will be removed completely at a future date - fix_upgrade function modified - virt_what function was called before run_update - virt_what function moved, now called after run_update - apt_update function added, now gives on screen display of running process function - apt_upgrade function added, now gives on screen display of running process function - apt_autoremove function added, now gives on screen display of running process function # Revision 1.2.2 - A number of changes / updates - Added Menu option C added - Install Google-Chrome (gowitness dependancy) - Added google-chrome to fix_missing which will be activated by - menu option 1 fix missing - menu option 0 fix all - menu option N new vm setup - /etc/apt/sources.list function rewritten - function will now only search for a specific line in sources.list - "#deb-src http://http.kali.org/kali kali-rolling main contrib non-free" or - "# deb-src http://http.kali.org/kali kali-rolling main contrib non-free" - if found, script will sed out the # and enable deb-src - no other modifications are made to sources.list - Downgrade Metasploit function has been removed - Menu option D - virt-what function upgraded, check added for already existing - enable root login prompt moved in the script should appear sooner during execution # Revision 1.2.1 - Menu Option N Modified - minor code cleanup, no major changes. # Revision 1.2.0 - Menu Option N Modified - Kali 2021.1 + MSF-6.0.30-DEV have been released live in the Kali Repo - Downgrade Metasploit has been removed from menu option N - Downgrade Metasploit is now only available via menu option D - Minor code cleanup # Revision 1.1.9 - Gedit Connection Refused - added fix for gedit as root connection refused - Fix will be installed via : - 1 - Fix Missing - 0 - Fix All - N - New VM Setup - Menu item G to apply only this fix # Revision 1.1.8 - Quality of life improvements - Added install for theharvester - xfce power management is now disabled - fix_xfcepower fix_xfce_root fix_xfce_user - will also be executed in menu option F - Fix Icons - pc speaker beep now disabled /etc/modprobe.d/nobeep.conf - silence_pcbeep - Items will be installed via the following : - 1 - Fix Missing - 0 - Fix All (Runs only options 1 thru 8) - N - New VM Setup - Updated Readme.md documentation for menu items S, F - Minor updates for a few prompts # Revision 1.1.7 - libguestfs-tools cifs-utils added - libguestfs-tools added to fix_missing - cifs-utils added to fix_missing - Items will be installed via the following : - 1 - Fix Missing - 0 - Fix All (Runs only options 1 thru 8) - N - New VM Setup # Revision 1.1.6 - update to curl get-pip.py - script has been updated to point directly to the python2.7 get-pip.py # Revision 1.1.5 - Fix SPIKE - menu option S to apply this fix only - fix_spike will be applied thru the following menu options automatically - 1 - Fix Missing (fix_spike is a part of fix_missing) - 0 - Fix All (Runs only options 1 thru 8) - N - New VM Setup - current version of spike2.9-1kali7 throws undefined symbol error - removes spike2.9-1kali7 - installs spike_2.9-1kali6 (reverts spike to prior version) - apt adds hold to spike to prevent accidental future upgrades - apt hold will be removed at a future date once 2.9-1kali7 issues are resolved # Revision 1.1.4 - Fix Broken XFCE Icons - menu option F to apply this fix only - Menu N and 9 will apply fix automatically as a part of their function - restores FileManager (Folder Icon on Taskbar) function - restores TerminalEmulator (Terminal Icon) function - restores "File System" icon on desktop function - restores "Home" icon on desktop function # Revision 1.1.3 - added Are you sure prompt - Added "Are you sure you want to copy all files from /home/kali to /root" prompt - Gives the user a last chance to abort the function - There are no major functional changes between 1.1.2 and 1.1.3 other than the additional prompt to the copy /home/kali to /root function - Answering Y - performs copy function of /home/kali to /root - Answering N - skips copy function and proceeds on to the next section of the script # Revision 1.1.2 - copy /home/kali to /root screen and prompt - 1.1.2 Notes updated to reflect 1.1.3 addition and changes to 1.1.2 function - Recently there have been a number of users wanting to run as root in kali but finding there are no files or directories in /root once the root login is enabled and they login as root. This is the default as root was disabled, there is nothing in /root - This function ONLY executes If the user selects Yes at the enable root login prompt - A second screen and prompt was added to the Enable Root Login function - Prompts the user to copy everything from /home/kali to /root (And we mean everything!) - Answering Y - will prompt user for "Are you sure?" added in 1.1.3 - Answering N - will skip the copy and end this function - No file-checking will be performed - Warning: This WILL overwrite anything in /root with the contents of /home/kali if Yes is selected - Function does NOT remove anything from /home/kali # Revision 1.1.1 - quick fix - Quick fix applied to modifiy a specific function that was calling - the exit_screen when it should not have been # Revision 1.1.0 - python module: xlrd added - added pip install xlrd==1.2.0 to fix missing - general code cleanup - Thank you to hackza for testing functions on Mac Vmware Fusion! # Revision 1.0.9 - Qemu/Libvirt Detection added - Thank you m4ul3r! It was his idea and testing that we are able to add this! - detection of "kvm" hypervisor - upon that detection xserver-xorg-video-qxl spice-vdagent are installed # Revision 1.0.8 - New Menu Item n or N - function will run fix_all, fix_missing, downgrade metasploit and pimpmyupgrade - executes menu options 0, D and 9 from a single menu item. - On-screen Menu display has been reworked and cleaned up a bit - This saves the user from running menu 0, then running D then running 9 individually. # Revision 1.0.7 - GOPATH statements added to .zshrc and .bashrc - function will check for GOPATH in .zshrc and .bashrc - Checks added for root and regular users - if "GOPATH" is not found in .zshrc or .bashrc, statements will be added: - export GOPATH=$HOME/go - export PATH=$PATH:$GOPATH/bin - if "GOPATH" is found in .zshrc or .bashrc, no changes will be made - Menu Options 0 (Fix All), 1 (Fix Missing) or 3 (Fix GoLang) will activate this function # Revision 1.0.6 - theHarvester fix removed - Python3.9.1 has arrived! No longer in Release Candidate status! - theHarvester fix is no longer necessary and has been commented as of this Revision - if no further complications, code will be removed completely # Revision 1.0.5 - Gedit returns! - gedit has been added to fix_all and fix_missing functions # Revision 1.0.4 - fix theHarvester (removed in 1.0.6) - This is only to be used in the following case : - Menu option H and will only be called via menu option H - Kali 2020.4 has been apt upgraded and python3.9 is installed - theHarvester is not functioning and is getting an error on uvloop - this will set python3 to default to python3.9 - git clones uvloop, applies fixes and recompiles - git clones theHarvester, applies fixes and installs - additional checks will be added in the future # Revision 1.0.3 - Metasploit 6 to Metasploit 5 Downgrade Option / Apt Upgrade returns! - Menu option D has been added to perform the downgrade - will not be called by any other function - only menu option D will execute the downgrade - metasploit will complain about 2 versions of reline being installed but do not believe it is an issue - places a hold on metasploit-framework so it will not be upgraded in the future - Pimpmyupgrade menu option 9 - set as a stand alone function, and will not be called from any other function in the script - apt upgrade will only be called from this function - mark metasploit-framework to be ignored in the upgrade process - perform apt upgrade without upgrading metasploit-framework - unmark metasploit-framework from being held back - Fix All menu option 0 (modified) - now only runs menu options 1 thru 8 , does not include menu 9 (pimpmyupgrade) # Revision 1.0.2 - Apt Upgrade Commented Out - Due to Metasploit being upgraded from msf5 -> MSF6 apt upgrade has been commented out and will NOT be run at this time. # Revision 1.0.1 Python-Requests - added python requests and colorama installations to fix_missing (menu option 1) and (menu option 0) fix_all # Revision 1.0.0 Atom replaces Gedit - pimpmykali has reached a state of consistency and stability in the function it performs version is being bumped to v1.0.0 to be more in line with version numbering standards. - Atom has replaced gedit, gedit will no longer be installed by pimpmykali # Revision 0.5j - rockyou.txt.gz - added fix_rockyou function - added gzip -dq /usr/share/wordlists/rockyou.txt.gz - fix_missing and fix_all both call this function - added restart-vm-tools as a part of menu 9 pimpmyupgrade - added fix for bad apt hash issue (automatically applied) - revision is going to be bumped to v1.0.0 upon next release # Revision 0.5i - virtualbox specific fixes - virtualbox-guest-addditions-iso added to check_vm as a part of fix_upgrade - VBoxLinuxAdditions.run execution added to check_vm as a part of fix_upgrade - '/sbin/rcvboxadd quicksetup all' added to check_vm as a part of fix_upgrade # Revision 0.5h - minor code cleanup - 2nd warning screen of nuke impacket has been disabled and will no longer show - removed --borked from main menu system as the ! menu item is now available - added htop to fix_missing # Revision 0.5g - minor updates - moved wait_time, finduser and groups to global vars from local vars - general cleanup of script, comments, etc - 2nd warning screen of nuke impacket has been disabled and will no longer show # Revision 0.5f - flameshot, gedit and seclists have been removed from fix_missing and - now will only be a part of fix_all or as an individual Option for installation - only command line switches with -- are now valid all others have been removed - all revision history except for the most 3 recent have been removed from the script - full revision history can be found here in REAME.md # Revision 0.5e - Nuke Impacket added to menu, enter character ! to run nuke impacket - issues with people understanding how to use --borked on the command line a menu option of character ! was added to ease use of the nuke impacket function. the command: sudo ./pimpmykali.sh --bored was used to call the nuke-impacket function now thanks to a new menu item of ! it can be called from the menu system directly without the need for command line switches, but the switch is still available - command line switches with a single - or just the name have been removed all command line switches are now --nameofswtich as per the --help system indicates # Revision 0.5d - bugfix Thank you to @AES ! for finding the bug, nmap wget script was pulling the wrong page - correct page has been added new version git pushd - unfortunatly versions 0.5c thru 0.4 are affected if you have an old version or havent ran pimpmykali.sh please git clone a fresh copy and re-run the nmap from the menu Menu Option 8 - Fix clamav-exec.nse - corrected http-shellshock.nse nmap script added - Thank you Alek & Blob! # Revision 0.5c - fix_upgrade removed from fix_missing - fix_upgrade removed from fix_missing and is no longer 'forced' as a part of fix_missing - fix_upgrade will now only be called as a part of fix_all (menu 0) or fix_upgrade (menu 9) or command line switches --upgrade -upgrade or upgrade - general code cleanup, some additional comments added # Revision 0.5b - The Essentials - Blindpentesters Essential Collection added - added Blindpentesters 'The Essentials' tools and utils collection - menu option 'B' for blindpentesters tools collection, installs, runs the_essentials.sh and exits # Revision 0.5a - minor cosmetic fixes to pimpmyupgrade functions # Revision 0.5 - pimpmyupgrade added - fix_sources deb-src is not enabled in /etc/apt/sources.list - fixed - linux-headers-(uname -r) are not installed - fixed - new functions check_vm, virt_what, run_update are what comprise pimpmyupgrade - virt_what determines if vm is under virtualbox or vmware - check_vm checks for virtualbox or vmware and installs proper drivers for each - run_update runs fix_sources, runs apt upgrade calls virt_what, calls check_vm # Revision 0.4b - minor updates - reworked fix_section works much better now - added slient 'mode' variable, uncomment silent= line to turn output on and off from apt etc - misc cleanup in the script # Revision 0.4a - 2nd warning screen added for --borked impacket removal system - If you cant have a little fun with your own scripts your doing something wrong.... - last chance warning screen ( mostly novelty ), random launch code generation on each run of --borked - list of target selection, targets locked, etc - seriously if you made it to --borked 2nd warning your having a bad day with impacket.. enjoy the giggle - 10 second wait timer added to last chance launch screen before operations are performed - if no ctrl+c is entered to cancel the operation, fix_sead is run, followed by fix_impacket - added apt -y reinstall python3-impacket impacket-scripts to fix error with smbmap after impacket removal # Revision 0.4 - Major Update for impacket removal - added flameshot as a part of the missing group to be installed - added clamav-exec.nse wget to fix clamav-exec.nse failed during nmap --script vuln scans - new commandline switch of --borked has been implemented for removal of impacket across various locations - added --borked notice to menu system, help system - added warning screen for --borked, only input of Y will proceed anything else exits - fix_sead_warning, fix_sead_run, fix_impacket_array, fix_impacket all executed in order with --borked - fix_sead_run removes any and all directories named impacket* in the following locations (you have been warned): /opt /usr/bin /usr/local/lib /usr/lib /home/$finduser/.local/bin /home/$finduser/.local/lib ~/.local/lib ~/.local/bin - fix_sead_run, also removes via fix_impacket_array any .py or .pyc related to impacket in the following: /usr/bin/$impacket_file /usr/local/bin/$impacket_file (root)~/.local/bin/$impacket_file (user)/home/$finduser/.local/bin/$impacket_file # Revision 0.3d - added flameshot to fix_missing as a part of the default installed tools - emergency fix to --force, everything should be functioning now # Revision 0.3c - per request kali-root-login enabling prompt has been reworked and reworded to be less confusing and to give the user a better explanation of what the script is doing at that stage - added to note that if you dont understand what this part of the script is doing hit N - added colors for syntax highlighting in the onscreen messages of the script in places - added fix_nmap function for fixing /usr/share/nmap/scripts/clamav-exec.nse (commented out at this time clamav-exec.nse was an issue at one time but unknown if it is still relevent) - --force command line argument was being called without setting $force in fix_all $force - fixed # Revision 0.3b - bug fix impacket installation was missing cd /opt/impacket-0.9.19 - feature request added : Gedit installation menu option 7, is included in fix_missing, all and force - remove clear from exit screen # Revision 0.3a - the extraction of the impacket-0.9.19.tar.gz was leaving /opt/impacket-0.9.19 with 700 perms and an ownership of 503:root, this has been changed to ownership root:root and all files inside /opt/impacket-0.9.19 have had their permissions set to 755 after extraction of impacket-0.9.19.tar.gz - Ascii art added to the menu # Revision 0.3 - added checks for already installed installations, added --force command ( --force will run all fixes/reinstalls ) - fix_impacket function : added both .py and .pyc files to impacket removal array - added on screen notification of files being removed by the array - fix_missing function : has been reworked new vars check section force type - added fix_section function : fix_section is the workhorse for fix_missing - reworked python-pip installation to its own function python-pip-curl and installs python-pip via curl # Revision 0.2 - Added colorized notifications, help system, command line arguments, case based menu system - valid command line arguments are: help, all, go, grub, impacket, missing, menu, smb, grub, root - anything other than --all or -all or all , will only run that function and then exit. - command line arguments can be used with -- or - or just the word itself to try can catch for all possible cases - example command line var: --help or -help or help will catch help and works for all valid command line arguments anything other the command line arugement catch exits and displays help # Menu Breakdown of Pimpmykali Menu breakdown of what pimpmykali does: - This section is being provided as a brief overview Menu option N (New Users/New VM's Should start here!) - executes menu option 0 fix all ( menu options 1 thru 8 ) - executes menu opiion 9 (pimpmyupgrade) Menu Option 1 - Fix missing - fix_sources - uncomment #deb-src from /etc/apt/sources.list - python-pip installation via curl - python3-pip installed - seclists installed - gedit installed (feature request) - flameshot installed (feature request) - locate installed (feature request) - fix_rockyou function - gunzip's /usr/share/wordlists/rockyou.gz to /usr/share/wordlists/rockyou.txt - fix_golang function - installs golang - adds golang GOPATH to .bashrc and .zshrc - installs htop - installs python requests - installs python xlrd - disables xfce power management - blacklists pcspkr kernel module /etc/modprobe.d/nobeep.conf Menu Option 2 - Fix smb.conf - Fix /etc/samba/smb.conf - adds client min protocol = CORE below [global] - adds client max protocol = SMB3 below [global] Menu Option 3 - Fix Golang - Installs golang - checks for GOPATH in .bashrc and .zshrc - if GOPATH is found, adds nothing - if not found, adds GOPATH statements to both .zshrc and .bashrc Menu Option 4 - Fix Grub - adds mitigations=off to GRUB_CMDLINE_LINUX_DEFAULT Menu Option 5 - installs Impacket-0.9.19 Menu Option 6 - Enable root login - installs kali-root-login - prompts for root password - copy /home/kali to /root prompt (1.1.2) - added are you sure? prompt to copy /home/kali to /root prompt (1.1.3) Menu Option 7 - installs Atom text editor Menu Option 8 - Fix Nmap - wget nmap script fixes - clamav-exec.nse - http-shellshock.nse (Thank you Alek!) Menu Option 9 - Pimpmyupgrade - additional notes will be added - performs apt ugprade and places hold on metasploit-framework from being upgraded - due to msf6 to msf5 downgrade - fix : black screen after login - add additional details here - fix : Hypervisor detection (vmware, virtualbox, qemu/libvirt) - add additional details here - fix : virtualbox shared folder fix applied Menu Option 0 - Fix all - Executes Menu options 1 thru 8 Only Menu Option B - BlindPentesters The_Essentials tools and utilities collection - Install all of BlindPentesters favorite tools and utilities to /opt (aprox 8GB) - Click the link below for a full list of the_essentials.sh script and its inner workings - https://github.com/blindpentester/the-essentials Menu Option F - Fixes XFCE Broken Icons "TerminalEmulator" Not Found - Fixes XFCE Open Catfish instead of Thunar when double clicking Home or FileSystem Icon - this fix is a temporary fix and will be removed once xfce has been corrected Menu Option S - Fix Spike - Fixes undefined symbol error thrown when using generic_send_tcp - this fix is temporary and will be removed once a corrected version is available Menu Option D - Downgrade metasploit-framework from 6 to 5 - included in menu option N - downgrades metasploit-framework (msfconsole) from msf6 to msf5 - this is a temporary solution and will eventually be removed once a corrected version is available Menu Option ! - Nuke Impacket (yes its literally the ! character) - removes any prior installation of impacket (gracefully and forcefully) - installs impacket-0.9.19 - installs python-pip via curl - installs python wheel - 1 warning screen (2nd warning screen removed) # TODO - clean up todo list :)