HanDs
管理员

使用免费代理IP进行内网扫描 





学习中请遵循国家相关法律法规,黑客不作恶。没有网络安全就没有国家安全

本站需要登陆后才能查看

*原创作者:Tonybreak

如何从免费代理IP中发现漏洞,这里我定义为发现的漏洞,是因为我个人觉得这个漏洞的技术性比较差,更多的可能是发现、分析与总结。作为一名信息安全的新手,无奈能力不足只能通过这种取巧的方式去发现漏洞了。

发现过程

在一次看帖自我学习的过程中,我看到了某浪HTTP代理配置不当可造成内网漫游和某浪HTTP代理设置不当可访问内网资源,某陌因为HTTP代理配置不当可以绕过IP过滤去探测敏感资源。

第一个疑问是,他们是如何发现这样的漏洞的?

第二个疑问是,如何去检测IP是否开启了http代理呢?

对疑问的解决:

通过对上述漏洞的学习,发现HTTP代理其实是一个好东西。因为服务器本身配置不当,让某端口提供了HTTP代理功能,从而绕过了IP的限制。利用服务器的代理功能,为自己“伪造”了一个白名单的IP,自己将可以访问敏感信息等操作了。如果这个服务器IP还处于企业的内网网段中,相当于提供了一个内网IP的跳转,那么就可以对内网进入更深一层的渗透测试了。

尝试对某HTTP代理的IP进行nmap扫描,在结果中存在http-proxy,状态为open,则说明此端口可以作为HTTP代理使用。

如下图所示:

8080/tcp open     http-proxy

Clipboard Image.png

设置这个IP和端口作为自己浏览器的HTTP代理,并使用。使用第三方在线工具检测本机IP,看是否成功代理。

检测结果如下:

Clipboard Image.png

这里发现已经成功代理成功了,为了更进一步确认是否成功代理,可以尝试打开http的网站,发现也可以正常访问,访问https的网站失败。

通过实践,对于上面的两个疑问,其实就是一个问题。个人揣测,这些漏洞的发现过程可能是这样的:

在对目标服务器端口扫描时,发现了http-proxy的端口,然后尝试代理,发现代理成功。利用这个HTTP代理,可以绕过IP限制访问敏感信息,或者内网漫游等等。

全网扫描代理IP不太现实,网上有很多http代理检测的工具,也有很多分享http代理的网站。那我直接对这些免费IP代理的网站进行搜集整理分析,看看能否发现什么。

我选择了一个免费IP代理网站

http://www.xicidaili.com/

发现漏洞

这个免费代理IP的网站,主要分为国内高匿代理、国内普通代理、国外高匿代理、国外普通代理和socks代理。这里我主要选择了国内的进行分析。

找共同点

选择国内高匿代理,地址如下

http://www.xicidaili.com/nn/

人眼识别出相同的端口,我第一次选择的端口是8888,手工尝试了直接访问这个IP发现无法访问,访问IP+端口,发现跳转至某智能路由器。下面就是编写了个python脚本,把相同的8888端口的IP和端口提取出来

代码如下(渣渣代码,可自行优化。需要自定义端口)

# coding=utf-8
# author TonyBreak

import urllib2
import re
import time

# 定义抓取的页面为5
n = 5              

# 定义headers,伪造浏览器特征,防止某些网站禁止该脚本正常访问页面
headers = {
 'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686)Gecko/20071127 Firefox/2.0.0.11'
          }

# 定义url,后面必须添加正整数(国内高匿)
# url = 'http://www.xicidaili.com/nn/'        

# 定义url,后面必须添加正整数(国内普通)
url = 'http://www.xicidaili.com/nt/'        

# 读取网页内容
def geturl_content(xx_url):
    req = urllib2.Request(url=xx_url, headers=headers)    # 链接url    
    socket0 = urllib2.urlopen(req)
    content = socket0.read()
    socket0.close()
    return content

# 结果输出文件保存
def file_output(c):
    # 获取当天日期 
    t_time = time.strftime("%Y-%m-%d", time.localtime())       
    result_output = "result-" + t_time + ".txt"        
    f = open(result_output, 'a')
    f.write(c)
    f.close()

# 正则处理,获取IP和端口,存入数组 m 中def get_ips(bb_url):
    # reg = r'<td>([\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3})</td>\s*<td>(\d*)</td>'    

    # 国内普通 端口9999    
    reg = r'<td>([\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3})</td>\s*<td>(9999)</td>'    
    ips_data = geturl_content(bb_url)
    p = re.compile(reg)
    m = re.findall(p, ips_data)
    return m

