Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
chathaj committed Nov 15, 2024
1 parent 7a85f8b commit 6ce68ab
Showing 1 changed file with 78 additions and 1 deletion.
79 changes: 78 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,78 @@
# Enumerating-a-System-over-the-Network
# 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.

0 comments on commit 6ce68ab

Please sign in to comment.