Shellcode là gì? – An Ninh Mạng

Bài viết Shellcode là gì? – An Ninh Mạng thuộc chủ đề về Câu Hỏi Quanh Ta đang được rất nhiều bạn lưu tâm đúng không nào !! Hôm nay, Hãy cùng sotaythongthai.vn tìm hiểu Shellcode là gì? – An Ninh Mạng trong bài viết hôm nay nha !
Các bạn đang xem bài viết : “Shellcode là gì? – An Ninh Mạng”


Shellcode là gì?Định nghĩa về shellcode (có rất nhiều định nghĩa)

  • Shellcode, là đoạn chương trình giúp bạn có được…một cái shell. Thế shell là cái gì? Theo Wikipedia, shell là một phần mềm cung cấp một giao diện dòng lệnh (command line interface) giúp bạn khả năng tương tác với hệ điều hành. Shell sẽ nhận lệnh của bạn, gửi xuống phần lõi (kernel) của hệ điều hành để thực thi, rồi nhận kết quả trả về và gửi lại cho bạn. khả năng hiểu nôm na rằng, có shell trên một máy tính nào đó có nghĩa là bạn có quyền thực thi lệnh trên máy tính đó.shellcode-metasploit
  • Shellcode là payload của các đoạn mã khai thác lỗ hổng bảo mật (exploit). Khi viết exploit, bạn phải giải quyết hai vấn đề chính: a) injection vector: xác định cách chèn shellcode vào trong hệ thống muốn tấn công; b) payload: xác định shellcode mà bạn muốn chạy trên hệ thống đó. Shellcode khả năng làm được mọi thứ, từ việc điều chỉnh giở hệ thống hay download và thực thi một file từ Internet cho đến gửi một email ra ngoài. Mục tiêu chính của các exploit là làm sao khả năng chạy được shellcode nằm trong phần payload của nó.
  • Shellcode còn được gọi là bytecode, tạm dịch là mã máy. Chúng ta đều biết mã máy là thứ ngôn ngữ duy nhất mà bộ vi xử lí khả năng hiểu được. Tất cả các chương trình viết bằng bất kì ngôn ngữ nào đều phải được biên dịch sang mã máy trước khi máy tính khả năng chạy được chương trình đó. Khác với các chương trình này, shellcode được thể hiện như một nhóm các mã máy, vì thế máy tính khả năng hiểu và thực thi trực tiếp shellcode mà không cần phải trải qua bất kì công đoạn biên dịch nào cả.

Như vậy muốn viết được shellcode, tôi phải học cách viết mã máy? Câu trả lời là không. Không ai trực tiếp viết ra mã máy khi muốn tạo shellcode. Thay vào đó, bạn khả năng: a) dùng các shellcode có sẵn trên Internet; b) viết bằng C, dịch sang Assembly rồi tiếp tục dịch sang mã máy; c) viết bằng Assembly rồi dịch luôn ra mã máy.Đối với cách a), tin vui là có rất nhiều thư viện shellcode trên Internet, thậm chí có một vài chương trình cho phép bạn tạo shellcode và viết exploit bằng một ngôn ngữ cao cấp như Python hay Ruby. Tin buồn là nếu bạn nhào vào dùng liền các shellcode có sẵn mà không tìm hiểu chúng, bạn khả năng bị gài bom. Nên nhớ rằng, shellcode khả năng làm được tất cả mọi chuyện, hành động lấy shellcode từ Internet rồi chạy mà không thật sự hiểu shellcode đó làm gì giống như việc chạy các file .exe nhận được từ một người lạ mặt! Đến một lúc nào đó, bạn sẽ dùng các chương trình tạo shellcode tự động kể trên để đơn giản hóa việc viết exploit nhưng trước mắt, bạn cần phải tự viết được shellcode đã. Trong tài liệu này chúng ta sẽ dùng luân phiên hai cách b) và c) để viết shellcode. Bạn nên dùng cách b) khi mới bắt đầu hoặc khi cần phải triển khai một loại shellcode phức tạp. Nhìn vào hai cách này, bạn khả năng thấy rằng viết shellcode đòi hỏi phải có sự thông hiểu về ngôn ngữ Assembly của kiến trúc máy tính mà bạn dự định sẽ chạy shellcode trên đó. Đây là điều hiểu nhiên bởi lẽ những loại máy khác nhau (x86, x86-64, sparc, ppc, amd hay mips…) chỉ hiểu được một nhóm mã máy khác nhau. mặt khác, bạn còn phải thông hiểu cách giao tiếp với hệ điều hành (linux, windows, solaris hay freebsd…) để khả năng thực thi được lệnh trong shellcode. Thông thường, bạn cần phải có một phiên bản shellcode khác nhau cho mỗi loại hệ điều hành chạy trên mỗi loại kiến trúc phần cứng khác nhau. Nói cách khác, shellcode phụ thuộc vào hệ điều hành và kiến trúc phần cứng.

Bạn đang xem: shellcode la gi

