貉的工坊

宽带路由器域名过滤功能研究

2009-11-19 17:09:11

  现在几乎所有的宽带路由器都具备了基本的防火墙功能,有不少还具备域名过滤功能。以前基本没有研究过,也没把这个功能当回事儿。直到今天有客户想要用IP防火墙做网站访问的名单控制,于是才去看了看。
  说“研究”有点大了,其实也就是把这个功能试了试,明白了它的实现原理。首先怀疑是不是通过DNS包过滤来做的,因为在IP层或UDP层无法过滤出指定域名的DNS查询请求。于是配了个黑名单自己试了一下,果然DNS查询就不响应了。得不到DNS查询结果,IE自然就打不开页面。对于普通用户来说,是很简单也很实用的做法。
  那么,对后续的访问有没有做过滤呢?如果有的话,那么这就是一个严密但很复杂的状态防火墙,性能难以得到保证。我有点怀疑这种普通路由器是否会实现如此复杂的功能。再试一下,自己在Hosts文件中做了本地解析,结果这次IE就能顺利地打开页面了。看来路由器的域名过滤只堵入口,后面就不管了,果然只是入门级的产品啊。
  还有疑问:路由器自己的DNS是可以控制的,丢弃包不向上级DNS转发即可。但是否只要把DNS设成公网上公开的地址,就可以绕过限制了呢?答案是不可以,公网的DNS能解析其它地址,但对黑名单中的地址还是没有反馈。目前看来真相已经明了,这个功能是在IP防火墙的基础上实现的,对特定的DNS包进行解析并过滤即可,而并没有在自身的DNS功能上去实现。
  想想这样也比较合理,应该是各种实现方案中性价比最好的一种吧。

手机QQ视频与奇怪的JPG文件

2009-10-15 23:44:49

  手机QQ的2008版有视频功能了。一开始很是让我激动了一下子,不过只能看到电脑上,电脑上却看不到手机摄像头的画面。想想也对,手机摄像头一般都在背后,这样子没法用来视频聊天的。
  玩了两次也就不再玩了,——手机上看到的视频图像画质很差,而且还容易断线。再次提到它是因为突然发现My Pictures里面多了好多的小JPG文件。1K不到的大小,大约像“2009-10-15-05.jpg”这样的命名,密密麻麻排了有几百个之多。可无论用微软的图片浏览器,还是ACDSes,都看不到其中有什么图像。文件们的生成时间很接近,不同的流水号(从文件名上可以很容易看出来)之间只相隔1秒左右。拿UltraEdit打开,没有任何有价值的东西。
  解释成“病毒”是一种很幼稚的做法。第一次发现时我简单地删掉了事,第二次出现,我很自然地想到和QQ有关。因为它们突然出现在桌面上,数量也很多,而那个时间段我在做什么呢?我在用QQ和手机视频。
  去网上搜了搜,大概有两三个人也在问同样的问题,几乎没有什么像样的回答。仔细想了一下原理,大概是这么一回事:QQ在实现电脑和手机之间的视频时,是采用的每隔1秒在电脑上截一幅图,编码压缩后传给手机的方式来模拟实现的。在图片传送之前,大概找了个我“上次保存下载文件”的地方来临时存放这些“JPG”文件(很可能不是JPEG格式,或者至少没有头部),然后又不知道因为什么原因而竟然没有从这个暂存区删掉,所以就在桌面上爆发了(顺便提一句——我有把文件先下载到桌面的习惯)。目前初步怀疑是当手机没有收到的时候,就可能不会删(在等超时?)。
  腾讯也有很雷人的程序员啊!

给路由器升了级

