改造reGeorg之突破限制
首页 > 资源分享 > 安全工具    作者:webbaozi   2016年12月13日 11:18 星期二   热度:2656°   百度已收录  
时间:2016-12-13 11:18   热度:2656° 


reGeorg不用多介绍了,内网渗透中常用工具之一。
https://github.com/sensepost/reGeorg
在做个目标的时候想用reGeorg做个socks5代理,但是出现了问题。记录下解决的过程。

在浏览器中访问会出现很熟悉的 Georg says, 'All seems fine',说明是正常的,如下图(为了目标的安全性,故把域名进行了替换):
reg1.png

但是在reGeorgSocksProxy客户端的时候却出现了异常,相信很多人在这就放弃了:
reg2.png

想想不应该呀,页面都能正常显示,那没办法了,把问题的原因锁定在reGeorg上,然后一步步调试。
先找到报错的提示,在413行:
reg3.png

报错的原因是因为这句if not askGeorg(args.url)
在代码里去跟随askGeorg这个方法
reg4.png

这里我们可以把askGeorg方法提取出来方便单独调试:

import logging
import argparse
import urllib3
from threading import Thread
from urlparse import urlparse
from socket import *
from threading import Thread
from time import sleep
def askGeorg(connectString):
connectString = connectString
o = urlparse(connectString)
try:
httpPort = o.port
except:
if o.scheme == "https":
httpPort = 443
else:
httpPort = 80
httpScheme = o.scheme
httpHost = o.netloc.split(":")[0]
httpPath = o.path
if o.scheme == "http":
httpScheme = urllib3.HTTPConnectionPool
else:
httpScheme = urllib3.HTTPSConnectionPool

conn = httpScheme(host=httpHost, port=httpPort)
response = conn.request("GET", httpPath)
if response.status == 200:
print "aaaaaaaaaaa"
return True
conn.close()
return False
if __name__ == '__main__':
if not askGeorg("http://www.i0day.com/include.aspx"):
print "Georg is not ready, please check url"
else:
print "success"

在conn.request下断点
请求的的包


继续单步可以看到返回的结果为flase,最后输出提示信息:
reg6.png
reg7.png

现在我们可以知道问题出现在 response.status 不等于200,既然浏览器是可以的,说明代码里判断了浏览器的一些特性,如 referer User-Agent Accept-Language 等,但是具体判断哪个我们还得试才知道。
抓取浏览器正常访问的包
reg8.png

然后一个个去掉,最终得出网站判断了User-Agent: ,因为reGeorgSocksProxy是直接请求的,没有带任何头,所以网站会返回500状态。
既然知道了问题的关键,直接去改代码就行了,我们在regeorg请求的时候加个请求头就OK了:


headers = {
'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ',
'Referer': r'http://www.i0day.com.com/',
'Connection': 'keep-alive'
}
response = conn.request("GET", httpPath,headers=headers)

你也可以加入 Accept-Language Accept 等头是请求包更完善。
至此我们第一个报错就解决了,为什么说第一个错误呢,因为我们只改了regeorg验证的数据包,我们在使用时候socks5代理的时候还是会报错
reg9.png

原因是一样的,它的通讯数据包的来源还没改,修过通讯包我们只需要把所有 headers = {}里面加入:
'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)'
就行,当然你想加其它的头也可以。

然后就顺利创建了通道:
ok.png

转自:小马's Blog

二维码加载中...
本文作者:webbaozi      文章标题: 改造reGeorg之突破限制
本文地址:http://www.webbaozi.com/aqgj/30.html
版权声明:若无注明,本文皆为“baozi|学与用”原创,转载请保留文章出处。

返回顶部    首页    手机版本   
版权所有:baozi|学与用    站长: webbaozi  蜀ICP备16032848号-1