一、Proxy探测脚本
功能:探测Proxy地址是否可用,速度及代理的隐匿程度
脚本地址:https://github.com/tanjiti/perl_tools/blob/master/isProxyOK.pl
使用方法:
1. 获取帮助
2. 判断指定Proxy地址是否可用及连通速度
黄色字体表明代理不可用,红色字体表示代理可用
perl isProxyOK.pl -proxy http://61.158.219.226:8118
除了http代理,也支持socks代理
perl isProxyOK.pl -proxy socks://180.153.139.246:8888
除了探测单个proxy地址,我们也可以批量探测文件中的代理,并将可连通的代理输出到指定文件中以备用
perl isProxyOK.pl -proxy proxy_Scrapebox.txt [-out proxy_20140511_out]
![Proxy探测脚本与HTTP基本认证暴力破解脚本 - 碳基体 - 碳基体 Proxy探测脚本与HTTP基本认证暴力破解脚本 - 碳基体 - 碳基体]()
运行
运行结束后将可用代理存入文件proxy_Scrapebox.txt_out中,你也可以使用 -out 选项指定输出文件名
3.判断代理的类型
1)脚本将代理分为三类
(1)High Anonymity Proxy/elite Proxy 高度匿名代理:不会在服务器访问日志中留下VIA,与X_Forwarded_For内容
(2)Anonymity Proxy 匿名代理:可隐藏访问者原始IP,X-Forwarded-For中没有实际的访问IP
(3)Transparent Proxy透明代理: 有详细的代理信息及访问者IP,代理IP
1)脚本运行的先决条件
启动该功能需要预先在脚本运行环境下搭建web server
本例以在vps下搭建lighttpd 为例,设置lighttpd日志格式及启动server
设置lighttpd的日志格式,主要是要记录X-Forwarded-For 、VIA头部
vim /etc/lighttpd/conf-enabled/10-accesslog.conf
accesslog.format = "%h %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-Forwarded-For}i\" \"%{VIA}i\""
accesslog.filename = "/var/log/lighttpd/access.log"
具体的日志格式设置可参考《Apache/Nginx/Lighttpd/Tomcat 日志格式 cheatsheet 》
2)代理判断的流程
通过指定代理访问web server,然后在web server访问日志中查看VIA,与X_Forwarded_For字段
第一步:使用代理访问 http://www.tanjiti.com/proxy.php ,获得代理相关请求及初步的代理判断
{
HTTP_VIA: false,
HTTP_X_FORWARDED_FOR: "xxx.xxx.xxx.xxx",
HTTP_X_FORWARDED_PROTO: "http",
REMOTE_ADDR: "xxx.xxx.xxx.xxx",
HTTP_PROXY_CONNECTION: false,
PROXY_TYPE: "transparent"
}
第二步:
根据访问者真实的ip地址,查看HTTP_X_FORWARDED_FOR头,看是保护在其中,如果不在,则为匿名代理
4)实例
-proxy: 代理地址 也可以是代理地址文件
-vv: 表示获得代理类型
-url: 你的web server ip或域名
-ip: 你的访问ip
-logpath: web server访问日志路径,默认为/var/log/lighttpd/access.log
a.透明代理Transparent
perl isProxyOK.pl -vv -proxy http://218.107.217.82:8080
b.匿名代理Anonymity
perl isProxyOK.pl -vv -proxy http://64.34.14.28:7808
c.高度匿名代理elite
perl isProxyOK.pl -vv -proxy socks://180.153.139.246:8888
该代理脚本待改善的地方
1. 不支持需要认证的代理服务器
2. 不支持多线程探测
二、HTTP 基本认证暴力破解脚本
功能:使用字典破解HTTP basic Authentication脚本地址:https://github.com/tanjiti/perl_tools/blob/master/crackbasicAuth.pl
补充知识:
基本认证实例说明:lighttpd + htpasswd
第一步:htpasswd创建基本认证
在指定路径下生成基本认证文件
htpasswd -c [认证文件路径,使用绝对路径] tanjiti(用户名)
第二步:启用auth模块lighttpd-enable-mod auth
/etc/init.d/lighttpd force-reload
第三步: 配置auth模块vim conf-enabled/05-auth.conf
增加
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "[filepath absolute]"
auth.require = ("[需要采取基本认证的路径,使用相当路径]" => (
"method" => "basic",
"realm" => "[基本认证框中的服务器提示]",
"require" => "user=tanjiti"
))
/etc/init.d/lighttpd force-reload
此时访问该路径的文件,则会要求进行基本认证,否则401实际上服务器是期待客户端发送一个带有帐户信息的Authorization头
Authorization: Basic dGFuaml0aToxMjM=(username:password base64编码)
使用方法:
1.获取帮助
perl crackbasicAuth.pl -h
2. 使用脚本登陆
perl crackbasicAuth.pl -url http://www.tanjiti.com/xxxx/ -username tanjiti -password 123 -vv
选项说明:
-url 需要基本认证的路径
-username 基本认证用户名,可以是字符串,也可以是字符串(字典)文件
-password 基本认证密码,可以是字符串,也可以是字符串(字典)文件
-vv 开启该选项,在终端开启看到详细的HTTP请求头和响应头
-tor 表示使用tor作为代理来访问目标url
-proxy表示使用代理来访问目标url,可以是单个的代理字符串,也可以是代理列表文件(我们可以使用一、Proxy探测脚本介绍的方法来挑选合适的代理列表)
使用字典尝试登陆
perl crackbasicAuth.pl -url http://www.tanjiti.com/xxxx/ -username a -password b
使用tor(debian/ubuntu 使用apt-get install tor,默认监听端口9050)
perl crackbasicAuth.pl -url http://www.tanjiti.com/xxxx/ -username a -password b -tor
使用proxy list
perl crackbasicAuth.pl -url http://www.tanjiti.com/xxxx -username a -password b -proxy proxy_Scrapebox.txt_out
其实基本认证一般会配合ip的访问控制策略(只允许某段IP访问),使用代理隐藏IP,绕过登陆安全限制(例如限制单个IP或单个用户名的访问频率)的意义不大,但可以将理念用于没有ip限制的表单登陆中。