Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Proxying UDP over SOCKS5 proxy in Python

Is it possible to send UDP datagrams over SOCKS5 proxy in Python using any SOCKS client lib? SocksiPy does not seem to work or maybe I am just using it wrong. The following code does not work, it tries to connect to the destination directly:

s = socks.socksocket ( socket.AF_INET, socket.SOCK_DGRAM )
s.setproxy(socks.PROXY_TYPE_SOCKS5,"socks.proxy.lan")
s.sendto ( payload, ( ip, port ) )

If I change SOCK_DGRAM to SOCK_STREAM the code does not work either, it does not try to connect anywhere then.

like image 780
Alex Avatar asked Jun 13 '12 16:06

Alex


1 Answers

Have you tried to use connect() and send() instead of sendto()? Judging from the SocksiPy source code, connectionless mode isn't implemented.

Edit:

req = struct.pack('BBB', 0x05, 0x01, 0x00)

TCP stream connection (0x01) seems to be hardcoded here. SocksiPy as it is won't work.

like image 71
WGH Avatar answered Sep 21 '22 07:09

WGH