(25)
周六上午,雨晴起得比平时晚。
闹钟响的时候她按掉了,翻了个身,把脸埋进林听夏的枕头里。枕头上的味道已经淡到几乎闻不出来了,但她还是抱着,像抱着一个不会回应的承诺。她又躺了十分钟,然后坐起来,揉了揉眼睛。窗外的天是灰白色的,阳光被云层挡在后面,透不下来,分不清是雾还是霾。窗台上的薄荷叶子垂着,边缘的黄比前几天又多了一点,她走过去掐掉两片,指尖留下一股清凉的、有点涩的味道。
她给林听夏发消息:“姐姐,今天去见王老师。”
发了之后盯着屏幕看了十几秒,没有回复。她把手机放进口袋,去洗漱。
出门的时候快十点了。地铁站人不多,三号线转一号线,二七广场站出站。她走在路上,阳光从云层的缝隙里漏下来,一道一道的,落在行人的肩膀上、落在马路的路面上、落在路边停着的电动车后视镜上。她眯着眼睛,走得不快。咖啡店在巷子里,门面是深棕色的木头,玻璃擦得很干净。她推门进去,风铃响了一声,叮当,很轻。
王知行已经到了。
他坐在靠窗的老位置,面前放着一台笔记本电脑,屏幕上是黑色的终端,绿色的字一行一行地跳。他穿着深色的卫衣,帽子没戴,头发有点长,遮住了一点额头。桌上放着一杯已经喝了一半的美式咖啡,杯壁上凝着细密的水珠。他看起来比上次见面的时候更瘦了一点,颧骨更明显了,眼睛下面有淡淡的青黑。听见风铃响,他抬起头,看了雨晴一眼,嘴角动了一下——不算笑,但也不算不笑。
“来了?”他说。
雨晴点头,在他对面坐下。
“喝什么?”
“热牛奶。”
王知行站起来,去吧台点了一杯,回来的时候手里还端着一杯新的美式——大概是续杯的。他把热牛奶放在雨晴面前,自己坐下来,把电脑转过来给她看。屏幕上是一个网页,白色的背景,中间一个蓝色的登录框,上面写着“企业邮箱登录”。看起来很普通,像是某个公司的内部系统页面。
“今天教你社会工程学。”王知行说。
雨晴愣了一下。她以为今天会继续学SQL注入或者XSS,之前他发消息说的是“下一步学社会工程学”,她查过这个词,大概知道是什么意思,但没想到这么快就开始。
“技术漏洞有补丁,”王知行把电脑又转回去,手指在触摸板上点了几下,页面切换了,变成另一个——更简陋的,白底黑字,中间一个灰色的框,写着“员工通道”,“人没有。”
他讲了一个案例。某家公司被黑客入侵,不是因为他们网站的防火墙不够强,不是因为他们的服务器有漏洞,是因为一个员工收到了一封邮件。邮件看起来像是IT部门发的,说“系统升级,请点击链接修改密码”。那个员工点了链接,输了密码,然后整个公司的内部系统就被拿下了。王知行说这些的时候语气很平,像在念说明书,手指偶尔在触摸板上划一下,光标在屏幕上跳来跳去。
“这就是钓鱼邮件,”他说,“最基础的社会工程学手段。不靠技术,靠骗。”
他又举了几个例子。伪装成客服打电话,说“您的账户异常,请提供验证码”;冒充IT同事,说“我在修服务器,帮我输一下密码”;在公司门口扔一个U盘,上面贴一张纸写着“工资表”,有人捡起来插进电脑,U盘里的木马就自动运行了。雨晴听着,脑子里忽然冒出一个念头——自己当初偷看林听夏的消息,算不算社会工程学?她没有用任何技术手段,只是趁林听夏不在的时候打开了她的手机。那不算漏洞挖掘,那只是……她不知道该怎么定义。她把那个念头按下去,没说出来。
“还有一个,”王知行喝了一口咖啡,皱了皱眉,大概是凉了,“假托,英文叫pretexting。就是编一个故事,让对方相信你是某个人,然后让他帮你做事。”
他举了一个例子:打电话给公司的前台,说“我是XX公司的技术支持,你们老板让我来检查服务器,能帮我开一下机房门吗?”前台如果不够警惕,就会放你进去。雨晴听着,觉得这些东西比代码更让人不安。代码是死的,人不是。代码不会因为你说话好听就放你进去,人会。
“你来试试,”王知行把电脑转过来,屏幕上是一个空白的页面,上面有一个输入框,“搭一个钓鱼页面。”
雨晴接过鼠标,手心有点出汗。她按照王知行的指导,复制了一个简单的登录页面模板,改了代码里的提交地址,指向自己的测试服务器。她敲代码的时候,王知行在旁边看着,偶尔指一下屏幕——“这里改一下”“action的地址换成你自己的”“表单字段的名字要和原来的一样,不然用户会觉得不对”。
她一个一个改。手指在键盘上慢慢移动,打字不快,但每一个字母都敲得很认真。页面跑通的时候,屏幕上出现了一个假的登录框——白色的背景,蓝色的边框,中间两个输入框,上面写着“用户名”和“密码”。看起来很普通,甚至有点简陋。但她盯着那个页面看了好几秒。
“如果有人在这个框里输了密码,”王知行说,“数据就会发到你的服务器上。”
雨晴嗯了一声,把页面关掉了。
“你不试试?”王知行问。
“不试。”
王知行看了她一眼,没再说什么。他靠在椅背上,把凉了的咖啡喝完,然后开始收拾电脑。雨晴坐在对面,捧着热牛奶,杯子烫手,她把杯子转了一下,换了个地方握。
“你为什么愿意教我?”她忽然问。
王知行的手顿了一下。他想了想,说:“没什么,就是觉得你挺有意思的。一个小姑娘,对网络安全感兴趣,少见。”他顿了顿,把电脑合上,收进包里。“而且你学得进去。我教过的人里,你是最认真的。”
雨晴低下头,看着杯子里的牛奶。牛奶已经凉了,表面结了一层薄薄的皮。她用指甲挑了一下,那层皮破了,露出下面白白的液体。
“你几年级来着?”王知行问。
“初一。”
“十三岁?”
“嗯。”
王知行点了点头,没再问。他站起来,把包背好,从口袋里掏出一个U盘,放在桌上。黑色的,很小,和上次那个差不多,但标签上写的是“social_engineering_tools”。
“里面有一些钓鱼页面的模板,还有几个案例文档。你回去看看,有什么不懂的问我。”
雨晴接过U盘,捏在手心里。小小的,塑料的,有点凉。
“谢谢王老师。”
“别叫老师,”他说,“走了。”
他推门出去,风铃又响了一声。雨晴坐在那里,看着他的背影消失在巷口。阳光从玻璃窗照进来,落在她面前的桌上,把木桌子的纹路照得很清楚。她把U盘放进口袋,站起来,把牛奶杯端到吧台,说了声“谢谢”,然后推门出去。
从咖啡店出来的时候,天快黑了。不是那种突然的黑,是那种慢慢暗下去的、从灰白变成灰蓝、再从灰蓝变成深灰的黑。阳光从西边照过来,把她的影子拉得很长很长,拖在地上,像一条灰色的尾巴。她走在二七广场上,看着来来往往的人。有人拎着购物袋,有人举着气球,有个小孩蹲在地上哭,妈妈在旁边哄他,说“不哭了不哭了,妈妈给你买冰淇淋”。
她走到地铁站,刷卡,进站,等车。三号线来的时候,她上了车,找了个靠门的位置坐下。车厢里人不多,对面坐着一个穿校服的男生,低着头打游戏,手机声音外放,噼里啪啦的。她拿出手机,打开和林听夏的聊天界面,打了一行字:“姐姐,今天学了社会工程学。”
发了出去。
她盯着屏幕,等了大概两分钟。没有回复。她把手机放进口袋,看着窗外。隧道壁上的广告灯牌一闪一闪地往后退,红的、蓝的、白的,都拉成一条一条的线。车到了一站,有人下车,有人上车。她又把手机拿出来看了一眼。没有新消息。
她把手机关上,握在手心里。
车到了黄河路站,她站起来,走出车厢。站台上人不多,风从隧道里吹过来,凉凉的,带着一股铁锈的味道。她走出地铁站,沿着那条走了无数遍的路往回走。路灯亮了,橘黄色的,把她的影子投在地上,短短的一团。她走得很慢,低着头,盯着自己的鞋尖。白色的运动鞋有点脏了,鞋带松了一只,她没系。
回到公寓,推开门,房间里很安静。冰箱嗡嗡地响,声音不大,但在安静的房间里显得特别清楚。她换了鞋,把书包放下,走到窗台边。薄荷还在,叶子垂着,边缘的黄比早上又多了一点。她拿杯子接了水,一点一点浇在土里。水渗下去的时候,土发出细碎的声响,像是吸了一口气。她浇完水,站在窗边,看着外面的天。天已经全黑了,对面楼的窗户亮着灯,一扇一扇的,有的亮着白光,有的亮着黄光。
她走进卧室,躺在床上,抱着林听夏的枕头。拿出手机,又看了一眼。
林听夏还是没有回消息。
她把手机放在枕头旁边,闭上眼睛。脑子里转着今天学的东西——钓鱼邮件,pretexting,U盘攻击。她想起王知行说“技术漏洞有补丁,人没有”。她想起自己盯着那个假的登录框看了好几秒。她想起林听夏说“快了”。快了是多久?一天?一周?一个月?
她不知道。
她翻了个身,把林听夏的枕头抱得更紧。枕头上已经没有味道了,但她还是抱着。手机震了一下。她几乎是瞬间拿起来的——屏幕亮了,林听夏回了一条消息:“听起来挺厉害的。”
就五个字。
雨晴盯着那五个字,看了很久。她想回点什么,但又不知道该回什么。打了一行“姐姐你什么时候回来”,删掉了。又打了一行“今天降温了你多穿点”,删掉了。最后她打了三个字:“你也是。”发了出去。
林听夏回了一个“嗯”。
雨晴把手机放在枕头旁边,关灯,闭上眼睛。窗外路灯的光从窗帘缝里漏进来,落在地板上,一小块,灰灰的。她盯着那一小块光,慢慢地,眼皮沉了下去。
明天是周日。不用上学。她可以睡晚一点。可以把王知行给的U盘里的东西看一遍。可以练练吉他。可以给薄荷换个盆——花盆太小了,根都长满了,她从网上看了教程,说要换大一点的盆,加新土。她上周在网上买了一个陶土盆,十五块钱,还放在阳台的纸箱里没拆。
她想,明天做这些事。
想着想着,她就睡着了。