Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Enumerating-a-System-over-the-Network/README.md
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
78 lines (60 sloc)
2.96 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Enumerating a System over the Network | |
## Project Overview | |
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. | |
## Features | |
- **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. | |
## File Structure | |
### Main Application | |
- **`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. | |
### Client Scripts | |
- **`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. | |
### Configuration and Utilities | |
- **`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. | |
### Testing | |
- **`unit_test.py`**: Contains unit tests for `config_handler.py` and `utilities.py` to verify functionality. | |
## Usage | |
### Prerequisites | |
1. Python 3.x installed on your machine. | |
2. Network connectivity between the controller and the VMs. | |
3. Ensure the client scripts are running on the respective VMs. | |
### Running the Application | |
1. Start the application by executing: | |
```bash | |
python main.py | |
``` | |
2. 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. | |
3. To send commands to all connected VMs, use the "Send to All VMs" button. | |
### Client Setup | |
- **Linux**: Run `clientkali.py` on the Linux VM. | |
- **Windows**: Run `clientwindows.py` or `clientwindowsvm.py` on the Windows VM. | |
### Testing | |
Run the unit tests to verify configurations and utilities: | |
```bash | |
python -m unittest unit_test.py | |
``` | |
## Example Commands | |
### Linux | |
- Get users: `cat /etc/passwd` | |
- Check open ports: `nmap localhost` | |
- System information: `uname -a` | |
### Windows | |
- Display network info: `ipconfig` | |
- List processes: `tasklist` | |
- System information: `systeminfo` | |
## Demonstration | |
For a detailed walkthrough, refer to the [YouTube demonstration](https://youtu.be/BWhxCd8t6YA). | |
## License | |
This project is licensed under the MIT License. See `LICENSE` for more details. |