Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/p3nt4/invoke-socksproxy
Socks proxy, and reverse socks server using powershell.
https://github.com/p3nt4/invoke-socksproxy
network powershell proxy socks socks-proxy
Last synced: 2 days ago
JSON representation
Socks proxy, and reverse socks server using powershell.
- Host: GitHub
- URL: https://github.com/p3nt4/invoke-socksproxy
- Owner: p3nt4
- License: mit
- Created: 2017-11-09T06:20:40.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2021-03-21T21:00:40.000Z (over 3 years ago)
- Last Synced: 2024-10-26T11:32:46.097Z (10 days ago)
- Topics: network, powershell, proxy, socks, socks-proxy
- Language: PowerShell
- Homepage:
- Size: 69.3 KB
- Stars: 776
- Watchers: 23
- Forks: 168
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-network-stuff - **425**星
README
# Invoke-SocksProxy
Creates a local or "reverse" Socks proxy using powershell.The local proxy is a simple Socks 4/5 proxy.
The reverse proxy creates a tcp tunnel by initiating outbond SSL connections that can go through the system's proxy. The tunnel can then be used as a socks proxy on the remote host to pivot into the local host's network.
# Examples
## Local
Create a Socks 4/5 proxy on port 1080:
```
Import-Module .\Invoke-SocksProxy.psm1
Invoke-SocksProxy -bindPort 1080
```Increase the maximum number of threads from 200 to 400
```
Import-Module .\Invoke-SocksProxy.psm1
Invoke-SocksProxy -threads 400
```
## ReverseCreate a "reverse" Socks 4/5 proxy on port 1080 of a remote host:
```
# On the remote host:
# Generate a private key and self signed cert
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out cert.pem# Get the certificate fingerprint to verify it:
openssl x509 -in cert.pem -noout -sha1 -fingerprint | cut -d "=" -f 2 | tr -d ":"# Start the handler
python3 ReverseSocksProxyHandler.py 443 1080 ./cert.pem ./private.key# On the local host:
Import-Module .\Invoke-SocksProxy.psm1
Invoke-ReverseSocksProxy -remotePort 443 -remoteHost 192.168.49.130# Go through the system proxy:
Invoke-ReverseSocksProxy -remotePort 443 -remoteHost 192.168.49.130 -useSystemProxy# Validate certificate
Invoke-ReverseSocksProxy -remotePort 443 -remoteHost 192.168.49.130 -certFingerprint '93061FDB30D69A435ACF96430744C5CC5473D44E'# Give up after a number of failed connections to the handler:
Invoke-ReverseSocksProxy -remotePort 443 -remoteHost 192.168.49.130 -maxRetries 10```
Credit for the System Proxy trick: https://github.com/Arno0x/PowerShellScripts/blob/master/proxyTunnel.ps1
# Limitations
- This is only a subset of the Socks 4 and 5 protocols: It does not support authentication, It does not support UDP or bind requests.
- When the Socks Proxy runs out of available threads, new connections cannot be established until a thread is freed.
- New features will be implemented in the future. PR are welcome.# Disclaimer
This project is intended for security researchers and penetration testers and should only be used with the approval of system owners.