All Projects → matiasinsaurralde → Transports

matiasinsaurralde / Transports

Licence: mit
A HTTP proxy that aims to support different transports.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Transports

Torat
ToRat is a Remote Administation tool written in Go using Tor as a transport mechanism and RPC for communication
Stars: ✭ 415 (+371.59%)
Mutual labels:  tor, transport
Katana
A Python Tool For google Hacking
Stars: ✭ 355 (+303.41%)
Mutual labels:  proxy, tor
Tor Android
Tor binary and library for Android
Stars: ✭ 90 (+2.27%)
Mutual labels:  proxy, tor
Cloak
A censorship circumvention tool to evade detection against state adversaries
Stars: ✭ 942 (+970.45%)
Mutual labels:  proxy, tor
Multitor
Create multiple TOR instances with a load-balancing.
Stars: ✭ 624 (+609.09%)
Mutual labels:  proxy, tor
Tor2web
Tor2web is an HTTP proxy software that enables access to Tor Hidden Services by mean of common web browsers
Stars: ✭ 531 (+503.41%)
Mutual labels:  proxy, tor
Tor Socks Proxy
🐳 Tiny Docker(🤏 10MB) image as 🧅 Tor SOCKS5 proxy 🛡
Stars: ✭ 218 (+147.73%)
Mutual labels:  proxy, tor
Awesome Network Stuff
Resources about network security, including: Proxy/GFW/ReverseProxy/Tunnel/VPN/Tor/I2P, and MiTM/PortKnocking/NetworkSniff/NetworkAnalysis/etc。More than 1700 open source tools for now. Post incoming.
Stars: ✭ 578 (+556.82%)
Mutual labels:  proxy, tor
Rotating Proxy
Rotating TOR proxy with Docker
Stars: ✭ 739 (+739.77%)
Mutual labels:  proxy, tor
Tor Router
A SOCKS, HTTP and DNS proxy for distributing traffic across multiple instances of Tor
Stars: ✭ 69 (-21.59%)
Mutual labels:  proxy, tor
Tinytor
A tiny Tor client implementation (in pure python).
Stars: ✭ 80 (-9.09%)
Mutual labels:  tor
Venom
Venom - A Multi-hop Proxy for Penetration Testers
Stars: ✭ 1,228 (+1295.45%)
Mutual labels:  proxy
Tor Browser Portable
Portable version of the Tor Browser, for Windows
Stars: ✭ 84 (-4.55%)
Mutual labels:  tor
Projectx
DarkWeb Overview
Stars: ✭ 86 (-2.27%)
Mutual labels:  tor
Docker Nginx Image Proxy
on the fly image cropping with gravity, resize and compression microservice
Stars: ✭ 79 (-10.23%)
Mutual labels:  proxy
Onionr
Private Decentralized Communication Network 🎭 🧅
Stars: ✭ 84 (-4.55%)
Mutual labels:  tor
Lightsocks Nodejs
It's a simple socks5 proxy tool which based on lightsocks
Stars: ✭ 79 (-10.23%)
Mutual labels:  proxy
Wahay
an easy-to-use, secure and decentralized conference call application (this repository is a mirror of an internal work repository)
Stars: ✭ 79 (-10.23%)
Mutual labels:  tor
Bdtunnel
BoutDuTunnel is able to create virtual connections tunnelled in HTTP requests.
Stars: ✭ 78 (-11.36%)
Mutual labels:  proxy
Airtable Proxy Worker
A Cloudflare Worker that allows you to make secure requests to the Airtable API from your frontend.
Stars: ✭ 87 (-1.14%)
Mutual labels:  proxy

transports

wercker status Join the chat at https://gitter.im/matiasinsaurralde/transports

A HTTP proxy that aims to support different transports.

Motivation

I started the facebook tunnel project two years ago and I thought that it could be better to follow a modular approach for supporting other services (chat systems, platforms, *gram, *book?).

This repository includes some code to explore the idea.

Why not a TCP/UDP tunnel?

At this time I'm not planning tuntap support (like I did in the previous project). I would like to focus on the transports. Also, I think that a HTTP proxy is easier to port and run, especially when considering that the project is built on Golang, where the output is a static binary. For example, it'll be very easy to build a binary for ARM.

Available transports

I've been working on these transports during the past week:

Facebook Transport (early stage, sorry!)

This transport uses surf, a stateful web browser built in Go.

Load your credentials by using export or the .env file:

[email protected]
FB_PASSWORD=supersecretpass
FB_FRIEND=yourtunnelfriend

I'm looking for collaborators from countries where the Internet.org campaigns like "Free Basics" are active, they could benefit from it :)

Whatsapp Transport (status: you can perform some GETs)

This transport uses a HTTP wrapper for yowsup to send/receive Whatsapp messages.

I recorded this small video, showing some interactions with this transport. For the demonstration I point my browser to the proxy and perform a test request to Akamai, the communication happens between two Whatsapp clients running on the same computer:

Whatsapp Transport

It would be good to have a "pure Golang" Whatsapp library but I think the current approach is fine for experimentation (anyone considering writing this?).

The following environment variables are used:

WA_CLIENT_LOGIN=123412341
WA_CLIENT_PASSWORD=whatsappgeneratedpassword123
WA_CLIENT_CONTACT=43214321

WA_SERVER_LOGIN=123412341
WA_SERVER_PASSWORD=whatsappgeneratedpassword123

Requires Python 3

Marshalers

I'm working on providing a set of "marshalers" and a simple API to combine them, this could be useful for conducting network/system usage benchmark experiments & performing a good choice.

Protocol buffers sound like a good option, instead of JSON (which is what I'm actually using for the Whatsapp transport). Also brotli looks promising. A combination of these two is a very interesting thing to consider.

Tor support

There's a Tor integration idea for the server side, I've did a few tests with it, under the following scenario:

Tor Diagram

The Whatsapp transport includes a flag to enable Tor (UseTor), I'm expecting to extend this flag to any transport.

The Tor support is achieved by overriding the default http.Transport dialer with a custom one.

Ideas/to-do

  • Handle SSL.
  • Extend the test coverage.
  • Think about some way of debugging the transports/traffic.
  • Run basic tests in additional platforms (e.g. ARM).
  • Plan strategies for mobile support, Golang is doing great progress on this.
  • Multiplexing

Contributors

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].