上传木马
凌晨两点十七分,上传木马我盯着终端上那个绿色的上传木马进度条。99%。上传木马然后它停了。上传木马我端起冷掉的上传木马咖啡,看着那个百分比在屏幕上闪烁,上传木马像一只眨眼的上传木马猫。三秒后,上传木马进度条回退到87%,上传木马重新开始爬升。上传木马这不是上传木马第一次了。
上传木马从来不是上传木马技术问题,是上传木马心理战。对方服务器有流量监控,上传木马超过阈值就掐断连接。上传木马所以我把木马拆成碎片,每片不超过4KB,混在正常HTTP请求里,像把毒药滴进自来水管道。你得算准时间,凌晨三点到四点,欧洲的爬虫程序最活跃,你的数据包混在里面,就是大海里的一粒沙。
这次的目标是个老旧的管理后台,跑着2016年的Apache版本,补丁打到一半就没人管了。我扫了三天端口,找到个没设防的备份接口。但上传本身不难,难的是让文件落地后不被杀。对方装了安全狗,虽然版本老,但规则库更新得勤快。
所以我把木马改了七遍。第一遍改文件头,伪装成jpg;第二遍加冗余字节,绕过长度检测;第三遍用编码混淆,躲过特征码扫描。改到第五遍的时候,我忽然觉得自己像个厨子,反复调整配方,就为了让那道菜端上桌时看起来人畜无害。
进度条又卡住了。这次卡在94%。我切到另一个窗口,查看对方服务器的实时日志——有人在手动检查文件上传记录。操,值班的还没睡。我赶紧撤回所有已上传的碎片,用临时权限清掉日志痕迹,然后换了条传输路径,从对方一个废弃的邮件接口重新开始。
上传木马最操蛋的地方在于,你永远不知道哪一步会暴露。有时候是文件名多了一个空格,有时候是时间戳对不上,有时候纯粹是对方管理员今晚失眠。所以你得留后手,至少三条备用通道,每个通道用不同的加密方式,还得准备一个假木马,真身藏在里面,万一被抓了,丢出去的是诱饵。
凌晨四点零七分,进度条终于走完。我发送测试指令,几秒后,对方服务器回传了一个系统版本号。成了。我瘫在椅子上,手指还在微微发抖。那种感觉不是兴奋,是虚脱——就像你花了一整夜撬开一扇门,结果发现里面只是个空房间。
但上传木马这件事,永远没有“最后一步”。你进去了,得清理痕迹,得维持权限,得防着对方明天上班发现异常。我关掉终端,删掉本地所有临时文件,拔掉网线。窗外天快亮了,楼下早餐摊开始支起油锅。今天这个木马大概能活三天,也可能活三小时。谁知道呢。反正我已经准备好了下一个,藏在某个不起眼的角落里,等着今晚再传一次。