paint-brush
Cách RAT Mutants, trong Python, đánh cắp dữ liệu và trốn tránh sự phát hiệntừ tác giả@hernanortiz
3,749 lượt đọc
3,749 lượt đọc

Cách RAT Mutants, trong Python, đánh cắp dữ liệu và trốn tránh sự phát hiện

từ tác giả Hernán Ortiz7m2023/02/02
Read on Terminal Reader

dài quá đọc không nổi

Mặc dù các gói Python độc hại được các nhà nghiên cứu bảo mật của chúng tôi tìm thấy hàng ngày, một loại phần mềm độc hại mới mà chúng tôi gọi là đột biến RAT đang thu hút sự chú ý của chúng tôi. Chúng đã thay đổi và thích nghi theo thời gian để trở nên lẩn tránh và nguy hiểm hơn. Đây là câu chuyện về cách chúng có thể đánh cắp ví tiền điện tử và dữ liệu cá nhân của bạn, điều khiển chuột và bàn phím của bạn từ xa, đồng thời phát triển để tránh bị phát hiện.
featured image - Cách RAT Mutants, trong Python, đánh cắp dữ liệu và trốn tránh sự phát hiện
Hernán Ortiz HackerNoon profile picture



“Một ninja khôn ngoan không tìm kiếm kẻ thù mà anh ta không hiểu rõ.” - Splinter from Teenage Mutant Ninja Turtles


Là một nhà văn kỹ thuật đam mê khoa học viễn tưởng, một trong những phần thú vị nhất trong công việc của tôi tại Sonatype là khi tôi có cơ hội cộng tác với nhóm nghiên cứu bảo mật.


Kể từ khi chúng tôi tìm thấy  một loạt các gói Python vào tháng trước tương ứng với cái mà chúng tôi gọi là đột biến RAT—phần mềm độc hại mới tận dụng khả năng của trojan truy cập từ xa và kẻ đánh cắp thông tin—các nhà nghiên cứu bảo mật của chúng tôi đã có cảm giác khó chịu về déjà vu.


Đây không phải là trường hợp hiếm gặp: họ liên tục đánh giá hàng trăm gói đáng ngờ từ các cơ quan đăng ký nguồn mở để xác định xem chúng có thực sự độc hại hay không. Trong quá trình này, họ xác định các mẫu quen thuộc giữa các gói và đôi khi, khi nhận ra những điểm tương đồng mạnh mẽ, họ tiến hành nghiên cứu sâu hơn để truy tìm tác nhân/chiến dịch đằng sau chúng.


Từ tuần cuối cùng của năm 2022 đến đầu năm 2023, hệ thống AI của chúng tôi đã gắn cờ các gói đáng ngờ được tải lên sổ đăng ký PyPI bao gồm pyrologin , easytimestamp , discorder , discord-dev , style.py pythonstyles . Các nhà nghiên cứu bảo mật của chúng tôi đã xem xét chúng và xác nhận rằng chúng thực sự độc hại. Và sau khi phân tích sâu hơn, họ nhận thấy các gói này đã thêm một loạt tính năng không thường thấy trong phần mềm độc hại Python.


Trong chiến lược đã trở thành một chiến lược trên thực tế, những kẻ xấu ẩn một trọng tải trong tệp setup[.]py để các nhà phát triển chỉ phải sử dụng một bản cài đặt pip đơn giản để bị lây nhiễm. Trong trường hợp này, họ sẽ vô tình khởi chạy tập lệnh PowerShell tải xuống tệp ZIP để cài đặt thư viện cho phép kẻ tấn công kiểm soát chuột, bàn phím của nạn nhân, chụp ảnh màn hình và tạo các kết nối ẩn từ xa. Và trên hết, các gói này cũng lọc thông tin nhạy cảm như mật khẩu, cookie và dữ liệu ví tiền điện tử, thậm chí cố gắng cài đặt một công cụ để truy cập từ xa. Phát hiện của chúng tôi phù hợp với Báo cáo kỹ thuật của Phylum của các gói rất giống nhau.


