From a109fd39babe9587e141ba06cc465ff3c0218026 Mon Sep 17 00:00:00 2001 From: D Woodfall Date: Sat, 20 May 2023 02:50:12 +0100 Subject: [PATCH] network/proxychains-ng: Added (TCP and DNS through proxy server) Signed-off-by: bedlam Signed-off-by: Willy Sudiarto Raharjo --- ...r-library-version-for-libproxychains.patch | 41 ++ network/proxychains-ng/README | 3 + network/proxychains-ng/doinst.sh | 14 + .../proxychains-ng/proxychains-ng.SlackBuild | 119 +++++ network/proxychains-ng/proxychains-ng.info | 10 + network/proxychains-ng/renamed-ng.diff | 439 ++++++++++++++++++ network/proxychains-ng/slack-desc | 19 + 7 files changed, 645 insertions(+) create mode 100644 network/proxychains-ng/0001-Use-proper-library-version-for-libproxychains.patch create mode 100644 network/proxychains-ng/README create mode 100644 network/proxychains-ng/doinst.sh create mode 100644 network/proxychains-ng/proxychains-ng.SlackBuild create mode 100644 network/proxychains-ng/proxychains-ng.info create mode 100644 network/proxychains-ng/renamed-ng.diff create mode 100644 network/proxychains-ng/slack-desc diff --git a/network/proxychains-ng/0001-Use-proper-library-version-for-libproxychains.patch b/network/proxychains-ng/0001-Use-proper-library-version-for-libproxychains.patch new file mode 100644 index 0000000000..6350c1346a --- /dev/null +++ b/network/proxychains-ng/0001-Use-proper-library-version-for-libproxychains.patch @@ -0,0 +1,41 @@ +From: Boyuan Yang +Date: Sun, 15 Aug 2021 13:18:32 -0400 +Subject: Use proper library version for libproxychains + +Forwarded: not-needed +--- + Makefile | 4 ++-- + src/proxyresolv | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index 7f3f4fa..0524bf8 100644 +--- a/Makefile ++++ b/Makefile +@@ -37,11 +37,11 @@ AR = $(CROSS_COMPILE)ar + RANLIB = $(CROSS_COMPILE)ranlib + SOCKET_LIBS = + +-LDSO_SUFFIX = so ++LDSO_SUFFIX = so.4 + LD_SET_SONAME = -Wl,-soname= + INSTALL = ./tools/install.sh + +-LDSO_PATHNAME = libproxychains4.$(LDSO_SUFFIX) ++LDSO_PATHNAME = libproxychains.$(LDSO_SUFFIX) + + SHARED_LIBS = $(LDSO_PATHNAME) + ALL_LIBS = $(SHARED_LIBS) +diff --git a/src/proxyresolv b/src/proxyresolv +index f10a412..fafed7e 100755 +--- a/src/proxyresolv ++++ b/src/proxyresolv +@@ -12,7 +12,7 @@ if [ $# = 0 ] ; then + fi + + +-test -z $LD_PRELOAD && export LD_PRELOAD=libproxychains4.so ++test -z $LD_PRELOAD && export LD_PRELOAD=libproxychains.so.4.0.0 + + if type dig 1>/dev/null 2>&1 ; then + dig $1 @$DNS_SERVER +tcp | awk '/A.?[0-9]+\.[0-9]+\.[0-9]/{print $5; }' diff --git a/network/proxychains-ng/README b/network/proxychains-ng/README new file mode 100644 index 0000000000..b030bb2c35 --- /dev/null +++ b/network/proxychains-ng/README @@ -0,0 +1,3 @@ +proxychains-ng is a preloader which hooks calls to sockets in +dynamically linked programs and redirects it through one or more +socks/http proxies. diff --git a/network/proxychains-ng/doinst.sh b/network/proxychains-ng/doinst.sh new file mode 100644 index 0000000000..bc6e407776 --- /dev/null +++ b/network/proxychains-ng/doinst.sh @@ -0,0 +1,14 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/proxychains-ng.conf.new diff --git a/network/proxychains-ng/proxychains-ng.SlackBuild b/network/proxychains-ng/proxychains-ng.SlackBuild new file mode 100644 index 0000000000..6c098b4aeb --- /dev/null +++ b/network/proxychains-ng/proxychains-ng.SlackBuild @@ -0,0 +1,119 @@ +#!/bin/bash + +# Slackware build script for "proxychains-ng". +# 2023-05-20 DW: Renamed from proxychains + +# Copyright -2014 GPLeo +# Copyright 2014-2015 Marcel Saegebarth +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=proxychains-ng +VERSION=${VERSION:-4.16} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# debian patch for .so -> .so.4 +patch -p1 --verbose < \ + $CWD/0001-Use-proper-library-version-for-libproxychains.patch +# add -ng suffix +patch -p1 --verbose <$CWD/renamed-ng.diff +make clean + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --build=$ARCH-slackware-linux + +make +make install DESTDIR=$PKG +make install-config DESTDIR=$PKG + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mv $PKG/etc/$PRGNAM.conf $PKG/etc/$PRGNAM.conf.new + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a AUTHORS COPYING README TODO VERSION $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/network/proxychains-ng/proxychains-ng.info b/network/proxychains-ng/proxychains-ng.info new file mode 100644 index 0000000000..23a49d812d --- /dev/null +++ b/network/proxychains-ng/proxychains-ng.info @@ -0,0 +1,10 @@ +PRGNAM="proxychains-ng" +VERSION="4.16" +HOMEPAGE="https://github.com/rofl0r/proxychains-ng/" +DOWNLOAD="https://github.com/rofl0r/proxychains-ng/archive/v4.16/proxychains-ng-4.16.tar.gz" +MD5SUM="acd5807e89df4cca70270260e85e9373" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="D Woodfall" +EMAIL="dave@slackbuilds.org" diff --git a/network/proxychains-ng/renamed-ng.diff b/network/proxychains-ng/renamed-ng.diff new file mode 100644 index 0000000000..c57319a948 --- /dev/null +++ b/network/proxychains-ng/renamed-ng.diff @@ -0,0 +1,439 @@ +diff -Naur a/Makefile c/Makefile +--- a/Makefile 2022-01-23 14:16:56.000000000 +0000 ++++ c/Makefile 2023-05-20 00:57:46.859277054 +0000 +@@ -40,14 +40,14 @@ + LD_SET_SONAME = -Wl,-soname= + INSTALL = ./tools/install.sh + +-LDSO_PATHNAME = libproxychains.$(LDSO_SUFFIX) ++LDSO_PATHNAME = libproxychains-ng.$(LDSO_SUFFIX) + + SHARED_LIBS = $(LDSO_PATHNAME) + ALL_LIBS = $(SHARED_LIBS) +-PXCHAINS = proxychains4 +-PXCHAINS_D = proxychains4-daemon ++PXCHAINS = proxychains-ng ++PXCHAINS_D = proxychains-ng-daemon + ALL_TOOLS = $(PXCHAINS) $(PXCHAINS_D) +-ALL_CONFIGS = src/proxychains.conf ++ALL_CONFIGS = src/proxychains-ng.conf + + -include config.mak + +diff -Naur a/README c/README +--- a/README 2022-01-23 14:16:56.000000000 +0000 ++++ c/README 2023-05-20 00:54:13.262327679 +0000 +@@ -204,24 +204,24 @@ + proxychains looks for config file in following order: + 1) file listed in environment variable PROXYCHAINS_CONF_FILE or + provided as a -f argument to proxychains script or binary. +-2) ./proxychains.conf +-3) $(HOME)/.proxychains/proxychains.conf +-4) $(sysconfdir)/proxychains.conf ** ++2) ./proxychains-ng.conf ++3) $(HOME)/.proxychains-ng/proxychains-ng.conf ++4) $(sysconfdir)/proxychains-ng.conf ** + +-** usually /etc/proxychains.conf ++** usually /etc/proxychains-ng.conf + + Usage Example: + +- $ proxychains telnet targethost.com ++ $ proxychains-ng telnet targethost.com + + in this example it will run telnet through proxy(or chained proxies) +-specified by proxychains.conf ++specified by proxychains-ng.conf + + Usage Example: + +- $ proxychains -f /etc/proxychains-other.conf telnet targethost2.com ++ $ proxychains-ng -f /etc/proxychains-other.conf telnet targethost2.com + +-in this example it will use different configuration file then proxychains.conf ++in this example it will use different configuration file then proxychains-ng.conf + to connect to targethost2.com host. + + Usage Example: +diff -Naur a/src/common.c c/src/common.c +--- a/src/common.c 2022-01-23 14:16:56.000000000 +0000 ++++ c/src/common.c 2023-05-20 00:51:19.554186687 +0000 +@@ -99,26 +99,26 @@ + if(check_path(path)) + goto have; + +- // priority 3; $HOME/.proxychains/proxychains.conf ++ // priority 3; $HOME/.proxychains-ng/proxychains-ng.conf + path = getenv("HOME"); +- snprintf(pbuf, bufsize, "%s/.proxychains/%s", path, PROXYCHAINS_CONF_FILE); ++ snprintf(pbuf, bufsize, "%s/.proxychains-ng/%s", path, PROXYCHAINS_CONF_FILE); + path = pbuf; + if(check_path(path)) + goto have; + +- // priority 3b: ~/config/settings/proxychains.conf (for haiku) ++ // priority 3b: ~/config/settings/proxychains-ng.conf (for haiku) + path = getenv("HOME"); + snprintf(pbuf, bufsize, "%s/config/settings/%s", path, PROXYCHAINS_CONF_FILE); + path = pbuf; + if(check_path(path)) + goto have; + +- // priority 4: $SYSCONFDIR/proxychains.conf ++ // priority 4: $SYSCONFDIR/proxychains-ng.conf + path = SYSCONFDIR "/" PROXYCHAINS_CONF_FILE; + if(check_path(path)) + goto have; + +- // priority 5: /etc/proxychains.conf ++ // priority 5: /etc/proxychains-ng.conf + path = "/etc/" PROXYCHAINS_CONF_FILE; + if(check_path(path)) + goto have; +diff -Naur a/src/common.h c/src/common.h +--- a/src/common.h 2022-01-23 14:16:56.000000000 +0000 ++++ c/src/common.h 2023-05-20 00:51:22.282173337 +0000 +@@ -3,8 +3,8 @@ + + #define PROXYCHAINS_CONF_FILE_ENV_VAR "PROXYCHAINS_CONF_FILE" + #define PROXYCHAINS_QUIET_MODE_ENV_VAR "PROXYCHAINS_QUIET_MODE" +-#define PROXYCHAINS_CONF_FILE "proxychains.conf" +-#define LOG_PREFIX "[proxychains] " ++#define PROXYCHAINS_CONF_FILE "proxychains-ng.conf" ++#define LOG_PREFIX "[proxychains-ng] " + #ifndef SYSCONFDIR + #define SYSCONFDIR "/etc" + #endif +diff -Naur a/src/proxychains-ng.conf c/src/proxychains-ng.conf +--- a/src/proxychains-ng.conf 1970-01-01 00:00:00.000000000 +0000 ++++ c/src/proxychains-ng.conf 2023-05-20 00:52:48.484751404 +0000 +@@ -0,0 +1,162 @@ ++# proxychains-ng.conf VER 4.x ++# ++# HTTP, SOCKS4a, SOCKS5 tunneling proxifier with DNS. ++ ++ ++# The option below identifies how the ProxyList is treated. ++# only one option should be uncommented at time, ++# otherwise the last appearing option will be accepted ++# ++#dynamic_chain ++# ++# Dynamic - Each connection will be done via chained proxies ++# all proxies chained in the order as they appear in the list ++# at least one proxy must be online to play in chain ++# (dead proxies are skipped) ++# otherwise EINTR is returned to the app ++# ++strict_chain ++# ++# Strict - Each connection will be done via chained proxies ++# all proxies chained in the order as they appear in the list ++# all proxies must be online to play in chain ++# otherwise EINTR is returned to the app ++# ++#round_robin_chain ++# ++# Round Robin - Each connection will be done via chained proxies ++# of chain_len length ++# all proxies chained in the order as they appear in the list ++# at least one proxy must be online to play in chain ++# (dead proxies are skipped). ++# the start of the current proxy chain is the proxy after the last ++# proxy in the previously invoked proxy chain. ++# if the end of the proxy chain is reached while looking for proxies ++# start at the beginning again. ++# otherwise EINTR is returned to the app ++# These semantics are not guaranteed in a multithreaded environment. ++# ++#random_chain ++# ++# Random - Each connection will be done via random proxy ++# (or proxy chain, see chain_len) from the list. ++# this option is good to test your IDS :) ++ ++# Make sense only if random_chain or round_robin_chain ++#chain_len = 2 ++ ++# Quiet mode (no output from library) ++#quiet_mode ++ ++## Proxy DNS requests - no leak for DNS data ++# (disable all of the 3 items below to not proxy your DNS requests) ++ ++# method 1. this uses the proxychains4 style method to do remote dns: ++# a thread is spawned that serves DNS requests and hands down an ip ++# assigned from an internal list (via remote_dns_subnet). ++# this is the easiest (setup-wise) and fastest method, however on ++# systems with buggy libcs and very complex software like webbrowsers ++# this might not work and/or cause crashes. ++proxy_dns ++ ++# method 2. use the old proxyresolv script to proxy DNS requests ++# in proxychains 3.1 style. requires `proxyresolv` in $PATH ++# plus a dynamically linked `dig` binary. ++# this is a lot slower than `proxy_dns`, doesn't support .onion URLs, ++# but might be more compatible with complex software like webbrowsers. ++#proxy_dns_old ++ ++# method 3. use proxychains4-daemon process to serve remote DNS requests. ++# this is similar to the threaded `proxy_dns` method, however it requires ++# that proxychains4-daemon is already running on the specified address. ++# on the plus side it doesn't do malloc/threads so it should be quite ++# compatible with complex, async-unsafe software. ++# note that if you don't start proxychains4-daemon before using this, ++# the process will simply hang. ++#proxy_dns_daemon 127.0.0.1:1053 ++ ++# set the class A subnet number to use for the internal remote DNS mapping ++# we use the reserved 224.x.x.x range by default, ++# if the proxified app does a DNS request, we will return an IP from that range. ++# on further accesses to this ip we will send the saved DNS name to the proxy. ++# in case some control-freak app checks the returned ip, and denies to ++# connect, you can use another subnet, e.g. 10.x.x.x or 127.x.x.x. ++# of course you should make sure that the proxified app does not need ++# *real* access to this subnet. ++# i.e. dont use the same subnet then in the localnet section ++#remote_dns_subnet 127 ++#remote_dns_subnet 10 ++remote_dns_subnet 224 ++ ++# Some timeouts in milliseconds ++tcp_read_time_out 15000 ++tcp_connect_time_out 8000 ++ ++### Examples for localnet exclusion ++## localnet ranges will *not* use a proxy to connect. ++## note that localnet works only when plain IP addresses are passed to the app, ++## the hostname resolves via /etc/hosts, or proxy_dns is disabled or proxy_dns_old used. ++ ++## Exclude connections to 192.168.1.0/24 with port 80 ++# localnet 192.168.1.0:80/255.255.255.0 ++ ++## Exclude connections to 192.168.100.0/24 ++# localnet 192.168.100.0/255.255.255.0 ++ ++## Exclude connections to ANYwhere with port 80 ++# localnet 0.0.0.0:80/0.0.0.0 ++# localnet [::]:80/0 ++ ++## RFC6890 Loopback address range ++## if you enable this, you have to make sure remote_dns_subnet is not 127 ++## you'll need to enable it if you want to use an application that ++## connects to localhost. ++# localnet 127.0.0.0/255.0.0.0 ++# localnet ::1/128 ++ ++## RFC1918 Private Address Ranges ++# localnet 10.0.0.0/255.0.0.0 ++# localnet 172.16.0.0/255.240.0.0 ++# localnet 192.168.0.0/255.255.0.0 ++ ++### Examples for dnat ++## Trying to proxy connections to destinations which are dnatted, ++## will result in proxying connections to the new given destinations. ++## Whenever I connect to 1.1.1.1 on port 1234 actually connect to 1.1.1.2 on port 443 ++# dnat 1.1.1.1:1234 1.1.1.2:443 ++ ++## Whenever I connect to 1.1.1.1 on port 443 actually connect to 1.1.1.2 on port 443 ++## (no need to write :443 again) ++# dnat 1.1.1.2:443 1.1.1.2 ++ ++## No matter what port I connect to on 1.1.1.1 port actually connect to 1.1.1.2 on port 443 ++# dnat 1.1.1.1 1.1.1.2:443 ++ ++## Always, instead of connecting to 1.1.1.1, connect to 1.1.1.2 ++# dnat 1.1.1.1 1.1.1.2 ++ ++# ProxyList format ++# type ip port [user pass] ++# (values separated by 'tab' or 'blank') ++# ++# only numeric ipv4 addresses are valid ++# ++# ++# Examples: ++# ++# socks5 192.168.67.78 1080 lamer secret ++# http 192.168.89.3 8080 justu hidden ++# socks4 192.168.1.49 1080 ++# http 192.168.39.93 8080 ++# ++# ++# proxy types: http, socks4, socks5, raw ++# * raw: The traffic is simply forwarded to the proxy without modification. ++# ( auth types supported: "basic"-http "user/pass"-socks ) ++# ++[ProxyList] ++# add proxy here ... ++# meanwile ++# defaults set to "tor" ++socks4 127.0.0.1 9050 ++ +diff -Naur a/src/proxychains.conf c/src/proxychains.conf +--- a/src/proxychains.conf 2022-01-23 14:16:56.000000000 +0000 ++++ c/src/proxychains.conf 1970-01-01 00:00:00.000000000 +0000 +@@ -1,162 +0,0 @@ +-# proxychains.conf VER 4.x +-# +-# HTTP, SOCKS4a, SOCKS5 tunneling proxifier with DNS. +- +- +-# The option below identifies how the ProxyList is treated. +-# only one option should be uncommented at time, +-# otherwise the last appearing option will be accepted +-# +-#dynamic_chain +-# +-# Dynamic - Each connection will be done via chained proxies +-# all proxies chained in the order as they appear in the list +-# at least one proxy must be online to play in chain +-# (dead proxies are skipped) +-# otherwise EINTR is returned to the app +-# +-strict_chain +-# +-# Strict - Each connection will be done via chained proxies +-# all proxies chained in the order as they appear in the list +-# all proxies must be online to play in chain +-# otherwise EINTR is returned to the app +-# +-#round_robin_chain +-# +-# Round Robin - Each connection will be done via chained proxies +-# of chain_len length +-# all proxies chained in the order as they appear in the list +-# at least one proxy must be online to play in chain +-# (dead proxies are skipped). +-# the start of the current proxy chain is the proxy after the last +-# proxy in the previously invoked proxy chain. +-# if the end of the proxy chain is reached while looking for proxies +-# start at the beginning again. +-# otherwise EINTR is returned to the app +-# These semantics are not guaranteed in a multithreaded environment. +-# +-#random_chain +-# +-# Random - Each connection will be done via random proxy +-# (or proxy chain, see chain_len) from the list. +-# this option is good to test your IDS :) +- +-# Make sense only if random_chain or round_robin_chain +-#chain_len = 2 +- +-# Quiet mode (no output from library) +-#quiet_mode +- +-## Proxy DNS requests - no leak for DNS data +-# (disable all of the 3 items below to not proxy your DNS requests) +- +-# method 1. this uses the proxychains4 style method to do remote dns: +-# a thread is spawned that serves DNS requests and hands down an ip +-# assigned from an internal list (via remote_dns_subnet). +-# this is the easiest (setup-wise) and fastest method, however on +-# systems with buggy libcs and very complex software like webbrowsers +-# this might not work and/or cause crashes. +-proxy_dns +- +-# method 2. use the old proxyresolv script to proxy DNS requests +-# in proxychains 3.1 style. requires `proxyresolv` in $PATH +-# plus a dynamically linked `dig` binary. +-# this is a lot slower than `proxy_dns`, doesn't support .onion URLs, +-# but might be more compatible with complex software like webbrowsers. +-#proxy_dns_old +- +-# method 3. use proxychains4-daemon process to serve remote DNS requests. +-# this is similar to the threaded `proxy_dns` method, however it requires +-# that proxychains4-daemon is already running on the specified address. +-# on the plus side it doesn't do malloc/threads so it should be quite +-# compatible with complex, async-unsafe software. +-# note that if you don't start proxychains4-daemon before using this, +-# the process will simply hang. +-#proxy_dns_daemon 127.0.0.1:1053 +- +-# set the class A subnet number to use for the internal remote DNS mapping +-# we use the reserved 224.x.x.x range by default, +-# if the proxified app does a DNS request, we will return an IP from that range. +-# on further accesses to this ip we will send the saved DNS name to the proxy. +-# in case some control-freak app checks the returned ip, and denies to +-# connect, you can use another subnet, e.g. 10.x.x.x or 127.x.x.x. +-# of course you should make sure that the proxified app does not need +-# *real* access to this subnet. +-# i.e. dont use the same subnet then in the localnet section +-#remote_dns_subnet 127 +-#remote_dns_subnet 10 +-remote_dns_subnet 224 +- +-# Some timeouts in milliseconds +-tcp_read_time_out 15000 +-tcp_connect_time_out 8000 +- +-### Examples for localnet exclusion +-## localnet ranges will *not* use a proxy to connect. +-## note that localnet works only when plain IP addresses are passed to the app, +-## the hostname resolves via /etc/hosts, or proxy_dns is disabled or proxy_dns_old used. +- +-## Exclude connections to 192.168.1.0/24 with port 80 +-# localnet 192.168.1.0:80/255.255.255.0 +- +-## Exclude connections to 192.168.100.0/24 +-# localnet 192.168.100.0/255.255.255.0 +- +-## Exclude connections to ANYwhere with port 80 +-# localnet 0.0.0.0:80/0.0.0.0 +-# localnet [::]:80/0 +- +-## RFC6890 Loopback address range +-## if you enable this, you have to make sure remote_dns_subnet is not 127 +-## you'll need to enable it if you want to use an application that +-## connects to localhost. +-# localnet 127.0.0.0/255.0.0.0 +-# localnet ::1/128 +- +-## RFC1918 Private Address Ranges +-# localnet 10.0.0.0/255.0.0.0 +-# localnet 172.16.0.0/255.240.0.0 +-# localnet 192.168.0.0/255.255.0.0 +- +-### Examples for dnat +-## Trying to proxy connections to destinations which are dnatted, +-## will result in proxying connections to the new given destinations. +-## Whenever I connect to 1.1.1.1 on port 1234 actually connect to 1.1.1.2 on port 443 +-# dnat 1.1.1.1:1234 1.1.1.2:443 +- +-## Whenever I connect to 1.1.1.1 on port 443 actually connect to 1.1.1.2 on port 443 +-## (no need to write :443 again) +-# dnat 1.1.1.2:443 1.1.1.2 +- +-## No matter what port I connect to on 1.1.1.1 port actually connect to 1.1.1.2 on port 443 +-# dnat 1.1.1.1 1.1.1.2:443 +- +-## Always, instead of connecting to 1.1.1.1, connect to 1.1.1.2 +-# dnat 1.1.1.1 1.1.1.2 +- +-# ProxyList format +-# type ip port [user pass] +-# (values separated by 'tab' or 'blank') +-# +-# only numeric ipv4 addresses are valid +-# +-# +-# Examples: +-# +-# socks5 192.168.67.78 1080 lamer secret +-# http 192.168.89.3 8080 justu hidden +-# socks4 192.168.1.49 1080 +-# http 192.168.39.93 8080 +-# +-# +-# proxy types: http, socks4, socks5, raw +-# * raw: The traffic is simply forwarded to the proxy without modification. +-# ( auth types supported: "basic"-http "user/pass"-socks ) +-# +-[ProxyList] +-# add proxy here ... +-# meanwile +-# defaults set to "tor" +-socks4 127.0.0.1 9050 +- diff --git a/network/proxychains-ng/slack-desc b/network/proxychains-ng/slack-desc new file mode 100644 index 0000000000..ab1a012a50 --- /dev/null +++ b/network/proxychains-ng/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +proxychains-ng: proxychains-ng (TCP and DNS through proxy server) +proxychains-ng: +proxychains-ng: proxychains-ng is a preloader which hooks calls to sockets in +proxychains-ng: dynamically linked programs and redirects it through one or more +proxychains-ng: socks/http proxies. +proxychains-ng: +proxychains-ng: Homepage: https://github.com/rofl0r/proxychains-ng/ +proxychains-ng: +proxychains-ng: +proxychains-ng: +proxychains-ng: