Skip to content

Commit 6df64c9

Browse files
committed
Initial release: WireUp VPN Proxy Extension for Burp Suite
Features: - OpenVPN and WireGuard support - Automatic SOCKS5 proxy configuration - Docker container isolation - TCP checksum fixes for network optimizations - Professional UI with connection status - Disconnect confirmation dialog - Automatic cleanup and resource management Created by j0lt
0 parents  commit 6df64c9

22 files changed

+3296
-0
lines changed

.gitignore

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
target/
2+
*.class
3+
*.jar
4+
*.war
5+
*.ear
6+
*.zip
7+
*.tar.gz
8+
*.rar
9+
10+
# IntelliJ
11+
.idea/
12+
*.iml
13+
*.iws
14+
15+
# Eclipse
16+
.classpath
17+
.project
18+
.settings/
19+
20+
# VS Code
21+
.vscode/
22+
23+
# OS
24+
.DS_Store
25+
Thumbs.db
26+
27+
# Logs
28+
*.log
29+
30+
# Extension tmp files
31+
wireup-config-*.conf
32+
wireup-config-*.conf.lock
33+
client.conf
34+
wg0.conf

README.md

Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
# WireUp - VPN Proxy Extension for Burp Suite
2+
3+
<div align="center">
4+
5+
**Route Burp Suite traffic through VPN tunnels with automatic SOCKS5 proxy**
6+
7+
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
8+
[![Burp Suite](https://img.shields.io/badge/Burp%20Suite-Professional%20%7C%20Community-orange.svg)](https://portswigger.net/burp)
9+
[![Docker](https://img.shields.io/badge/Docker-Required-2496ED.svg)](https://www.docker.com/)
10+
11+
*Created by [j0lt](https://github.com/j0lt)*
12+
13+
</div>
14+
15+
---
16+
17+
## Overview
18+
19+
WireUp is a Burp Suite extension that enables seamless VPN integration for penetration testing and security research. It automatically creates isolated Docker containers running VPN clients with SOCKS5 proxies, allowing you to route Burp traffic through VPN tunnels without affecting your host system.
20+
21+
### Key Features
22+
23+
- 🔐 **Multiple VPN Support**: OpenVPN and WireGuard protocols
24+
- 🚀 **One-Click Connection**: Simple UI for connecting/disconnecting
25+
- 🐳 **Docker Isolation**: VPN runs in containers, no host configuration needed
26+
- 🔄 **Auto-Cleanup**: Automatically manages Docker resources
27+
- 📊 **Built-in Logging**: Connection status and diagnostic information
28+
- 🛡️ **Security Hardened**: Resource limits, restrictive permissions, minimal attack surface
29+
-**Network Optimizations**: Automatic MTU/MSS handling and TCP checksum fixes
30+
31+
## Prerequisites
32+
33+
- **Burp Suite** (Professional or Community Edition)
34+
- **Docker Desktop** (macOS/Windows) or Docker Engine (Linux)
35+
- **Java 17+** (for compilation)
36+
- **Maven 3.6+** (for building from source)
37+
38+
## Installation
39+
40+
### Option 1: From Release (Recommended)
41+
42+
1. Download the latest `wireup-1.0-SNAPSHOT.jar` from [Releases](../../releases)
43+
2. Open Burp Suite
44+
3. Navigate to **Extensions****Installed**
45+
4. Click **Add**
46+
5. Select the downloaded JAR file
47+
6. The **WireUp** tab will appear
48+
49+
### Option 2: Build from Source
50+
51+
```bash
52+
# Clone the repository
53+
git clone https://github.com/yourusername/wireup.git
54+
cd wireup
55+
56+
# Build the extension
57+
mvn clean package
58+
59+
# The JAR will be in target/wireup-1.0-SNAPSHOT.jar
60+
```
61+
62+
Then follow steps 2-6 from Option 1.
63+
64+
## Usage
65+
66+
### Basic Workflow
67+
68+
1. **Obtain VPN Configuration**
69+
- OpenVPN: Get your `.ovpn` file from your VPN provider
70+
- WireGuard: Get your `.conf` file or configuration text
71+
72+
2. **Configure WireUp**
73+
- Open Burp Suite and navigate to the **WireUp** tab
74+
- Select your VPN type (OpenVPN or WireGuard)
75+
- Paste your configuration into the text area
76+
77+
3. **Connect**
78+
- Click **Connect to VPN**
79+
- Wait for the connection to establish (typically 5-10 seconds)
80+
- Status will show "Connected" when ready
81+
82+
4. **Configure Burp Proxy**
83+
- Go to **Proxy****Settings****Network**
84+
- Add a new SOCKS proxy:
85+
- **Host**: `127.0.0.1`
86+
- **Port**: `1080`
87+
- Enable the proxy for upstream connections
88+
89+
5. **Test Connection**
90+
- Browse through Burp Proxy
91+
- Traffic will now route through the VPN tunnel
92+
- Verify your IP address has changed
93+
94+
### Advanced Configuration
95+
96+
#### Custom DNS Servers
97+
98+
For OpenVPN, DNS is automatically configured via the VPN server's push options.
99+
100+
For WireGuard, DNS entries in the configuration are automatically handled (stripped and managed internally to avoid Docker conflicts).
101+
102+
#### Connection Management
103+
104+
- **Disconnect**: Click to stop the VPN (with confirmation dialog)
105+
- **Reconnect**: Quick reconnect without re-entering credentials
106+
- **View Logs**: Check extension output in Burp's Extensions tab
107+
108+
## Architecture
109+
110+
```
111+
┌─────────────┐ SOCKS5 ┌──────────────────┐ VPN ┌─────────────┐
112+
│ Burp Suite │ ────(1080)────→ │ Docker Container │ ──Tunnel───→ │ VPN Server │
113+
│ │ │ - OpenVPN/WG │ │ │
114+
│ │ │ - Dante SOCKS5 │ │ │
115+
└─────────────┘ └──────────────────┘ └─────────────┘
116+
```
117+
118+
WireUp creates an Alpine Linux container with:
119+
- VPN client (OpenVPN or WireGuard)
120+
- Dante SOCKS5 server on port 1080
121+
- Network optimizations (MTU, checksum handling, routing)
122+
- Security restrictions (resource limits, non-root execution where possible)
123+
124+
## Troubleshooting
125+
126+
### Extension Won't Load
127+
128+
**Issue**: Extension fails to load in Burp Suite
129+
130+
**Solutions**:
131+
- Ensure Docker is running: `docker ps`
132+
- Check Java version: `java -version` (must be 17+)
133+
- Review Burp's Extensions → Errors tab for stack traces
134+
135+
### Connection Fails
136+
137+
**Issue**: "Connection failed" error
138+
139+
**Solutions**:
140+
- Verify VPN configuration is valid
141+
- Check Docker has internet access
142+
- Review container logs (click "View Logs" button)
143+
- For OpenVPN: Ensure UDP port 1194 is accessible
144+
- For WireGuard: Verify the endpoint is reachable
145+
146+
### Slow Disconnect
147+
148+
**Issue**: Disconnect button takes time to respond
149+
150+
**Solution**: This is expected as Docker needs to stop and remove containers. The button will show "Disconnecting..." status. A confirmation dialog now prevents accidental clicks.
151+
152+
### SOCKS Proxy Not Working
153+
154+
**Issue**: Burp can't connect to `127.0.0.1:1080`
155+
156+
**Solutions**:
157+
- Verify VPN is connected (check status panel)
158+
- Ensure no other service is using port 1080
159+
- Check firewall isn't blocking localhost connections
160+
- Try reconnecting the VPN
161+
162+
## Security Considerations
163+
164+
Please review [SECURITY.md](SECURITY.md) for important security information, including:
165+
- Docker container isolation
166+
- Resource limits
167+
- Credential storage best practices
168+
- Network exposure considerations
169+
170+
## Development
171+
172+
### Project Structure
173+
174+
```
175+
wireup/
176+
├── src/main/java/com/wireup/
177+
│ ├── WireUpExtension.java # Main extension entry point
178+
│ ├── docker/ # Docker management
179+
│ ├── vpn/ # VPN config handlers
180+
│ ├── ui/ # Burp UI components
181+
│ └── utils/ # Logging and utilities
182+
├── src/main/resources/
183+
│ └── dockerfile/ # Docker image configuration
184+
├── pom.xml # Maven build configuration
185+
└── README.md # This file
186+
```
187+
188+
### Building
189+
190+
```bash
191+
# Compile only
192+
mvn clean compile
193+
194+
# Run tests (if any)
195+
mvn test
196+
197+
# Package JAR
198+
mvn package
199+
200+
# Skip tests (faster)
201+
mvn package -DskipTests
202+
```
203+
204+
### Contributing
205+
206+
Contributions are welcome! Please:
207+
1. Fork the repository
208+
2. Create a feature branch
209+
3. Make your changes
210+
4. Submit a pull request
211+
212+
## License
213+
214+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
215+
216+
## Credits
217+
218+
**Created by**: [j0lt](https://github.com/j0lt-github)
219+
220+
Special thanks to:
221+
- [PortSwigger](https://portswigger.net/) for Burp Suite
222+
- [docker-java](https://github.com/docker-java/docker-java) library
223+
- [kylemanna/openvpn](https://github.com/kylemanna/docker-openvpn) Docker image
224+
- [Dante SOCKS server](https://www.inet.no/dante/)
225+
226+
## Disclaimer
227+
228+
This tool is designed for authorized security testing and research purposes only. Users are responsible for complying with all applicable laws and regulations. The author assumes no liability for misuse or damage caused by this software.
229+
230+
---
231+
232+
<div align="center">
233+
Made with ❤️ by j0lt for the security community
234+
</div>

0 commit comments

Comments
 (0)