本文主要是介绍PyPI恶意存储库fshec2攻击分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
0x00 事件背景
PyPI(Python Package Index)是Python官方的包索引和分发平台。它是一个公共的、全球性的存储库,用于存储、发布和安装Python包和模块。
PyPI允许开发者将他们编写的Python代码打包为可重用的模块或库,并将其发布到PyPI上供其他开发者使用。开发者可以通过使用pip工具(Python的包管理工具)从PyPI上安装所需的模块或库。PyPI提供了一个广泛的Python包,涵盖了各种用途和领域的功能。
0x01 事件过程
2023年4月17日ReversingLabs公司的安全团队向PyPI团队报告了名为fshec2的恶意包。同一天该包从PyPI存储库中删除。
0x02 技术分析
该包安装后,会产生__init__.py,full.pyc,main.py三个文件。
__init__.py从main模块中导入load_path函数。
main.py中的load_path函数通过importlib库加载full.pyc文件并将其作为模块对象,最后调用该对象的get_path函数。
从full.pyc的文件头中可知,该文件是3.10b版本Python编写的,部分工具如pycdc,uncompyle6无法完整的反编译出py源码。手动反编译结果如下:
get_path函数首先会根据宿主的系统决定相关的行为,在Windows下,该函数会向C2服务器发送自己的hostname和user信息,并且将C盘用户根目录下的目录结构发送给C2服务器。同时还会将从C2服务器上获取的commands写入本地。
随后会通过create_windows_task函数获取Python路径和恶意脚本路径,再使用命令:
schtasks /create /tn "{task_name}" /tr "{python_path} {script_path}" /sc minute /mo {trigger_interval} /F /RL HIGHEST /NP
添加Windows计划任务。这个命令将创建一个计划任务,定期以最高权限运行指定的 Python 脚本。
在Linux下,同样会向C2服务器发送自己的hostname和user信息,随后将当前的计划任务写入到了__crontabl\_default.txt文件下。
最后会用subprocess.call添加计划任务,任务为:
*/10 * * * * /usr/bin/python3 {file_path_user} >> {dir_path}/{file_path_all}run.log 2>&1
含义是每隔 10 分钟执行一次 /usr/bin/python3 {file_path_user} 命令,并将输出结果追加到 {dir_path}/{file_path_all}run.log 文件中。
send_file函数会向C2服务器的uploads目录上传文件。
通过以上的函数结合,该恶意库的攻击行为可以进化。
第一阶段会从C2下载的新的Python文件,通过其中的execute_commands_as_per_url函数进行第二阶段的payload下载。
随后的攻击行为是多变而且可控的,由于在本文章编写的2023年6月5日,C2服务器的相关目录已删除,无法获取后续的payload,分析结束。
0x03 相关反应
2023年4月17日,该恶意包从PyPI存储库中删除。
2023年6月5日,仍能从国内镜像网站上下载到该恶意包。
至2023年6月6日,微步未对该IP进行标记,VirusTotal上ADMINUSLabs,CRDF,CyRadar,ESET,ESTsecurity,Kaspersky共6家安全公司对该IP进行了标记。
0x04 事件启示
如今,基于第三方库的攻击事件变得非常普遍,对于Python来说,即使PyPI对发布的软件包进行了源码检测,仍然会有一些恶意软件包能够逃脱检测并被上传。例如pyrologin、easytimestamp、discorder、discord-dev等恶意Python库,它们采用了与通用库相似的名称,导致程序员在使用pip install命令时意外安装这些恶意库,最后在调用恶意库的导出函数时进行了恶意操作。
本次的fshec2攻击示例,尽管没有采用先进的攻击技术,但它却成功地利用了pyc文件绕过了PyPI对源代码的检测以及杀毒软件的检测。这种可以简单复现的攻击手法需要引起安全相关人员和互联网公司的重视。
这种攻击手法提醒我们,尽管PyPI等开源库平台已经采取了一系列安全措施,但我们仍然需要保持高度警惕。作为开发者和用户,我们应该对第三方库的使用持谨慎态度,并采取一些预防措施来减少潜在的风险。具体措施如下:
-
仔细验证和核实要安装的库的来源及可信度。确保库的作者是可信赖的,并检查库的下载来源是否是官方渠道;
-
避免在生产环境中直接安装不受信任的库。使用库时,可以先在开发环境中进行测试和评估,确保库的功能和安全性符合预期;
-
及时更新已安装的库。随着安全漏洞的不断发现和修复,开源库的更新版本通常会修复已知的漏洞和安全问题;
-
在使用任何第三方库之前,应仔细阅读其文档、查看其社区反馈和评价,了解库的使用方式、功能和潜在风险。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取
这篇关于PyPI恶意存储库fshec2攻击分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!