# 主函数,处理多个页面的数据读取
def main():
    for i in range(n):          # 多页面抓取        
        urls = url + str(i + 1)
        m = get_ips(urls)
        for k, v in m:                     
            result = k + ':' + v + '\n'            
            file_output(result)

if __name__ == '__main__':
    main()

最后的输出为txt文档,类似这样

Clipboard Image.png

把这些IP和端口直接贴到某浏览器的代理设置中,发现大部分可以成功代理(因为代理的时效性,部分代理在验证时已经失效)。直接访问IP和端口,发现大部分可以跳转到某智能路由器后台。整理好这些智能路由器的IP后,我了提交的一个漏洞,漏洞类型为设计缺陷,然后通知了厂商。开发人员表示自己也不知道为什么开启了HTTP代理。(这一点,说明这个HTTP代理可能是一个普遍现象)

简单概括就是:找相同的端口,整理IP,确定漏洞的通用性。

深入

在上一个漏洞的基础上,我尝试了深入。发现了另外一款个人智能路由器也存在这个问题,由于获取的样本IP太少,我没有去提交。个人的智能路由器,由于用户的网络差异性大等,所以访问速度慢,代理效果差。我再次更换了一个端口提取IP,通过整理分析,发现是一款商业路由器,主要适用于店铺、商家等使用,用户量看官方说明还不少。商业路由器的访问速度比个人路由器好了许多。

这里发现有一个疑似越权访问的问题,但是不能操作,在提交漏洞的时候,我还是选择了设计不当,可以做HTTP代理。我没有继续对这个路由器深入,因为虽然网络比个人路由器好许多,但是访问速度并不是太理想。有兴趣的朋友可以继续试试。

再次深入

再次深入,依然是选择了一个端口,对IP进行了整理。直接访问搜集的IP+端口,发现跳转至一个web页面。页面的主要内容为下载APP进行WiFi链接,有点儿类似花生地铁WiFi。整理后,基本可以确定这些IP为这一厂商的网关。

继续用nmap扫描几个样本IP后,发现有其他的相同端口,访问其中的一个端口8080(假设为8080),发现跳转至网关管理界面。进过搜索查询,发现这个是企业级别的路由网关。继续搜索,发现此网关有通用漏洞,可绕过前台登录页面直接进入管理页面。

在ping服务处存在命令执行,大概是这样:

00001.jpg

然后我就提交了这个漏洞,厂商也十分重视,第二天就全面修复了这个漏洞(升级了路由器的系统)。

失败的深入

近期,我尝试继续分析,选择了9999的端口。通过整理,nmap扫描,最后发现扫描结果大致类似这样。从200个9999的IP中,筛选出了54个IP符合下面规则的:

80/tcp   filtered http
2000/tcp open     cisco-sccp
8080/tcp filtered http-proxy
9999/tcp open     abyss

某个IP的端口扫描后,结果如下:

21/tcp   open     ftp
80/tcp   filtered http
135/tcp  filtered msrpc
139/tcp  filtered netbios-ssn
443/tcp  open     https
445/tcp  filtered microsoft-ds
1723/tcp open     pptp
2000/tcp open     cisco-sccp
8080/tcp filtered http-proxy
9999/tcp open     abyss

通过端口9999设置HTTP代理,可绕过IP限制,访问80的web服务会跳转至路由管理界面。这里也只能面向算是一个设计不当了。

继续分析,发现此网关的登录为GET型,如下

http://111.111.111.111/cfg?process=login&backpage=%2Fcfg&page=start&user=admin&password=admin&submit=+Log+in+

在自身HTTP代理的情况下,即可尝试绕过登录或者爆破。第二天准备继续尝试的时候,发现昨天测试的IP已经停掉了所有服务。

由于没有成功的案例,所以我也没有继续提交了。大家可以继续深入试试。

总结

没有什么技术性,主要是筛选相同的端口的IP,nmap扫描,找出共同点,对端口继续分析深入,去发现更大的漏洞。

快看看自家的路由器,有没有被不小心设置成HTTP代理了。

本文原创作者:tonybreak,本文属FreeBuf原创奖励计划,未经许可禁止转载


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
使用 免费 代理 I P 行内 扫描
#1楼
发帖时间:2016-7-30   |   查看数:0   |   回复数:0
游客组
快速回复