ESET Research đã phát hiện ra một loạt dự án Python độc hại đang được phân phối trong PyPI, kho lưu trữ gói Python chính thức. Mối đe dọa nhắm vào cả hệ thống Windows và Linux và thường cung cấp một cửa hậu tùy chỉnh. Trong một số trường hợp, tải trọng cuối cùng là một biến thể của cái khét tiếng Kẻ đánh cắp W4SPhoặc một màn hình clipboard đơn giản để đánh cắp tiền điện tử hoặc cả hai. Vào tháng 2023 năm XNUMX, chúng tôi báo cáo trên một cụm gói khác mà chúng tôi tìm thấy trên PyPI cung cấp phần mềm độc hại đánh cắp mật khẩu và tiền điện tử, nhưng hai cụm này dường như là các chiến dịch khác nhau.
Các điểm chính của bài đăng blog này:
- ESET Research đã phát hiện ra 116 gói độc hại trong PyPI, kho phần mềm chính thức dành cho ngôn ngữ lập trình Python, được tải lên trong 53 dự án.
- Nạn nhân đã tải xuống các gói này hơn 10,000 lần.
- Kể từ tháng 2023 năm 80, tốc độ tải xuống ít nhiều là XNUMX mỗi ngày.
- Phần mềm độc hại này cung cấp một cửa hậu có khả năng thực thi lệnh từ xa, lọc và chụp ảnh màn hình.
- Thành phần cửa sau được triển khai cho cả Windows, trong Python và Linux, trong Go.
- Trong một số trường hợp, W4SP Stealer hoặc màn hình clipboard chuyên đánh cắp tiền điện tử hoặc cả hai sẽ được phân phối thay thế.
PyPI phổ biến trong giới lập trình viên Python để chia sẻ và tải xuống mã. Vì bất kỳ ai cũng có thể đóng góp vào kho lưu trữ nên phần mềm độc hại – đôi khi được coi là thư viện mã phổ biến, hợp pháp – có thể xuất hiện ở đó. Chúng tôi đã tìm thấy 116 tệp (bản phân phối nguồn và bánh xe) từ 53 dự án có chứa phần mềm độc hại. Một số tên gói trông giống với các gói hợp pháp khác, nhưng chúng tôi tin rằng cách chính mà các nạn nhân tiềm năng cài đặt chúng không phải thông qua lỗi đánh máy mà là kỹ thuật xã hội, nơi nạn nhân được hướng dẫn bằng cách chạy. cài đặt pip {tên gói} để có thể sử dụng gói “thú vị” vì bất cứ lý do gì.
Trong năm qua, nạn nhân đã tải những tệp này xuống hơn 10,000 lần; xem Hình 1.
Nhiễm PyPI
Các gói PyPI có thể có hai dạng: gói nguồn chứa tất cả mã nguồn của dự án và được xây dựng sau khi cài đặt và các gói dựng sẵn (được gọi là bánh xe), có thể chứa các mô-đun được biên dịch cho một hệ điều hành hoặc phiên bản Python cụ thể. Điều thú vị là trong một số trường hợp, mã Python trong bản phân phối nguồn khác với bản phân phối được xây dựng. Cái trước sạch, trong khi cái sau chứa mã độc. Trình quản lý gói của Python, đánh rớt, ưu tiên một bánh xe khi nó có sẵn hơn là phân phối nguồn. Kết quả là phần mềm độc hại sẽ được cài đặt trừ khi được yêu cầu rõ ràng khác.
Chúng tôi đã quan sát thấy những kẻ đứng sau chiến dịch này sử dụng ba kỹ thuật để gộp mã độc vào các gói Python.
Mô-đun test.py độc hại
Kỹ thuật đầu tiên là đặt một mô-đun “thử nghiệm” với mã được mã hóa nhẹ bên trong gói. Hình 2 cho thấy một test.py tập tin có chức năng gọi là cáu bẳn được định nghĩa và sau đó được gọi. Lưu ý rằng hàm này xử lý cả hệ thống Windows và Linux.
Mô-đun thử nghiệm này được nhập vào giữa mã nguồn của mô-đun chính của gói (__init__.py), để mã độc chạy bất cứ khi nào gói được nhập. Hình 3 cho thấy một mô-đun giả dạng người chụp màn hình và nhập mã độc test.py.
PowerShell trong setup.py
Kỹ thuật thứ hai là nhúng mã PowerShell vào setup.py tệp thường được chạy tự động bởi các trình quản lý gói như đánh rớt để giúp cài đặt các dự án Python.
Hình 4 hiển thị tập lệnh PowerShell tải xuống và thực thi giai đoạn tiếp theo.
Tải xuống tập lệnh PowerShell này transfer[.]sh/eyRyPT/Updater.zip vào một thư mục tạm thời như update.zip. Tập lệnh sau đó giải nén tệp ZIP thành C: ProgramData và xóa nó khỏi thư mục tạm thời. Tiếp theo, tập lệnh chạy đánh rớt chương trình cài đặt phụ thuộc. Cuối cùng, nó chạy mã Python trong C:ProgramDataUpdaterserver.pyw.
Kỹ thuật này chỉ hoạt động trên Windows và sẽ không lây nhiễm được vào hệ thống Linux.
Trong siêu dữ liệu gói ở Hình 4, bạn có thể nhận thấy rằng tác giả của gói là Billythegoat356. Đã có nhiều báo cáo liên kết biệt danh này với các hoạt động độc hại, bao gồm cả bài viết từ Phylum, nơi họ tiết lộ mối liên hệ tiềm năng của Billy với W4SP Stealer.
Chỉ là phần mềm độc hại…
Trong kỹ thuật thứ ba, các nhà khai thác không nỗ lực đưa mã hợp pháp vào gói, do đó chỉ có mã độc xuất hiện, ở dạng bị xáo trộn nhẹ. Hình 5 cho thấy hai đoạn mã độc cho Windows được ghi vào các file tạm thời rồi chạy với pythonw.exe, được sử dụng thay vì python.exe để mã thực thi mà không cần mở cửa sổ bảng điều khiển.
Các giai đoạn tiếp theo là các gói Python, tập lệnh hoặc tệp nhị phân được tải xuống từ Dropbox hoặc chuyển.sh.
Persistence
Trên Windows, tính bền vững thường đạt được thông qua một Mã hóa VBScript (VBE), là tệp VBScript được mã hóa, được ghi vào %APPDATA%/Pythonenv/pythenenv.vbe. Hình 6 cho thấy cmd.exe ẩn thư mục %APPDATA%/Pythonenv, đang chạy pythenenv.vbe, sau đó lên lịch chạy tệp VBE năm phút một lần trong tác vụ MicrosoftWinRaRUtilityTaskB.
Trên Linux, tính bền bỉ đạt được bằng cách đặt một phần mềm độc hại mục máy tính để bàn, mate-user-share.desktop, Trong ~ / .config / autostart / thư mục, như trong Hình 7. Các tập tin nằm trong autostart thư mục được thực thi mỗi lần khởi động hệ thống. Mục trên máy tính để bàn sử dụng tên của một MATE tiểu dự án cho tên tệp của nó, nhưng nó chỉ để giảm bớt sự nghi ngờ vì nó không liên quan gì đến môi trường máy tính để bàn.
Hình 7 cũng hiển thị các phần tải xuống mô-đun dl.dropbox[.]com/s/u3yn2g7rewly4nc/proclean đến ~/.config/.kde/.kdepath. Đây có lẽ là một nỗ lực nhằm mạo danh thư mục cấu hình cho KDE GUI plasma cho Linux.
Khởi chạy mate-user-share.desktop lần lượt tập tin thực hiện tải xuống .kdepath tệp, đây là tệp thực thi Linux có chứa thành phần cửa sau.
Tải trọng cuối cùng
Thông thường, trọng tải cuối cùng là một cửa hậu tùy chỉnh cho phép thực thi lệnh từ xa, lọc tệp và đôi khi bao gồm khả năng chụp ảnh màn hình. Trên Windows, cửa hậu được triển khai bằng Python.
Hình 8 cho thấy backdoor tạo kết nối TCP socket tới blzywound.ignorelist[.]com trên cổng 6001. Sau khi gửi tên máy chủ, địa chỉ MAC và tên người dùng đến máy chủ C&C, cửa sau sẽ trực tiếp xử lý một số lệnh hoặc chạy bất kỳ lệnh nào khác trong một quy trình riêng biệt và gửi lại đầu ra lệnh cũng như mọi thông tin lỗi cho máy chủ.
Trên Linux, cửa hậu được triển khai trong Go; xem Hình 9.
Trong một số trường hợp, thay vì cửa sau, payload là một biến thể của lỗ hổng khét tiếng. Kẻ đánh cắp W4SPhoặc một màn hình clipboard đơn giản có chức năng đánh cắp tiền điện tử hoặc cả hai. Hình 10 hiển thị một màn hình clipboard nhắm mục tiêu vào các loại tiền điện tử Bitcoin, Ethereum, Monero và Litecoin. Phần mềm độc hại sử dụng hợp pháp pyperclip gói để kiểm tra nội dung clipboard để tìm địa chỉ ví. Nếu được tìm thấy, phần mềm độc hại sẽ sao chép địa chỉ do kẻ tấn công kiểm soát vào bảng tạm với hy vọng nạn nhân sẽ dán địa chỉ này vào giao dịch tiền điện tử trong tương lai.
Các sản phẩm ESET phát hiện các gói Python độc hại dưới dạng các biến thể của Python/Agent và Python/TrojanDownloader, cũng như cửa sau là Python/Agent.AOY hoặc Linux/Spy.Agent.BB.
Hầu hết các gói đã bị PyPI gỡ xuống tại thời điểm nghiên cứu này. ESET đã liên lạc với PyPI để thực hiện hành động chống lại những gói còn lại và tất cả các gói độc hại đã biết hiện đang ngoại tuyến. Danh sách đầy đủ 116 gói có thể được tìm thấy trong Kho GitHub.
Điều đáng chú ý là phần mềm độc hại trong kho lưu trữ dự án PyPI không phải là vấn đề bảo mật đối với chính PyPI. Trên thực tế, phần mềm chạy PyPI là được kiểm toán gần đây bởi một công ty bên ngoài đã đánh giá rằng PyPl “tuân thủ các phương pháp thực hành tốt nhất được chấp nhận rộng rãi”.
Kết luận
PyPI tiếp tục bị những kẻ tấn công mạng lạm dụng để xâm phạm thiết bị của các lập trình viên Python. Chiến dịch này hiển thị nhiều kỹ thuật khác nhau đang được sử dụng để đưa phần mềm độc hại vào các gói Python. Các nhà phát triển Python nên kiểm tra kỹ lưỡng mã họ tải xuống, đặc biệt là kiểm tra các kỹ thuật này, trước cài đặt nó trên hệ thống của họ. Cùng với việc tiếp tục lạm dụng W4SP Stealer mã nguồn mở, các nhà khai thác cũng đã triển khai một cửa hậu đơn giản nhưng hiệu quả. Chúng tôi hy vọng rằng việc lạm dụng PyPI như vậy sẽ tiếp tục diễn ra và khuyến cáo bạn nên thận trọng khi cài đặt mã từ bất kỳ kho lưu trữ phần mềm công cộng nào.
Đối với bất kỳ câu hỏi nào về nghiên cứu của chúng tôi được công bố trên WeLiveSecurity, vui lòng liên hệ với chúng tôi theo địa chỉ đe dọaintel@eset.com.
ESET Research cung cấp các báo cáo tình báo APT riêng và nguồn cấp dữ liệu. Mọi thắc mắc về dịch vụ này, hãy truy cập Thông báo về mối đe dọa của ESET .
IoC
Các tập tin
SHA-1 |
Tên tập tin |
Phát hiện |
Mô tả |
439A5F553E4EE15EDCA1CFB77B96B02C77C5C388 |
cache.py |
Python/Agent.AGL |
Trình tải xuống cửa sau Linux.. |
B94E493579CC1B7864C70FAFB43E15D2ED14A16B |
coloramma-0.5.4-py3-none-any.whl |
Python/Tác nhân.AGU |
Gói có trình cài đặt backdoor Linux. |
AE3072A72F8C54596DCBCDE9CFE74A4146A4EF52 |
coloramma-4.5-py3-none-any.zip |
Python/Tác nhân.AOY |
Gói có cửa sau Windows. |
70C271F79837B8CC42BD456A22EC51D1261ED0CA |
rác.py |
Python/Agent.AGM |
Trình cài đặt kiên trì của Windows. |
B0C8D6BEEE80813C8181F3038E42ADACC3848E68 |
tục tĩu |
Linux/Spy.Agent.BB |
Cửa hậu Linux. |
07204BA8D39B20F5FCDB9C0242B112FADFFA1BB4 |
prov.py |
Python/Agent.AGL |
Trình tải xuống cửa sau Linux. |
EF59C159D3FD668C3963E5ADE3C726B8771E6F54 |
tmp |
Linux/Spy.Agent.BB |
Cửa hậu Linux. |
Để biết danh sách đầy đủ các gói độc hại, hãy xem GitHub của chúng tôi kho lưu trữ phần mềm độc hại-ioc.
mạng
Tên miền |
Địa chỉ IP |
Lần đầu tiên nhìn thấy |
Mô tả |
blzywound.ignorelist[.]com |
204.152.203 [.] 78 |
2022-11-21 |
Máy chủ C&C cho thành phần cửa sau. |
Kỹ thuật MITER ATT & CK
Bảng này được tạo bằng cách sử dụng phiên bản 14 của khung MITER ATT & CK.
Chiến thuật |
ID |
Họ tên |
Mô tả |
Quyền truy cập ban đầu |
Thỏa hiệp chuỗi cung ứng: Thỏa hiệp phụ thuộc phần mềm và các công cụ phát triển |
Phần mềm độc hại được phát tán bằng dịch vụ quản lý gói PyPl của Python. |
|
Persistence |
Nhiệm vụ / Công việc đã lên lịch: Nhiệm vụ đã lên lịch |
Trên Windows, tính bền bỉ đạt được bằng cách sử dụng tác vụ đã lên lịch. |
|
Thực thi tự động khởi động hoặc đăng nhập: Các mục tự khởi động XDG |
Trên Linux, một mục tự khởi động được tạo để khởi chạy cửa sau khi người dùng đăng nhập. |
||
Phòng thủ né tránh |
Giả mạo: Khớp tên hoặc vị trí hợp pháp |
Trên Linux, các file liên tục có tên giống với phần mềm hợp pháp |
|
Quyền truy cập thông tin xác thực |
Thông tin đăng nhập từ Cửa hàng mật khẩu: Thông tin đăng nhập từ Trình duyệt web |
W4SP đánh cắp mật khẩu từ các trình duyệt web đã cài đặt. |
|
Bộ sưu tập |
Dữ liệu Clipboard |
Để đánh cắp tiền trong giao dịch tiền điện tử, dữ liệu clipboard sẽ được thay thế. |
|
Lệnh và kiểm soát |
Giao thức lớp không ứng dụng |
Cửa sau sử dụng giao thức nhị phân không được mã hóa qua TCP. |
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- nguồn: https://www.welivesecurity.com/en/eset-research/pernicious-potpourri-python-packages-pypi/
- : có
- :là
- :Ở đâu
- 000
- 1
- 10
- 116
- 14
- 152
- 2023
- 7
- 8
- 80
- 9
- a
- có khả năng
- Có khả năng
- Giới thiệu
- lạm dụng
- chấp nhận
- đạt được
- Hoạt động
- hoạt động
- địa chỉ
- địa chỉ
- tư vấn cho
- Sau
- chống lại
- Đại lý
- Tất cả
- cho phép
- Đã
- Ngoài ra
- trong số
- an
- và
- Một
- bất kì
- bất kỳ ai
- xuất hiện
- APT
- LÀ
- AS
- đánh giá
- At
- tác giả
- tự động
- có sẵn
- trở lại
- cửa sau
- BE
- bởi vì
- được
- sau
- được
- Tin
- BEST
- Bitcoin
- cả hai
- trình duyệt
- xây dựng
- Bó lại
- nhưng
- by
- gọi là
- Chiến dịch
- Chiến dịch
- CAN
- có khả năng
- trường hợp
- thận trọng
- chuỗi
- kiểm tra
- kiểm tra
- giống cá lăng
- cụm
- mã
- COM
- truyền đạt
- biên soạn
- thành phần
- thỏa hiệp
- Cấu hình
- liên quan
- An ủi
- liên lạc
- chứa
- chứa
- nội dung
- tiếp tục
- liên tiếp
- tiếp tục
- Góp phần
- tạo ra
- Tạo
- Credentials
- cryptocurrencies
- cryptocurrency
- khách hàng
- dữ liệu
- ngày
- xác định
- giao
- cung cấp
- phụ thuộc
- triển khai
- máy tính để bàn
- phát hiện
- phát triển
- Phát triển
- Thiết bị (Devices)
- khác nhau
- trực tiếp
- phát hiện
- màn hình
- phân phối
- phân phối
- Phân phối
- do
- xuống
- tải về
- đang tải xuống
- Tải xuống
- Dropbox
- suốt trong
- mỗi
- Hiệu quả
- nỗ lực
- hay
- nhúng
- nhúng
- Kỹ Sư
- nhập
- Môi trường
- lôi
- đặc biệt
- ethereum
- Mỗi
- Thực thi
- Thi công
- thực hiện
- sự lọc ra
- mong đợi
- rõ ràng
- ngoài
- thực tế
- FAIL
- ủng hộ
- Hình
- Tập tin
- Các tập tin
- cuối cùng
- Cuối cùng
- Công ty
- Tên
- năm
- Trong
- hình thức
- Cựu
- các hình thức
- tìm thấy
- Khung
- từ
- Full
- chức năng
- quỹ
- tương lai
- GitHub
- Go
- xử lý
- Xử lý
- Có
- giúp đỡ
- mong
- HTTPS
- if
- hình ảnh
- thực hiện
- thực hiện
- nhập khẩu
- nhập khẩu
- in
- bao gồm
- bao gồm
- Bao gồm
- ô nhục
- thông tin
- Yêu cầu
- trong
- cài đặt, dựng lên
- cài đặt
- cài đặt
- Cài đặt
- thay vì
- Sự thông minh
- trong
- vấn đề
- IT
- ITS
- chính nó
- nổi tiếng
- Ngôn ngữ
- phóng
- lớp
- hợp pháp
- ít
- thư viện
- nhẹ nhàng
- LINK
- linux
- Danh sách
- Litecoin
- nằm
- Xem
- mac
- Chủ yếu
- làm cho
- phần mềm độc hại
- quản lý
- giám đốc
- Quản lý
- Trận đấu
- Có thể..
- trung bình
- Siêu dữ liệu
- Tên đệm
- Phút
- Mô-đun
- Modules
- Monero
- Màn Hình
- chi tiết
- hầu hết
- tên
- tên
- tiếp theo
- Không
- không
- Để ý..
- Lưu ý
- tại
- nhiều
- of
- Cung cấp
- chính thức
- Ngoại tuyến
- on
- ONE
- những
- có thể
- mã nguồn mở
- mở
- hoạt động
- hệ điều hành
- khai thác
- or
- Nền tảng khác
- nếu không thì
- vfoXNUMXfipXNUMXhfpiXNUMXufhpiXNUMXuf
- đầu ra
- kết thúc
- gói
- gói
- trang
- Mật khẩu
- Mật khẩu
- qua
- mỗi
- kiên trì
- miếng
- Nơi
- đặt
- Plasma
- plato
- Thông tin dữ liệu Plato
- PlatoDữ liệu
- xin vui lòng
- điểm
- Phổ biến
- tiềm năng
- PowerShell
- trình bày
- riêng
- có lẽ
- quá trình
- Sản phẩm
- Lập trình viên
- Lập trình
- dự án
- dự án
- giao thức
- công khai
- công bố
- PYPL
- Python
- Tỷ lệ
- hơn
- lý do
- giảm
- còn lại
- xa
- thay thế
- Báo cáo
- kho
- nghiên cứu
- kết quả
- tiết lộ
- chạy
- chạy
- chạy
- lên kế hoạch
- lập kế hoạch
- ảnh chụp màn hình
- kịch bản
- kịch bản
- Thứ hai
- an ninh
- xem
- đã xem
- gửi
- gửi
- riêng biệt
- máy chủ
- dịch vụ
- thiết lập
- chia sẻ
- nên
- Chương trình
- tương tự
- Đơn giản
- kể từ khi
- So
- Mạng xã hội
- Kỹ thuật xã hội
- Phần mềm
- một số
- đôi khi
- nguồn
- mã nguồn
- riêng
- Traineeship
- giai đoạn
- khởi động
- ăn trộm
- cửa hàng
- như vậy
- hệ thống
- hệ thống
- bàn
- Hãy
- Lấy
- dùng
- nhắm mục tiêu
- mục tiêu
- Nhiệm vụ
- kỹ thuật
- kỹ thuật
- tạm thời
- thử nghiệm
- hơn
- việc này
- Sản phẩm
- Nguồn
- cung cấp their dịch
- sau đó
- Đó
- Kia là
- họ
- Thứ ba
- điều này
- triệt để
- mối đe dọa
- số ba
- Thông qua
- thời gian
- thời gian
- đến
- giao dịch
- XOAY
- hai
- thường
- Dưới
- tải lên
- trên
- us
- sử dụng
- đã sử dụng
- người sử dang
- sử dụng
- sử dụng
- thường
- biến thể
- nhiều
- phiên bản
- VET
- thông qua
- nạn nhân
- nạn nhân
- Truy cập
- đi bộ
- ví
- là
- Đường..
- we
- web
- Trình duyệt web
- TỐT
- là
- bất cứ điều gì
- Wheel
- khi nào
- bất cứ khi nào
- cái nào
- trong khi
- rộng rãi
- chiều rộng
- sẽ
- cửa sổ
- cửa sổ
- với
- không có
- công trinh
- giá trị
- viết
- năm
- Bạn
- zephyrnet
- Zip