主题:如何用绿坝养肉鸡(一) -- 代码ABC
作为周末消遣,我准备认真玩玩这个热点软件。老实说之前的所有回帖我都是道听途说再加自己想象,所以可能比较主观。现在我们来点客观的东西。
环境准备:
虚拟机一个,操作系统Windows 2003
网络抓包软件一个——就用Windows 2003自带的Network Monitor。
下载,安装,重新启动。
由于软件版权中不允许我做逆向工程,不过我也不准备这么干。这次是消遣,不想做违法的事情,也不想做太多费脑子的事情。所以我戴上网络管理员的帽子,打开网络抓包工具看看这个LB有没有在网络上夹带私货。由于我用的是虚拟机所以也可以在外边抓包,因此可以监视在系统启动过程中LB有没有发送或接收一些可疑的数据。
看上去还不错,在系统启动的整个过程LB没发什么数据。然后我打开它的系统设置,进入软件更新,发现这个软件的自动更新并不是默认打开的(很奇怪的默认设置)。更新周期默认则设为10天。所以呢如果谁准备上这条船记得要打开自动更新,否则这个软件有什么补丁就会错过,搞不好就要出状态。(或者他们认为这个软件不会出什么状态,但是有关部门让他们更新关键词表怎么办呢?就算打开了10天也够互联网的人士们干出不少事情了。)
既然如此,我就主动点立即更新。第一次点击显示服务器繁忙。(生意这么好?)再点一次,好了(看来生意也不是很好嘛)。软件报告下载了200K+的数据,然后打开一个红色的对话框显示文件更新过程,从名字上判断更新的是关键词库。(估计这将会是更新最多的内容了)。
有更新就行了,本网管一声奸笑切换到抓包程序,LB和服务器的通信就一丝不挂地展现在本网管面前。(就是不够月宫上的东西诱惑啊)。
前两行数据就看得我直皱眉头,这两行数据显示LB使用DNS查询服务器www.zzjinhui.com的IP地址。有人说这不是废话吗,谁在通信前不要用DNS查一下地址的。对!但是LB使用的DNS是本机设置的DNS,这就是一个不起眼但是很有意思的漏洞。如果我是黑客,我可以先用一个木马或者一个页面脚本程序修改用户的DNS配置,将他们的DNS指向我自己的DNS,然后让用户在查询这个域名的时候将其指向我自己的服务器,这样当LB更新软件的时候就会到我这里来下载,于是我就会高高兴兴地将准备好的大餐送过去。Bingo!一台肉鸡就这样诞生了!这比伪装银行网站还简单,因为连页面也不需要做。一切都是在后台进行的,再仔细的用户也不会发现什么。再联想到LB和360之类的反流氓软件的冲突,就算我送上的大餐有什么问题让360发现了,用户也会认为是LB的事情,老老实实地点击“允许”。我相信LB的客服,如果有的话,肯定会说这是360的误报警。(多好的客服啊)
本网管去消遣点别的,回头继续
本帖一共被 3 帖 引用 (帖内工具实现)
就是“绿坝——花季护航”这个软件。不过我总觉得绿坝这个名字听起来很别扭。(绿霸?绿爸.....我还不习惯喊一个软件爸,何况还是绿色的)
网管不要在外面淘气太久,坑里有人滴
文件更新有做验证之类的吗?起码要做个文件签名吧。还有兴趣的可以看下这软件除了杀进程,还能不能做进程注入之类的工作,那可就乐子大了。
消遣过程中我不断被大正和金惠的开发人员雷到,搞得浑身发痒。
通过抓包分析很容易就看出其软件更新过程。
首先访问一个countuser.asp获取一个动态文件,这个文件很简单只包含一个数字标题(当前是1515),内容只有一句errorcode=5369,估计是他们用来判断更新什么的依据吧。在这里我被雷了好几下(后来也习惯了)。
被雷第一下,asp?天,这是什么时代的技术啊。按互联网日新月异的更新速度,这种技术不说是史前文明,至少也是满清民国的事情了。那么他们的开发工具基本可以确定只有一个Visual Studio 6.0(经典的版本,现在作为收藏正在我书架上的一个角落吸引灰尘)。接着我在这个服务器返回的文件中确定了他们就是用这个软件开发的(其实他们也只能用这个工具,后面还要提及),因为在返回的文件中赫然有一句<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">!很雷吧。
被雷第N下(没数了),从服务器返回的头部看到他们用的Web服务器是Apache 2.2.11并且使用的是Windows服务(32位的版本)。我纳闷,他们有架构师吗?Windows服务器装Apache用php不好,居然用微软已经抛弃的asp,用ASP的话还不如直接用Windows自带的IIS。
后来想想,有点明白了。他们用Visual Studio 6.0也是迫不得已,因为他们的程序必须用C++开发,这样如果使用微软的开发工具的话就只能用这个老掉牙的东西了(新版本的Visual Studio上开发非托管的C++不是他们能掌握的)。而Visual Studio 6.0在网站开发上也就只能开发asp。所以一事不烦二主,就这么决定了。按本网管监资深程序员的猜想,这个开发团队应该是一个技术非常保守的团队。基本上对新技术和新操作系统一窍不通,这点可以从LB在Vista和Win7上的拙劣表现看得出来。
看看访问的URL,我又被小小的雷了一下,在LB提交的数据中赫然出现本机的当前登录用户名,由于这些数据是明码传递,所以用户的登录名是很容易泄露的。不过这点比起后来发现的东西就小儿科了。
接下来LB还要访问一个文件,其路径是/softpatch/vNew.bmp,看起来是一个图片文件。但是里面只有5个字——3.173。这是软件的版本号。这个手法有点熟悉,我手下曾经的一个二流程序员使用过这种方式。问他为什么不返回一个正常页面呢?当时他告诉我,这样在客户端处理起来就比较方便,不用去分析一大堆Html标记。同样的那个手下也是用C++,他对处理字符串的工作非常不熟练。所以我判断LB的开发人员在C++上的功力也不会太深。
果然,稍稍试验一下就证实了我的想法。
待续(接下来是他们第一个Bug)
用的也是 VS 6.0 。当第一眼看见配给他们的那些华贵的笔记本的屏幕上出现的 IDE 竟是 VS 6.0 时;回想到这些天,本单位网络部门竟还一直用 asp 做网站;再想起,本单位到目前为止,唯一知道如何管理 Linux 服务器的好像只有本人;进一步的,想到本系统多少新人还在被建议学习 VB 6.0 。是可忍,孰不可忍……偶还是忍了吧,就当做什么也没有看见,什么都没有发生,偶什么都没有看见
国内计算机教学和计算机水平有多落后,可见一斑。
话说计算机这块,学校里当年学得好的都去市场上赚大钱了,留在学校教书的,尤其是在二三流学校教书的,多半是市场上淘汰剩下的。这些误人子弟的家伙,最大的短板就是自学能力以及持续地自学的毅力,所以让学生们学老古董VB什么的就是必然的了。
话说回来,真的要是能让学生们学明白更古董的《算法》《数据结构》《编译原理》什么的,绝对比学什么VB、VC之类的好得多。
如果能整明白MFC的架构也算是迈进高手的门槛了。另外整明白VB也不是一件容易的事,虽然它的名字里面有一个Basic
使用C++编写字符串处理程序最常见的一种错误就是缓冲区溢出,这个错误通常是因为程序员没有检查用户输入数据的长度引起的。程序在分析用户输入的时候需要找个地方先将这些输入存起来,这个存放的地方就是所谓的缓冲区。通常为了不浪费内存空间,分配缓冲区的长度都是有限的,如果用户输入的数据长度超过缓冲区长度,而程序员又不进行检查的话,那么拷贝到缓冲区的用户输入就会覆盖缓冲区以外的地方,这就叫缓冲区溢出。大多数情况下,这种错误会造成程序崩溃,在Windows中有时会弹出一个对话框,说xxxx地址不能为写,然后按OK,程序就直接退出了。但是一个故意设计的输入可以改变一些重要的内容,比如函数的返回地址,这样攻击者就可以改变程序执行内容,比如添加一个用户,植入一段木马。比较著名的一次缓冲区溢出安全是SQL Server 2000的蠕虫攻击,那次几乎一半的互联网都瘫痪了。(本人管的服务器在那次灾难中不受影响,但是网络被塞满了我也无可奈何)
跑了那么大段题,大家应该知道我含沙射影的意思了。没错,LB有缓冲区溢出的错误,而且是一种二流C++程序员犯的常见错误。验证方法很简单,打开IE,在地址栏输入一个超过1280字符的地址,不用管这个地址是否存在。其结果就是IE被突然关闭。然后你可以Windows管理工具中事件查看器中,应用程序事件里发现一个IE的Dr Watson事件,这表示IE崩溃了。
同样的事情不会发生在没有LB护航的系统中,联系LB需要监控IE,必然就是其IE注入程序导致的。
这是一个很可怕的漏洞,黑客可以事先设计好一个特殊的URL,然后引诱你去点击。比如写着“LB无法屏蔽的图片大全”之类的,您的小孩一点(只要一点就行了,不用三点)!Bingo,又一个肉鸡产生了。而且这个肉鸡每三分钟截一次屏。Oh My God。上帝也保佑不了你。为了让黑客们的工作更加方便,这个LB不得不把自己放在网络上供人下载。在一般水准的黑客眼里,这个东西和一个穿着睡意的美女一样脆弱。还有更可怕的东西是这帮二流程序员还抄了人家不少开源代码,也就是说这件睡衣还是透明带窟窿的。
MFC 的门朝哪开都是个问题……
玩到这里其实已经帮黑客们做了很多事情了(黑客说:屁话,就这些东西还用你说。我举手投降),下面纯消遣。我们来看看另一个雷人的东西。
我们的故事是从LB去下载更新开始,下载更新一共有三个步骤,上面才讲了两个。第三个步骤是下载一个更新文件。方法就是通过HTTP去金惠网站上下一个关键字更新文件,在抓包程序里面可以看到其地址是http://www.zzjinhui.com/softpatch/ kwupdate.dat。一切都很正常,只不过我觉得他们对这个文件进行加密简直就是多此一举。解密程序就在用户这边放着,还怕人家解不出来。这件事情就和我写的DVD加密故事一样愚蠢。链接出处
不过这种蠢事还是可以原谅的。不可原谅的是我抱着试试看的心态在浏览器上输入http://www.zzjinhui.com/softpatch/的时候,你猜我看到什么?
* Parent Directory
* HLJsetup.rar
* Image0.jpg
* SoftchnEt.rar
* Thumbs.db
* datapth.exe
* datapth06.exe
* datapth07.exe
* datapth07123.exe
* datapth07HLJ.exe
* filterdam.cab
* filterdam.cab1
* filterdamnew.cab
* kwupdate.dat
* kwupdate.exe
* kwupdate1.dat
* kwupdate3.dat
* kwupdate4.dat
* kwupdate5.dat
* kwupdate6.dat
* kwupdate7.dat
* newSoftchn.rar
* newSoftchn1.exe
* newSoftchn1.rar
* updateAll.exe
* vdata.bmp
* vdata1.bmp
* vnew.bmp
* vsdata.bmp
* 复件 vdata.bmp
WA KAO!这是他们的软件更新目录列表!
第一帖小河流水问他们的文件有没有校验,从这种管理水平来看我的判断是——没有!所以简单的DNS劫持或直接修改Hosts文件就可以利用其自动更新的功能完成肉鸡养殖。
不明白技术的人也许会奇怪我的反应如此激烈。这么说吧作为一个网站的管理员我们最忌讳的一件是就是让黑客们获得一些不必要的信息。网站的目录结构以及里面的文件内容就是其中之一,通常我们都会将网站目录结构设置为不可浏览。这样当用户输入上述URL的时候会显示文件找不到,而不会看到这个列表。
那么这个列表告诉我们什么呢?
第一:这个网站是由一群半桶水的管理员维护的。(好处是高手看不上他们,因为黑他们没有成就感)
第二:我们知道了软件更新的其他内容,并且可以先下载来进行分析。要注意其打包内容和实际存放在客户端的文件是有区别的,分析他们可以找出打包方式到时候就可以用来欺骗客户段。(另外,我们还可以猜一下,那张图片上的MM是谁呢?了解他们的XX取向)
第三:从这个目录凌乱的内容来看,其内部管理机制也是一团糟,也就是在攻击他们的时候不需要太担心他们的跟踪能力。
消遣大致到这结束了,结束前手痒搞了一下发现这个网站可以用SQL注入攻击(无语,估计请的都是刚毕业的)。不需要再对技术做什么分析了。下面的事情完全可以交给专业黑客完成,如果这个软件大规模推广的话,我认为这些预装了的机器基本上都逃不出肉鸡的下场。5000万的肉鸡啊,即使买回来都卸了,总有些地方是不能卸的,比如学校,搞不好某些政府机关。OMG。
这帖是一个技术帖,不过我总忍不住要塞点私货,如果版主有意见,我可以把这段删了。
其实,我感觉这件事我们再怎么吵估计用处都不大,事件的核心目的就是钱权的问题,倒不是ZF想封什么言论(有GFW在呢),当然顺便把这事做了也是一件了不起的政绩。但主要目的达到了剩下的也就可以顺应民意吧。至少你删了是不犯法的。这个东西让我想起几年前网监部门向我们推销关键字过滤设备的情景。4000万算什么,那边的水恐怕更深呢。
理论上是可以的.但需要它更新或者下载的服务器MAC.那采用MAC欺骗就可把装绿霸的机子就可以给挂上马.如果这样,就是卖流量也不少钱.