PowerShell SOCKS proxy with reverse proxy capabilities.
PowerProxy is written with penetration testers in mind. Reverse proxy functionality is a priority, for traversing networks that block inbound connections. Reverse proxy connections are encrypted by default. Username/Password authentication is supported for Socks 5 connections.
Setup
Import the script:
# OR
Import-Module \\192.168.0.22\Public\PowerProxy.ps1
reverse_proxy_handler.py can create temporary SSL certs, which requires OpenSSL. If OpenSSL isn't installed on your machine (it is on most Linux/Unix-based systems), provide your own cert or use the --no-encrypt option.
Usage
For detailed usage, check out PowerProxy's help, or use ./reverse_proxy_handler.py --help
Run a reverse proxy
On local machine, start the handler:
./reverse_proxy_handler.py -p 8080
In PowerShell:
Proxy clients can treat the server created by reverse_proxy_handler.py as if it were the actual SOCKS server:
Run a traditional SOCKS server
Require authentication
Use PSCredential objects to require a username and password:
$Password = ConvertTo-SecureString -AsPlaintext -Force "Passw0rd123"
$Cred = New-Object System.Management.Automation.PSCredential ("ProxyUser", $Password)
Start-ReverseSocksProxy -Credential $Cred -Address 10.10.10.24 -Verbose