本书标签: 现代 

第4章

暗网追凶

审讯室的灯管有一根坏了。剩下的三根在头顶嗡嗡响,照得墙上的白瓷砖泛出一层青灰色。桌子是铁的,固定在地上。椅子也是。

面包车司机姓马。马德胜。三十七岁。无业。有盗窃前科。

沈渡走进去的时候,马德胜正把铐着的手放在桌上,指节因为用力而发白。不是害怕。是冷。

审讯室的空调坏了三天了。制冷打到最低,不出风。

沈渡拉开对面的椅子坐下。椅脚和地面摩擦的声响很短,像刀子划了一下玻璃。

方旭站在玻璃外面。审讯室的监控是单向的——里面看不到外面。方旭能看到沈渡,也能看到马德胜。

他在笔记本上记了一行字:"沈队坐下来了。嫌疑人的手指在抖。"

然后删掉。改成了:"沈队坐下。嫌疑人看他的鞋。"

沈渡的鞋是黑色的。警用皮鞋。鞋底很薄。走路没声音。

"马德胜。"

马德胜抬起眼。他的眼眶很浅,眼球有点凸,看人的时候有一种被水泡过的浑浊感。

"我知道的都说了。"声音也浑。嗓子被烟熏了十几年的那种。"伪基站是我买的。手机是我装的。钱是我骗的。你们抓到我,我认。"

沈渡没接话。

他把一张纸从文件夹里抽出来,铺在桌上。纸是打印出来的银行流水。十七万从老人的账户转出,经过六个中间账户,最后落到了一个海外账户。

"你骗了十七万。"

"是。"

"你拿到多少。"

马德胜没说话。

沈渡用笔尖点了一下流水的最底下一行。那个海外账户。"钱到这里。不在你手里。"

马德胜的喉结滚了一下。

"你只是个跑腿的。"沈渡说。语调没有任何变化,像在念一段他已经知道答案的题目。"

有人在背后帮你操控僵尸网络。有人在背后帮你洗钱。有人在背后给你提供受害者的个人信息。"他顿了一下。"你负责打电话。钱不是你分的。是他们分的。"

安静。

灯管的电流声忽然变大了一秒。嗡嗡地,像一只虫飞进了耳朵。

"你拿几成。"沈渡又问了一遍。

马德胜的手在桌面上动了一下。铐子撞到铁桌,发出一声很脆的响。

"……三成。"

三成。十七万里,他拿到五万出头。剩下的被上游抽走了三分之二。

沈渡把笔放下。

"上游是谁。"

"我不知道。我从来没见过。加我的是一个QQ号——已经注销了。"

"什么时候加的。"

"三个月前。"

"谁介绍你去的。"

马德胜不说话了。他的眼皮跳了一下。很细微,但方旭在玻璃后面看见了。他的笔在纸上停住了。三秒。没写。

审讯室里,沈渡没追问。

他从文件夹里抽出第二张纸。这次不是银行流水。是一张暗网界面的截图。黑色背景,白色文字,最上方一行标题——"电信诈骗全流程套餐 | 入门级 | 含伪基站+僵尸网络+洗钱通道+受害者数据包"

套餐价格:八千元。

已售:四十七份。

马德胜盯着那张截图。他的嘴唇动了一下。不是说话。是用舌头舔了一下干裂的下唇。

"你是第四十八个。"沈渡说。

"你花了八千块买了一套工具。三成利润。三个月你打了大概两千通电话。成了十七单。总共到手不到小九万。"

笔尖在纸上轻轻点了一下。

"平均下来,你一天赚一百块。他们一天什么都不用做,抽成是你的两倍。"

安静。

马德胜的手指在桌面上蜷了起来。指甲刮到铁皮,发出一声很轻的吱嘎——和纪寻在键盘边上蜷手指的习惯一模一样。但不完全一样。一个是收拢。一个是握紧。

"所以——"马德胜的声音哑了。"你们抓我有什么用。我后面的人你抓不到。你连他是谁都不知道。"

沈渡把两张纸收起来。动作不慢。也不快。

"你错了。"

他站起来。椅子往后推了一步。鞋跟在水泥地上磕了一下。

"我知道他是谁。"

马德胜的眼皮又跳了一下。

"他的名字叫——"沈渡把文件夹夹在腋下,低头看着铁桌对面那张被冷水泡过的脸。"拍卖师。"

审讯室的玻璃门在身后合上。

方旭跟上来。

"沈队——你真知道拍卖师是谁?"

"不知道。"

"那你刚才——"

"诈他的。"

方旭愣了一下。然后闭上嘴。他决定从今以后尽量不向沈渡提问。不。是绝对不。

纪寻在办公室里。

窗户关上了。窗帘被拉了一半——光照不到屏幕的角度。三台显示器全亮着。左边是支队内网,中间是缅甸节点的反向追踪界面,右边是一个方旭没见过的窗口——黑色背景,绿色字符,界面风格像八十年代的终端,但刷新速度比他见过的任何监控工具都快。

"那是什么。"

纪寻没抬头。"我自己写的。追踪恶意代码的基因序列。"

"……基因。"

"代码和人一样。"纪寻的手指在键盘上移动,不快,但每个动作之间的间隔几乎相等。"同一个程序员写的代码有固定习惯。变量命名方式。内存分配策略。错误处理模式。这些习惯改不了,像笔迹。"

他在一个输入框里粘贴了一串字符。回车。屏幕上弹出一行比对结果。

相似度:97.3%。

"昨晚入侵瀚海数据库的代码——和今天操控伪基站的僵尸网络管理模块——是同一个人的手。"

"拍卖师。"

纪寻抬起头。看了沈渡一眼。

"不完全是。"

"什么意思。"

"拍卖师不是一个人。"纪寻把屏幕往沈渡的方向转了一下。"你看这里。这批恶意代码的基因序列被分成了三层。底层是核心攻击框架——风格A。中间层是流量伪装模块——风格A,同一个人。但最外面的那一层——"

他的手指点在屏幕上。

"是另一个人的风格。风格B。"

"两个人写的同一套工具。"

"对。一个负责造刀。一个负责雕刀柄。两套风格在同一段代码里各自占了一半。"

纪寻把烟叼进嘴里。没点。他的嘴唇有点干——在办公室里连续盯了三个小时的屏幕,一口水都没喝。桌上的咖啡还是凉的。

"这说明一个很奇怪的问题。"

沈渡等着。

"写核心框架的人有一个习惯——每次写完一个函数,最后一行注释里会留一个多出来的分号。昨晚瀚海数据库的入侵残留里,这个特征完整保留。今天僵尸网络的管理模块里,这个特征也在。"

分号。又是那个分号。

"但最外层——刀柄——那些代码里没有分号。一个都没有。"

他把烟从嘴里拿下来。

"所以拍卖行有两层运作。核心攻击工具是同一个人在写。"他看了一眼沈渡。"你猜是谁。"

"那个死刑已经执行的人。"

"对。"纪寻的声音很淡,像在说今天天气。"但他死了三年了。你们警方有自己的逻辑——死人不能敲键盘。所以要么——"

"他没死。"

"——要么有人在替他敲。保存了他的代码库,拆解他的框架,重组他的工具,用他的指纹杀人。"

安静。

方旭站在门口,手里的笔记本差点掉地上。他飞快地接住了,但纸页的声响还是大了。

两个人同时回头看他。

方旭把笔记本抱在胸前。像一个盾牌。

"我、我就是想说——"他深吸一口气。"刚才审讯室的监控记录,我整理完了。马德胜交代的他和上游的联系方式——除了那个QQ号之外,还有一个加密货币收款地址。"

"门罗币。"

"对。和缅甸网吧那个节点用的同一种币。"

方旭停了一下。看着自己笔记本上的字。

"我扫描了那个钱包地址的交易记录。过去三个月,这个钱包接收了四十六笔转账——每一笔金额都差不多,八千元整。"

四十六笔。加上马德胜是第四十七笔。

"他把同样的套餐卖了四十七次。"纪寻说。

"总共收了……三十七万六千。"方旭算完,自己先沉默了两秒。"只是入门级套餐。他还有更高等级的——企业数据、内部交易信息、舆情操控。起拍价动辄几十万——"

"他不缺钱。"沈渡说。

纪寻看着他。

"他把入门套餐定价八千——低到让任何一个街头混混都买得起。他不是在卖东西。他在建一个生态。"

停顿。

"他想证明一件事——任何人都可以成为罪犯。只要给你一个电话号码、一个银行账户和一段伪基站代码。"

纪寻靠在椅背上。天花板上的灯管在他脸上投下了一道横着的灰影。

"他不是要当一个商人。"他说。"他在做一个实验。"

窗外的天空暗下来了。津海的云从海面上推过来,一层压着一层,把下午四点的光压成了傍晚六点的暗度。屏住呼吸的那种——雨要下来了,但还没下。

方旭的电话响了。

他接起来。林晚的声音。"经侦那边送过来一份东西。受害者家里的固定电话在案发前一小时接到了一个异常来电。对方没说话,挂了。经侦追了一下来电号码——是空号。但信号来源不是伪基站。"

"那是什么。"

"VoIP。"林晚顿了一下。"网络电话。经侦的技术员追不到源头。他们想请纪顾问看一眼。"

方旭把电话递给纪寻。

纪寻没接。他已经开始敲键盘了。

"电话号码。"

方旭把林晚报给他的数字念了一遍。一个八位数的座机。本地号码。纪寻输入到追踪系统里。命令行开始滚动。反向溯源。第一跳是本地。第二跳是省外。第三跳——跳出了国境。

然后第四跳。

屏幕上弹出一行IP地址。纪寻的手指停了。

他盯着那个IP看了五秒。

然后转头。看向沈渡。

"这个IP。"

"怎么了。"

"和我昨天晚上扫描的那个境外服务器,是同一个物理地址。"

沈渡的身体在椅子上直了起来。动作不大。但方旭看见他的肩胛骨在警服下面绷紧了一瞬。

"你是说——"

"昨晚我扫描的服务器是拍卖行的暗网入口。今天这个打给受害者的VoIP电话,也是从同一个服务器发出的。"

安静。

灯管在头顶嗡嗡响。外面开始下雨。雨点打在三楼的窗户上,声音很细,像沙子从高处往下漏。

纪寻把烟从嘴里拿下来。

"不是巧合。"

"——当然不是。"沈渡说。

"拍卖行不只是卖套餐。它还——"纪寻停了一秒。"——监控买家。"

方旭的笔记本从手里滑了一下。他接住了。第三次。

"监控什么。"

纪寻没说话。沈渡替他答了。

"成功率。"

两个人的声音一前一后。像同一个句子被分到了两张嘴里。

"他们给马德胜卖了伪基站套餐——"沈渡的语速比平时快了一点,每一个字都带着克制过的紧迫感——"然后他们自己在同一个服务器上拨打受害者的电话,测试马德胜的诈骗成功率。如果马德胜失败了——如果那十七万没到账——他们可能会把马德胜的个人信息挂上拍卖行。不成功的买家,会变成下一批商品。"

方旭背脊发凉。

他想起刚才马德胜在审讯室里那张被冷水泡过的脸。马德胜以为自己是个犯罪分子,其实他只是别人实验里的一只白鼠。

"方旭。"沈渡的声音恢复了审讯室里的那种平淡。"把马德胜的账户冻结了。"

"已经在做了。"

"同时查一下四十六个其他买家的状态。看有没有人被拍卖行反噬的。"

方旭打开笔记本。一分钟。两分钟。他的表情从紧变成更紧。

"沈队——四十六个买家里面,有九个的银行账户在过去三个月内有异常冻结记录。冻结原因都是——涉案。"

安静。

"还有两个。"方旭的声音低了下去。"失踪了。"

窗外的雨忽然大了起来。雨点从细沙变成了豆粒,密集地砸在玻璃上。风把窗帘吹起来,纪寻伸手按住。窗帘是凉的,被风浸了太久。

"我们现在需要做两件事。"

沈渡站起来。椅子退后。他在不大的办公室里走了两步,停在三台显示器前面。左边是缅甸网吧。中间是恶意代码基因序列。右边是VoIP的追踪路径——一路回到同一台服务器。

三条线。一个源头。

"第一。查出写核心框架的那个人——风格A。不管他三年前注射的是药还是生理盐水——我要他的真实下落。如果他死了,我要知道他死的证据。如果他活着,我要知道谁在替他敲键盘。"

他转头。看着纪寻。

"第二。"

沉默。

窗外的雨砸在玻璃上。一道闪电劈开了云层,把窗台上仙人掌的影子钉在了墙上——一道黑色的、细长的、长满刺的轮廓。

"那个服务器——你说它的物理地址在哪。"

"缅甸仰光。明加拉栋镇区。泰吉网吧——"纪寻顿了一下。"地下三层。"

"地下。"

"地下。不是一个比喻。它建在一个废弃的防空洞里。六十年代修的。墙壁是混凝土加固的。有独立的发电机组和卫星通信设备。"

沈渡看着屏幕上的坐标。

"需要实地取证。"

"不是取证的问题。"纪寻的声音忽然变了——不再是刚才那种平淡的、像在说天气的语气。中间多了一样东西。不是害怕。是太熟悉。"那种防空洞我知道。进出口只有一条通道。有人在入口守着。你一进去——里面的网络就会断。物理切断。所有的追踪工具都会失效。"

"你去过。"

纪寻没有回答。

他放在键盘上的手指微微蜷了一下。然后他松开。指尖在键帽上轻轻敲了两下。没有打字。是打拍子。

外面又一道闪电。这次离得更近了。雷声几乎和闪电同时到达——整面玻璃窗都在震。

沈渡看着他。

"那就是最里层了。"

"什么。"

"他们最不想让人靠近的地方。"

他把眼镜往上推了一下。动作不大。但推完之后,手没有像往常一样放回桌上。他停住了。

"你怕吗。"

纪寻的手指停了。

他转过头。窗外的雨打在玻璃上,把外面世界的一切都模糊成灰色。办公室里唯一的光源是三台显示器——蓝的。绿的。白的。

纪寻的眼睛在那片光里动了一下。不是转。是移。从屏幕移到沈渡。从他的眼镜移到他的下巴。从下巴移回眼睛。

然后他扯了一下嘴角。

"怕。所以我肯定会去。"

他把笔记本合上。站起来。拿起桌上那杯凉了一整天的咖啡,走到门口。

"什么时候走。"

"明天。"沈渡说。"我先打报告。"

"打报告。"纪寻重复了一遍这三个字,像在嚼一块很硬的口香糖。"你打你的报告。我买我的机票。"

他走出去的时候,帆布鞋在走廊的瓷砖上留下一串很轻的湿印子——不是雨。是空调冷凝水。走廊里的空调终于修好了。

方旭站在原地。看着两个人的背影——一个往东边的审讯室走,一个往西边楼梯口走。走廊两头都有灯。中间是暗的。

他在笔记本上写了一行字。

"沈队问纪寻怕不怕。纪寻说怕。但还是要去。"

停了一下。

划掉。

改成:"我不知道他们在说那个防空洞,还是在说别的。"

然后他把笔记本合上,往走廊中间那片暗处走过去。他要赶在两个人打起来之前——至少赶在方旭自己开始过度解读之前——把缅甸入境的公文准备好。

窗外的雨还在下。

仙人掌的影子在墙上消失了。但桌上的U盘还在。黑色的。手写的"003"。那个手写的"003"下面,又多了一个一样字迹的东西——一小张便利贴。压在U盘下面。沈渡临走前放的。

纸上只有两个字。

"明天。"

没有句号。