Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần IV: Trường tài liệu DDE và Word

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần IV: Trường tài liệu DDE và Word

Bài viết này là một phần của loạt bài Fileless Malware. Tất cả các phần khác của bộ truyện:

Trong bài viết này, tôi sẽ đi sâu vào một kịch bản tấn công không dùng tệp nhiều giai đoạn thậm chí còn phức tạp hơn bằng cách ghim vào hệ thống. Nhưng sau đó tôi gặp phải một cuộc tấn công cực kỳ đơn giản, không cần mã—không cần macro Word hoặc Excel! Và điều này chứng tỏ hiệu quả hơn nhiều giả thuyết ban đầu của tôi làm nền tảng cho loạt bài viết này: phá vỡ vòng ngoài của bất kỳ tổ chức nào không phải là một nhiệm vụ khó khăn chút nào.

Cuộc tấn công đầu tiên tôi sẽ mô tả khai thác lỗ hổng Microsoft Word dựa trên lỗi thời giao thức trao đổi dữ liệu động (DDE). Cô ấy đã đã sửa. Lỗ hổng thứ hai khai thác một lỗ hổng tổng quát hơn trong Microsoft COM và khả năng chuyển đối tượng.

Quay lại tương lai với DDE

Có ai còn nhớ DDE không? Có lẽ không nhiều. Đó là một trong những lần đầu tiên giao thức liên lạc giữa các quá trình cho phép các ứng dụng và thiết bị truyền dữ liệu.

Bản thân tôi cũng hơi quen vì tôi từng kiểm tra và thử nghiệm các thiết bị viễn thông. Vào thời điểm đó, DDE đã cho phép các nhà điều hành trung tâm cuộc gọi chuyển ID người gọi sang ứng dụng CRM, ứng dụng này cuối cùng đã mở được thẻ khách hàng. Để thực hiện việc này, bạn phải kết nối cáp RS-232 giữa điện thoại và máy tính. Đó là những ngày!

Hóa ra, Microsoft Word vẫn ủng hộ ĐDE.

Điều khiến cuộc tấn công này hiệu quả mà không cần mã là bạn có thể truy cập giao thức DDE trực tiếp từ các trường tự động trong tài liệu Word (ngả mũ trước SensePost vì nghiên cứu và xuất bản về nó).

mã trường là một tính năng cổ xưa khác của MS Word cho phép bạn thêm văn bản động và một chút lập trình vào tài liệu của mình. Ví dụ rõ ràng nhất là trường số trang, có thể được chèn vào chân trang bằng giá trị {PAGE *MERGEFORMAT}. Điều này cho phép số trang được tạo tự động.

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần IV: Trường tài liệu DDE và Word
Gợi ý: Bạn có thể tìm thấy mục menu Trường trong phần Chèn.

Tôi nhớ rằng lần đầu tiên tôi phát hiện ra tính năng này trong Word, tôi đã rất ngạc nhiên. Và cho đến khi bản vá vô hiệu hóa nó, Word vẫn hỗ trợ tùy chọn trường DDE. Ý tưởng là DDE sẽ cho phép Word giao tiếp trực tiếp với ứng dụng để sau đó nó có thể chuyển kết quả đầu ra của chương trình thành một tài liệu. Đó là một công nghệ còn rất non trẻ vào thời điểm đó - hỗ trợ trao đổi dữ liệu với các ứng dụng bên ngoài. Sau đó nó được phát triển thành công nghệ COM mà chúng ta sẽ xem xét bên dưới.

Cuối cùng, tin tặc nhận ra rằng ứng dụng DDE này có thể là một shell lệnh, tất nhiên sẽ khởi chạy PowerShell và từ đó tin tặc có thể làm bất cứ điều gì chúng muốn.
Ảnh chụp màn hình bên dưới cho thấy cách tôi sử dụng kỹ thuật lén lút này: một tập lệnh PowerShell nhỏ (sau đây gọi là PS) từ trường DDE tải một tập lệnh PS khác, khởi chạy giai đoạn thứ hai của cuộc tấn công.

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần IV: Trường tài liệu DDE và Word
Cảm ơn Windows vì cảnh báo bật lên rằng trường DDEAUTO tích hợp đang bí mật cố gắng khởi động shell

Phương pháp khai thác lỗ hổng ưa thích là sử dụng một biến thể có trường DDEAUTO, biến thể này tự động chạy tập lệnh khi mở Tài liệu văn bản.
Hãy suy nghĩ về những gì chúng ta có thể làm về điều này.

Ví dụ: với tư cách là một hacker mới vào nghề, bạn có thể gửi email lừa đảo, giả vờ rằng bạn đến từ Dịch vụ Thuế Liên bang và nhúng trường DDEAUTO bằng tập lệnh PS cho giai đoạn đầu tiên (về cơ bản là một trình nhỏ giọt). Và bạn thậm chí không cần phải thực hiện bất kỳ mã hóa macro thực sự nào, v.v., như tôi đã làm trong bài báo trước.
Nạn nhân mở tài liệu của bạn, tập lệnh nhúng được kích hoạt và tin tặc xâm nhập vào bên trong máy tính. Trong trường hợp của tôi, tập lệnh PS từ xa chỉ in một thông báo, nhưng nó có thể dễ dàng khởi chạy ứng dụng khách PS Empire, ứng dụng này sẽ cung cấp quyền truy cập shell từ xa.
Và trước khi nạn nhân kịp nói gì thì bọn hacker sẽ trở thành những thiếu niên giàu nhất làng.

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần IV: Trường tài liệu DDE và Word
Shell đã được tung ra mà không cần một chút mã hóa nào. Ngay cả một đứa trẻ cũng có thể làm được!