Tuy nhiên, nhà nghiên cứu bảo mật Carlos Fernandez đã có một cảm giác ám ảnh về déjà vu. Trong tuần sau khi chúng tôi tiết lộ các gói, ký ức về việc nhìn thấy các phiên bản trước của phần mềm độc hại này hiện lên trong tâm trí anh ấy. Một tác nhân đe dọa có thể đã phát triển phần mềm độc hại của họ theo thời gian, nhưng chúng tôi cần phải chắc chắn, vì vậy tôi đội chiếc mũ OSINT của mình để giúp anh ta xem trực giác của anh ta có đúng không.

Câu chuyện nguồn gốc

Nhìn lại cơ sở dữ liệu của chúng tôi, vào ngày 25 tháng 9 năm 2022, một gói có tên pygradient đã được tải lên kho lưu trữ PyPI. Trí tuệ nhân tạo của chúng tôi đã gắn cờ nó là đáng ngờ và các nhà nghiên cứu bảo mật của chúng tôi đã xác nhận rằng nó chứa phần mềm độc hại và nó chứa các nguồn của một gói khác có tên là pystyle . Cả hai thư viện được tác giả bởi billythegoat356 , hay còn gọi là BillyTheGoat, hay còn gọi là BillyV3 (với sự đóng góp của loTus04 và BlueRed). Tác giả đến từ Pháp này (ít nhất đó là vị trí của anh ấy trong GitHub và ngôn ngữ được nói qua các kênh Discord của anh ấy gợi ý) được ghi nhận là người đứng sau Hyperion , một trình mã hóa Python mà chúng tôi thường thấy trong phần mềm độc hại được tải lên gần đây, đồng thời là một trong những người tạo ra kẻ đánh cắp W4SP , một kẻ đánh cắp thông tin đã hoạt động từ tháng 7 trong một cuộc tấn công chuỗi cung ứng đang diễn ra để mở sổ đăng ký.


Kẻ đánh cắp W4SP tự hào về tính bền bỉ (nó được kích hoạt lại mỗi khi người dùng khởi động lại PC), che giấu (tác giả hứa rằng nó hoàn toàn không thể phát hiện được) và các kỹ thuật ghi mật mã để ẩn các tải trọng đa hình và có độ nhiễu cao trong một tệp hình ảnh. Phần mềm độc hại sẽ gửi lại tất cả tài khoản Discord, thẻ tín dụng, mật khẩu và ví tiền điện tử của nạn nhân cho kẻ tấn công thông qua địa chỉ webhook Discord được mã hóa cứng. Những kẻ xấu quan tâm đến phần mềm độc hại này đã mua nó bằng cách trả khoảng 20 USD bằng tiền điện tử.



Sau khi giải mã hình ảnh, một mã Python bị xáo trộn base64 ẩn được tiết lộ.



Ban đầu, pystyle không có bản chất độc hại—một gói vô hại đối với đầu ra của bảng điều khiển kiểu dáng và màu sắc để nâng cao khả năng đọc và trải nghiệm người dùng. Nhưng theo nghiên cứu của Phylum, khi nó trở nên phổ biến (gói này vẫn hoạt động trên PyPI và tích lũy được hơn 40.000 lượt tải xuống mỗi tháng), họ đã quyết định thêm phần mềm độc hại W4SP vào một vài bản phát hành.


Các gói nguồn mở như pystyle có thể hoạt động như tác nhân ngủ trong nhiều tháng chỉ để được tác giả của chính chúng kích hoạt sau đó vì mục đích xấu. Một động thái mạo hiểm, vì gói phổ biến của họ có thể bị phát hiện bởi các nhà nghiên cứu bảo mật như chúng tôi, những người sẽ báo cáo gói đó là độc hại và sẽ bị gỡ xuống vĩnh viễn. Đó là lý do tại sao họ thường tạo các gói mới thay vì bao gồm mã nguồn của một thư viện vô thưởng vô phạt, thêm một số loại tải trọng độc hại và tải nó lên dưới một cái tên mới: một cái gì đó chung chung, nghe có vẻ lành tính, trông có vẻ ngây thơ. Một cái tên chẳng hạn như pygradient .


