Tấn công Windows
Số trang: 7
Loại file: pdf
Dung lượng: 134.44 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Giới thiệu Bài viết này minh hoạ một phát sinh tấn công mới đến Microsoft Windows, và có thể đến các hệ thống thông điệp khác (message-based systems). Những lỗi được minh hoạ trong bài viết này, ở thời điểm bài này được viết, thuộc dạng không thể chữa được. Giải pháp duy nhất để loại trừ những loại tấn công này đòi hỏi chức năng không có sẵn trong hệ điều hành Windows, và ngay cả trong những ứng hoạt khác cho hệ Windows. Lâu nay Microsoft biết rõ những lỗi này; khi tôi cảnh báo họ loại tấn...
Nội dung trích xuất từ tài liệu:
Tấn công Windows Những trận tấn công đầy hiểm họa - Cách phá vỡ Windows Giới thiệu Bài viết này minh hoạ một phát sinh tấn công mới đến Microsoft Windows, và có thể đến các hệ thống thông điệp khác (message-based systems). Những lỗi được minh hoạ trong bài viết này, ở thời điểm bài này được viết, thuộc dạng không thể chữa được. Giải pháp duy nhất để loại trừ những loại tấn công này đòi hỏi chức năng không có sẵn trong hệ đ iều hành Windows, và ngay cả trong những ứng hoạt khác cho hệ Windows. Lâu nay Microsoft biết rõ những lỗi này; khi tôi cảnh báo họ loại tấn công trên, họ cho biết rằng họ không xếp loại phương thức tấn công đó như một dạng lỗi của Windows - bạn có thể xem bức điện thư ở đây -1-. Khảo cứu trên bùng ra từ lời phát biểu của ông Jim Allchin, phó chủ tịch Microsoft, cho rằng có quá nhiều lỗi trong hệ Windows đến nỗi, nếu mã nguồn của Windows bị tiết lộ sẽ trở nên mối đe doạ đến an ninh quốc gia. Ông ta đề cập đến “xếp hàng thông điệp” (Message Queuing), và ngay sau đó hối hận vì đã đề cập đến vấn đề này. Tuy nhiên, dựa trên số lượng khảo sát trên toàn thế giới hiện nay đến vấn đề trên sau lời phát biểu của ông Allchin, đây là lúc cộng đồng “mũ trắng” -2- lột tả thực trạng này. Bài viết này thuộc dạng từng bước một chỉ dẫn cách khai thác một điển hình của lỗi ở trên. Có nhiều phương pháp tấn công khác đã được bàn thảo, tuy nhiên ví dụ của các loại tấn công khác không được trình bày ở đây. Có rất nhiều cách khai thác các lỗi trên và nhiều biến thái của từng giai đoạn được trình bày. Ðây chỉ là một ví dụ. Nền tảng - hệ thống thông điệp của Win32 Các nội ứng trình của Windows hoàn toàn được đ iều hành xuyên qua phương pháp ứng dụng thông điệp. Khi một phím được nhấn, một thông điệp được gởi đến khung động hiện tại (current active window), thông điệp này cho biết một phím nào đó đã được “nhấn”. Khi Windows xác định một ứng trình cần vẽ lại phạm vi của client, Windows gởi một thông đ iệp đến ứng trình này. Thật ra, khi một biến cố (event) xảy ra và một ứng trình nào đ ó cần biết, nó sẽ gởi đ i một thông điệp. Những thông đ iệp này được đặt vào một hàng đợi (queue) và được ứng trình tuần tự xử lý. Ðây là một cơ chế hết sức đáng tin cậy để điều hành các ứng trình. Tuy nhiên, cơ chế dùng để điều hành các thông điệp trên Win32 bị lỗi. Bất cứ một ứng trình nào cũng có thể gởi thông điệp đến bất cứ khung (window) nào trên cùng desktop, bất chấp ứng trình gởi thông điệp có làm chủ khung đó hay không, và bất chấp ứng trình được nhận thông điệp có muốn nhận các thông điệp này hay không. Hoàn toàn không có một cơ chế nào dùng để xác minh nguồn gốc của các thông điệp; không có cách nào để phân biệt sự khác nhau giữa một thông đ iệp được gởi từ một ứng trình hiểm độc và một thông điệp từ lõi (kernel) của Windows. Ðó là thiếu sót cơ chế xác minh mà chúng ta sẽ khai thác với chủ đ ích: sử dụng các thông điệp này để thao túng các khung và các quy trình làm chủ các window trong Windows. Tổng quát Trong ví dụ này, tôi sẽ khai thác Network Associate VirusScan phiên bản 4.5.1, chạy trên Windows 2000 Professional. Tôi truy nhập như “guest” và VirusScan Console chạy trên desktop là “LocalSystem”, mục đích dùng để lừa VirusScan chạy mã riêng để gia tăng chủ quyền cho tôi. Mục đích này đạt được qua nhiều phân đoạn đơn giản: 1. Tìm một khung thích hợp trong VirusScan (một hòm chỉnh [edit box] là hoàn hảo), và lấy một khung đó để xử dụng. 2. Bỏ đi giới hạn phân độ trong edit box để tôi có thể đánh vào một số lượng dữ kiện tùy ý. 3. Dán vào một số mã nhị phân (binary code). 4. Buộc VirusScan thi triển mã của tôi (như LocalSystem) Những bước trên thực sự rất dễ làm. Windows cung cấp trọn bộ các chức năng tiện dụng mà chúng ta cần. Tôi viết một ứng trình nhỏ gọi là Shatter -3- nó thực hiện chức năng gia tăng chủ quyền này. Bạn cũng sẽ cần một hex editor có khả năng chép dữ liệu nhị phân vào clipboard (tôi dùng UltraEdit (www.ultraedit.com)), và một debugger (tôi dùng WinDbg (www.microsoft.com/ddk/debugging/installx86.asp)). XIN NHỚ: Vài bộ quét virus cảnh báo người dùng virus “Win32/Beavuh” trong hồ sơ sploit.bin thuộc phần nén Shatter.zip. Ðây không phải là virus. Bộ quét đánh dấu đúng hồ sơ này (sploit.bin) - mã nguồn của hồ sơ này được thiết kế dùng để mở một command shell và tra nó vào một socket của mạng. Một cách tổng quát mà nói, làm như vậy không tốt (đối với bảo mật), bởi thế bộ quét có phản ứng đúng trong quy trình tạo cảnh báo. Mã nguồn này quả thật được thiết kế với dụng ý đen tối, tuy nhiên bộ quét nhận diện nó như một thứ virus là sai. Các thông điệp của Windows bao gồm 3 phần, một phần nhận diện cho thông đ iệp và hai tham số. Các tham số được sử dụng một cách khác nhau tùy thuộc vào thông đ iệp gì được gởi. Ðiều này tạo điều kiện đ ơn giản hơn cho chúng ta, vì chúng ta chỉ phải lo đến 4 điểm: một điều dụng khung (window handle) để nhận thông điệp, một thông đ iệp và hai tham số. Hãy thử xem chuyện này dễ như thế nào.. Bước 1: Tìm khung Chúng ta cần xác định một loại quản trị đ iều chỉnh (edit control) nào đó - một nơi chúng ta có thể đánh d ữ kiện vào. Ðừng ngại nếu bị giới hạn, chúng ta có thể hoá giải vấn đề này. Khởi động VirusScan console và đánh vào nút đầu tiên - “New Task”. Một cách thuận tiện, trên đầu của dialog này hiện ra một edit box. Cái này tuyệt hảo. Bây giờ, chúng ta cần một đ iều dụng (handle) để chúng ta có thể tương tác (interact) với nó. Windows sẵn sàng cho chúng ta một handle đến bất cứ một window nào chúng ta muốn - chúng ta chỉ cần hỏi nó. Khởi động Shatter và điều chỉnh vị trí để bạn có thể thấy được VirusScan edit control bên dưới. Bấm vào “Get cursor window” - Shatter sẽ thêm và một đơn vị trong hòm danh sách bên dưới tương tự như “102f2 - Get cursor window”. Cái này là do chúng ta yêu cấu Windows cho chúng ta một handle đến window trực tiếp phía dư ới cursor. Chuyển cursor sang VirusScan edit control và đánh phím “Space” để gọi Shatter một lần nữa. Shatter sẽ xoá hòm danh sách và cho bạn biết handle của mục ...
Nội dung trích xuất từ tài liệu:
Tấn công Windows Những trận tấn công đầy hiểm họa - Cách phá vỡ Windows Giới thiệu Bài viết này minh hoạ một phát sinh tấn công mới đến Microsoft Windows, và có thể đến các hệ thống thông điệp khác (message-based systems). Những lỗi được minh hoạ trong bài viết này, ở thời điểm bài này được viết, thuộc dạng không thể chữa được. Giải pháp duy nhất để loại trừ những loại tấn công này đòi hỏi chức năng không có sẵn trong hệ đ iều hành Windows, và ngay cả trong những ứng hoạt khác cho hệ Windows. Lâu nay Microsoft biết rõ những lỗi này; khi tôi cảnh báo họ loại tấn công trên, họ cho biết rằng họ không xếp loại phương thức tấn công đó như một dạng lỗi của Windows - bạn có thể xem bức điện thư ở đây -1-. Khảo cứu trên bùng ra từ lời phát biểu của ông Jim Allchin, phó chủ tịch Microsoft, cho rằng có quá nhiều lỗi trong hệ Windows đến nỗi, nếu mã nguồn của Windows bị tiết lộ sẽ trở nên mối đe doạ đến an ninh quốc gia. Ông ta đề cập đến “xếp hàng thông điệp” (Message Queuing), và ngay sau đó hối hận vì đã đề cập đến vấn đề này. Tuy nhiên, dựa trên số lượng khảo sát trên toàn thế giới hiện nay đến vấn đề trên sau lời phát biểu của ông Allchin, đây là lúc cộng đồng “mũ trắng” -2- lột tả thực trạng này. Bài viết này thuộc dạng từng bước một chỉ dẫn cách khai thác một điển hình của lỗi ở trên. Có nhiều phương pháp tấn công khác đã được bàn thảo, tuy nhiên ví dụ của các loại tấn công khác không được trình bày ở đây. Có rất nhiều cách khai thác các lỗi trên và nhiều biến thái của từng giai đoạn được trình bày. Ðây chỉ là một ví dụ. Nền tảng - hệ thống thông điệp của Win32 Các nội ứng trình của Windows hoàn toàn được đ iều hành xuyên qua phương pháp ứng dụng thông điệp. Khi một phím được nhấn, một thông điệp được gởi đến khung động hiện tại (current active window), thông điệp này cho biết một phím nào đó đã được “nhấn”. Khi Windows xác định một ứng trình cần vẽ lại phạm vi của client, Windows gởi một thông đ iệp đến ứng trình này. Thật ra, khi một biến cố (event) xảy ra và một ứng trình nào đ ó cần biết, nó sẽ gởi đ i một thông điệp. Những thông đ iệp này được đặt vào một hàng đợi (queue) và được ứng trình tuần tự xử lý. Ðây là một cơ chế hết sức đáng tin cậy để điều hành các ứng trình. Tuy nhiên, cơ chế dùng để điều hành các thông điệp trên Win32 bị lỗi. Bất cứ một ứng trình nào cũng có thể gởi thông điệp đến bất cứ khung (window) nào trên cùng desktop, bất chấp ứng trình gởi thông điệp có làm chủ khung đó hay không, và bất chấp ứng trình được nhận thông điệp có muốn nhận các thông điệp này hay không. Hoàn toàn không có một cơ chế nào dùng để xác minh nguồn gốc của các thông điệp; không có cách nào để phân biệt sự khác nhau giữa một thông đ iệp được gởi từ một ứng trình hiểm độc và một thông điệp từ lõi (kernel) của Windows. Ðó là thiếu sót cơ chế xác minh mà chúng ta sẽ khai thác với chủ đ ích: sử dụng các thông điệp này để thao túng các khung và các quy trình làm chủ các window trong Windows. Tổng quát Trong ví dụ này, tôi sẽ khai thác Network Associate VirusScan phiên bản 4.5.1, chạy trên Windows 2000 Professional. Tôi truy nhập như “guest” và VirusScan Console chạy trên desktop là “LocalSystem”, mục đích dùng để lừa VirusScan chạy mã riêng để gia tăng chủ quyền cho tôi. Mục đích này đạt được qua nhiều phân đoạn đơn giản: 1. Tìm một khung thích hợp trong VirusScan (một hòm chỉnh [edit box] là hoàn hảo), và lấy một khung đó để xử dụng. 2. Bỏ đi giới hạn phân độ trong edit box để tôi có thể đánh vào một số lượng dữ kiện tùy ý. 3. Dán vào một số mã nhị phân (binary code). 4. Buộc VirusScan thi triển mã của tôi (như LocalSystem) Những bước trên thực sự rất dễ làm. Windows cung cấp trọn bộ các chức năng tiện dụng mà chúng ta cần. Tôi viết một ứng trình nhỏ gọi là Shatter -3- nó thực hiện chức năng gia tăng chủ quyền này. Bạn cũng sẽ cần một hex editor có khả năng chép dữ liệu nhị phân vào clipboard (tôi dùng UltraEdit (www.ultraedit.com)), và một debugger (tôi dùng WinDbg (www.microsoft.com/ddk/debugging/installx86.asp)). XIN NHỚ: Vài bộ quét virus cảnh báo người dùng virus “Win32/Beavuh” trong hồ sơ sploit.bin thuộc phần nén Shatter.zip. Ðây không phải là virus. Bộ quét đánh dấu đúng hồ sơ này (sploit.bin) - mã nguồn của hồ sơ này được thiết kế dùng để mở một command shell và tra nó vào một socket của mạng. Một cách tổng quát mà nói, làm như vậy không tốt (đối với bảo mật), bởi thế bộ quét có phản ứng đúng trong quy trình tạo cảnh báo. Mã nguồn này quả thật được thiết kế với dụng ý đen tối, tuy nhiên bộ quét nhận diện nó như một thứ virus là sai. Các thông điệp của Windows bao gồm 3 phần, một phần nhận diện cho thông đ iệp và hai tham số. Các tham số được sử dụng một cách khác nhau tùy thuộc vào thông đ iệp gì được gởi. Ðiều này tạo điều kiện đ ơn giản hơn cho chúng ta, vì chúng ta chỉ phải lo đến 4 điểm: một điều dụng khung (window handle) để nhận thông điệp, một thông đ iệp và hai tham số. Hãy thử xem chuyện này dễ như thế nào.. Bước 1: Tìm khung Chúng ta cần xác định một loại quản trị đ iều chỉnh (edit control) nào đó - một nơi chúng ta có thể đánh d ữ kiện vào. Ðừng ngại nếu bị giới hạn, chúng ta có thể hoá giải vấn đề này. Khởi động VirusScan console và đánh vào nút đầu tiên - “New Task”. Một cách thuận tiện, trên đầu của dialog này hiện ra một edit box. Cái này tuyệt hảo. Bây giờ, chúng ta cần một đ iều dụng (handle) để chúng ta có thể tương tác (interact) với nó. Windows sẵn sàng cho chúng ta một handle đến bất cứ một window nào chúng ta muốn - chúng ta chỉ cần hỏi nó. Khởi động Shatter và điều chỉnh vị trí để bạn có thể thấy được VirusScan edit control bên dưới. Bấm vào “Get cursor window” - Shatter sẽ thêm và một đơn vị trong hòm danh sách bên dưới tương tự như “102f2 - Get cursor window”. Cái này là do chúng ta yêu cấu Windows cho chúng ta một handle đến window trực tiếp phía dư ới cursor. Chuyển cursor sang VirusScan edit control và đánh phím “Space” để gọi Shatter một lần nữa. Shatter sẽ xoá hòm danh sách và cho bạn biết handle của mục ...
Tìm kiếm theo từ khóa liên quan:
bảo vệ máy tính thủ thuật máy tính bảo mật dữ liệu tấn công Windows Cách phá vỡ WindowsTài liệu liên quan:
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 321 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 314 0 0 -
74 trang 256 4 0
-
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 220 0 0 -
Một số phương pháp bảo mật dữ liệu và an toàn cho máy chủ
5 trang 215 0 0 -
Phần III: Xử lý sự cố Màn hình xanh
3 trang 211 0 0 -
Giáo trình Bảo trì hệ thống và cài đặt phần mềm
68 trang 209 0 0 -
Tổng hợp 30 lỗi thương gặp cho những bạn mới sử dụng máy tính
9 trang 208 0 0 -
Sao lưu dữ liệu Gmail sử dụng chế độ Offline
8 trang 205 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 204 0 0