利用proxychains在终端使用socks5代理

ProxyChains是Linux和其他Unices下的代理工具。 它可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。 ProxyChains通过一个用户定义的代理列表强制连接指定的应用程序, 直接断开接收方和发送方的连接。




ProxyChains 是一个强制应用的 TCP 连接通过代理的工具,支持 Tor、HTTP、与 Socks 代理。与 sshuttle 不同的是,ProxyChains 只会将当前应用的 TCP 连接转发至代理,而非全局代理。


你可以从这里下载到源代码,编译后安装即可:

[plain]  view plain  copy
  1. git clone https://github.com/rofl0r/proxychains-ng  
  2. cd proxychains-ng  
  3. ./configure  
  4. sudo make && make install  

ProxyChains 的配置文件位于 /etc/proxychains.conf ,打开后你需要在末尾添加你使用的代理。例如:

[plain]  view plain  copy
  1. [ProxyList]  
  2. # add proxy here ...  
  3. # meanwile  
  4. # defaults set to "tor"  
  5. #socks4    127.0.0.1 9050  
  6.   
  7. # example  
  8. socks5  127.0.0.1 8888  

确保你添加的代理能用。如果没有的话,你可以暂时在网上找一些免费的代理(不一定安全,你的流量可能被监听),比如说:hidemyass。

OK,基础的配置到这里就搞定了。除此之外,这个文件里还用一堆可选的配置供你调整,自己去看啦。

ProxyChains 的使用方式非常简单,直接在应用程序前加上 proxychains4 即可。例如:

proxychains4 git clone https://github.com/rofl0r/proxychains-ng
有没有明显感觉到 clone 的速度变快了很多。当然,除此之外你可以在任何你想通过代理的应用上使用:

# 在 Ubuntu 上更新软件包
sudo proxychains4 apt-get update

# 安装 npm 依赖(国内慢得一B啊)
proxychains4 npm install

# 使用 docker(再也不用切换源了)
docker run helloworld

# 下面请读者自行发挥。。。。
也有例外啦。这样使用并没有任何效果:

proxychains4 ping google.com

[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/local/lib/libproxychains4.dylib
PING google.com (172.217.27.142): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
因为 proxychains 只会代理 TCP 连接,而 ping 使用的是 ICMP。记住这一点即可。


参考

ProxyChains HowTo :官方的说明文档

proxychains-ng:GitHub 项目主页

How To Use Proxychains To Evade Detection in Kali Linux :另一篇非常不错的教程


Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

设置ProxyChains的具体操作步骤如下所示。

(1) 打开ProxyChains配置文件。 执行命令如下所示:
root@Kali:~# vi /etc/proxychains.conf
执行以上命令后, 打开文件的内容如下所示:
# proxychains.conf VER 3.1
##
HTTP, SOCKS4, 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
#s
trict_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
##
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 :)
输出的信息就是proxychains.conf文件的内容。 由于篇幅的原因, 这里只列出了部分内容。
(2) 将proxychains.conf文件中的dynamic_chain前面的注释符取消。 要修改的配置项, 是上面加粗的部分, 如下所示:
dynamic_chain
(3) 添加一些代理服务器到列表(proxychains.conf文件末尾) , 如下所示:
# ProxyList format
# type host port [user pass]
# (values separated by 'tab' or 'blank')
###
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
# ( auth types supported: "basic"-http "user/pass"-socks )
#[
ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 127.0.0.1 9050
socks5 98.206.2.3 1893
socks5 76.22.86.170 1658
-- 插入 --
以上信息中加粗的部分为添加的代理服务器。
(4) 通过用户的连接代理解析目标主机。 执行命令如下所示:
root@kali:~# proxyresolv www.target.com
默认情况下, 执行proxyresolv命令, 可能看到该命令没找到错误信息。 因为proxyresolv保存在/usr/lib/proxychains3/目录
中, 而不能被执行。 proxyresolv会被proxychains调用, 所以将这两个文件放在一个目录中, 如/usr/bin。 执行命令如下所
示:
root@kali:~# cp /usr/lib/proxychains3/proxyresolv /usr/bin/
执行完以上命令后, proxyresolv命令就可以执行了。
(5) 通过用户想要使用的应用程序运行ProxyChains, 例如, 启动msfconsole。 执行命令如下所示:
root@kali:~# proxychains msfconsole
ProxyChains-3.1 (http://proxychains.sf.net)
|DNS-request| 0.0.0.0
|S-chain|-<>-127.0.0.1:9050-<--timeout
|DNS-response|: 0.0.0.0 is not exist
, ,
/ \
((__---,,,---__))
(_) O O (_)_________
\ _ / |\
o_o \ M S F | \
\ _____ | *
||| WW |||
||| |||
Tired of typing 'set RHOSTS'? Click & pwn with Metasploit Pro
-- type 'go_pro' to launch it now.
=[ metasploit v4.7.0-2013082802 [core:4.7 api:1.0]
+ -- --=[ 1161 exploits - 641 auxiliary - 180 post
+ -- --=[ 310 payloads - 30 encoders - 8 nops
msf >
执行以上命令后, 看到msf>提示符表示msfconsole启动成功了。 表示ProxyChains设置成功。

                  简单操作篇

1.proxychains安装

cd /usr/local/src
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure --prefix=/usr --sysconfdir=/etc
make && make install
make install-config
cd .. && rm -rf proxychains-ng

2.编辑proxychains配置

vi /etc/proxychains.conf
//将socks4  127.0.0.1 9050改为
socks5  127.0.0.1 1080  //1080改为你自己的端口

3.使用方法

在需要代理的命令前加上 proxychains4 ,如:

// 检查是否成功
proxychains4 curl ip.cn
// 代理获取文件
proxychains4 wget http://xxx.com/xxx.zip

建立SOCKS5代理:

ssh -f -N -D bindaddress:port name@server
  • 1

bindaddress :指定绑定ip地址 
port : 指定侦听端口 
name: ssh服务器登录名 
server: ssh服务器地址

例如,假设把一个树莓派作为SOCKS5代理服务器,该树莓派的IP地址是192.168.4.160,SOCKS5的端口7070,在树莓派中输入如下命令:

ssh -f -N -D 192.168.4.160:7070 pi@127.0.0.1
  • 1

这样就建立了SOCKS5代理。



你可能感兴趣的:(工具)