实测Maven依赖包可通过域名抢注实现钓鱼攻击吗

先说结论:基本不可行

原理

Maven包中 groupId 字段是域名反写,比如你有一个 12345.com,就可以申请到 com.12345 的groupId。

很多开源项目都停止维护,但是很多人使用,这些团队可能忘记续费域名;同时目前Maven搜索引擎全部使用 groupId + artifactId(任意自定义)确定项目唯一性,就会将抢注的内容和之前正常内容代码混为一个项目展示,让人误以为新版本更新了,实际上只是加入了恶意代码。

估计正常碳基生物肯定不会求证每一个版本是不是官方发得,主要也没啥办法可求证...

我们需要做

找到一个开源项目,并且抢注它的域名。之后申请 groupId,之后上传一版代码,和之前的略有差别即可。

如果能够成功实现,表示我们成功;不能则表示失败。

找过期域名

我们的思路是注册便宜、续费贵的域名过期可能性更大。所以考虑便宜的域名,这里以 top 为例,注册价格约为 9 元/首年,续费26元/年

官方模糊查询接口:

https://search.maven.org/solrsearch/select?q=top.&rows=20&wt=json

万网域名查询是否注册接口:

https://panda.www.net.cn/cgi-bin/check.cgi?area_domain=xxxx.com

 还是写个脚本自动查询吧,年纪大了...

很快就找到了一个(不到30个里面就有2个可注册,概率太高了)

给他注册一年:

通过查询能看到,这个域名之前还被注册过两次,都过期了

 正好这个名下的储存库有代码可参考,直接申请groupId

之后就尴尬了:

 会有要求原来的角色部署人在这个jira下评论才可以

获得评论

显然,目前已经卡死了,因为我们根本找不到原作者,只知道原作者的Github地址

倒是能够根据Github知道用户邮箱(大部分人都会展示在自己的主页)

其实肯定有社工库同时存在用户邮箱和密码的情况,不过此时可能就是运气成分更多了

由于这不是我们自己的测试账号,本着用户隐私原则我们不再进行后续查询

类似案例

援引自 腾讯安全应急响应中心(TSRC)的文章:

依赖包抢注,典型案例有:

2017年多款Python/Nodejs库包被爆存在恶意代码,主要利用名称相似性误导用户安装,数万主机误安装受到影响。

2020年国外安全研究员发现多家国际知名企业的内部私有包名在GitHub、Web页面泄露,随后在PyPI/NPM/RubyGems抢注并上传同名包,最终这些企业的内部服务器被迫安装恶意包受到影响。

后记

实际上之前就有国外网友讨论过,国内好像没人写类似的东西:https://news.ycombinator.com/item?id=26087489 

猜你喜欢

转载自blog.csdn.net/qq_20051535/article/details/131230720