2009-09-03 23:48:02

  当初有感于TP-Link在密码的Web页面显示上处理得比较好,所以买了它的TL-WR340G+。BestBuy淘的白壳便宜货,拿回家一看其实硬件版本是WR340G V5。不过看官网上WR340G V5和WR340G+ V1都用的同一款Firmware,看来基本一致吧,也就不追究了。
  应该说,这个虽然是入门级的货色,但比起家里早几年的有线路由器来说,软件上还是进步不少。至少从界面上看已经可以满足我的要求了。故一直以来少于折腾。去年升过一次级,也没有什么理由,兴之所至,刚好看到官网上有新的Firmware于是就升了。当时升到了3.8.1,升好以后一看多了两种特殊拨号模式,呵呵,中国电信/网通的贡献吧。
  这次也是,偶然看到论坛里两拨人为了这个路由器吵得不可开交。一拨人说好用,一拨人说老断线。我用着还行啊,只要保证了散热就不会有什么问题,——要是和ADSL Modem堆叠就一定会死机的。看看那些人吵的时候晒的固件版本居然还是3.6.X,于是灵机一动又跑去官网看了看,果然又有新升级了。

  新的Firmware有两个:一个是081225,一个是090730。直接看Release Note,前一个说是加了一些特殊拨号模式,嗯,无良的ISP。后一个呢,说是加入了自动选择信道,这个,大概和今晚贴在楼道门上的纸条有一定关系吧。
  偷懒直接升级后一个,等了老半天连HTTP上传都没完成,回头一看httpd应该是挂了,端口开着可GET根本没响应。网是还能上,无论LAN/WAN。想重启吧,怕搞坏设备,不重启吧,明显已经出问题了。最后一咬牙还是拔电重启,还好,系统没变,还是老样子。又试了几次,反正还是升级不成功。胆子也大了,索性升081225试试,圣诞节的版本不知道好不好。解压开一看,有个“中间版本”,心里基本上明白了。
  先升级中间版本到4.0.2,嗬,设置全清了不说,界面上只剩了一个升级,摆明华山一条路。继续升到081225对应的4.2.0版,终于恢复正常了。再继续一口气升完090730,终于到了4.3.2。
  看了看功能变化,特殊拨号模式多出了好几个:西安、河南、湖南等等地方都要用特殊拨号模式才行。再看看Wireless设置中的频段,有个自动选择。配上参数试了下,的确每次开机选择的频段都不一样了。这就是所谓的“跳频电台”吧?
  无意中还发现,该路由器内部OS很有可能是基于红帽系的Linux裁剪的。因为URL里面叫做SoftwareUpgradeRpm……

  由于以前的配置备份文件已经不能用了,因此恢复全靠手和记忆。其它都好说,唯独WAN的PPPoE拨号参数记不得了,真要命。更要命的是连办电信业务时的单子都不知道放哪里去了。还好网上邻居里面还有一个以前测连通性时配的PPPoE在,找回了用户名就没问题了。
  顺便,托门上纸条的福。把SSID广播关了的同时,还把口令字换成了生成器乱数生成的63位超强度字串,看哪个无良黑客能破?63位无序字串的话,纵使有500G的Hash Table也搞不定吧?明天就下战书去。

有惊无险两则

2009-08-29 00:26:28

  工作过程中,无意用IceSword发现两个值得怀疑的地方。以为90%中病毒了,折腾了大半天,最后总算是搞清楚了原委,也解除了警报。由于在Google的过程中并没有得到太多的帮助,因此在这里把过程和结论记录一下,供有关人员参考。

a开头的未知驱动

  一开始是通过查蓝屏原因时查到了某些奇怪的驱动。这些sys文件一般用a开头,8.3标准文件名,但是明显是随机生成的,每次重新启动都会换名字。用IceSword的“内核模块”能看见,路径在system32/drivers目录下,但是却没法找到对应的文件映像。估计是临时生成的驱动,加载之后便删除了,所以找不到。另外,在安全模式下没有看到这个驱动的加载。种种行为,像极了病毒。
  开始紧张起来,在Google上也搜到类似的询问,但一般没有明确的结论。有人用RootKit Unhooker把内存中的驱动内容dump了出来,据说两次dump的内容也是不一样的。线索貌似断了。
  后来发现还有类似sp??.sys这样的驱动也有这种行为模式,不过这个在Google上很快搜到了结论,——是Daemon Tools搞的鬼。既然如此,不知道那个a开头的未知驱动是不是也是这个原因?按道理,既然做了个sp??.sys,也就不应该另外再搞一套了。
  但说不定是它集成了第三方的RootKit呀?于是还是开了个虚拟机做了一下测试,4.1x版本的Daemon Tools Lite,一装就发现中奖了。果然是这个东东搞的鬼!装sptd之后sp??.sys就会出现了——这个是已知的,重启之后再安装Daemon Tools本身,也还好。然后再重启,a*.sys马上出现了。为了确认,当场进行卸载,——卸了还没等重启,a*.sys就没了。再装一次也不用重启就又出现了。于是铁证如山。
  这样看来,Daemon Tools的手脚是不怎么干净的。家里的4.03版貌似还不会,也不知道是4.1x的问题还是Lite的缘故。总之,先记下吧。
  之后发现其实Google上还是能搜到只言片语的。似乎有高人已经知道是Daemon Tools造成的,但内核论坛和百度知道里面反而没人解释。大概高人们的圈子比较小吧。

SSDT中NtConnectPort被Hook到Unknown?

  在看SSDT的时候,意外发现除了sptd干的好事之外,还有一个很奇怪的Hook。NtConnectPort被Hook到了名为Unknown的模块上。Unknown嘛,就是不知道了,很明显是被保护起来了。
  同样,在Google里面找不到多少信息,连老外的信息都没有什么有价值的回答,只好自己找。07年有人问过这个问题,有一种解答认为,dump出来也没有什么意义。因为这种Unknown的模块很可能就是人家开一片内存,把代码往里面一拷,然后Hook过去。除了去读反汇编代码,没有什么好办法。
  最后还是虚拟机解决——VMWare Inc.真是好公司!因为估计这种事情一般都是安全产品会去做,所以开了个虚拟机开始装各种安全软件。先试了360,没问题,就算装了保险箱也没问题。接下来是Symantec 10,Hook有了!明白了,是Symantec干的好事。
  唉,现在的黑软和毒,真是越来越难对付了。要动用到IceSword和RKU,这叫我以后怎么教别人用啊?

