Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Intika-Linux-Proxy/Proxybound

Linux applications proxifier
https://github.com/Intika-Linux-Proxy/Proxybound

injection ldpreload proxifier proxify proxy proxybound proxychains proxying-requests

Last synced: about 2 months ago
JSON representation

Linux applications proxifier

Awesome Lists containing this project

README

        

ProxyBound v5.60
================

ProxyBound force any unix application to use a specific proxy and prevent it from leaking the original ip; Technically, ProxyBound is a UNIX program, that hooks network-related libc functions in dynamically linked programs via a preloaded DLL and redirects the connections through SOCKS4A/5 or HTTP proxies. This project is based on proxychain by [netcreature](https://sourceforge.net/u/netcreature/profile/), proxychains-ng by rofl0r, proxychains by haad and torsocks by dgoulet

Features:
=========

- Proxify applications (like mainstream proxychains)
- Works with tcp (like mainstream proxychains)
- No leaks over udp/icmp/etc... (INET & INET6)
- Unsupported protocols are blocked
- Support chrome/chromium/skype/similar
- Incompatible applications are terminated with a proper message
- Many additional settings over environment variable
- etc.

Used environment variable:
==========================

```
- PROXYBOUND_CONF_FILE: Path to config file (default ./proxybound.conf then /etc/proxybound.conf)
- PROXYBOUND_QUIET_MODE: Quiet mode (1 or 0, default 0)
- PROXYBOUND_SOCKS5_HOST: Specify unique socks 5 proxy to use (default not used)
- PROXYBOUND_SOCKS5_PORT: Socks 5 port (default not used)
- PROXYBOUND_FORCE_DNS: Force dns resolv requests through (1 or 0, default 1)
- PROXYBOUND_ALLOW_DNS: Allow direct dns, allow udp port 53 and 853 (1 or 0, default 0)
- PROXYBOUND_ALLOW_LEAKS: Allow/Block unproxyfied protocols "UDP/ICMP/ETC", blocked by default (1 or 0, default 0)
- PROXYBOUND_WORKING_INDICATOR: Create '/tmp/proxybound.tmp' when dll is working as intended (1 or 0, default 0)
```

How it works:
=============

Proxybound hook libc functions like connect(), dynamic loader facilities are used, namely dl_sym() and LD_PRELOAD thus dynamically linked programs are required.

Install:
========

```
./configure
make
[optional] sudo make install
```

If you dont install, you can use proxybound from the build directory like this: `./proxybound -f src/proxybound.conf telnet google.com 80`

Install debug version :
=======================

```
./configure
make debug
[optional] sudo make install
```

Changelog:
==========

**Version 5.60:**

- Fix skype compatibility
- Improve no leak feature
- Improve debug version
- Improve output/log messages
- Rewrite main hooked functions connect
- Rewrite main hooked functions bind
- Rewrite main hooked functions sendmsg
- Rewrite main hooked functions sendto
- Rewrite main hooked functions send

**Version 5.50:**

- Block non tcp packet on send()
- Prevent bypass noleak
- Add support for bind() to block listen on unsupported protocol
- Add skype support

**Version 5.40:**

- Add "--help" and "-h" parameter
- Add "--version" and "-v" parameter
- Update help page

**Version 5.30:**

- Code cleaning
- Move readme to md
- Add support for hosts file (upstream import)

**Version 5.20:**

- add PROXYBOUND_ALLOW_DNS
- update lock feature (send sendto sendmsg)
- add function to terminate when app is not supported
- add PROXYBOUND_WORKING_INDICATOR
- Code cleaning
- Update readme

**Version 5.10:**

- leak lock feature (send sendto sendmsg)

**Version 5.00:**

- Initial leak lock feature
- Code cleaning
- Update readme

**Version 4.90:**

- Import simple SOCKS5 proxy mode from @haad/proxychains
- Code cleaning
- Update readme

**Version 4.80:**

- Updates with some features from @haad/proxychains

**Version 4.70:**

- Fix chrome compatibility

**Version 4.60:**

- Code cleanning & update

**Version 4.50:**

- Changing the name to ProxyBound

**Version 4.40:**

- Import security issue fix CVE-2015-3887
- Used v4.3 (4.03) for initial fork

Limits :
========

- IPv6 is blocked and not supported (currently partially supported)
- Some applications are incompatible (they will be explicitly terminated 2 sec after startup, to avoid leaks)

Configuration:
==============

Proxybound config file in following order:

```
1) File listed in environment variable ${PROXYBOUND_CONF_FILE} or
provided as a -f argument to proxybound script or binary.
2) ./proxybound.conf
3) $(HOME)/.proxybound/proxybound.conf
4) /etc/proxybound.conf
```

Usage Example:
==============

In this example it will run telnet through proxy without using proxybound binary

```
$ export PROXYBOUND_QUIET_MODE="1"
$ export LD_PRELOAD=/usr/local/lib/libproxybound.so
$ export PROXYBOUND_CONF_FILE=/etc/proxybound.conf
$ telnet targethost.com
```

In this example it will run telnet through proxy(or chained proxies) specified by proxybound.conf

```
$ proxybound telnet targethost.com
```

In this example it will use different configuration file then proxybound.conf to connect to targethost2.com host.

```
$ proxybound -f /etc/proxybound-other.conf targethost2.com
```

In this example it will resolve targethost.com through proxy(or chained proxies) specified by proxybound.conf

```
$ proxyresolv targethost.com
```