2 min read

东亚史,英国高利贷,及一个俄罗斯黑客的故事

本文译自 A Tale of East Asian History, British Loan Sharks, and a Russian Hacker,使用 CC license

几个星期前,早上 6:30,我醒来接了个电话。

「我想买你的域名 froginawell.net,500 美元,你怎么说?」

出于本能,我在掩饰我电话里回答的声音,不想透露我其实刚从深度睡眠中被电话惊醒。在这极度唐突的提议前,可能还有些介绍性的句子。但我迷迷糊糊,还没完全清醒。

井底之蛙是我早在 2004 年创建的一个网站,用来放一些学术博客,内容是关于东亚历史的,由教授和研究生们撰写。在我完成博士论文后,我就很少在上面发表什么了,不过我一些了不起的共事者们一直保持活跃。因为我们有大量的文章,主题广泛,函括东亚历史的很多内容,该网站吸引了相当数目的流量,特别是来自 Google 的,搜索「中国古代的性(ancient Chinese sex)」,又或者,很明显的,「满洲缠足(Manchu foot binding)」。我想这些访客会发现,这些链接还不够给他们的需求搔痒(笑)。我们的网站一直都没有广告,不管怎样,我还打算继续保持这种方式。

我拒绝了这位绅士,然后回去接着睡觉。但等我去到办公室,我看见一封从他那儿发来的电子邮件,且让我们叫他西蒙。他做了同样的直接报价,是在他打电话给我前几分钟发的。我回复了他的电子邮件,并解释说我不打算出售域名。

一个星期后,西蒙又发了封邮件。这一次,他想租我的域名。

看来有人黑掉你的网站?又或者你自己换了你的主页标题??不管怎么说,我要的关键词短语,你的排名已经上升了,所以我真的想租你的主页。我会增加我的报价,每天 150 美元。

每天 150 美元?关键词短语?井底之蛙能给他提供什么关键词短语啊?他的电子邮件地址透露,他在一家英国太阳能公司工作。该网站看起来是合法的,在一个「合理的价格」上,为家庭提供太阳能安装。我徒劳地搜寻任何线索,想弄明白,为什么他会想要域 froginawell.net。我在我们网站上搜索任何有关太阳能能量或能源的东西。没有结果。我不想问他,因为我不想给他希望。

至于黑客攻击,这事以前发生过。有时候,我升级我们 WordPress 的速度有点慢,于是有过两次,我们的博客都被所谓的 “pharma hack” 攻击。这种攻击很阴险,会让你的网站看起来跟以前一样,但是 Google 搜索进入你的网站时,它就换掉所有博客文章的标题,化身为你可以想像的任何一种在线药物订购网站的广告。众所周知,这很难追查,因为黑客越来越擅长隐藏他们的代码,或者在 WordPress 深层次目录结构中,又或者在你无法察觉的数据库角落里。

然而,这一次,看起来并没有发生 pharma hack。只是,我 froginawell.net 域名的主页被改了,从一个简单的 HTML 文件改成一个 PHP 文件,这就允许页面执行代码。该文件的顶部添加了一行新代码,包含一个命令、一堆乱码。当时,我并没有时间深究。我正打算完成我博士论文的倒数第二章。于是我删除了有问题的文本,把我的主页改回 HTML,更改了我的帐户密码,重新安装中国博客(这在之前曾经被黑客入侵过),并发送一封电子邮件向我的主机商寻求帮助,希望能处理这起安全攻击。我的主机商回答说,如果我付给他们我现在所付的近两倍的钞票,添加一个新的安全服务,他们会很乐于帮忙的。否则,我得自己干了。

我只能是根据我所认为的被黑文件的位置,做了个不太完整的清理。之后我回复西蒙,「这个报价很慷慨,但我还是不需要。我已经决定保持我们的项目不带任何广告。」

西蒙于同一天再次回信。他仍然在 Google 上看到我被黑页面的标题。我到 Google 搜索井底之蛙,却看不出他到底讲的是什么,我猜想他看的应该是一些旧文章,在它们被黑时 Google 缓存了页面。西蒙写道:

