PyProxy
a simple unencrypted proxy written in python
import socket
import threading
import base64
local_port = 22
remote_port = 3180
class ClientCon(threading.Thread):
def __init__(self, client, service):
threading.Thread.__init__(self)
self._client = client
self._service = service
def run(self):
while True:
self._data = self._client.recv(8192)
print " - - - - - Client -> Service - - - - -"
if not self._data:
break
self._service.sendall(base64.b64decode(self._data))
class ServiceCon(threading.Thread):
def __init__(self, service, client):
threading.Thread.__init__(self)
self._service = service
self._client = client
def run(self):
while True:
self._data = self._service.recv(8192)
print " - - - - - Service -> Client - - - - - " + self._data
if not self._data:
break
self._client.sendall(base64.b64encode(self._data))
clientSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serviceSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Wait until client connects to connect to the service
clientSock.bind(("", remote_port))
clientSock.listen(1)
client, addr = clientSock.accept()
# Connect to service
serviceSock.connect(("localhost", local_port))
cc = ClientCon(client, serviceSock)
sc = ServiceCon(serviceSock, client)
cc.start()
sc.start()