Piper - the Swiss Army Knife of SOCKS servers - by GCC piper version 1.14 LiCENSE =-===== This software is distributed under the GNU General Public License version 2. Specifically, you may distribute the source code or compiled executables of this software or any derived work, in any form, without royalty or restriction, provided that you: - Make available to the public, by post and via the Internet, the full source code including any modifications which you may make, and - Leave existing copyright notices intact, and - Impose the same licence terms on users of any copy which you distribute. For full details, please see the COPYING file in the same directory as the application, or http://www.gnu.org/copyleft/gpl.html#SEC1. SuMMARY =-===== Piper is a tool for manipulating SOCKS 5 servers. SOCKS is a protocol developed by NEC and others for use as a gateway to the Internet (e.g. for hosts which are not directly connected to the Internet, or blocked by a firewall). General information on SOCKS can be found at: http://www.socks.nec.com/ The SOCKS 5 protocol is described in RFC 1928 which can be found at http://www.socks.nec.com/rfc/rfc1928.txt. InSTALLATION =-========== 1. Extract the supplied source archive (probably piper-1.XX.tar.gz) 2. Change to the directory where the extracted files are located 3. Type 'make' 4. Check for errors in the output. If you find an error you can't fix, ask a Unix guru for help. 5. Type './piper' to run the program. You should see usage information. 6. Copy the piper executable to a location of your choice (e.g. /usr/local/bin, ~/bin). UsAGE =-=== Piper allows you to access many of the functions of a SOCKS 5 server. For example, it will allow you to use a SOCKS server to: - Connect to somewhere else as a test - Connect to somewhere else with an interactive session (like telnet or netcat) - Set up a bouncer (a local listening port which forwards through a SOCKS server to another host) - Portscan another host - Retrieve port banners from another host It is implemented by at least: - the official NEC SOCKS reference implementation - Dante, a free implementation for Linux - WinGate, a commercial Internet proxy for Windows - and many, many more... There are many machines on the Internet which allow SOCKS access. Since this can be used to do many illegal things without trace, we can only assume that these machines are misconfigured. They make good anonymisers for activities which are illegal in some countries (such as free speech). You can find a list of publicly accessible SOCKS servers at http://proxys4all.cgi.net/win-tel-socks.shtml. Please note that most of these servers are unauthorised, and using them may constitute a crime in some countries. The most legitimate purpose of Piper is to test the functionality of your own SOCKS servers. All other uses are at your own risk =) Usage: piper -t [options] wingates testhost (test) piper -c [options] wingate desthost (telnet) piper -b [options] wingate desthost localport (bouncer) piper -p [options] wingates desthost ports (portscan) piper -i [options] wingates hosts port (investigate) piper -h (print this usage information) Parameters: wingate WinGate or other computer running SOCKS 5 server testhost any valid and open host:port for testing purposes desthost destination host for bounces, connects and portscans localport bouncer binds to this port (or vhost:port) eg. 31337 wingates hostname of socks server, or @filename for a list hosts hostname of target host, or @filename for a list ports a list or range of ports, e.g. '23,80,110' or '1-1024' Options: -v verbose mode (multi-line output) -l write session logs to logfile (bouncer mode only) -f forking mode, tests multiple servers in parallel very fast and highly experimental, may crash your computer File format: The @filename notation can be used to read a list of servers from a file. The format is strictly one host per line, no port numbers or additional padding of any kind. DNS names will be resolved to IP addresses before starting the action. Not all actions support multiple servers. Examples: piper -t socks.example.com www.microsoft.com:80 This will try and use the SOCKS server at socks.example.com to connect to Microsoft's website on www.microsoft.com port 80. This is a good test of whether socks.example.com can be used to make arbitrary connections. Piper will report whether or not the connection was successful (according to the SOCKS server) and how long it took. piper -t @badboys www.microsoft.com:80 This will open the file 'badboys', treating each line as the hostname of a SOCKS server to try and connect to Microsoft with. piper -c socks.example.com www.microsoft.com:80 This will (try to) open an interactive session between you and www.microsoft.com port 80 (http) via the SOCKS server at socks.example.com. piper -p socks.example.com www.microsoft.com 80,443 This will use socks.example.com to test whether ports 80 and 443 on www.microsoft.com are open. piper -i socks.example.com mail1.microsoft.com 25 This will use socks.example.com to retrieve a banner (the first line printed by the server after connect) from mail1.microsoft.com. NOTE: This DOES NOT work with telnet or http protocols, among others, since they don't send a banner. =============================================================================== (C) Chris Wilson, 1999-2001. Distributed under GNU General Public License V.2 ===============================================================================