你知不知道为什么人们突然要攻击你?因为您的网站目前的盈利潜力。

如果您愿意开出价格,我将不胜感激,因为每个人都有一个价,我不希望你我错过这个机会。如果我们之间能达成一项协议,我可以给个更高的每日费用。你觉得每天 250 美元怎样。如果钱不是你想要的,你可以每天捐出 250 美元给慈善机构。

每天 250 美元?这真是彻头彻尾的神经错乱了,实在太可疑了。当时是阵亡将士纪念日,周末时间,我正在旅行。如果邀约是真的,并且我愿意把井底之蛙首页换成某些人的广告的话,对我来说,处理起来也很痛苦,而且这一切都太可疑了。我拒绝了他,并告诉他,这件事没什么好谈,任何价格都不能让我在井底之蛙上放广告。

西蒙又回了我,这是最后一次。

作为一个商人,我总是相信,天下没有买不到的东西,只有谈不拢的价格,尤其是在谈及商业内容时。不过,我尊重你的决定,这也将是最后一次发消息给你。我再最后出一个价,如果你还是决定不想要,我就再也不烦你了。每天 500 美元,提前支付。一年差不多 20 万美金。

显然,他对我的拒绝感到困惑,不明白为什么我完全不像是一个理性经济人。我理解他的颓然。大概,他不曾遇见许多​​脆脆的刚从大学毕业的这类学生。我又回了他一轮,再次拒绝他的邀约,不过也希望他在他的生意上有好运气,在当时那个点,我仍然认为他是在一个太阳能电力公司工作。

我回到家的时候,下定决心要解决两个谜团:

  1. 西蒙在 Google 查找井底之蛙网站时,看到的还是被黑状态的是什么?
  2. 究竟为什么,西蒙会先是出 500 美元购买我的域名,到最后想要每天 500 美元租我的站?

我发现的第一件事情是,我的网站仍有问题。黑客们再次修改我的主页,把它变成一个 php 文件,并在顶部添加了一个命令,以及一堆乱七八糟的东西。他们的后门并没有如我所预料地放在中国博客里,而是在其他地方。我必须对黑客行为做一个逆向工程。

剖析 Hack

黑客添加到我的主页顶部的命令是 “pr​​eg_replace” 函数,在 PHP 中用于从某些文本中搜索一个词组,并用其他一些文字替代。

preg_replace("[what you are searching for]","[what you wish to replace it with]","[the text to search]")

在这个案例里,那些命令对我来讲显得非常晦涩,因为根本都是一堆乱码,如 ” \x65\166\x61\154 “。这其实只是 ASCII 码文本以十进制和十六进制两个不同格式进行了混合。PHP 知道不要把它们当普通数字对待,因为有转义 “\” 字符,后面跟的 x 表示十六进制数字。在这个图中,你可以找到它们的含义。例如,上面的文字,以 \ X65 开头的,这是十六进制表示的 “e”,然后是十进制表示的 “v”,接着又换回十六进制,这次是 “a”,最后仍是十进制,”l”,合起来就是 “eval”。

对于计算机来说,这很明了,但对我这样的人类来说,要弄明白发生什么却很困难。我必须先将所有的乱七八糟的字符转换成常规字符。我使用 Python 来转换。在我的 Mac 上,打开终端,键入 python,然后用 python 的 print 命令来输出那一段乱码 ASCII 块:

print("[put your gibberish here]")

这生成一个命令,说的是:

Look for: |(.*)|ei
Replace it with: eval('$kgv=89483;'.base64_decode(implode("\n",file(base64_decode("\1")))));$kgv=89483;
In the text:         L2hvbWUvZnJvZ2kyL3B1YmxpY19odG1sL2tvcmVhL3dwLWluY2x1ZGVzL2pzL2Nyb3AvbG9nLy4lODI4RSUwMDEzJUI4RjMlQkMxQiVCMjJCJTRGNTc=

