最近一位名叫 Sean Murphy 的国外程序员发文称,他在 PHP 软件包仓库 Packagist 中创造了一个恶意软件包名字叫做 symfont/process 。
这个软件包之以是叫 symfont/process , 是由于有一个叫做 symfony/process 的著名软件包,symfony/process 的下载量高达 3 亿, 而这个软件包和 symfony/process 只差一个字,字母 y 变成字母 t
symfony/process

这一个字之差不要紧,由于要知道,在键盘上字母 t 和字母 y 是紧挨着的,symfony/process这个软件包有这么高的下载量,难免有人在开拓的时候敲错一个字母,那么你就无意间安装了一个 symfont/process 的恶意软件包。
这或许便是蹭流量吧。
Sean 创造,当你安装了这个恶意软件包之后,只要实行了 new Symfony\Process\Process() 这个函数,就会触发恶意代码,这个代码很故意思,详细来说便是先从 1 到 1000 随机取一个整数,如果随机出来的数大于 990,那么就会将当前做事器的信息发送到一个指定的网址上。
随机函数代码截图
其余,恶意代码还会检测当前要求地址中是否包含一个特定的字符串 “d78b6f30225cdc811adfe8d4e7c9fd34 ”,如果包含就加载一个名为 utils.php 的代码文件,而这个文件中则是一个完全版本的做事器攻击脚本。
units.php 包含一个完全的攻击脚本
什么意思呢?
大略来说,便是当你运行到这段恶意代码时,如果你运气不好,随机到了一个大于 990 的数,你的做事器信息就会发送到黑客指定的网址,这时黑客就知道了:奥,这个网站安装了我这个恶意软件包,现在已经被我植入了漏洞。
接下来,黑客只须要访问你的网站并且在网站中加入那个特定的字符串,就会运行攻击脚本。
那这个字符串代表什么意思呢?
原来它便是单词 “hack”(攻击) 的MD5值。
接下来,Sean 顺藤摸瓜,找到了这个恶意软件包的作者的信息,他创造这个软件包是被一个在广东的 GitHub 用户在 2019 年 7 月 22 号 到 23 号上传的。
在这个人的 GitHub 主页上,有他的个人照片,邮箱,个人网站地址和他所在的城市
Sean 贴出的Github截图,马赛克是我打的
事情到了这里,彷佛比较明朗了,但是有没有可能是这个人的 GitHub 账户被盗了,别人用他的账号发布的这个恶意软件呢?
Sean 接着查,创造在这个软件包中,黑客设置一个网址 来吸收被黑的做事器的信息,这个网址是注册在阿里巴巴的域名系统下的。
他查询到这个网站的另一个子域名,曾经映射到了一个 IP 地址,而这个人 GitHub 账号上写的个人网站地址也映射到了同一个 IP 地址上。
这下基本就完备断定了,便是此人所为。
其余,在搜索这个域名的时候,还有一个意外创造,便是这个IP地址的绑定的域名中有好多是假的苹果网站的域名,这些高仿苹果网站的域名很大可能是此人其余一些用于向苹果用户钓鱼的网站用的。
哎!
你说你好好的,干点啥不好,非干点这事儿!Sean剖析完之后,就关照了PHP软件包仓库,目前在这个仓库中已经搜不到这个恶意软件包了。