Skip to content

Latest commit

Β 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🦜 Parrot VM Toolkit

Parrot VBox Doctor

Comprehensive verification and optimization toolkit for Parrot Security OS & Kali Linux VirtualBox VMs

License: MIT Platform VirtualBox


πŸ“– Overview

Setting up a penetration testing VM in VirtualBox comes with many challenges: clipboard not working, slow performance, display issues, and more. This toolkit automates the detection and fixing of these common issues.

ℹ️ How it works: The main script (parrot_vm_check_v2.sh) only inspects and reports β€” it never changes your system. To apply fixes, you separately run the generated optimizer (sudo bash /tmp/parrot_optimize.sh) and choose exactly what to apply from its menu. Nothing is disabled or stopped without your explicit choice.

Features

βœ… 17+ System Checks β€” Guest Additions, clipboard, graphics, performance, and more
βœ… Automatic Issue Detection β€” Identifies problems and their severity
βœ… Fix Commands Provided β€” Copy-paste solutions for every issue
βœ… Performance Optimization β€” Reduce boot time and improve responsiveness
βœ… Interactive Optimizer β€” Menu-driven optimization script
βœ… Wayland Detection β€” Identifies the #1 cause of VirtualBox issues


πŸš€ Quick Start

One-Liner Installation & Run

wget -O parrot_vm_check.sh https://raw.githubusercontent.com/yourusername/parrot-vm-toolkit/main/parrot_vm_check_v2.sh && chmod +x parrot_vm_check.sh && sudo ./parrot_vm_check.sh

Manual Installation

# Clone the repository
git clone https://github.com/yourusername/parrot-vm-toolkit.git
cd parrot-vm-toolkit

# Make scripts executable
chmod +x parrot_vm_check_v2.sh

# Run the verification script
sudo ./parrot_vm_check_v2.sh

πŸ“‹ What It Checks

Category Checks Performed
System Info OS version, kernel, VM detection
Desktop Session KDE/GNOME, X11 vs Wayland detection
Guest Additions Kernel modules, VBoxService, VBoxClient
Clipboard Service status, bidirectional functionality
Drag & Drop Service status, common issues
Graphics 3D acceleration, resolution, drivers
CPU Cores allocated, usage, features (PAE/NX)
Memory RAM allocation, swap usage, availability
Storage Disk space, I/O performance
Network Connectivity, DNS resolution
Shared Folders vboxsf module, user permissions
Boot Time Duration analysis, slow services
Startup Services Optional services that can be disabled
Performance Swappiness, preload, tracker, KDE effects
Browsers Installed browsers, resource usage
System Logs VirtualBox errors, Guest Additions logs

πŸ“Š Sample Output

╔═══════════════════════════════════════════════════════════════════╗
β•‘     🦜 Parrot OS VirtualBox Verification Suite v2.0 🦜           β•‘
β•‘                       CyberSkii                                   β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃  3. VIRTUALBOX GUEST ADDITIONS
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

  [Kernel Modules]
  [βœ“ PASS] vboxguest module loaded (Core Guest Additions) - v7.0.18
  [βœ“ PASS] vboxsf module loaded (Shared Folders support)
  [βœ“ PASS] vboxvideo module loaded (Video driver)

  [VBoxClient Features]
  [βœ“ PASS] VBoxClient --clipboard is running
  [βœ“ PASS] VBoxClient --draganddrop is running
  [βœ“ PASS] VBoxClient --seamless is running
  [βœ“ PASS] VBoxClient --vmsvga is running

  β–Ί Guest Additions Status: INSTALLED & RUNNING

πŸ“Š VERIFICATION SUMMARY

  Passed:   42
  Warnings: 3
  Failed:   0
  Issues:   2

  ╔═══════════════════════════════════════════════════════════════╗
  β•‘  ⚠ VM is functional but has some issues - review fixes above β•‘
  β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ”§ Generated Scripts

The main script generates additional helper scripts:

1. Auto-Fix Script (/tmp/parrot_autofix.sh)

Automatically applies fixes for detected issues:

sudo bash /tmp/parrot_autofix.sh

2. Optimization Script (/tmp/parrot_optimize.sh)

Interactive menu for performance optimization:

sudo bash /tmp/parrot_optimize.sh

Menu Options:

  1) Disable unnecessary startup services (incl. plymouth boot splash)
  2) Optimize system settings (swappiness, cache, GRUB boot timeout)
  3) Install preload (faster app launching)
  4) Install lighter browser (Chromium)
  5) Disable KDE desktop effects
  6) Disable tracker / Baloo file indexer
  7) Clean system (apt cache, old packages)
  8) Clear RAM cache (temporary boost)
  9) Apply ALL optimizations
  0) Exit

πŸ› οΈ Common Issues & Quick Fixes

Clipboard Not Working

# Check session type
echo $XDG_SESSION_TYPE

# If "wayland", switch to X11 at login screen

# Restart clipboard service
VBoxClient --clipboard &

Slow Boot Time

# Disable slow services
sudo systemctl disable postgresql docker cups bluetooth
sudo systemctl disable NetworkManager-wait-online
sudo systemctl disable apt-daily-upgrade lm-sensors

# Mask the boot splash (often the single biggest offender, 15-35s)
sudo systemctl mask plymouth-quit-wait.service plymouth.service

# Skip the GRUB menu countdown
sudo sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub && sudo update-grub

See the full Boot Optimization section below for the complete walkthrough, or just run the generated optimizer (sudo bash /tmp/parrot_optimize.sh) which applies all of this for you.

Poor Performance

# Reduce swappiness
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

# Install preload
sudo apt install -y preload

Guest Additions Not Working

# Reinstall Guest Additions
sudo apt install -y build-essential dkms linux-headers-$(uname -r)
# VirtualBox Menu: Devices β†’ Insert Guest Additions CD
sudo mount /dev/cdrom /mnt/cdrom
sudo /mnt/cdrom/VBoxLinuxAdditions.run
sudo reboot

πŸš€ Boot Optimization (Faster VirtualBox Startup)

A slow-booting VM is the most common complaint when running Parrot OS (or Kali) inside VirtualBox. Boot times of 3+ minutes are usually caused by a handful of unnecessary services, the GRUB menu countdown, and the boot splash animation. The steps below cut that down to roughly 1 minute or less.

πŸ’‘ The verification script detects these issues automatically, and the generated optimizer (sudo bash /tmp/parrot_optimize.sh) applies every fix in this section for you. This guide documents what it does so you can also do it by hand.

Step 1 β€” Diagnose

# Total boot time (kernel + userspace split)
systemd-analyze

# Top 20 slowest services during boot
systemd-analyze blame | head -20

Step 2 β€” Disable / Mask Slow Services

These services commonly waste boot time and are not required for a pentesting VM:

Service What It Does Why You Don't Need It
plymouth-quit-wait.service Boot splash animation Cosmetic only β€” often wastes 15–35s
apt-daily-upgrade.service Auto package upgrades on boot Run updates manually instead
samba-ad-dc.service Samba AD domain controller Not needed unless running AD
isc-dhcp-server.service DHCP server daemon Not needed unless serving DHCP
cpupower-gui.service CPU frequency scaling GUI Unnecessary in a VM
cpupower-gui-helper.service Helper for the CPU frequency GUI Unnecessary in a VM
lm-sensors.service Hardware temperature sensors Sensors don't work in VMs
ptunnel.service ICMP tunneling Only needed during specific engagements
sudo systemctl disable apt-daily-upgrade.service samba-ad-dc.service \
    isc-dhcp-server.service cpupower-gui.service cpupower-gui-helper.service \
    lm-sensors.service ptunnel.service

If plymouth-quit-wait still appears in systemd-analyze blame after disabling, mask it β€” this is stronger than disable and prevents it starting even when another unit depends on it:

sudo systemctl mask plymouth-quit-wait.service plymouth.service

Step 3 β€” Reduce the GRUB Timeout

By default GRUB pauses several seconds at the boot menu. Set it to zero:

sudo sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=0/' /etc/default/grub
sudo update-grub

Step 4 β€” Optimize VirtualBox VM Settings

Power off the VM and adjust these in VirtualBox β†’ Settings:

  • Display: Graphics Controller β†’ VBoxSVGA, Video Memory β†’ 128 MB, enable 3D Acceleration
  • Processor: at least 2 CPUs (4 if the host allows), enable PAE/NX
  • Memory: at least 4 GB RAM (8 GB recommended)
  • Storage: put the VM disk on an SSD; prefer a fixed-size disk over dynamically allocated (faster I/O)
  • System β†’ Boot: uncheck Enable EFI (BIOS boot is faster for VMs)

Step 5 β€” Install Guest Additions

Improves display performance, enables shared clipboard, and fixes display-driver issues:

sudo apt update
sudo apt install -y virtualbox-guest-x11 virtualbox-guest-utils virtualbox-guest-dkms
sudo reboot

Step 6 β€” Reduce Swap & Disable Desktop Extras

# Use RAM more, swap less (make permanent via /etc/sysctl.conf)
sudo sysctl vm.swappiness=10
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

# KDE editions: disable the Baloo file indexer
balooctl disable

# XFCE editions: stop the screensaver/power manager from hanging an idle VM
xfce4-screensaver-command --disable
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/dpms-enabled -s false

Fixing the vmwgfx Display Error

If you see this during boot:

vmwgfx: seems to be running on an unsupported hypervisor
vmwgfx: This configuration is likely broken

The VMware graphics driver (vmwgfx) is loaded while you're on VirtualBox. Fix it by setting the Graphics Controller to VBoxSVGA in the VM's Display settings.

Expected Results

Stage Before After
Total Boot Time ~3 min 20 s ~1 min or less
Userspace ~2 min 50 s ~45 s
Top Offenders 8+ unnecessary services Only essential services remain

⚠️ Services to KEEP (do not disable)

  • vboxadd.service β€” VirtualBox Guest Additions
  • NetworkManager.service β€” Network connectivity
  • systemd-modules-load.service β€” Kernel modules
  • lightdm.service / sddm.service β€” Desktop login manager
  • systemd-journald.service β€” System logging
  • dbus.service β€” Inter-process communication

πŸ“š Documentation


πŸ–₯️ Compatibility

Tested On

Distribution Version Status
Parrot Security OS 7.1 KDE βœ… Fully Tested
Parrot Security OS 6.x βœ… Compatible
Kali Linux 2024.x βœ… Compatible
Kali Linux 2023.x βœ… Compatible
Ubuntu 22.04+ βœ… Compatible
Debian 11+ βœ… Compatible

VirtualBox Versions

  • VirtualBox 7.x β€” βœ… Recommended
  • VirtualBox 6.x β€” βœ… Compatible

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

CyberSkii β€” Cybersecurity Community


⭐ Support

If this toolkit helped you, please consider:

  • ⭐ Starring this repository
  • πŸ› Reporting issues you encounter
  • πŸ“’ Sharing with others in the infosec community

πŸ“œ Changelog

v2.1 (2025)

  • Added a dedicated Boot Optimization guide for faster VirtualBox startup
  • Detect more boot-slowing services (plymouth, apt-daily-upgrade, samba-ad-dc, isc-dhcp-server, cpupower-gui, lm-sensors, ptunnel)
  • Optimizer now masks the Plymouth boot splash (the most common offender)
  • Optimizer now reduces the GRUB boot menu timeout to 0
  • Optimizer now disables the Baloo file indexer on KDE editions

v2.0 (2025)

  • Added boot time analysis
  • Added startup services check
  • Added performance metrics (swappiness, preload, tracker)
  • Added browser analysis
  • Added comprehensive issues table
  • Added optimization guide table
  • Added auto-optimization script generator
  • Improved Wayland detection
  • Added quick commands reference table

v1.0 (2025)

  • Initial release
  • Guest Additions verification
  • Basic system checks
  • Issue detection and fixes

Releases

Packages

Used by

Contributors

Languages