现在,我总算找到感觉了。但是,这末尾的又是什么全新风味的杂乱代码?该文本编码使用 Base64 编码方法进行了编码。如果你有一个 Base64 编码的文本文件,你可以在 Mac OS X 或 Linux 命令行里通过下述命令解码:

base64 -i encoded-text.txt -o outputed-decoded.txt

您也可以使用 Python,PHP,Ruby 等解码 base64,又或者在线的解码器。通过解码,得到了文件地址,该文件中包含更多要执行的代码:

[…]public_html/korea/wp-includes/js/crop/log/.%828E%0013%B8F3%BC1B%B22B%4F57

但不只是这一个文件。那里有许多文件,里面包含着可替换的主页文本。我主页里的代码,通过前面一个命令,运行了其他隐藏在我的韩国博客一个深层目录的命令。虽然这些文件名和它们的内容使用一系列方法编码,比如 base64 编码,MD5 加密,字符转换成数字,任意值重复,还包括许多以 JSON 格式存储的内容。我还是耐心地找出所有细节,不过它似乎只针对 Google 提供不一样的主页,并且只在某些情况下。

其中一个被黑的文件会生成一个英国 payday loan 诈骗网站 speedypaydayloan.co.uk,它连接到一个假的伦敦公司 “D and D Marketing”,可以在网上看到很多地方讨论它的诈骗行为。换句话说,英国,并且只有英国的用户在访问 Google、查找 “payday loans” 时,井底之蛙上一个被狡猾入侵过的主页就将他们定向到一个诈骗网站,又或重定向到我网站上一个被编码过的巨大列表中的任意其他网站。

我很快就发现,不仅仅这些韩国博客下的文件可疑。它们只是黑客用来生成他们所期望有的具体结果的文件。经过对大量隐蔽代码的更多解码,我终于找到输送系统本身。要部署这个特殊的组合 – 重定向和用来重定向的隐藏页,攻击者使用一个黑客梦想套装:被称为 “WSO 2.5“ 的东西。一旦他们发现我域名上旧版本 WordPress 的安全问题,他们就可以把 WSO 套件安装到隐蔽位置,这个位置有别于上述的攻击。虽然我不知道这个 Youtube 视频(没有声音)能保留多久,你可以在这里看到黑客是怎样使用 WSO 的。真正用来安装控制我服务器的后门套件 PHP 代码可以在 pastebin 这里找到。

点击放大图片

西蒙和他的朋友们

那么,这一切跟我们的朋友西蒙及他的太阳能电力公司是怎么联系上的? Google 网站管理员工具显示,井底之蛙网站目前最热门查询词是 “payday loans”,这排名大约是在五月初上去的,有几十万的展示数,也就是那时<网站被黑掉。有什么在驱动被黑的网站排名上升。

西蒙在他给我的一封电子邮件中写道,他涉足很多行业,这表明,他不仅仅只为一个太阳能电力公司工作。搞清楚我那被黑客攻击的网站是什么情况后,我搜索了他的全名及 “loans uk”,很快就发现,他(还经常是他的地址)注册了一系列的域名,其中至少有一个域名已经被暂停。这包括一个 payday loan 网站,一个移动电话交易网站,一个家庭贷款经纪人站,以及一些其他类型的看起来已经不存在的金融机构网站,还有另一家公司,致力于可替代能源。我猜测,西蒙的关键短语只能是 “payday loans”了,他看到了一个赚快钱的方式,就是通过新被攻陷的井底之蛙网站来宣传它的财务欺诈网站。他真的是认真的要付出那个数目吗?他是如何计划让这一切成功的?他知道这个 Google 排名可能只是一个被深度入侵的网站一时的排名吗?

西蒙的 500 美元报价并不是最后。我删除了所有有问题的文件,安装额外的安全保护,更改密码,并开始监视我的服务器原始访问文件。我要求谷歌网站管理员工具重新审查我的网站,希望能帮我摆脱英国的 payday loan 业务。然而,邀约继续来。

卢克,西蒙的竞争对手之一,给我写了一封十分礼貌的电子邮件,提供了一个更是随时可得的邀约,也顺便证实了我倒腾文件时发现的东西:

您可能不知道,但您的网站已经被一个俄罗斯互联网营销分支机构攻陷,它们试图通过搜索关键词 “payday loans” 从英国赚钱……粗略估计,这个链接当前的位置可以让黑客一周内赚入 10,000 美金。我们是这个黑客在英国地区的大型竞争对手,当然我们不屑他的这种行为,我们想阻止他这样获利,我们帮你换掉他插入的这条链接,换上我们的,我们每期支付佣金给您…

这是“聪明的东西”,他解释说,“但不太合法。”我礼貌地拒绝了他。

点击放大图片

我刚清理完我的服务器没多久,它就开始遭遇 DOS 攻击(拒绝服务攻击)。井底之蛙的三个博客处在火力中,来自世界各地的一大打僵尸机器,短短 10 分钟内,试图读取每个博客主页超 48,000 次。我的主机商立即暂停我的帐户,因为我给他们的服务器造成不必要的压力。他们建议我花 10 倍左右我现在的主机价格买个托管专用服务器。一年前,因为我的博客受到 DOS 攻击 – 其中大部分来自中国,我才把它们移到现在这个主机商里。之前的主机商是礼貌地拒绝做任何事情。现在的主机商总算客气,在监测一天的情况后恢复了我的站点,但没有什么能够阻拦一个攻击者租来几分钟的僵尸机器来攻击网站。这种无助感真是太可怕了,真的只能用很多钱来反击 – 是的,钱 – 我不想通过 payday loan 业务赚的钱。为了给这杂耍加点料,在网站被暂停后的几个小时内,两个不同的安全公司与我联系,号称保证能抵抗 DOS 攻击,并问我是否愿意跟他们讨论签署他们那昂贵的服务。他们怎么就知道我被 DOS 攻击了,而不是其他一些原因被暂停?

几天后,又一个 payday loan 操作者,且让我们叫他格兰特,通过 Twitter 与我联系。他解释说,“俄罗斯人”应该庆幸 – 他相信是俄罗斯人黑入我的站,因为他的地理位置而不会受到任何罪罚,不过他建议,我们可以“利用这种情况”,把我站点上的链接分一半给他。

我会每天付款给你,根据 Paypal 或银行转账赚到的数目。我说个潜在利润的数目,过去我排第 1 位时,我可以每天正常地收入 15,000 英镑。我看你的网站排名现在会上下波动,所以我不确定到底它能赚多少…不过我想 4 位数一天应该没问题,不过没尝试,我不能肯定。

我拒绝了他,并解释说,我已经清除了攻击。只是反馈到 Google 里还需要些时间。然而,在我向他请求更多他所知道的关于黑客的更多信息后,格兰特很热心地给我发一个长长的清单,都是些被攻击我网站的黑客攻陷的网站。不过这些其他网站在这个游戏中唯一的作用是使用锚文本 “payday loans” 反向链接到井底之蛙,以期迅速提高我网站排名。卢克曾经表示,这种方法之所以有效,是因为井底之蛙网站在 Google 中已经是一个相对“受信任”的站点。格兰特(他说他是直接从沙滩上给我电子邮件,我想对于每天从这种事情上赚入成千上万英镑的人来说沙滩确实是个好地方)还提供给我半打其他网站,它们现在正受到同样的隐藏页和重定向攻击。他推测,我受到的 DOS 攻击是来自他的其他竞争对手,他们不是试图花钱买我的合作,而是投入一些微不足道的成本,来简单地把我的网站从互联网上搞瘫掉。

谢天谢地,我的考验将很快结束,我只需密切关注我的服务器。感谢格兰特,卢克和西蒙,虽然,他们的俄罗斯复仇女神仍在继续他的工作。最后一个从格兰特发来的信息,

现在,Google 英国上排第一的是一家美国电台,这下我又有得忙了,真是 lol。

报告问题 修订

如果你有自建 https 代理的需求,欢迎尝试 Phantom,一键搭建,方便快捷。查看 demo