Sau khi xem xét kỹ hơn với Carlos, chúng tôi nhận thấy phần mềm độc hại đột biến proto-RAT này thiếu một số tính năng của phiên bản tháng 12: mặc dù nó cũng khởi chạy tập lệnh PowerShell và lấy cắp dữ liệu nhạy cảm nhưng nó không sử dụng tải trọng được mã hóa base64 hoặc danh sách cho phép txt để tránh tự lây nhiễm. Theo một cách nào đó, nó là một biến thể nhẹ nhàng hơn, ít phức tạp hơn.


Nhưng sau đó, chúng tôi đã xem xét các gói được tải lên vào đầu tháng 11, bao gồm paintpy , devicespoofdevicespoofer , và sau khi tìm hiểu sâu hơn, chúng tôi đã xác nhận được sự nghi ngờ của mình: phần mềm độc hại đang thực sự phát triển.

Phần mềm độc hại bắt chước

Mặc dù BillyTheGoat đã không hoạt động trên GitHub kể từ tháng 11, nhưng chúng tôi vẫn tìm thấy phần mềm độc hại dựa trên những sáng tạo của anh ấy hoặc ăn cắp trực tiếp từ chúng, chủ yếu bởi một người dùng có vẻ như sống ở Bồ Đào Nha có tên là zeeckt .


Người dùng này đã tải lên một gói đã bị xóa gần đây trong PyPI có tên là pystilez , được ghi có sai cho BillyTheGoat với giao diện trông như thế nào bắt đầu khai thác —một kỹ thuật để tăng danh tiếng cho gói mới của họ bằng cách liên kết gói đó với thư viện GitHub phổ biến, do đó được liên kết với hàng trăm ngôi sao và nhánh của nó.


dấu kiểm đã được theo dõi kẻ xấu này sau khi tìm thấy một cuộc tấn công W4SP trong gói có tên apicolor (cùng với các biến thể có tên tương tự) bao gồm liên kết máy chủ Discord trong mã độc của chúng. Hồ sơ quản trị viên được liên kết với tài khoản Steam đã được xác minh và tên “zeeckt” xuất hiện dưới dạng một trong những bí danh Steam của kẻ tấn công.


điểm kiểm tra cũng báo cáo rằng tác nhân đe dọa này đang tạo người dùng giả bằng cách sao chép hồ sơ của các tài khoản GitHub phổ biến để tăng tính hợp pháp. Và một trong những nạn nhân của họ đã quyết định tạo ra một video trên YouTube cảnh báo mọi người về cuộc tấn công này sau khi rơi vào một trong những hồ sơ giả mạo của họ.


Một nhà nghiên cứu bảo mật đã đăng một trong các tải trọng của zeeckt cho mục đích giáo dục và anh ấy đã nhận được một câu trả lời thú vị từ đồng tác giả của kẻ đánh cắp W4SP:




Thật trớ trêu cho kẻ trộm của bạn lại bị đánh cắp.


Cũng chính tác giả đó, có vẻ là một nhà phát triển Python 17 tuổi, đã nhắc lại sự thất vọng của mình trong tệp README trên hồ sơ GitHub của mình:



Chúng tôi không biết chính xác mã độc zeeckt đã đánh cắp từ những kẻ xấu khác, nhưng có một điều chắc chắn: tên đó tiếp tục xuất hiện trong các chiến dịch phần mềm độc hại trên khắp các cơ quan đăng ký nguồn mở.


Các biến thể lén lút gặm nhấm sự giàu có tiền điện tử của bạn

