Skip to content

Commit aa1b9df

Browse files
committed
overhaul README
especially mentioning that proxychains is a HACK so it may not work. it is a hack because it modifies existing programs in a way not originally intended by its authors. additionally it relies on a very complicated and fragile dynamic linker infrastructure which can easily break, as is the case with glibc-linked programs that use dlopen() (see issue #10).
1 parent f3af123 commit aa1b9df

File tree

1 file changed

+28
-23
lines changed

1 file changed

+28
-23
lines changed

README

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
1-
ProxyChains ver 4.4 README
2-
==========================
1+
ProxyChains-NG ver 4.5 README
2+
=============================
33

44
ProxyChains is a UNIX program, that hooks network-related libc functions
5-
in dynamically linked programs via a preloaded DLL and redirects the
6-
connections through SOCKS4a/5 or HTTP proxies.
5+
in DYNAMICALLY LINKED programs via a preloaded DLL (dlsym(), LD_PRELOAD)
6+
and redirects the connections through SOCKS4a/5 or HTTP proxies.
7+
It supports TCP only (no UDP/ICMP etc).
8+
9+
The way it works is basically a HACK; so it is possible that it doesn't
10+
work with your program, especially when it's a script, or starts
11+
numerous processes like background daemons or uses dlopen() to load
12+
"modules" (bug in glibc dynlinker).
13+
It should work with simple compiled (C/C++) dynamically linked programs
14+
though.
15+
16+
If your program doesn't work with proxychains, consider using an
17+
iptables based solution instead; this is much more robust.
18+
19+
Supported Platforms: Linux, BSD, Mac.
20+
721

822
*********** ATTENTION ***********
923

@@ -25,18 +39,6 @@ ProxyChains ver 4.4 README
2539
RESPONSIBILITY FOR ANY ABUSE OR MISUSE OF THIS SOFTWARE AND
2640
THE RESULTING CONSEQUENCES.
2741

28-
29-
*********** ATTENTION ***********
30-
31-
this program works only on DYNAMICALLY LINKED programs.
32-
also both proxychains and the program to call must use
33-
the same dynamic linker (i.e. same libc).
34-
why ? because in order to hook to libc functions like
35-
connect(), dynamic loader facilities are used, namely
36-
dl_sym() and LD_PRELOAD.
37-
38-
*********************************
39-
4042
*** Installation ***
4143

4244
# needs a working C compiler, preferably gcc
@@ -51,6 +53,10 @@ ProxyChains ver 4.4 README
5153
Changelog:
5254
----------
5355

56+
Version 4.5:
57+
- hook close() to prevent OpenSSH from messing with internal infrastructure.
58+
this caused ssh client to segfault when proxified.
59+
5460
Version 4.4:
5561
- FreeBSD port
5662
- fixes some installation issues on Debian and Mac.
@@ -104,10 +110,9 @@ Some cool features:
104110
random order from the list ( user defined length of chain ).
105111
exact order (as they appear in the list )
106112
dynamic order (smart exclude dead proxies from chain)
107-
* You can use it with any TCP client application, even network scanners
108-
yes, yes - you can make portscan via proxy (or chained proxies)
109-
for example with Nmap scanner by fyodor (www.insecire.org/nmap).
110-
proxychains nmap -sT -PO -p 80 -iR (find some webservers through proxy)
113+
* You can use it with most TCP client applications, possibly even network
114+
scanners, as long as they use standard libc functionality.
115+
pcap based scanning does not work.
111116
* You can use it with servers, like squid, sendmail, or whatever.
112117
* DNS resolving through proxy.
113118

@@ -116,13 +121,13 @@ Configuration:
116121
--------------
117122

118123
proxychains looks for config file in following order:
119-
1) file listed in environment variable ${PROXYCHAINS_CONF_FILE} or
124+
1) file listed in environment variable PROXYCHAINS_CONF_FILE or
120125
provided as a -f argument to proxychains script or binary.
121126
2) ./proxychains.conf
122127
3) $(HOME)/.proxychains/proxychains.conf
123-
4) /etc/proxychains.conf **
128+
4) $(sysconfdir)/proxychains.conf **
124129

125-
**see more in /etc/proxychains.conf
130+
** usually /etc/proxychains.conf
126131

127132
Usage Example:
128133

0 commit comments

Comments
 (0)