"那你准备怎么办,沈队。"
沈渡把手机放回桌上。
屏幕已经黑了。暗网挂牌信息没有撤回键——纪寻的身份信息、银行流水、三年行踪,像一块被拆开的表,所有零件摊在任何人可以出价的地方。
三百五十万。
"方旭。"
方旭在门口站直了。他从刚才开始就一直不敢动——办公室里的气压太低,低到他的呼吸都调成了手动挡。
"去查那条挂牌信息的发布节点。"
"是。"
"用支队应急响应通道。十二小时内我要路由路径。"
方旭点头。转身。走了两步又停住。
"沈队——纪顾问的挂牌信息,要不要通知宋局?"
沈渡没答。
纪寻靠在窗边,把烟从嘴角拿下来,替他答了。
"不用。"
方旭看向沈渡。沈渡没看纪寻,也没否认。
方旭明白了。不是不用通知。是不能让更多人知道纪寻被挂了牌——消息一旦扩散,内部调查会立刻启动。纪寻会被停职。这次不是权限暂停,是正式审查。
而时机太巧。拍卖行的线索刚指向红客联盟,纪寻就被曝光。有人在掐时间。
方旭出去的时候把门带上了。轻轻的。但门合上的声音在安静的办公室里还是太响。
纪寻把烟放回烟盒。
"沈队。"
沈渡抬起头。
"你不问我这些年得罪过谁吗。"
"不用问。"
沈渡把眼镜往上推了一下。镜片反光,看不见眼睛。
"挂牌信息是十五分钟前上架的。这间办公室里只有三个人。你我,和方旭。没有人能在十五分钟内联系暗网挂牌一个人——准备三套证件、十年银行流水、实时行踪。这套数据包至少需要三天的整理时间。"
他的手指在桌上轻轻敲了一下。
"三天前,我们还没有接到数据泄露案。"
安静。
纪寻把这句话过了一遍。三天前,沈渡和他的支队还不知道有"暗网拍卖行"这种东西。对方在案发之前就已经准备好了纪寻的资料——不是应对。是预料。有人提前知道这次行动会触发什么,提前准备好了把纪寻推出去当防火墙。
"所以你准备怎么办。"纪寻又问了一遍。
沈渡没回答。
手机又响了。
这次不是沈渡的。是纪寻的。他从兜里掏出来,屏幕上是一个座机号码——支队的紧急调度专线。
纪寻看了沈渡一眼。沈渡点头。
纪寻接起来。
"纪顾问,我这边是接警中心。"对面的声音是林晚,语速比她平时的办公室闲聊快了至少两档。"刚转过来一个案子。市公安局经济犯罪侦查支队转的。电信诈骗。家属报案——"
键盘声。
"受害者七十二岁,独居。刚才一小时内被连续十七通电话引导,把所有积蓄转入了对方指定的账户。十七万。"
纪寻没说话。
"对方使用的来电显示伪装成了市公安局的号码。"
"伪基站。"纪寻说。
"对。技侦那边初步扫描了一下,作案用的伪基站信号来源在一辆流动面包车上。车辆目前在老城区一带移动。经侦支队跟丢过两次——"
"把面包车现在的定位发给我。"
"——对方用的是某种反追踪路由。信号每三十秒跳一次,经侦的人追踪不到真实落点。"
纪寻把手机夹在耳朵和肩膀之间,走到桌前。
三台显示器。最左边那台还在显示游戏画面——角色在泉水里挂机,队友骂完了已经退了。中间那台是支队内网。右边那台是一个黑色终端窗口。
他单手敲键盘。命令行界面弹出来了。一串命令输入。窗口切到了暗网追踪工具——半小时前扫描境外服务器的那套。
"三十秒一跳。"纪寻重复了一遍,不是对林晚说,是对自己。"不是伪基站。是僵尸网络。肉鸡在跳。"
林晚在那头安静了两秒。
"你能追踪僵尸网络的真实IP吗。"
纪寻没回答。
手指在键盘上开始动了。不是快——是准。每一下都落在正确的位置,间隔匀称,像节拍器。他打键盘的样子和他在游戏里挂机走神的样子完全是两个人。
沈渡站在他身后两步的位置。看着屏幕上滚动的字符。
纪寻先定位了伪基站的信号范围。老城区。半径两公里。然后反向追踪那个三十秒一跳的路由跳板——不是追信号的去向,是追信号的来源。每一跳都对应一台被劫持的"肉鸡"设备,分布在全国七个省。纪寻在三十秒的窗口内逐一锁定、反推、溯源。
不是追踪兔子。是把兔子走过的每一个脚印都挖出来,拼在一起,反推出它从哪里出发的。
"城东。幸福路。"
纪寻的手指停了。
"一辆白色金杯面包车。车牌津A·E7321。现在时速三十七,在幸福路和解放路交叉口等红灯。"
沉默。
沈渡看着屏幕上的坐标。城东幸福路距这里大约四公里。纪寻从接到电话到锁定位置用了不到四分钟。
"林晚。"沈渡开口了。"通知经侦立刻拦截。同时派人去受害者家里。"
"受害者在城南。"
"先接回来。他的账户信息可能已经被贩卖了。"沈渡顿了一下。"如果他的数据流入了暗网拍卖行,后面会有人用他的身份去贷款。"
林晚应了一声,挂断。
办公室里重新安静下来。
纪寻的手还放在键盘上。屏幕上的追踪记录还在。三十七跳。七个省。每一跳被剥离的时间差都在毫秒级。
他没有得意。没有看沈渡。
只是把窗口最小化。游戏画面重新弹出来。角色还是站在泉水里。
沈渡站在他身后,没有说话。
窗外的风吹动了窗帘。仙人掌的影子在窗台上晃了一下。
方旭推门进来。
"沈队,经侦那边已经拦住了面包车。"他举着手里的对讲机,气喘得不太匀。"车上一人。手上四部手机,一台笔记本。笔记本上开着伪基站控制面板,还有一个数据库界面——他正在把受害者的信息往一个境外地址传。"
"把数据库镜像封存。"沈渡说。
"已经在做了。但是——"方旭吞了下口水。"那个境外地址的加密方式,和我们昨晚查封的数据泄露案里那个暗网节点完全一致。"
安静。
三个人同时意识到同一件事。
电信诈骗、企业数据泄露、社交媒体操控——这些不是各自独立的案件。它们共享同一套基础设施。同一套加密协议。同一个卖家。
暗网拍卖行不是卖一种东西。它什么都卖。数据、身份、舆论、漏洞。像一个巨大的超市——你走进去,能买到任何你想用来犯罪的东西。
"方旭。"沈渡推了一下眼镜。"把诈骗犯带到支队的审讯室。通知经侦,我们要接收这个案子。理由是嫌疑人的信息传输路径与网安支队正在侦破的暗网拍卖行案件存在技术关联。"
"理由够硬吗。"
"够。"
方旭转身要走。
"等一下。"纪寻开口了。
他在键盘上又敲了几行。屏幕上的追踪日志翻到最后一页。他盯着其中一个节点看了五秒。
"这批伪基站的僵尸网络里,有一台肉鸡的接入坐标不在国内。"
方旭停住。
"在哪。"
"缅甸。"
办公室里的空气突然变重了。
一个电信诈骗案。一辆面包车。四部手机。一台笔记本。追踪到最后一跳,信号从缅甸过来。
"他不是散兵游勇。"纪寻说。声音不大,但每一个字都像钉子一样钉进了安静的空气里。"他背后有人在帮他操控僵尸网络。这个网络跨七个省——可能更多。能把肉鸡管理到这个级别的,不是一个人能做到的。"
沈渡盯着屏幕上的那个坐标。
"所以。"
"所以拍卖行不只是卖数据。"纪寻转过头。窗外的光照在他的眉骨上,投下一道很窄的阴影。"它还提供作案工具。伪基站。僵尸网络。反追踪路由。只要你有钱,它可以让你从一个街头骗子变成一个跨国网络犯罪者。"
停顿。
"而且——"
方旭已经在门口不敢动了。他听出了那种语气。每次纪寻说出"而且"这两个字的时候,后面跟着的东西一定比前面更糟。
"而且操控僵尸网络的技术架构里,有一个流量伪装模块。这个模块的代码风格——"
他抬起眼。看着沈渡。
"和昨天晚上入侵瀚海数据库的,是同一个人写的。"
方旭的喉咙滚了一下。
同一个黑客。昨天晚上入侵了全国最大的互联网公司。今天在帮一个街头骗子搞电信诈骗。这两件事之间的落差大到荒谬——像一个米其林大厨在后巷里炸路边摊。
"他到底在干什么。"方旭的声音有点干。
没有人回答。
但沈渡的眼神变了。不是愤怒。不是震惊。是一种很慢的冷——从瞳孔中心往外蔓延,一寸一寸,像冬天结冰的河面。
一个能在几小时内攻破千亿级企业数据库的黑客,去帮一个骗子做伪基站——不是做慈善。是在测试。把不同的犯罪工具卖给不同等级的客户,观察使用效果。就像军火商把新武器卖给雇佣兵去试枪。
而测试的数据会反馈回拍卖行。拍卖行会把这些数据打包,卖给下一个更大的客户。
这是一个滚雪球。
"方旭。"沈渡的声音没有任何起伏。"把面包车司机拉回来之后,二十四小时不间断审讯。我要知道他是从谁手里买的伪基站。具体到什么时间、什么渠道、多少钱。"
"是。"
"纪寻。"
纪寻转过头。
"那个缅甸节点的反向追踪,你能做到什么程度。"
"服务器在该地域的物理位置。"纪寻说。"运营商的接入端口。如果是VPS的话——能追溯到租赁人的支付方式。"
"需要多久。"
"看情况。"
沈渡推了一下眼镜。
"什么情况。"
纪寻把笔记本的屏幕往下压了一点。不是合上。是调角度。然后他靠在椅背上,抬起头,对上沈渡的目光。
光线从侧面打在他脸上。一只眼睛在亮处,一只眼睛在暗处。
"看你给不给我权限。"
安静了两秒。
方旭在门口咽了口唾沫。他觉得自己不该站在这里。
沈渡看着纪寻。
纪寻没躲。
"暗网拍卖行把你的资料挂牌了三分钟之后,"沈渡说——声音放低了,低到只有两个人能听见——"你还在跟我讲权限。"
纪寻没动。
"你是网安支队的队长。"他说。"规矩是你定的。"
"规矩——"
沈渡顿了一下。
方旭看到他的手指在桌上停住了。食指和拇指之间不到一厘米的距离。不是收起。是按住了什么。
然后沈渡从口袋里掏出一个U盘。黑色的。很小。放在桌上推到纪寻面前。
"最高权限。开放四小时。"
纪寻低下头。看着那个U盘。黑色的。上面贴了一个标签——白底黑字,手写的"003"。字迹很工整,每个笔画都有起笔和收笔。
是沈渡自己写的。
"四小时够吗。"
纪寻把U盘拿起来。拇指擦过标签上的字。墨迹已经干了很久了。不是刚写的。是备好的。
他不知道什么时候备的。
"够了。"
他把U盘插进笔记本。窗口切换。第三层权限认证界面弹了出来。他输入了U盘上的密钥。左下角的权限标识从"限制模式"变成了"完全访问"。
绿色的。
他开始打字。
沈渡没有走。站在他身后,看着屏幕上的命令行一层一层往下渗透。从津海市出发,经过昆明,越过边境,进入缅甸境内。每一跳都是一堵墙。纪寻翻过去。下一堵。再翻。像一个人在以步行的速度跑过一座桥——而那座桥正在他脚下燃烧。
方旭在门口已经忘了要走。他看着屏幕上的进度条一格一格往右推——从百分之三十到五十,到七十二。
然后停了。
停了五秒。
纪寻的手指悬在键盘上。
跳了一下。百分之一。
八十五。
九十一。
九十六。
一百。
屏幕上弹出一个地址。
"仰光。明加拉栋镇区。一家叫'泰吉'的网吧。"
纪寻的声音没有变化。和一分钟前一模一样。
"设备是网吧的公用机。支付方式——加密货币。币种是门罗币。钱包地址我提取了。"
他把钱包地址贴到公共记事本上。
方旭看了一眼追踪时间。从放开权限到完成穿透——总计两分三十七秒。
他不敢说话。但心里的数字一直在弹:两分三十七秒。两分三十七秒。他大学的时候做过一道类似的反追踪练习题。成绩是四十五分钟。全年级第一。
沈渡看了屏幕一眼。然后低头看表。
距离四个小时还剩下三小时五十六分钟。
"收回来。"他说。
纪寻抬起头。
"权限。收回来。够了。"
纪寻的手从键盘上移开。U盘上那个手写的"003"刚好对着他。
"以后要查的时候,用你自己的权限查。"沈渡把眼镜往上推了一下。动作不大。但推完之后,他的手没有放回桌上。停在了口袋旁边。"现在不是限制模式了。"
纪寻看着他的手。
沈渡没看他。
窗外的车流声忽然大了起来。高架桥上的早高峰进入了最拥堵的时段——金属的河不动了。喇叭声。刹车声。像一座城市的脉搏在太阳底下暴躁地跳。
纪寻把手伸向键盘。
不是干活。是退出。把权限模式从"完全访问"切回"标准模式"。屏幕上弹出一个确认窗口。他点了"是"。然后站起来。
他往门外走。
经过沈渡身边的时候停了一步。
"你呢。"
沈渡没转身。
"我做什么。"
"你审人。我查境外节点。"纪寻往外走。走到门口。停住。没回头。"回来的时候我要你的审讯记录。看完之后告诉你下一步。公平交易。"
"我没跟你做交易。"
"那你给我最高权限干什么。"
安静。
纪寻走出去的脚步声很轻。帆布鞋底踩在走廊的瓷砖上,一点声音都没有。
方旭还站在原地。看看沈渡。看看门口。再看看沈渡。最后选择默默退出去——关门的时候特别小心,生怕再发出任何声音。
办公室里只剩沈渡一个人。
他站在显示器前面。屏幕上的追踪记录还在。三十七跳。七个省。四层权限穿透。一个人。没看导航。没查接口文档。
他低下头。
桌上那沓打印纸还在。第一页第七行——那个变量名。write_backup。
他伸出手。指尖压在第七行的位置上。
然后嘴角动了一下。
不是笑。
是把刚才咽回去的那句话从嘴角泄了出来。
"你不该只有四小时。"
说完他收起手指,拿起桌上的对讲机,往审讯室的方向走。
半开的窗户外面。津海的云从海面上推过来了。灰色的。厚的。仙人掌的影子在地板上消失了。但桌上那个黑色U盘还在。手写的"003",标签纸已经开始卷边。