Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần I

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần I

Với bài viết này, chúng tôi bắt đầu một loạt ấn phẩm về phần mềm độc hại khó nắm bắt. Các chương trình hack không dùng tệp, còn được gọi là chương trình hack không cần dùng tệp, thường sử dụng PowerShell trên hệ thống Windows để chạy âm thầm các lệnh nhằm tìm kiếm và trích xuất nội dung có giá trị. Việc phát hiện hoạt động của hacker mà không cần file độc ​​hại là một việc khó khăn, bởi... phần mềm chống vi-rút và nhiều hệ thống phát hiện khác hoạt động dựa trên phân tích chữ ký. Nhưng tin tốt là phần mềm như vậy có tồn tại. Ví dụ, Hệ thống UBA, có khả năng phát hiện hoạt động độc hại trong hệ thống tập tin.

Khi tôi mới bắt đầu nghiên cứu về chủ đề hacker xấu tính, không sử dụng các phương pháp lây nhiễm truyền thốngNhưng chỉ với những công cụ, phần mềm có sẵn trên máy nạn nhân, tôi không hề biết rằng đây sẽ sớm trở thành phương thức tấn công phổ biến. Chuyên gia bảo mật Nóirằng điều này đang trở thành một xu hướng, và tiêu đề bài viết đáng sợ - xác nhận điều này. Vì vậy, tôi quyết định thực hiện một loạt ấn phẩm về chủ đề này.

PowerShell vĩ đại và mạnh mẽ

Tôi đã viết về một số ý tưởng này trước đây trong Loạt bài làm xáo trộn PowerShell, nhưng dựa nhiều hơn vào một khái niệm lý thuyết. Sau này tôi tình cờ gặp trang web để phân tích lai, nơi bạn có thể tìm thấy các mẫu phần mềm độc hại “bị bắt” trong tự nhiên. Tôi quyết định thử sử dụng trang web này để tìm các mẫu phần mềm độc hại không có tệp. Và tôi đã thành công. Nhân tiện, nếu bạn muốn thực hiện chuyến thám hiểm săn tìm phần mềm độc hại của riêng mình, bạn sẽ phải được trang web này xác minh để họ biết bạn đang thực hiện công việc với tư cách là một chuyên gia mũ trắng. Là một blogger bảo mật, tôi đã vượt qua nó mà không thắc mắc. Tôi chắc chắn bạn cũng có thể.

Ngoài các mẫu, trên trang web, bạn có thể xem những chương trình này làm gì. Phân tích kết hợp chạy phần mềm độc hại trong hộp cát riêng của nó và giám sát các cuộc gọi hệ thống, các quy trình đang chạy và hoạt động mạng, đồng thời trích xuất các chuỗi văn bản đáng ngờ. Đối với các tệp nhị phân và các tệp thực thi khác, tức là. khi bạn thậm chí không thể nhìn vào mã cấp cao thực tế, phân tích kết hợp sẽ quyết định xem phần mềm có độc hại hay chỉ đáng ngờ dựa trên hoạt động trong thời gian chạy của nó. Và sau đó mẫu đã được đánh giá.

Trong trường hợp PowerShell và các tập lệnh mẫu khác (Visual Basic, JavaScript, v.v.), tôi có thể nhìn thấy chính mã đó. Ví dụ: tôi đã xem qua phiên bản PowerShell này:

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần I

Bạn cũng có thể chạy PowerShell ở dạng mã hóa base64 để tránh bị phát hiện. Lưu ý việc sử dụng các tham số Không tương tác và Ẩn.

Nếu bạn đã đọc các bài đăng của tôi về kỹ thuật che giấu mã nguồn thì bạn biết rằng tùy chọn -e chỉ định rằng nội dung được mã hóa base64. Nhân tiện, phân tích kết hợp cũng giúp giải quyết vấn đề này bằng cách giải mã lại mọi thứ. Nếu bạn muốn thử tự mình giải mã base64 PowerShell (sau đây gọi là PS), bạn cần chạy lệnh này:

 [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))

Đi sâu hơn

Tôi đã giải mã tập lệnh PS của chúng tôi bằng phương pháp này, bên dưới là văn bản của chương trình, mặc dù đã được tôi sửa đổi một chút:

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần I

Lưu ý rằng tập lệnh được gắn với ngày 4 tháng 2017 năm XNUMX và truyền cookie phiên.

Tôi đã viết về phong cách tấn công này trong Chuỗi xáo trộn PS, trong đó tập lệnh được mã hóa base64 tự tải mất tích phần mềm độc hại từ một trang web khác, sử dụng đối tượng WebClient của thư viện .Net Framework để thực hiện công việc nặng nhọc.

