IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

你能相信自己的眼睛吗?

外刊IT评论 2011-08-22 12:18:20 累计浏览 7,511 次
本机暂存

内容如下:

几天前,一个客户向我们提交了一个病毒文件样品(SHA1: fbe71968d4c5399c2906b56d9feadf19a35beb97,检测认定为TrojanDropper:Win32/Vundo.L病毒)。这种特洛伊病毒在hosts文件里劫持“vk.com”和“vkontakte.ru”这两个域名(两个都是俄罗斯的社交网站),把它们重定向到92.38.209.252,但它们的实现方法却很独特。

要想劫持一个网站,把它重定向到自己指定的地址,黑客通常的做法是修改Windows系统里位于%SystemRoot%system32driversetc目录下的hosts文件。然而,当我们打开这个受感染的计算机上的hosts文件时,却没有发现任何的跟“vk.com”和“vkontakte.ru”相关的条目,就像你在下图中看到的一样。

原图已失效

但当我们显示出隐藏文件时,却看到了另外一个“hosts”文件。是个隐藏文件,你可以在下图中看见它们:

原图已失效

etc目录下有两个名称完全相同的文件,都是“hosts”!这怎么可能?

大家都知道,一个文件夹里不可能存在两个名称完全一样的文件。我们把这两个文件名拷贝到notepad里,存成Unicode文本文件,用十六进制文件编辑器打开,看到如下的结果(上面的是第一个“hosts”文件,下面的是第二个“host”文件):

原图已失效

在Unicode(UTF-16)中,0x006F和0x6F表示的是相同的ASCII字符,都是字符“o”。但Unicode中的0x043E是个什么字符呢?从Unicode字符表中我们能找到了它(范围:0400-04FF)。下图就是部分的字符表。

原图已失效

我们可以看到,Unicode 0x043E是一个西里尔字母(斯拉夫语言,如俄语和保加利亚语所用的字母),它跟英语字符“o”非常的相似。

所以,这隐藏的“hosts”事实上才是我们真正的hosts文件。当我们打开这个文件,发现在文件的末尾多了两行内容:

原图已失效

谜团解开了!

这并不是我们第一次发现黑客用Unicode字符来迷惑人们。在2010年8月,一个中国黑客揭示了一个使用Unicode控制字符来误导人们点击可执行文件的骗术。黑客使用Unicode控制字符0x202E(RLO)来反转文件名中的特定部分,使你在Windows中看到的文件名变成了另外一个样子。

例如,建一个叫做“picgpj.exe”的文件,就像下面这样:

原图已失效

文件名中的“gpj.exe”部分是特意设计的。当你把一个RLO字符放到文件名中“gpj.exe”部分之前后,这个文件名变成了下面这个样子:

原图已失效

黑客通常会给这样的文件加上一个图片图标。粗心的人就会把这个文件当成一个图片,轻率的双击打开它,实际上是运行了一个可执行文件。很显然,这种骗术对于Unicode敏感的程序是无效的,但如果用人眼识别,你很难发现问题。

我们能相信自己的眼睛吗?答案是…不能

[英文原文:Can we believe our eyes? ]

同分类推荐文章

  1. 绿盟科技《APT组织研究年鉴》(2026 版)正式发布 (2026-06-16 20:21:10)
  2. 【已复现】Linux内核Fragnesia权限提升漏洞(CVE-2026-46300) (2026-06-15 10:53:58)
  3. 企业文档安全最佳实践(二):给文档上“身份证”——手动标密与智能自动标密 (2026-06-12 17:18:33)

查看更多 安全 文章 →

建议继续学习

  1. 自建DNS以防止GFW干扰 (累计阅读 13,125)
  2. 彻底屏蔽优酷广告 (累计阅读 12,978)
  3. SSL证书的分类(按功能) (累计阅读 10,272)
  4. 2014年1月21日中国互联网DNS瘫痪事件原因分析 (累计阅读 8,445)
  5. WiFi 万能钥匙原理和危害探究 (累计阅读 7,624)
  6. 中国黑客传说:游走在黑暗中的精灵 (累计阅读 7,572)
  7. 一种抵御 DDoS 攻击的 IP 追踪技术 (累计阅读 7,517)
  8. DNS 隧道 (累计阅读 7,260)
  9. 防DDoS脚本 in python (累计阅读 6,766)
  10. 什么是DNS劫持和DNS污染? (累计阅读 6,272)