DDE và các trường

Microsoft sau đó đã vô hiệu hóa DDE trong Word, nhưng không phải trước khi công ty tuyên bố rằng tính năng này đơn giản là bị lạm dụng. Việc họ miễn cưỡng thay đổi bất cứ điều gì là điều dễ hiểu. Theo kinh nghiệm của tôi, bản thân tôi đã thấy một ví dụ trong đó việc cập nhật các trường khi mở tài liệu đã được bật, nhưng macro Word đã bị bộ phận CNTT vô hiệu hóa (nhưng hiển thị thông báo). Nhân tiện, bạn có thể tìm thấy các cài đặt tương ứng trong phần cài đặt Word.

Tuy nhiên, ngay cả khi bật tính năng cập nhật trường, Microsoft Word cũng sẽ thông báo thêm cho người dùng khi một trường yêu cầu quyền truy cập vào dữ liệu đã xóa, như trường hợp của DDE ở trên. Microsoft thực sự đang cảnh báo bạn.

Nhưng rất có thể người dùng vẫn sẽ bỏ qua cảnh báo này và kích hoạt cập nhật các trường trong Word. Đây là một trong những cơ hội hiếm hoi để cảm ơn Microsoft vì đã vô hiệu hóa tính năng DDE nguy hiểm.

Ngày nay việc tìm một hệ thống Windows chưa được vá lỗi khó đến mức nào?

Đối với thử nghiệm này, tôi đã sử dụng AWS Workspaces để truy cập máy tính để bàn ảo. Bằng cách này, tôi đã có được một máy ảo MS Office chưa được vá lỗi cho phép tôi chèn trường DDEAUTO. Tôi tin chắc rằng theo cách tương tự, bạn có thể tìm thấy các công ty khác chưa cài đặt các bản vá bảo mật cần thiết.

Bí ẩn của đồ vật

Ngay cả khi bạn đã cài đặt bản vá này, vẫn có những lỗ hổng bảo mật khác trong MS Office cho phép tin tặc thực hiện điều gì đó rất giống với những gì chúng tôi đã làm với Word. Trong tình huống tiếp theo chúng ta sẽ học sử dụng Excel làm mồi nhử cho một cuộc tấn công lừa đảo mà không cần viết bất kỳ mã nào.

Để hiểu kịch bản này, chúng ta hãy nhớ Mô hình đối tượng thành phần của Microsoft hoặc viết tắt là COM (Mô hình đối tượng thành phần).

COM đã xuất hiện từ những năm 1990 và được định nghĩa là "mô hình thành phần hướng đối tượng, trung lập về ngôn ngữ" dựa trên các lệnh gọi thủ tục từ xa RPC. Để hiểu chung về thuật ngữ COM, hãy đọc bài này trên StackOverflow.

Về cơ bản, bạn có thể coi ứng dụng COM là một tệp thực thi Excel hoặc Word hoặc một số tệp nhị phân khác chạy.

Hóa ra một ứng dụng COM cũng có thể chạy kịch bản - JavaScript hoặc VBScript. Về mặt kỹ thuật nó được gọi là chữ viết nhỏ. Bạn có thể đã thấy phần mở rộng .sct cho các tệp trong Windows - đây là phần mở rộng chính thức cho tập lệnh. Về cơ bản, chúng là mã tập lệnh được gói trong một trình bao bọc XML:

<?XML version="1.0"?>

<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[

var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");

]]>
</script>
</scriptlet>

Tin tặc và pentester đã phát hiện ra rằng có những tiện ích và ứng dụng riêng biệt trong Windows chấp nhận các đối tượng COM và theo đó, cả scriptlets.

Tôi có thể chuyển một scriptlet tới một tiện ích Windows được viết bằng VBS có tên là pubprn. Nó nằm sâu trong C:Windowssystem32Printing_Admin_Scripts. Nhân tiện, có những tiện ích Windows khác chấp nhận các đối tượng làm tham số. Trước tiên hãy xem ví dụ này.

Cuộc phiêu lưu của phần mềm độc hại khó nắm bắt, Phần IV: Trường tài liệu DDE và Word
Điều khá tự nhiên là shell có thể được khởi chạy ngay cả từ một tập lệnh in. Đi Microsoft!

Để thử nghiệm, tôi đã tạo một scriptlet từ xa đơn giản để khởi chạy một shell và in một thông báo vui nhộn, “Bạn vừa được viết kịch bản!” Về cơ bản, pubprn khởi tạo một đối tượng scriptlet, cho phép mã VBScript chạy một trình bao bọc. Phương pháp này mang lại lợi thế rõ ràng cho những hacker muốn lẻn vào và ẩn náu trên hệ thống của bạn.

Trong bài đăng tiếp theo, tôi sẽ giải thích cách tin tặc có thể khai thác tập lệnh COM bằng bảng tính Excel.

Đối với bài tập về nhà của bạn, hãy xem video này từ Derbycon 2016, giải thích chính xác cách tin tặc sử dụng tập lệnh. Và cũng đọc bài viết này về scriptlets và một số loại biệt danh.

Nguồn: www.habr.com

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