Xem thêm: On Board là gì và cấu trúc cụm từ On Board trong câu Tiếng Anh

Bạn vẫn còn đang đọc bài này đó chứ :p? Nếu có bất kì chỗ nào còn mù mờ, bạn nên đọc lại từ đầu và đừng ngại hỏi nếu bạn muốn. Những gì tôi trình bày về shellcode từ đầu đến giờ là những ý quan trọng nhất về shellcode, nếu bạn chỉ muốn biết shellcode để nói chuyện cho vui thì bạn khả năng dừng lại ở đây. Còn nếu bạn muốn tự viết cho mình những đoạn shellcode tối ưu thì hãy đi tiếp cùng tôi nha.

Trong bài tiếp theo, tôi sẽ trình bày những kiến thức căn bản về Assembly đủ để bạn khả năng hiểu và viết được shellcode đầu tiên của mình. Sau đó tôi sẽ nói đến hai trở ngại quan trọng nhất mà bạn cần phải vượt qua khi viết shellcode: vấn đề địa chỉ ô nhớ (addressing problem) và vấn đề của các byte có tổng giá trị null (null byte problem). Chúng ta cũng sẽ thảo luận sơ lược một vài ví dụ về shellcode trên kiến trúc máy Intel 32-bit (còn gọi là x86).

Cần chuẩn bị những gì để học viết shellcode?

Xem thêm: Phân tích chu vi là gì | Sen Tây Hồ

Như đã nói từ đầu, bài viết này không bắt buộc bạn phải có kiến thức trước về Assembly hay C. bắt buộc duy nhất là bạn phải có sự khao khát học hỏi cái mới. mặt khác, tôi dùng Ubuntu Linux trên máy x86 để viết các shellcode mẫu trong bài này, vì thế bạn cũng cần phải chuẩn bị một máy tính có cấu hình tương tự (Linux-x86) như tôi. Bạn chọn distro nào cũng được, nhưng tốt nhất là nên chọn Ubuntu như tôi luôn. Các phần mềm khác mà bạn cần phải chuẩn bị:

  • nasm là bộ phần mềm bao gồm một assembler tên nasm và một disassembler mang tên ndisasm. nasm dùng để biên dịch các mã lệnh Assembly sang mã máy, còn ndisasm làm công việc ngược lại.
  • gdb là phần mềm giúp bạn debug (bắt lỗi) hoặc disassemble các chương trình viết bằng C. gdb thường có sẵn trong distro của bạn.
  • objdump là công cụ giúp bạn xem các thông tin quan trọng trong các file object hay file executable. Tương tự như gdb, objdump thường có sẵn trong distro của bạn.
  • strace là công cụ xem các syscall (tôi sẽ giải thích khái niệm này sau) mà một chương trình gọi khi nó được thực thi

(vnhacker)

Lượt xem (2594)

Tham khảo thêm: Cổ tức là gì? Cổ tức tiếng Anh là gì? Đừng bỏ qua nội dung bài viết này!

Bạn thấy bài viết thế nào?

Các câu hỏi về Shellcode là gì? – An Ninh Mạng

Team Sổ Tay Thông Thái mà chi tiết là Mỹ Chi đã biên soạn bài viết dựa trên tư liệu sẵn có và kiến thức từ Internet. Dĩ nhiên tụi mình biết có nhiều câu hỏi và nội dung chưa thỏa mãn được bắt buộc của các bạn.

Thế nhưng với tinh thần tiếp thu và nâng cao hơn, Mình luôn đón nhận tất cả các ý kiến khen chê từ các bạn & Quý đọc giả cho bài viêt Shellcode là gì? – An Ninh Mạng

Nếu có bắt kỳ câu hỏi thắc mắt nào vê Shellcode là gì? – An Ninh Mạng hãy cho chúng mình biết nha, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình nâng cao hơn hơn trong các bài sau nha <3 Chốt lại nhen <3 Bài viết Shellcode là gì? - An Ninh Mạng ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết Shellcode là gì? - An Ninh Mạng Cực hay ! Hay thì hãy ủng hộ team Like hoặc share. Nếu thấy bài viết Shellcode là gì? - An Ninh Mạng rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nha!!

Các Hình Ảnh Về Shellcode là gì? – An Ninh Mạng

Shellcode là gì? - An Ninh Mạng

Các từ khóa tìm kiếm cho bài viết #Shellcode #là #gì #Ninh #Mạng

Tham khảo thêm dữ liệu, về Shellcode là gì? – An Ninh Mạng tại WikiPedia

Bạn nên xem nội dung về Shellcode là gì? – An Ninh Mạng từ trang Wikipedia tiếng Việt.◄

Tham Gia Cộng Đồng Tại

💝 Nguồn Tin tại: https://sotaythongthai.vn/

💝 Xem Thêm Giải Đáp Câu Hỏi tại : https://mangraovat.edu.vn/hoi-dap/

Related Posts

About The Author

Add Comment