一位开发者上周四在领英上收到一位招聘人员发来的消息,对方提供了一个Python开发者的岗位。看到有人直接联系自己,这位开发者有些兴奋,于是向对方询问了更多细节。 招聘人员发来的初始消息显示,这个岗位提供每月10,000到15,000美元的薪资,且为远程工作。通常招聘人员不会在初次接触时就透露薪资信息,这种“先开价”的做法显得不太寻常。 他调查了这家公司,发现它是一家Y Combinator投资的创业公司。YC系公司向来以非传统运作方式著称,所以提供高预算并非完全不可能。但如果一家公司资金如此充裕,其招聘流程通常会更规范。这位开发者决定继续走流程,但保持警惕。 他发送简历后,招聘人员很快予以通过,并通过谷歌云端硬盘链接发来一个家庭作业项目,里面包含一个压缩包和一份带说明的PDF文件。解压后,初看这是一个使用SQLAlchemy的FastAPI后端项目模板。他检查了 requirements.txt 文件,没有发现任何拼写错误攻击或恶意软件包,这让他一度以为这是一个真正的招聘机会。 出于一种可能是打CTF比赛养成的习惯,每当他拿到一个随机的项目文件夹时,总会运行“tree -a”命令来查看隐藏目录里的内容。这次,这个习惯在现实世界中得到了回报。他发现在项目的 .git 目录中预先配置了大量Git hooks脚本。 他打开 pre-commit 脚本查看其内容。脚本会根据不同操作系统执行不同操作:在macOS上会运行一个curl命令,从“http://45.61.164.38:5777/task/mac?id=402”下载内容并通过shell执行;Linux系统下则使用wget命令从“http://45.61.164.38:5777/task/linux?id=402”下载并执行;Windows系统同样会从对应的“/task/windows?id=402”地址下载内容。所有这些操作都会将输出重定向到 /dev/null,在后台静默运行。

打开网易新闻 查看精彩图片