Carlos gần đây đã tìm thấy thêm bốn gói bằng cách zeeckt : forenitq , forenith , forenityforenitz . Sau khi điều tra thêm, anh ấy đã gắn thẻ chúng là độc hại và báo cáo chúng với PyPI để gỡ xuống. Trường hợp nhanh nhất mất khoảng 20 phút từ khi xuất bản đến khi xóa.


Nhìn vào setup[.]py trong forenitq , Carlos đã tìm thấy tải trọng giai đoạn đầu sau:




Kẻ tấn công tạo ba tệp tạm thời tải xuống và thực thi các tệp nhị phân Windows từ các URL cụ thể bằng cách sử dụng lệnh "bắt đầu". Mặc dù sên /rat/clip gợi ý về mục đích xấu, chúng tôi không thể xác nhận giả định đó mà không xem xét kỹ lưỡng.


Tại thời điểm viết bài này, trang được lưu trữ tại hxxp://20[.]226[.]18[.]203 vẫn đang hoạt động và nó chỉ hiển thị liên kết tới lời mời Discord đã hết hạn hoặc ở chế độ riêng tư.


Carlos nhận thấy rằng gói hàng được coi là phổ biến màu sắc gói, sử dụng siêu dữ liệu của chúng cho nỗ lực StarJacking có thể xảy ra.


Sau khi gỡ rối mã nguồn tệp RAT, anh ta tìm thấy một dòng tải một kẻ xâm nhập clipboard có thể xảy ra, nhưng các chi tiết cụ thể của nó được mã hóa base64:


Sau khi giải mã, chúng tôi nhận được mã Python được thiết kế để chiếm quyền điều khiển khay nhớ tạm của nạn nhân nhằm thay thế địa chỉ ví tiền điện tử dự định bằng địa chỉ của kẻ tấn công:


Nó tìm kiếm các mẫu được chỉ định như bitcoin (bc1), Ethereum (0x), Monero (4) và l itecoin (L hoặc M hoặc 3) và khi tìm thấy một mẫu, nó sẽ thay thế địa chỉ dự định bằng địa chỉ ví tiền điện tử của kẻ tấn công .


Mã này sử dụng kẹp kim loại thư viện để sao chép và dán dữ liệu clipboard. Nó sẽ cài đặt thư viện nếu nó chưa được cài đặt và sau đó sao chép địa chỉ ví tiền điện tử vào khay nhớ tạm. Sau đó, mã được đặt trên một vòng lặp liên tục để theo dõi khay nhớ tạm cho các mẫu địa chỉ ví.


Ngoài ra, chúng tôi đã phát hiện thêm nhiều kỹ thuật mà người đột biến RAT này sử dụng để tránh bị phát hiện: tải trọng giai đoạn một được thêm vào tệp forenitq/ansi[.]py thay vì setup[.]py và tải trọng đa hình giai đoạn hai thay đổi mỗi khi bạn chạy nhị phân.


Kẻ tấn công cũng đã thêm một lệnh và điều khiển mới với một menu trợ giúp rất đầy đủ—và lần này là fala português:



Như bạn có thể thấy, các tác nhân độc hại rất mong muốn đánh cắp tiền điện tử và thông tin đăng nhập hệ thống của bạn để tiếp tục thâm nhập vào cơ sở hạ tầng của bạn. Phần mềm độc hại RAT của họ tiếp tục biến đổi để trở nên lẩn tránh hơn và gây hại cho các nhà phát triển. Vì vậy, nếu bạn không bảo vệ chuỗi cung ứng phần mềm của mình ngay hôm nay, hãy cân nhắc thực hiện hành động đó càng sớm càng tốt.


IOC (Các chỉ số thỏa hiệp)

hxxp://20[.]226[.]18[.]203/inject/tCxFLYLT6ViY9ZnP

hxxp://20[.]226[.]18[.]203/clip

hxxp://20[.]226[.]18[.]203/rat