nó làm gì?

Để phần mềm bảo mật quét tường lửa hoặc nhật ký sự kiện Windows, mã hóa base64 sẽ ngăn chuỗi "WebClient" bị phát hiện bởi mẫu văn bản thuần túy nhằm bảo vệ khỏi việc thực hiện yêu cầu web như vậy. Và vì tất cả phần mềm độc hại “xấu xa” sau đó sẽ được tải xuống và chuyển vào PowerShell của chúng tôi, nên cách tiếp cận này cho phép chúng tôi hoàn toàn tránh bị phát hiện. Hay đúng hơn, đó là những gì tôi nghĩ lúc đầu.

Hóa ra là khi bật Ghi nhật ký nâng cao Windows PowerShell (xem bài viết của tôi), bạn sẽ có thể thấy dòng đã tải trong nhật ký sự kiện. tôi giống như và những người khác ) Tôi nghĩ Microsoft nên kích hoạt mức ghi nhật ký này theo mặc định. Do đó, khi bật tính năng ghi nhật ký mở rộng, chúng ta sẽ thấy trong nhật ký sự kiện Windows một yêu cầu tải xuống đã hoàn thành từ tập lệnh PS theo ví dụ mà chúng ta đã thảo luận ở trên. Vì vậy, việc kích hoạt nó là điều hợp lý, bạn có đồng ý không?

Hãy thêm các kịch bản bổ sung

Tin tặc khéo léo che giấu các cuộc tấn công PowerShell trong macro Microsoft Office được viết bằng Visual Basic và các ngôn ngữ kịch bản khác. Ý tưởng là nạn nhân nhận được một tin nhắn, chẳng hạn như từ dịch vụ chuyển phát, có báo cáo đính kèm ở định dạng .doc. Bạn mở tài liệu chứa macro này và cuối cùng nó sẽ khởi chạy chính PowerShell độc hại.

Thông thường, bản thân tập lệnh Visual Basic được làm xáo trộn để nó có thể tự do trốn tránh các chương trình quét phần mềm chống vi-rút và phần mềm độc hại khác. Theo tinh thần nêu trên, tôi quyết định viết mã PowerShell ở trên bằng JavaScript như một bài tập. Dưới đây là kết quả công việc của tôi:

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần I

JavaScript bị xáo trộn ẩn PowerShell của chúng tôi. Hacker thực sự làm điều này một hoặc hai lần.

Đây là một kỹ thuật khác mà tôi thấy phổ biến trên web: sử dụng Wscript.Shell để chạy PowerShell được mã hóa. Nhân tiện, bản thân JavaScript là có nghĩa phân phối phần mềm độc hại. Nhiều phiên bản Windows đã tích hợp sẵn Windows Script Host, bản thân nó có thể chạy JS.
Trong trường hợp của chúng tôi, tập lệnh JS độc hại được nhúng dưới dạng tệp có phần mở rộng .doc.js. Windows thường sẽ chỉ hiển thị hậu tố đầu tiên nên nạn nhân sẽ thấy nó dưới dạng tài liệu Word.

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần I

Biểu tượng JS chỉ xuất hiện trong biểu tượng cuộn. Không có gì ngạc nhiên khi nhiều người mở tệp đính kèm này vì nghĩ rằng đó là tài liệu Word.

Trong ví dụ của tôi, tôi đã sửa đổi PowerShell ở trên để tải tập lệnh xuống từ trang web của mình. Tập lệnh PS từ xa chỉ in "Phần mềm độc hại độc ác". Như bạn có thể thấy, anh ta không hề xấu xa chút nào. Tất nhiên, các hacker thực sự quan tâm đến việc giành quyền truy cập vào máy tính xách tay hoặc máy chủ, chẳng hạn như thông qua shell lệnh. Trong bài viết tiếp theo, tôi sẽ hướng dẫn bạn cách thực hiện việc này bằng PowerShell Empire.

Tôi hy vọng rằng trong bài viết giới thiệu đầu tiên chúng ta không đi quá sâu vào chủ đề. Bây giờ tôi sẽ để bạn tạm nghỉ và lần sau chúng ta sẽ bắt đầu xem xét các ví dụ thực tế về các cuộc tấn công sử dụng phần mềm độc hại không dùng tệp mà không có bất kỳ lời giới thiệu hoặc sự chuẩn bị không cần thiết nào.

Nguồn: www.habr.com

Thêm một lời nhận xét