This project demonstrates a system for managing and interacting with virtual machines (VMs) over a network. It provides a graphical user interface (GUI) for sending commands to connected VMs, retrieving their output, and saving results for further analysis. The project is designed to support both Linux and Windows environments.
- Multi-VM Management: Connect and interact with multiple VMs simultaneously.
- Cross-Platform Command Execution: Execute predefined commands on Linux and Windows systems.
- Output Logging: Save command outputs to text files for documentation and analysis.
- Graphical Interface: Intuitive GUI for selecting VMs, OS types, and commands.
- Test Coverage: Unit tests to ensure the reliability of configurations and utilities.
main.py
: Entry point of the application. Initializes and launches the GUI.controller_app.py
: Core application logic for interacting with VMs and managing the GUI.
clientkali.py
: Client-side script for handling commands on Linux systems.clientwindows.py
: Client-side script for handling commands on Windows systems.clientwindowsvm.py
: Alternate script for managing commands on Windows VMs.
config_handler.py
: Manages VM configurations and predefined commands for Linux and Windows.utilities.py
: Provides helper functions, such as saving command outputs to files.
unit_test.py
: Contains unit tests forconfig_handler.py
andutilities.py
to verify functionality.
- Python 3.x installed on your machine.
- Network connectivity between the controller and the VMs.
- Ensure the client scripts are running on the respective VMs.
-
Start the application by executing:
python main.py
-
Use the GUI to:
- Select a VM.
- Choose the operating system (Linux/Windows).
- Pick a command from the dropdown.
- Click "Send Command" to execute it on the selected VM.
- View the output in the GUI or save it automatically to a file.
-
To send commands to all connected VMs, use the "Send to All VMs" button.
- Linux: Run
clientkali.py
on the Linux VM. - Windows: Run
clientwindows.py
orclientwindowsvm.py
on the Windows VM.
Run the unit tests to verify configurations and utilities:
python -m unittest unit_test.py
- Get users:
cat /etc/passwd
- Check open ports:
nmap localhost
- System information:
uname -a
- Display network info:
ipconfig
- List processes:
tasklist
- System information:
systeminfo
For a detailed walkthrough, refer to the YouTube demonstration.
This project is licensed under the MIT License. See LICENSE
for more details.