设置代理池
(1)安装kali linux虚拟机,请使用桥接模式,如果使用nat模式,proxifier需要新建规则不代理VMware Workstation的流量。安装proxychains-ng,安装后的命令是proxychains4。apt-get purge proxychains #卸载原proxychainsgit clone https://github.com/rofl0r/proxych..
(1)安装kali linux虚拟机,请使用桥接模式,如果使用nat模式,proxifier需要新建规则不代理VMware Workstation的流量。安装proxychains-ng,安装后的命令是proxychains4。
apt-get purge proxychains #卸载原proxychains
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure --prefix=/usr --sysconfdir=/etc
make
make install
make install-config
安装后的配置文件在/etc/proxychains.conf,如果你需要使用namp,请注释掉proxy_dns,并且使用-sT扫描,可在这里看到相关问题。
https://security.stackexchange.com/questions/122561/how-to-use-nmap-through-proxychains
代理列表的格式如下,注释原strict_chain并配置为round_robin_chain模式:
(2)在kali中安装proxybroker并搜集和处理代理IP。
安装:python3 -m pip install proxybroker
更新:python3 -m pip install -U git+https://github.com/constverum/ProxyBroker.git
请运行proxybroker查看帮助信息。这里获取100个国内的代理IP(默认proxybroker进行了check),先将输出保存到proxylist.txt中。
proxybroker find --types SOCKS4 SOCKS5 --lvl High --countries CN --format default --limit 100 >> proxylist.txt
如果你不想再验证代理有效性可以执行如下命令来处理输出结果为proxychains支持的格式。
sed 's/SOCKS4, SOCKS5/SOCKS5/g' proxylist.txt | sed 's/SOCKS/socks/g' | sed 's/^.*\[//g' | sed 's/>$//g' | sed 's/:/ /g' | sed 's/\]//g'
实际测试的时候获取的代理IP不一定有效,这里贴一个简单的python脚本帮助再次验证。
#!/usr/bin/python
#coding=utf-8
import Queue
import threading
import requests
import sys
class proxyCheck(threading.Thread):
def __init__(self,queue):
threading.Thread.__init__(self)
self._queue = queue #接收一个队列
def run(self):
while not self._queue.empty():
proxy = self._queue.get() #从队列取一个代理
self.check(proxy)
if self._queue.empty():
break
def check(self,proxy):
try:
#print("sock5://{}".format(proxy))
html = requests.get('https://www.example.com',timeout=3,proxies={"https":proxy})
sys.stdout.write(str(proxy.split(":")[0]).lower()+" "+str(proxy.split(":")[1].strip("/"))+" "+str(proxy.split(":")[2])+"\n")
return 0
except Exception as e:
#print e
#sys.stdout.write("connection error by %s\n" % proxy)
pass
def main():
proxy_queue = Queue.Queue()
with open("socks.txt",'r') as f:
for proxy in f.readlines():
proxy = proxy.strip()
proxy_queue.put(proxy) #读取proxy文件并加入队列
#print proxy_queue.qsize()
threads = [] #线程池
threads_count = 10 #十个线程
for i in range(threads_count):
threads.append(proxyCheck(proxy_queue))
for t in threads:
t.start()
for t in threads:
t.join()
if __name__ == '__main__':
main()
先处理proxybroker搜集到的proxylist.txt,然后再用python脚本验证,脚本输出的格式支持proxychains的配置文件。将以下命令处理的结果保存为socks.txt,直接运行脚本验证即可。
sed 's/SOCKS4, SOCKS5/SOCKS5/g' proxylist.txt | sed 's/^.*\[//g' | sed 's/>\|\]//g' | sed 's/ /:\/\//g'
(3)通过以上步骤已经得到了一个动态切换代理的网络,为了windows能使用这个网络,需要用proxychains代理kali上的microsocks,然后windows用proxifier连接到kali的microsocks的socks5。
microsocks是一个轻量级别的socks5代理服务器,在github上筛选了一番还是这个方便易用。
git clone https://github.com/rofl0r/microsocks.git
cd microsocks
make
proxychains4 ./microsocks -p 8888 -u test -P test #用户密码均为test
windows安装proxifier,官网下载的话需要翻墙,注意下载安装版本的,实测Portable免安装版本没有正常全局代理,命令行执行脚本没有代理成功。安装后搜索注册码注册即可,如下配置。
check一下连接正常
我在公网服务器上用python -m SimpleHTTPServer 8352对比观察代理池的情况下扫描服务器,ip发生了变化
更多推荐
所有评论(0)