ss ip代理:妖娆的代理工具shadowProxy
ss ip代理:妖娆的代理工具shadowProxyhttp.server相关的代码解读可参考我前一篇文章 Python源码分析之从SocketServer到SimpleHTTPServer主要使用python内建的http.server和http.client库实现。GitHub.com/odboy/shado…功能实现代理功能
前言
在渗透测试过程中,往往会遇到特别“小气”的目标,稍微碰一下就封IP。这种情况下,我们很自然的想到通过网上大量的免费代理进行IP隐匿。
那么问题来了,难道拿到哪些个代理,每用一次手动换下一个代理? 这太像火铳的工作方式了,想想就心累了。
so,小弟就来造一台机关枪,突突突突突… 想想就挺带感。
GitHub.com/odboy/shado…
功能实现
代理功能
主要使用python内建的http.server和http.client库实现。
http.server相关的代码解读可参考我前一篇文章 Python源码分析之从SocketServer到SimpleHTTPServer
time.sleep(2)
except KeyboardInterrupt:
print('\r***********************\n\t用户中断\t\n***********************')
break
except Exception as e:
msg = "第 %d 次请求 \t%s" % (i e )
time.sleep(2)
finally:
print(msg)
效果展示
动图展示 : test_shadowProxy.gif
枪是好枪,但还是存在一些问题的。
缺弹少药 - 通过工具爬取到的代理很多重复,很多不可用,只有百八十个。
弹药质量差 - 获取到的代理,很多无法传输大数据包(中断),小包也不稳定。
机枪卡壳 - 由于上述问题,所以工具容错能力/重试功能有待提升。(后续考虑提升的点)
PS:后续代码完善后,可以考虑开源发布。
2018-01-10 Update
目前代理加入了自动重试功能,使其能更稳定的进行查询。
同时,找了个还算不错的proxylist。 github.com/fate0/proxy…
目前便可以比较顺畅的使用了:
开源发布
github.com/odboy/shado…
生成&安装证书
生成证书
shadowProxy git:(master) ✗ ll
total 112
-rw-r--r-- 1 bingo staff 573B Jan 10 16:42 PCtest.py
-rw-r--r-- 1 bingo staff 5.9K Jan 10 16:42 ProxyCoordinator.py
-rw-r--r-- 1 bingo staff 14B Jan 10 16:42 README.md
drwxr-xr-x 3 bingo staff 96B Jan 10 16:42 __pycache__
-rw-r--r-- 1 bingo staff 100B Jan 10 16:42 proxylist-4.txt
-rw-r--r-- 1 bingo staff 19K Jan 10 16:42 proxylist.txt
-rwxr-xr-x 1 bingo staff 302B Jan 10 16:42 setup_https_intercept.sh
-rw-r--r-- 1 bingo staff 11K Jan 10 16:42 shadowProxy.py
shadowProxy git:(master) ✗ ./setup_https_intercept.sh # 直接运行脚本,生成根证书
Generating RSA private key 2048 bit long modulus
........................................................................................................................................
..................................................................
e is 65537 (0x10001)
Generating RSA private key 2048 bit long modulus
.....................................................................................................................................
...................
e is 65537 (0x10001)
安装证书
在浏览器设置代理,指向 http://127.0.0.1:8088 然后访问 shadow.proxy/ 即可弹出证书安装。(…)
安装后,可以访问https网站。
使用测试
➜ shadowProxy git:(master) ✗ python shadowProxy.py -h
.--.
|o_o | ------------------
|:_/ | < Author: Mr.Bingo >
// \ \ ------------------
(| | ) < oddboy.cn >
/'\_ _/`\ ------------------
\___)=(___/
usage: shadowProxy.py [-h] [--bind BIND] [--port PORT]
[--log-level {DEBUG INFO WARNING ERROR CRITICAL}]
[--proxyListFile PROXYLISTFILE]
optional arguments:
-h --help show this help message and exit
--bind BIND Default: 0.0.0.0
--port PORT Default: 8088
--log-level {DEBUG INFO WARNING ERROR CRITICAL}
Default: WARNING
--proxyListFile PROXYLISTFILE
代理列表文件
➜ shadowProxy git:(master) ✗ python shadowProxy.py
.--.
|o_o | ------------------
|:_/ | < Author: Mr.Bingo >
// \ \ ------------------
(| | ) < oddboy.cn >
/'\_ _/`\ ------------------
\___)=(___/
初始化代理池 本地IP :: 36.110.16.74
导入代理池::: proxylist.txt
成功导入 110 个代理
Serving HTTP on 0.0.0.0 port 8088 (http://0.0.0.0:8088/) ...
直接访问站点进行测试。
由于该工具主要基于网上免费的代理进行IP隐匿的,所以稳定性仍然不够好,所以只建议用于特定的请求包测试。 在使用过程中遇到什么问题,欢迎给我邮件,我会进行修复完善,如果可以,给我的GitHub点颗星星,谢谢!