采集到病毒样本一个

2009-05-25 23:43:37

  莉莉店里的电脑,近日中了毒。毒很招摇,蓝色的横幅满屏幕乱跑,因此总体上来说这还是一个良性的病毒。
  良性归良性,杀起来却很烦人。应该说220KB的代码可以干非常多的坏事了,手动修复起来真是一点也不讨好。因此打算把样本带回家分析分析,写个专杀程序、修复工具什么的。谁知道打开一看发现是VB写的,而且坏事都是用VBS干的,没品啊没品,这样还招摇个P啊?想想当年的“小球”技术含量可比这个高多了。
  时间不早了,最近“做假”工作也比较忙,明天再看吧。先把病毒样本放上来供有兴趣的朋友下载。建议在虚拟机中测试,解压密码:virus,以防有人误运行。

和病毒的恩怨

2008-07-27 23:26:10

  我的电脑是有惊无险。第二天早上起来一看,除了我自己的IPAutoReporter包,就只有三个10jqka的包了——原来同花顺的软件也有点小猫腻的。然而,表妹的电脑中招了。

  昨天突然收到表妹的哀嚎,说正在看网页的时候突然中病毒了。但起因应该不是Web,现在根据情况看来,应该是来自于局域网内部的传播,因为我看到病毒的对抗代码中有很多针对反ARP攻击的内容。不过还是很奇怪,ARP攻击一般用于DoS,用于传播倒是少见。要是从网页上的话,有可能是ANI漏洞造成的网页挂马。但是又比较没有马的特征……,算了,谈正题吧。
  病毒会对抗不少主流的安全软件——主要是防病毒软件。瑞星、金山、赛门铁克……,包括一些专杀工具和系统工具也在列表之中。手段有两种,一是映像劫持,二是定时轮询后的Kill。映像劫持被最近的病毒用得挺多,土!俗!定时轮询做得也很烂,定时的周期过长,以至于我有时间让表妹用ProcessExplorer把进程列表给保存出来。大概是害怕CPU占用高到影响运行吧。从这个角度推断,这很可能是学生的作品,因为学生的电脑一般性能不高。
  进程列表出来了,结合超级兔子的诊断报告,病毒本体不幸被我逮到。一个名为wuauclt1.exe的文件,孤零零地呆在system32下。文件的Version Resources模拟得跟微软WinXP SP3的文件很像,可见就是最近几个月的作品,应该说作者还是下了一番苦心的。可惜文件大小他没有模拟,于是一眼被我瞧出。结合网上的资料,很顺利地就干掉了。

  说说主要特征吧:
  1.病毒本体wuauclt1.exe,位于system32下。硬盘每个逻辑盘上释放autorun.inf和MSDOS.EXE,作为土得掉渣但却挺有效的辅助潜伏手段。U盘似乎没有被感染,不知道是不是我表妹防护得当的缘故。
  2.wuauclt1.exe大小仅15KB左右,正常大小在150KB以上,所以仅此一项便可判定。MSDOS.EXE的大小和wuauclt1.exe相同,我没有核对MD5,估计是同一个文件。
  3.wuauclt1.exe在任务管理器中可见,可杀,无副进程交叉守护,未设置为系统进程或隐藏进程,无服务守护,无驱动保护文件。从自身防护这一点上来看,该病毒简直可以说是一无是处,也许作者在这方面的知识比较欠缺吧。将Explorer的显示隐藏文件的选项强行定在NOHIDDEN(屏蔽了SHOWALL),从而导致在设定文件夹选项时可能会看见一组RadioButton亮起了两盏灯。看来不暴露也是不可能的了。
  4.由wuauclt1.exe负责对抗常见的系统工具,如ProcessExplorer,甚至对包含相关内容的网页浏览器窗口都进行关闭。360等安装进程无法完成,估计也是这个原因。映像劫持禁用了某些杀毒软件的执行程序,我表妹的Symantec失效就是因为VPC和VPTRAY被劫持所致。
  5.启动项加在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run上面,由于不是常见的启动项放置位置,比较容易被忽视,建议使用工具进行查看。但启动项的名字很马虎地写了个test,其病毒本质暴露无疑,难道是作者大意了?
  6.不明确是否有Downloader特性,但根据事后的查杀结果来看应该是有。我准备拿虚拟机来研究研究。另外,病毒有释放npf.sys,版本还是4.0.0.755,估计在内网里面也有点动作。

  应该说,这个病毒还是不难杀除的,破坏性也不算大。只是由于其针对性的对抗手法,导致普通用户在杀毒软件被禁,继而发现连病毒资料都无法搜索之后,常常会手足无措。根据test这个启动项命名看来,该病毒的这个版本应该只是一个中间版本而已,后续的新变种估计很快就会出来。

Syndicate content