https://github.com/bhanunamikaze/shadowx
ShadowX is a secure file transfer application that allows you to transfer files between a client and a server using Pre-Shared Key (PSK) authentication and TLS encryption
https://github.com/bhanunamikaze/shadowx
file-transfer secure-file-transfer secure-file-upload
Last synced: about 2 months ago
JSON representation
ShadowX is a secure file transfer application that allows you to transfer files between a client and a server using Pre-Shared Key (PSK) authentication and TLS encryption
- Host: GitHub
- URL: https://github.com/bhanunamikaze/shadowx
- Owner: Bhanunamikaze
- License: mit
- Created: 2025-03-17T20:00:30.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-03-17T20:13:31.000Z (2 months ago)
- Last Synced: 2025-03-17T21:22:28.874Z (2 months ago)
- Topics: file-transfer, secure-file-transfer, secure-file-upload
- Language: Go
- Homepage: https://www.hackingdream.net/2019/12/file-transfer-cheat-sheet-for-pentesters-oscp.html
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ShadowX - Secure File Transfer
ShadowX is a secure file transfer application that allows you to transfer files between a client and a server using **Pre-Shared Key (PSK) authentication** and **TLS encryption**. It ensures secure and reliable file transfers over a network.
---
## Features
- **Secure File Transfer**: Uses TLS encryption to protect data in transit.
- **Pre-Shared Key (PSK) Authentication**: Ensures only authorized clients can connect to the server.
- **Directory Support**: Can send entire directories recursively.
- **Self-Signed Certificates**: Automatically generates self-signed certificates for TLS encryption.
- **Cross-Platform**: Works on any platform that supports Go.---
## Installation
### Prerequisites
- [Go](https://golang.org/dl/) installed on your system.
### Build from Source
1. Clone the repository:
```bash
git clone https://github.com/bhanunamikaze/ShadowX.git
cd ShadowX
```2. Build the application:
```bash
go build -ldflags "-s -w" -o ShadowX
```3. Run the application:
- For server mode:
```bash
./ShadowX -i 0.0.0.0:8080 -p mysecretkey
```
- For client mode:
```bash
./ShadowX -i 192.168.1.5:8080 -p mysecretkey -f myfile.txt
```---
## Usage
### Server Mode
Start the server by specifying the IP address, port, and pre-shared key (PSK):
```bash
./ShadowX -i 0.0.0.0:8080 -p mysecretkey
```- The server will listen for incoming connections on the specified IP and port.
- It will automatically generate a self-signed certificate if one does not exist.### Client Mode
Send files or directories to the server by specifying the server's IP address, port, PSK, and file/directory path:
```bash
./ShadowX -i 127.0.0.1:8080 -p mysecretkey -f myfile.txt
```- To send a directory:
```bash
./ShadowX -i 127.0.0.1:8080 -p mysecretkey -f mydir/
```---
## Command-Line Arguments
| Argument | Description | Example |
|----------|--------------------------------------------------|----------------------------------|
| `-i` | IP address and port to bind/listen | `-i 0.0.0.0:8080` |
| `-p` | Pre-Shared Key (PSK) for authentication | `-p mysecretkey` |
| `-f` | File or directory to send (client mode only) | `-f myfile.txt` or `-f mydir/` |---
## Example Workflow
1. **Start the Server**:
```bash
./ShadowX -i 0.0.0.0:8080 -p mysecretkey
```2. **Send a File from the Client**:
```bash
./ShadowX -i 127.0.0.1:8080 -p mysecretkey -f myfile.txt
```3. **Send a Directory from the Client**:
```bash
./ShadowX -i 127.0.0.1:8080 -p mysecretkey -f mydir/
```---
## LicenseThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.