A. 怎么对ccproxy设置高级隐藏
CCProxy的高级设置大全:
CCProxy是我们常用的一款国产代理软件,其实他还有许多高级功能我们没有注意过,现收录部分如下:
怎样修改帐号管理所支持的帐号数
默认值是300。对应CCProxy.ini里的MaxUserCount。
怎样修改时间安排的支持数目
默认值是20。对应CCProxy.ini里的MaxTimeSchele。
怎样修改网站过滤的支持数目
默认值是20。对应CCProxy.ini里的MaxWebFilter。
怎样修改CCProxy的同时在线支持数目
默认值是300。对应CCProxy.ini里的MaxConnection。
怎样拦截进出代理服务器的所有数据
本功能原来是方便用户反馈程序错误用的。在主界面上,按住Ctrl键,双击"0/0"。所有拦截的数据都保存到C:\log.dat。最多保存256K数据。此功能影响代理服务器速度,需即时关闭。对应CCProxy.ini里的BugTrace。
怎样在线检查CCProxy最新版本
此功能不会将您的电脑的任何信息发送给遥志软件,请放心使用。
双击主界面上的U字母。
怎样修改界面的连接数曲线(绿色)的显示高度和流量带宽曲线(黄色)显示高度?
在界面上单击鼠标右键,在弹出的窗口中修改度默认是300和256,
怎样调出Windows任务管理器?
双击主界面上的0/0。
怎样知道所运行的CCProxy的发布时间
双击主界面上的时间数字。
怎样快速进到CCProxy安装目录
按着Ctrl键,双击主界面上的时间数字。
怎样知道今天的农历日期
按着Shift键,双击主界面上的时间数字。
怎样实现启动CCProxy时自动拨号和关闭CCProxy时自动断线
对应CCProxy.ini里的DialWhenStartup和DisconnectWhenShutdown。将值设成1时,表示打开这个功能。在使用此功能前,要设置好代理服务器的拨号选项。
怎样让服务器拨号闲置时自动断网并关机
此功能由黑龙江天衣有缝提出。首先要设置好拨号闲置自动断开功能,然后将CCProxy.ini里的
ShutDownWhenIdle=1。
怎样实现定时关机
CCProxy.ini
[ShutDown]
Enable=1
Time=20:00
表示20:00关机
CCProxy.ini
[ShutDown]
Enable=1
Time=05:05
表示05:05关机
此功能最好在CCProxy
NT服务方式下运行,这样CCProxy可以获得更高的权限来关闭电脑
怎样修改网站过滤服务器返回的字符串
CCProxy.ini里的
WebSiteForbidden对应站点过滤服务器返回的字符串。注意,要保留%s。WebContentForbidden对应内容过滤服务器返回的字符串。
如果WebSiteForbidden里填写的是一个文件绝对路径名,那么服务器会读取该文件来作为过滤网站返回信息。如:WebSiteForbidden=c:\alert.htm。
如果WebContentForbidden里填写的是一个文件绝对路径名,那么服务器会读取该文件来作为内容过滤返回信息。如:WebSiteForbidden=c:\alert.htm。
怎样修改网页身份认证里的字符串
CCProxy.ini里的
WebAuthTitle对应认证对话框里的字符串“CCProxy
Authorization”。AuthorityFailed对应认证失败后服务器返回的字符串。
怎样实现验证失败时显示指定的htm文件?
CCProxy.ini里的
AuthorityFailed里输入htm文件的绝对地址。例如:AuthorityFailed=f:\1.htm,表示显示F盘根目录下的1.htm文件。
怎样实现帐号排序?
"帐号管理"→
点击"用户名"、"IP地址"、"MAC地址"、"连接数"任一字段名即可按所选字段名排序,连续点击则分别按"降序"、"升序"分别排列。确定后,将按照排序结果保存帐号。
怎样实现远程拨号?
1)
在服务器上手工建立一个拨号连接,并且测试一下这个拨号连接是否有效。
2) "设置"-> 选择"远程拨号"。
3)
"设置"->"高级"->"拨号":在"拨号列表"中选择 1)中建立的拨号连接。在"拨号用户名"、"拨号密码"里填上正确的上网帐号信息。
4)
在帐号管理中编辑或新增用户,并选择允许该用户"远程拨号"。
5) 客户端的浏览器首先要设置好HTTP代理服务。然后在浏览器中输入
http://ccproxy.connect 就可以拨号了,如果客户端使用
http://ccproxy.connect.电话号码.用户名.密码,则用指定的电话号码和用户帐号信息拨号。
6) 断开拨号网络连接则在浏览器中输入
http://ccproxy.disconnect
怎样实现通过客户端使服务器自动拨号?
1)"设置"->
选择"远程拨号"。
2)"设置"->"高级"->"拨号"->
选择"允许自动拨号",然后在相应代理协议前打勾。
3)"帐号"-> 编辑或新建帐号 ->
选择"远程拨号"。
这样,只要被允许的客户端使用被允许的协议(HTTP/FTP/TELNET等)就可以实现服务器自动拨号功能。
怎样实现隐藏任务栏图标 ?
编辑ccproxy.ini,在
[System]
下增加一行Allhide=1。去掉这一行则显示图标。
或:"设置"->"高级"->"其他":选择"隐藏所有"。
若要重新显示主界面,只需再运行一次CCProxy即可(CCProxy自动判断,不会在同一个目录下启动多个进程)。
怎样使用热键激活界面?
编辑CCProxy目录下的CCProxy.ini,把EnableHotKey=0改为1,然后保存文件并重启CCProxy软件。以后当软件隐藏后,只要按下"CTRL+ALT+C",界面会重新显示。
怎样实现管理员密码控制?
"设置"->"高级"->"其他":选择"密码保护",然后在相应的密码框中输入密码。这样每次修改设置、增加或编辑帐号、退出程序都必须输入正确密码方可。
若需要每次启动时必须输入密码则再选择"启动时需要密码"。建议一般情况下不选择。
怎样让客户端显示广告条?
这是一个相当有趣的功能,最初由上海复旦大学Hyne提出。
默认状态是关闭。对应CCProxy.ini里的AddMessage。AddMessage=1,表示开放广告条功能。同时在CCProxy运行目录下写一个addmessage.htm文件(小于4096字节),当然这个文件的编写很要技巧。
提供两个非常经典的例子:ads1.zip(Hyne提供)
ads2.zip(testa提供) 欢迎提供更多好的例子。
另外,可以在界面中按住shift双击0/0,在弹出的对话框中选择,
怎样往客户端发送信息?
客户端如果是Win98,要求已经运行了windows目录下的WINPOPUP.EXE。如果是Win2000/NT,则系统已经自带了消息接收功能。选中需要发信息的帐号点击右键,在第一个编辑框里输入接收者的机器名,第二个编辑框里输入要发送的文字,点击确定就可以发送信息到客户端了。如果上面的对话框里输入的是"*"号,可以发送到局域网里的任何一台机器。
怎样实时观测客户端访问内容(网站)以及客户端连接数和流量?
双击主界面绿色网格即可,并且双击左上角的"当前连接信息”左边那个图标,可以切换观察状态。
怎样实现流量统计和计费?
1)
在CCProxy的"设置"—"高级"—"日志"—"运行流量统计"前面打勾,并设定"流量统计间隔时间"(默认为10分钟),这样系统会在log文件夹中生成一个文件(如data20030613.txt),并每隔10分钟系统在该文件中写入一次流量统计数据;
2)
点击"流量统计",即可打开流量统计文件,观察到流量记录(前面的为流进数据,后面的为流出数据);
3)
下载CCReport插件,可以根据统计出的流量,计算出每用户的使用费用。
怎样实现端口映射?
在"设置"页面点击"端口映射"后面的E按钮,进行相应的设置即可:
怎样设置二级代理?
"
设置"->"高级"->"二级代理":选择"启用二级代理",在代理地址中输入上级代理服务器IP或计算机名称,选择代理协议
HTTP/HTTPS/SOCKS,再输入对应的端口。若需要验证密码,则选择"需要验证",在"用户名"、"密码"框中分别输入指定信息。需要注意的是:
1)
若上级提供了SOCKS5服务,则可以为下级提供包括HTTP/FTP/GOPHER/SOCKS/RTSP/MMS/TELNET等协议在内的几乎任何服务,本程序可以全部自动转换;若上级提供了HTTPS服务,则绝大部分服务也可为下级提供,除了QQ/PP等UDP协议;若上级只提供了HTTP服务,则下级只能使用HTTP/FTP/GOPHER/SOCKS/TELNET等一般协议,RTSP/MMS等协议无法转换。
2)
6.0版支持不同的协议可以设置不同的二级代理或者不使用二级代理,即每一个协议都可以使用不同的上级代理和不同的协议或者部分协议使用上级代理,而部分协议可以不使用上级代理,也可以全部使用同一个上级代理和协议。
怎样同时运行多个ccproxy进程?
编辑ccproxy.ini,修改EnableMultiRun=1即可,但须安装在不同目录,使用不同端口。
怎样访问带域验证的网页?
可以只设置socks代理来实现访问,CCProxy要开放DNS服务和SOCKS4服务,客户端的DNS里要设置服务器的IP地址。
怎样结合杀毒软件检查所有通过代理发送和接收的邮件病毒?
编辑ccproxy.ini,修改AntiVirusGate=1表示启用邮件杀毒。目前我们测试过的软件有瑞星2003版和Norton
2003版,只要服务器上安装了这样的杀毒软件,就可以实现代理服务器邮件杀毒功能。
如何控制流媒体视频带宽?
编辑ccproxy.ini,修改[MMS]项:EnableRecord=1
如何屏蔽端口和屏蔽IP?
编辑ccproxy.ini,修改[DestDisable]项:
PortDisabled=1表示启用端口屏蔽,Port=25;110;80表示屏蔽这些端口;
IPDisabled=1表示启用IP屏蔽,IP=0.0.0.0-202.0.0.0表示屏蔽这个范围内的IP
用户通过web方式发送邮件时如何禁止发送附件?
在"内容过滤"里加入";; filename="。(注意:
在分号后面有一空格,如果有其余过滤的内容如chat等必须放在第一位,
怎样在客户端Ping互联网地址?
1)首先确认CCProxy的Telnet代理已经打开。
2)假设代理服务器地址是192.168.0.1,在客户端上输入命令行
telnet 192.168.0.1,然后回车。
3)在提示符CCProxy Telnet>后,输入你要ping的地址,如ping
sina.com.cn ,然后回车。
在远程终端服务(Terminal
Services)下运行CCProxy需要注意的事项?
如果在远程终端服务(Terminal
Services)下运行CCProxy,而且以NT服务方式运行,需要设置CCProxy.ini里的一个参数:TerminalServices=1。显示CCProxy界面只需要再次运行CCProxy就可以了。
怎样在代理服务器CCProxy里巧妙的利用Auto
Proxy功能?
在代理服务器CCProxy里巧妙的利用Auto
Proxy功能,请看详细设置
C源代码:客户端怎样通过proxy进行连接,支持https,
socks5代理?
客户端通过proxy进行连接,支持https,
socks5代理的C源代码请看
如何突破屏蔽代理访问的网站?
有些网站屏蔽代理访问,可以通过编辑CCProxy目录下的CCProxy.ini来突破屏蔽,把EnableProxyConnection=0改为1,然后保存文件并重启CCProxy软件。详细设置>>
如何绑定服务器IP地址?
编辑CCProxy目录下CCProxy.ini文件,把ServerBindIP=0.0.0.0改为服务器接入线路的IP地址,然后保存文件并重启CCP
roxy软件。当服务器有多条线路接入时,管理员可以通过此功能合理分配带宽资源。详细设置>>
如何让目标网站无法得知你是从哪个网站进入该网站?
编辑CCProxy目录下CCProxy.ini文件,把EnableReferer=0改为1,然后保存文件并重启CCProxy软件。此功能便于保密,让目标网站无法得知你是从哪个网站进入该网站的。详细设置>>
如何关闭gzip,加强广告条功能的应用范围?
编辑CCProxy目录下CCProxy.ini文件,把EnableGzip的值改为0,然后保存文件并重启CCProxy软件,此功能可以大大加强广告条功能的应用范围。
B. 怎么设置代理服务器,让局域网内的用户共享上网
不知道你所说是两台台式机有线连接的,还是两台笔记本无线连接,所以就都回答了 吧。
台式机有线连接共享上网:
1..主机)(能上网那台)设置。打开“本地连接”点“属性”然后选“高级”,在“internet连接共享”部分,勾选“允许其他网络用户通过此计算机的internet连接来连接(N)”然后“确定”即完成设置。
2.设置IP,设置主机、从机IP在同一网段192.168.1.1、192.168.1.2
从机网关和DNS服务器指向主机IP
3,最后,在主机电脑下,打开网上邻居,点击设置家庭或小型办公网络,设置连接方法为:这台计算机直接连到Internet,我的网络上的其他计算机通过这台计算机连接到Internet.
两台笔记本无线共享上网:
在从机电脑下,打开网上邻居,点击设置家庭或小型办公网络,设置连接方法为:此电脑通过网络上的其他计算机连接到Internet.通过以上的设置操作正常的话在主机接入internet下两台笔记本就可以共享上网了
2、主机无线网卡设置。打开“无线网络连接”点“属性”->“无线网络配置”->“高级”,选“仅计算机到计算机特定(C)”->“关闭”;
然后仍在“无线网络配置”中的“首选网络”点“添加”打开“无线网络属性”,“网络名(SSID)”任意设一名称,如shell,“网络身份认证”默认开放式,“数据加密”默认WEP,去掉“自动为我提供密钥(H)”前的勾自己来设“网络密钥”,比如1234567890,这样别人就要有这个密码才能连接,防止盗连,“确定”即基本完成了主机的设置如下图,
还有最后一项:设置无线网卡的IP,注意:无线网卡的IP段不能和上面设的有线的在一个段,即如果有线网卡IP段在1段,则无线网卡IP段就不能设成1段。比如有线网卡的IP地址为:192.168.16.49,则无线的可以设为192.168.17.1,掩码默认即可。
另一台笔记本(从机)的设置。很简单,从机无线网卡的IP设为192.168.17.36,掩码默认,网关设为192.168.17.1,DNS设为主机电脑的首选DNS。然后即可打开“无线网络连接”通过“查询无线网络”“刷新网络列表”找到刚才设的无线网络“shell”,双击它输入上面设的密码“1234567890”即大功告成!
1. 最后,在主机电脑下,打开网上邻居,点击设置家庭或小型办公网络,设置连接方法为:这台计算机直接连到Internet,我的网络上的其他计算机通过这台计算机连接到Internet.
2. 在从机电脑下,打开网上邻居,点击设置家庭或小型办公网络,设置连接方法为:此电脑通过网络上的其他计算机连接到Internet.通过以上的设置操作正常的话在主机接入internet下两台笔记本就可以无线共享上网了
C. ccproxy 这个软件怎么用
CCProxy简介及优点介绍
记得我刚开始摆弄代理服务器软件的时候,对于什么是代理服务器的概念还不是很懂,在当时的想法就是要实现多机上网,自己一方面也就是多看一些书,另一方面就是多试一试了。后来居然自己用Wingate把宿舍里的两台计算机弄得能同时上网了,当时真是喜不自胜,再后来居然一发不可收拾。现在这类软件现在用的久了,就也看的出一些问题,分得出一些优缺点了。我现在就先来介绍介绍这款代理服务器软件“CCProxy”吧:
一、CCProxy简介:
“CCProxy”全称是“代理服务器CCProxy”,是一款由北京遥志软件公司开发的免费的中文网络代理服务器软件,虽说同是中国人开发的代理软件,但那款在硅谷开发出的Sygate可是英文的。用CCProxy可以轻松实现局域网的“共享Internet”,并且它只用安装在服务器上。由于它那直观的界面,所以它的设置非常的简单,一般人都可以轻松掌握。但不可否认,它的功能也很少,只能实现IE、OICQ和FTP的功能,在与SocksCap32结合的情况下,支持客户端使用Outlook收发邮件,不过它的账号管理功能还是非常有特色和实用的。所以我非常建议开网吧的用户使用这款软件,因为据我对北京各大网吧以及各大学的观察,发现在这种公共场合上网的人,无非也就是:浏览、聊天和收发信件(我想,之所以会有人说现在上网是三大功能,估计也就是这些人占的比例过大引起的),可收发信件也都是用WEB方式,所以都大可不必另外费心在客户机上实现OUTLOOK的功能。当然,这只是它的简单介绍,如果没有突出的几项优点,我可是不会专门说它的。
二、CCProxy的几处优点:
1.它体积极小,解压缩以前只有138K,解完压缩也才336K,这对于那些动不动好几兆的大代理软件来说可真是不敢想象,并且是一个绿色软件(是不是很潮流呀?),只要在服务器上解完压缩,然后对网络中的计算机进行相应的设置就行了!
2.支持Windows 98/Me、Windows 2000/NT多种操作系统,还支持专线,modem, ADSL, ISDN等多种上网方式,如此全面的支持是不是想不到呀。
3.经过设置后可以实现IE,OICQ的使用以及FTP的功能。就我的看法,这些功能对网吧来说已经足够了,对于Wingate里的好多功能网吧几乎就是根本用不上的。
4.它是中国人自己编写的非常直观易用的中文软件,并且具有简单的账号管理功能。
5.它是一个完全免费的软件,这也是最为重要的一点,这可让您不必担心它会过期。对于Wingate或Sygate,您是不是时时担心过了三十天试用期该怎么办,如果只是因为一个试用期的问题而又要对计算机进行一次调整岂不是很不值得?如果您正在或要开网吧,听到这个消息,心里是不是很激动呀?
由于CCProxy的安装过程比较简单就不多说了。它的界面非常直观,如图1所示。按一下面板上的“设置”按钮,将进入“设置”窗口。在这里,你可以设置HTTP代理和Socks代理所使用的端口,如图2所示。同时,在这个窗口里还可以设置CCProxy代理的服务,如邮件代理、DNS服务等等。
面板上的“账号”按钮可以让您设置局域网中允许上网的电脑(如果您不填入就是默认允许局域网中的所有用户都能上网),如图3所示:在用户姓名中填入您允许上网的客户机名,用户IP地址中填入那台客户机的IP,这样就可以实现对上网用户的管理了。单击“当前用户信息”按钮,就可以查看该用户上网的情况了。对于您来说,这个简单的用户管理功能是不是已经足够用了?平常系统面板的绿色网格会动态显示网络的数据流量,您还可以通过双击绿色网格来查看网络用户比较详细的使用情况。
D. ccproxy怎么用
你的问题和这个类似!
这是我的博客,里面有详细的图文教程。。
http://www.bonyliu.com/read.php?2
另外那还可以参考CC的帮助
由于CCProxy的安装过程比较简单就不多说了。它的界面非常直观。按一下面板上的“设置”按钮,将进入“设置”窗口。在这里,你可以设置HTTP代理和Socks代理所使用的端口,如图2所示。同时,在这个窗口里还可以设置CCProxy代理的服务,如邮件代理、DNS服务等等
我会些基本的。原来在学校就这么设置的。
1.打开CCproxy的设置选项,SOCKS/MMS都设置为1080。你代理的,和他接受的。要一致 。
2.打开帐号,允许范围里选择:允许部分。然后新建在IP地址/IP段里输入同事的IP地址:191.168.1.13 。保存确定。确定,推出帐号管理。
3.在CCproxy里看到有数据流,证明成功。
4.同事那里,如果要登录QQ可以在QQ高级设置里输入代理地址就是你的IP,注意SOCKS/MMS要一致。
5.设置的时候,其它的是默认的。我没改过。
6.如果不行,在第2步里,在输入IP地址后,下面有个MAC地址前打勾,然后点后面的问号自动生成一段地址段。添加到你同事的帐号下试试。
7.最后注意,我使用的CCproxy是演示版,只限制代理3个用户。
8.好了,完了,知道的就这么多了,希望能帮上忙!
客户机在IE属性 连接 局域网 设置就可以了!
E. ccproxy的设置问题!
CCProxy使用说明
1.代理服务器ccproxy须两块网卡一快网卡连接外网(进)另一块网卡连接局域网(出),ccproxy 是一款功能强大的代理共享管理软件,所以代理服务器要使用两块网卡。
2.确认服务器和局域网连接通畅,能够相互ping成功.
3.服务器局域网的网卡IP不要和外网的网卡IP在同一个网段内,局域网的网卡只设置IP地址和子网掩码,以防止路由冲突。
4.客户端的IP地址和服务器局域网的网卡IP在同一个网段内,网关和dns为局域网网卡的IP地址。
服务器设置:
5.下载最新版本CCProxy代理软件 http://hi..com/%C5%F9%F6%A8%CE%DE%CF%BE/blog/item/6e29d2f4a8c315def2d38558.html下载后在服务器安装,默认全部点击next完成安装。CCPROXY安装成功后,如果没有出现报错信息或端口冲突,接下来直接设置客户端就可以了。(对公司的安全有较高需求可以设置点击面版的账号按扭您可以通过“新建”将用户添加进去,或通过“自动扫描”直接添加用户,包括用户的“验证类型”、“时间安排”以及通过“网站过滤”设置屏蔽特定网站和内容,允许用户上指定的网站,或禁止用户上某些网站.根据公司的要求来设置。)
客户端设置:
6.CCProxy安装完毕.接下来设置客户端IE.假设安装代理服务器CCProxy机器的局域网网卡的IP地址是:192.168.0.1,在客户机上选择IE浏览器->菜单"工具"->"Internet选项"->"连接"->"局域网设置"->选中"使用代理服务器"->"高级"->"代理服务器设置"。取消"对所有协议均使用相同的代理服务器"。
在"HTTP"中填上代理服务器地址192.168.0.1,端口为808;
在"Secure"中填上代理服务器地址192.168.0.1,端口为808;
在"FTP"中填上代理服务器地址192.168.0.1,端口为808;
在"Gopher"中填上代理服务器地址192.168.0.1,端口为808;
在"Socks"中填上代理服务器地址192.168.0.1,端口为1080。
7. 保存退出,客户机实现代理上网。
http://hi..com/%C5%F9%F6%A8%CE%DE%CF%BE/blog/item/6e29d2f40c2071dff3d3857d.html
CCProxy 越是最新版越是不稳定,本人亲身体验。
F. Ccproxy的功能原理
CCProxy是一个国产的支持HTTP、FTP、Gopher、SOCKS4/5、Telnet、Secure(HTTPS)、News(NNTP)、 RTSP、MMS等代理协议的代理服务器软件。因为其简单易用、界面友好,非常适合在对流量要求不高的网络环境中使用,所以在国内有很多初级的网管喜欢用这个软件,有时候我在公司上网也要用它做代理。前些日子我测试发现CCProxy 6.0版本存在多处缓冲区溢出漏洞,可以导致攻击者远程执行任意代码。
TIPS:什么是Gopher、RTSP、MMS?
Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。允许用户使用层叠结构的菜单与文件,以发现和检索信息,它拥有世界上最大、最神奇的编目。
RTSP是Real Tranfer Stream Protocol的缩写,翻译为实时传输流协议,用来传输网络上的流媒体文件,如RM电影文件等,它的下载方法请看后文《悄悄下载流媒体》。
MMS是Multimedia Messaging Service的缩写,中文译为多媒体信息服务,它最大的特色就是支持多媒体功能,可以在GPRS、CDMA 1X的支持下,以WAP无线应用协议为载体传送视频短片、图片、声音和文字,彩信就算MMS协议中的一种。
漏洞发现过程
其实发现这个漏洞是很偶然的,当时在考虑公司产品的黑盒测试方案的时候,我想使用模板+测试用例的方式来进行网络部分的边界测试。这是比较传统的黑盒测试方法,其核心内容就是把网络协议包分块,然后制定出对各个块的测试策略,最后按照策略对所有块逐步进行测试。这种测试方法的好处在于可以有效的控制测试进度,以及可以比较详细地测试一个网络协议的所有部分,而且在测试过程中还可以不断地加入新的测试用例,以完善测试计划。测试程序的编写则可以使用脚本语言或C来完成。
TIPS:什么是黑盒测试?
黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。
我就是用这种方法测试公司的产品的时候,恰好当时在公司内部网之间使用CCProxy做代理服务器,因为测试HTTP协议要通过这个代理,所以测试过程中发现CCProxy崩溃了,也因此发现了这个漏洞,算是偶然吧。
漏洞分析过程
CCProxy的HTTP代理端口默认是808,这个端口可以在其界面中进行更改。漏洞的原理很简单,就是对CCProxy的 HTTP代理端口发送URL超过4056字节的畸形请求,CCProxy就会发生堆栈溢出。后来发现,不仅仅是GET请求存在此问题,所有POST、 HEAD等请求也都会导致溢出。在分析其原理后又发现CCProxy的Telnet代理也存在该问题。
现在来详细介绍一下我分析这个漏洞的过程。在发现了发送超长请求可以导致CCProxy出错以后,就开始分析溢出点以及利用限制。所要用到的工具是SOFTICE调试器和IDA反汇编工具。
TIPS:很多人都知道使用WINDASM反汇编,但经过它反汇编出来的代码非常简单,很不容易看明白,但IDA就不一样了,它不但会反汇编程序,并会尽量分析程序,并加上相应的注释。正因为这样,IDA反汇编一个大的程序会花非常长的时间。
整个调试分析漏洞的过程如下:首先在SOFTICE中下断点:Bpx ntdll!KiUserExceptionDispatcher,这个命令的意思就是程序运行到Ntdll.dll中的 KiUserExceptionDispatcher就停下来,交给SOFTICE进行处理。KiUserExceptionDispatcher这个函数是Windows的异常处理过程中的很重要的一个步骤,它负责派发用户层空间发生的所有异常到异常链中的异常处理函数地址,每当在用户层空间发生异常的时候就会调用这个函数。SOFTICE默认是没有加载Ntdll.dll的,所以我们可以通过DriverStudio套件中的一个叫做“Symbol Loader”的工具的Load EXPorts来加载这个DLL文件。
设好断点后,就用一个简单的程序向808端口发送“GET /AAAA[...4056 bytes] HTTP/1.0<回车><回车>”这样的超长字符串,其中包含4056个A的超长URL。发送之后SOFTICE会跳出来并停在KiUserExceptionDispatcher断点上,这时候用“dd (*(esp+4))+b8”命令来查看出错时的EIP地址,这是因为KiUserExceptionDispatcher的函数参数是一个指向保存异常发生时的寄存器的结构,该结构从偏移0x8c的位置开始保存寄存器值,其具体保存寄存器值如下:
0x08c Gs
0x090 Fs
0x094 Es
0x098 Ds
0x09c Edi
0x0a0 Esi
0x0a4 Ebx
0x0a8 Edx
0x0ac Ecx
0x0b0 Eax
0x0b4 Ebp
0x0b8 Eip
0x0bc Cs
0x0c0 EFlags
0x0c4 Esp
0x0c8 Ss
用“dd (*(esp+4))+b8”命令发现出现异常的EIP是0x41414141,我们知道0x41就是A的ASCII码,所以现在已经证实我们发送的超长字符串已经覆盖了某个函数的返回地址,导致该函数返回的时候返回到0x41414141这样的地址。此时退出SOFTICE就会弹出 “0x41414141指令引用0x41414141的内存。该内存不能read。”这样的应用程序错误对话框。
TIPS:“0x41414141指令引用0x41414141的内存。该内存不能read。”这种是典型的溢出提示,明确告诉我们溢出的地址和错误,对进一步分析溢出很有好处。
接下来,我们还需要知道究竟是什么地方导致函数返回地址被覆盖的。因此我们逐渐减少发送的字符串长度,发现当发送4039字节时就不会导致出错了。由于堆栈和返回地址被覆盖,我们无法看到导致溢出的地址到底是哪里,但是根据经验推测,这可能是一个由Strcpy、Strcat或Sprintf等函数导致的溢出。因此我们在这些函数下断点,然后再次发送4056字节的长URL命令。但是发现没有在这些函数中断下来,证明溢出过程并没有调用这些函数。
到了这里似乎没有好的办法能够确定溢出位置了,但是通过观察发生溢出后的堆栈内容,可以看到根据当时的堆栈中的连续大片的“AAAA……”和开头的时间和 “unknown Web”字符串等信息得知,当对堆栈中对这些地址写入内容的时候会导致覆盖返回地址,所以我们直接对堆栈地址设写断点,使用命令“bpmd 01977908 w”来对0x01977908的地址设一个写操作断点,这个地址是我们通过观察溢出发生后的ESP来得到的,因为这应该就是函数返回之后的ESP,即栈顶地址。但是这个地址是不固定的,可能不同的系统上这个地址也不一样,即使在同一个系统上,这个地址也随每次CCProxy进程的启动而不同。但是在同一个系统上,一般试几次就会使用同样的地址,所以我们只需要多试几次就肯定能够中断下来了。在设断点之前首先要用Addr ccproxy来进入CCProxy的进程地址空间。
经过仔细分析发现,当调用0040A410这个函数之前,会进行压栈操作,这个压栈恰好会把函数返回地址写入到堆栈01977908的位置,所以我们有理由相信就是调用这个0040A410这个函数的过程当中导致了溢出。在0040A410函数入口出设断点,然后发送溢出字符串,中断后按F12(即执行到函数返回),可以看到恰好返回到0x41414141的地址,这就印证了我们的推测,溢出确实发生在0040A410函数当中
然后我们用IDA来反汇编CCProxy.exe来看看0040A410函数到底进行了哪些操作。反汇编的代码如下:
text:0040A410 sub_40A410 proc near ; CODE XREF: sub_408A10+114 p
.text:0040A410 ; sub_408A10+262 p ...
.text:0040A410 mov eax, 280Ch
.text:0040A415 call __alloca_probe ;分配0x280c大小的缓冲区
.text:0040A41A mov eax, dWord_501D04
.text:0040A41F push ebp
.text:0040A420 mov ebp, [esp+2814h] ;这是要记录的内容,作为参数传入
可以看到这个函数调用“__alloca_probe”函数来进行缓冲区分配,它和普通函数调用Sub esp,xxx的方式来分配缓冲区有点不同,这是因为需要分配的缓冲区太大,直接减ESP可能会导致直接到达未分配的地址空间,所以需要用 “__alloca_probe“来分配这个大缓冲区。
我们再继续跟踪这个函数,发现到0040A607的指令时覆盖了函数的返回地址。代码如下:
.text:0040A5F1 lea ecx, [esp+414h]
.text:0040A5F8 push ebp
.text:0040A5F9 push ecx
.text:0040A5FA lea edx, [esp+1820h]
.text:0040A601 push offset aSS_0 ; "[%s] %s"
.text:0040A606 push edx
.text:0040A607 call _sprintf
在这个调用了“_sprintf“函数,按照“[日期] 内容”的格式存入0x1820大小的局部字符串缓冲区中,由于没有限制长度,所以导致了缓冲区溢出。再仔细查看发现“_sprintf”函数是在 CCProxy自己的代码段里面实现的,而没有调用“msvcrt.dll”导出的Sprintf函数,难怪我们前面在Sprintf函数下断点没有拦截到!
说句题外话,现在市场上有些防溢出软件产品是利用拦截系统的字符串拷贝函数然后回溯堆栈的方法,并宣称从根本上解决了系统缓冲区溢出的问题。这根本就是无稽之谈,因为很多溢出都是软件自己的代码实现导致溢出的,例如这个CCProxy溢出这样,根本就不调用任何系统函数,所以那种保护方法并不能从根本上解决溢出的问题。
在0040A410函数返回的时候,就会返回到被覆盖的地址去。代码如下:
.text:0040A700 add esp, 280Ch ;恢复堆栈
.text:0040A706 retn ;返回
到这里我们已经可以看出,0040A410这个函数其实是一个记录CCProxy日志的函数,它按照“[日期] 内容”的格式来记录日志,但是在构造日志字符串的时候没有限制长度,所以导致了缓冲区溢出。我们已经找到了导致溢出的位置,接下来就要看看如何利用这个漏洞了。
漏洞利用
要利用漏洞,就要找到覆盖返回地址的字符串偏移。我们可以通过发送AAAABBBBCCCCDDD……这样的组合字符串看到底是哪里覆盖了返回地址。经过一番分析,得知在4056的偏移处恰好覆盖了函数返回地址。所以我们这样来设计溢出字符串:
GET /AAAA…. shellcode jmp esp jmp back HTTP/1.0
其中“AAAA……”这样的字符串是为了在执行ShellCode之前腾出足够的空间,因为字母A所对应的CPU指令是INC ECX,即一条无实际作用的指令,相当于传统的NOP指令,但是它比NOP指令的好处在于它是可显示的字符,不易导致错误。而ShellCode是一个普通开端口的ShellCode,对其中的字符无任何特殊要求。Jmp esp是一个包含Jmp esp指令的地址,把它作为覆盖函数的返回地址,这样当函数返回的时候就会跳到这个地址去执行Jmp esp指令,因为此时的ESP恰好指向函数返回地址后面的地址,即随后的Jmp back指令。这个指令是一串跳转指令,用来跳过Jmp esp地址和ShellCcode,执行到前面的AAAA……,即NOP指令,以便最后执行到shellcode当中。这里我们要选用一个比较通用的 jmp esp地址,如果是系统DLL中的Jmp esp地址,可能会随系统打了不同的SP而有不同的地址,所以我们选择0x7ffa54cd这样的地址,它在同一类Windows系统(例如中文版 windows 2000)当中是固定的。Jmp <层>Back指令我们用这样的汇编指令:
mov ecx,25414141h ;把ECX设为0x25414141
shr ecx,14h ;把ECX右移0x14位,让ECX变为0x254
sub esp,ecx ;把ESP减去0x254
jmp esp ;跳到此时的ESP去
这样把ESP减去0x254就可以跳过前面的返回地址和ShellCode,这样一来就能够恰好跳到shellcode前面的NOP指令去执行了。
这样设计好溢出串,并编写程序保证jmp esp恰好覆盖返回地址,发送,果然溢出成功,并开出了shellcode指定的端口。这样exploit是不是就算是完成了呢?于是我到外网找了一个安装了CCProxy的肉鸡试了一下,可是没有成功。奇怪了,问题究竟出在哪里呢?
经过仔细分析发现,由于溢出是按照“[日期] 内容”的格式拷贝到字符串当中导致的,其中“内容”部分的格式是这样的:
客户端IP地址<空格>unknown<空格>Web<空格>HTTP请求
其中unknown和Web都是固定长度的字符串,HTTP请求是我们所能控制的字符串。但是这里存在一个问题,就是客户端IP地址是我们无法控制的字符串,它的长度是不固定的,这样一来,不同长度的客户端IP地址就会导致不同的溢出点,这样也就可能无法成功的溢出了。怎样解决这个问题呢?我们虽然无法控制客户端IP地址的字符串长度,但是我们可以得到这个字符串的长度,并且在我们所能控制的HTTP请求当中补齐这个长度,让我们发送的Jmp esp地址始终覆盖在函数返回地址上面。
而客户端IP地址可能根据不同网络结构而分为三种情况:
如果攻击者和攻击目标在同一个网段(即中间不经过网关),那么客户端IP地址就是攻击者主机的IP地址。
如果攻击者和攻击目标不在同一个网段上(即中间经过网关),但是攻击者的主机有真实的IP地址。那么客户端IP地址也是攻击者主机的IP地址。
如果攻击者和攻击目标不在同一个网段上(即中间经过网关),而且攻击者的主机没有真实的IP地址。例如攻击者在内网,而攻击目标主机在外网,那么客户端IP地址就是攻击者的网关的外部IP地址。
知道了这三种情况之后,我们就可以动手改进刚才的Exploit程序了。首先要取出本机的IP地址,可以通过调用Socket函数Gethostname ()先取得获取本机名,然后通过调用Gethostbyname()来得到本机IP地址的十六进制数值,最后利用Inet_ntoa()把这个数值转换为字符串。这样就解决了前两种情况的客户端IP地址,那么对于第三种本机和目标主机不在同一网段的情况又怎么办呢?用程序实现自动取网关外部IP地址好像稍微麻烦了点,我懒得写这样的程序了,干脆由用户自己来输入算了,怎么得到你的网关外部IP地址就不用我来教了吧,应该是不难的,有些网站的论坛甚至都会直接显示出你的IP地址,那就是你网关的IP地址。
TIPS:利用网关实现溢出攻击还是第一次看到具体的例子,它们的网络通讯是如何建立的?数据传输是怎么进行的?有兴趣的朋友可以考虑一下,尝试利用这个过程做点事情,相信你会有更都的发现。
漏洞攻击程序使用方法
我用前面提到的方法写了一个Exploit程序,按照“ccpx <目标IP> [端口]”这样的格式来使用,其中目标IP就是你要攻击的安装了CCProxy的机器的IP地址,端口是目标IP上的CCProxy的HTTP代理端口,这个端口默认是808,但是可能会更改。
然后程序会提示你“本主机IP是否与目标主机IP在同一个网段?”,因为前面提到原因,所以要采取两种不同的溢出字符串,如果你的机器和目标主机在同一个网段上,那你就选择Y,如果不在同一网段就选N。如果你选择了Nn,程序还会询问你“本主机有没有真实外网IP地址?”,也就是说你的机器是在内网还是外网,有没有真实IP地址,如果有就选Y,没有则选N。如果这次你又选择了N,那么程序会要求你输入本主机所属网关的外部IP地址,这个地址需要你自己想办法得到,要得到它也并不困难。输入之后就会成功发送溢出串,并自动连接ShellCode所开出的 24876端口,如果成功的话,就会出现系统权限的CMD.EXE命令行了。
如果你的机器和目标主机在同一个网段上面那就简单了,直接在第一步选Y就可以攻击成功。如果你的机器虽然和目标主机不在同一个网段上面,但是确有真实IP地址,那就在第二步选Y。
三种不同情况的具体攻击过程如下:
1.你的机器和目标主机在同一个网段上:
D:\Soft\ccx\ccpx\Debug>ccpx 192.168.0.103
本主机IP是否与目标主机IP在同一个网段?[y/n]y
[+] connecting to 192.168.0.103:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator> exit
exit
[-] Connection closed.
2.你的机器虽然和目标主机不在同一个网段上面,但是有真实IP地址: D:\Soft\ccx\ccpx\Debug>ccpx 202.xxx.xxx.xxx
本主机IP是否与目标主机IP在同一个网段?[y/n]n
本主机有没有真实外网IP地址? [y/n]y
[+] connecting to 202.xxx.xxx.xxx:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>exit
exit
[-] Connection closed.
3.你的机器在内网,而攻击目标主机在外网:
D:\Soft\ccx\ccpx\Debug>ccpx 210.xxx.xxx.xxx
本主机IP是否与目标主机IP在同一个网段?[y/n]n
本主机有没有真实外网IP地址? [y/n]n 三层交换技术 交换机与路由器密码恢复 交换机的选购 路由器设置专题 路由故障处理手册 数字化校园网解决方案
请输入本主机所属网关的外部IP地址: 202.xx.xx.xx ←在这里输入是你网关的外部IP地址
[+] connecting to 210.xxx.xxx.xxx:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>exit
exit
[-] Connection closed.
我这个程序里面的Jmp esp地址是中文版Windows 2000中的地址,在其他版本的操作系统中可能会有所不同,需要读者自己修改。
TIPS:由于这个ShellCode里面采用了直接开端口的方法,所以如果读者朋友的攻击目标上有防火墙的话,可能会导致攻击不成功。这种情况你需要更改isno程序中的ShellCode,把它替换成反向连接的ShellCode再重新编译一遍就行了。具体方法请关注最近几期“新手学溢出”栏目。
前面提到的这种根据不同网络情况来填充不同个数的A,从而把Jmp esp地址推到函数返回地址的方法是不是最好的方法呢?我觉得可能还有更好的方法,也许利用Sprintf函数的一些内部特性就可以不用这样而写出通用的利用程序了,但是我没时间去研究这个了,如果读者有兴趣的话可以自己研究一下,如果研究出来,这也算是一项很实用的通用Exploit技术。
后来研究发现CCProxy不仅仅HTTP代理存在溢出问题,Telnet代理等一些其他调用日志函数的端口也存在同样的问题,攻击方法类似,这里就不再详细分析了。另外,CCProxy 5.x以及以前的版本虽然也存在此漏洞,但是构造字符串的方法略有不同,因此这个Exploit程序无法成功的攻击CCProxy 5.x以及以前的版本,只能攻击CCProxy 6.0。读者可以自己研究一下老版本的CCProxy,并写出Exploit程序。
结束语
这个漏洞虽然不是Windows操作系统本身的漏洞,但是CCProxy在国内还算一个比较常用的软件,因此还是有一些利用价值的。不信你可以用Super Scan之类的端口扫描器扫描国内网段的TCP 808端口,很多时候都能找到安装了CCProxy的机器。
其实写这篇文章的目的并不是教大家去利用这个漏洞黑机器,而是告诉大家一个软件漏洞从发现到跟踪调试到最后写Exploit程序的过程是怎样的,也许你也能用这种方法找到一些其它的漏洞。
G. ccproxy代理服务器软件怎么用
第1步,执行“应用程序”/“系统设置”/“服务器设置”/“Samba”菜单命令,将弹出“Samba服务器配置”对话框。
第2步,在弹出的“Samba服务器配置”对话框中执行“首选项”/“服务器设置”命令,将弹出“服务器设置”对话框。在该对话框的“基本”选项卡中设置工具组名称,可与Windows操作系统工作组的名称相同,也可在“描述”文本框中填写计算机的描述语言,它将在网络中显示。
第3步,切换到“安全性”选项卡,在该选项卡中设置验证模式“共享”、加密口令为“否”、来宾账户“无来宾账户”,最后单击“确定”按钮完成服务器配置。
第4步,单击“Samba服务器配置”对话框中工具栏上“添加”按钮,将弹出“创建Samba共享”对话框,在“目录”文本框中输入需要共享的目录路径和目录名,在“共享名”文本框中输入网络中显示的名称,默认为共享目录名,也可在描述文本框中输入一些说明,在“基本权限”中可以选择用户是否有权限对共享目录进行写操作,若不需网络中的客户对共享的资源进行修改,则选择“只读”选项。
第5步,切换到“访问”选项卡,在该选项卡中选择“允许所有用户访问”选项,最后单击“确定”按钮完成服务器配置。
第6步,关闭“服务器配置”对话框,执行“应用程序”/“系统设置”/“服务器设置”/“服务”菜单命令,在该对话框的服务列表中选中“smb”,再单击工具栏中的“重启”按钮。
第7步,通过以上的配置,Samba服务器就配置完成了。在Windows操作系统中打开网上邻居,在网上邻居中即可看到Linux操作系统rho1的共享“cdrom”。
H. ccproxy使用权限问题
没见有这么功能。
CCPROXY 毕竟是小工具,不是想有什么功能就有什么功能的。