Shellcode là gì

     

Bài viết Shellcode là gì? – an ninh Mạng thuộc chủ thể về thắc mắc Quanh Ta đang được rất nhiều người lưu tâm đúng không nào !! Hôm nay, Hãy thuộc vincitysdaimo.com tò mò Shellcode là gì? – an ninh Mạng trong bài viết hôm nay nha !Các nhiều người đang xem nội dung bài viết : “Shellcode là gì? – bình an Mạng”


Shellcode là gì?Định nghĩa về shellcode (có không ít định nghĩa)

Shellcode, là đoạn chương trình giúp bạn có được…một loại shell. Cụ shell là chiếc gì? Theo Wikipedia, shell là một trong những phần mềm cung cấp một hình ảnh dòng lệnh (command line interface) giúp đỡ bạn khả năng liên quan với hệ điều hành. Shell đã nhận lệnh của bạn, gửi xuống phần lõi (kernel) của hệ quản lý để thực thi, rồi nhận kết quả trả về cùng gửi lại mang lại bạn. Tài năng hiểu nôm mãng cầu rằng, tất cả shell bên trên một máy tính nào đó tức là bạn gồm quyền thực thi lệnh trên máy tính đó.

Bạn đang xem: Shellcode là gì

*
Shellcode là payload của các đoạn mã khai quật lỗ hổng bảo mật (exploit). Lúc viết exploit, chúng ta phải xử lý hai sự việc chính: a) injection vector: xác minh cách chèn shellcode vào trong hệ thống muốn tấn công; b) payload: xác minh shellcode mà bạn muốn chạy trên hệ thống đó. Shellcode tài năng làm được đầy đủ thứ, từ việc điều chỉnh giở khối hệ thống hay tải về và triển khai một tệp tin từ Internet cho đến gửi một email ra ngoài. Kim chỉ nam chính của những exploit là làm sao kỹ năng chạy được shellcode phía bên trong phần payload của nó.Shellcode có cách gọi khác là bytecode, tạm thời dịch là mã máy. Bọn họ đều biết mã máy là thứ ngôn ngữ duy tốt nhất mà bộ vi xử lí khả năng hiểu được. Toàn bộ các chương trình viết bởi bất kì ngôn từ nào đều đề nghị được biên dịch lịch sự mã máy trước lúc máy tính tài năng chạy được chương trình đó. Khác với các chương trình này, shellcode được biểu đạt như một đội nhóm các mã máy, chính vì như thế máy tính kĩ 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ì quy trình biên dịch nào cả.

Như vậy mong mỏi viết được shellcode, tôi nên học giải pháp viết mã máy? Câu vấn đáp là không. Không có ai trực tiếp viết ra mã máy khi mong muốn tạo shellcode. Vậy vào đó, các bạn khả năng: a) dùng những shellcode gồm sẵn bên trên Internet; b) viết bởi C, dịch lịch sự Assembly rồi liên tiếp dịch lịch sự 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ó nhiều thư viện shellcode bên trên Internet, thậm chí có một vài chương trình có thể chấp nhận được bạn sản xuất shellcode và viết exploit bằng một ngôn ngữ thời thượng như Python hay Ruby. Tin bi ai là nếu khách hàng nhào vào cần sử dụng liền các shellcode có sẵn mà không mày mò chúng, bạn năng lực bị gài bom. Buộc phải nhớ rằng, shellcode năng lực làm được toàn bộ mọi chuyện, hành động lấy shellcode từ mạng internet rồi chạy mà không thực sự sự đọc shellcode đó có tác dụng gì y như việc chạy các file .exe dìm được từ một người kỳ lạ mặt! Đến một thời gian nào đó, bạn sẽ dùng các chương trình tạo shellcode tự động kể bên trên để dễ dàng hóa việc viết exploit cơ mà trước mắt, bạn phải tự viết được shellcode đã. Trong tài liệu này bọn họ sẽ sử dụng luân phiên hai bí quyết b) cùng c) để viết shellcode. Bạn nên dùng bí quyết b) khi mới bước đầu hoặc khi cần được triển khai một nhiều loại shellcode phức tạp. Nhìn vào hai phương pháp này, bạn kỹ năng thấy rằng viết shellcode yên cầu phải gồm sự tinh thông về ngôn ngữ Assembly của kiến trúc máy tính mà bạn dự tính sẽ chạy shellcode trên đó. Đây là điều hiểu nhiên bởi lẽ vì những loại máy khác biệt (x86, x86-64, sparc, ppc, amd tuyệt mips…) chỉ hiểu được một đội mã máy khác nhau. Phương diện khác, bạn còn phải thông thạo cách giao tiếp với hệ quản lý điều hành (linux, windows, solaris xuất xắc freebsd…) để tài năng thực thi được lệnh vào shellcode. Thông thường, bạn phải có một phiên bạn dạng shellcode khác nhau cho mỗi loại hệ quản lý điều hành chạy trên từng loại phong cách thiết kế phần cứng không giống nhau. Nói biện pháp khác, shellcode dựa vào vào hệ điều hành và quản lý và phong cách thiết kế phần cứng.

Xem thêm: Ứng Dụng Đào Coin Trên Điện Thoại, Cách Đào Coin Bằng Điện Thoại

Bạn đã xem: shellcode la gi

Bạn vẫn còn đó đang đọc bài này đó chứ :p? Nếu gồm bất kì ở đâu còn mù mờ, chúng ta nên đọc lại từ đầu và chớ ngại hỏi nếu như bạn muốn. Phần lớn gì tôi trình diễn về shellcode từ đầu đến giờ đồng hồ là đa số ý quan trọng đặc biệt nhất về shellcode, nếu bạn chỉ hy vọng biết shellcode để rỉ tai cho vui thì các bạn khả năng tạm dừng ở đây. Còn nếu bạn muốn tự viết mang lại mình phần đa đoạn shellcode về tối ưu thì hãy đi tiếp cùng tôi nha.

Xem thêm: Con Trai Và Con Gái Yêu Nhau Hôn Nhau, Con Trai Và Con Gái Hôn Nhau

Trong bài bác tiếp theo, tôi sẽ trình bày những kỹ năng căn bạn dạng về Assembly đủ nhằm bạn tài năng hiểu và viết được shellcode trước tiên của mình. Tiếp nối tôi sẽ kể tới hai trở ngại đặc biệt nhất mà bạn cần phải vượt qua lúc viết shellcode: vấn đề địa chỉ cửa hàng ô lưu giữ (addressing problem) và vấn đề của những 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ụ như về shellcode trên phong cách thiết kế máy hãng intel 32-bit (còn gọi là x86).

Cần sẵn sàng những gì để học viết shellcode?

Như vẫn nói tự đầu, nội dung bài viết này không bắt buộc bạn phải có kỹ năng và kiến thức trước về Assembly tốt C. Bắt buộc duy tuyệt nhất là các bạn phải tất 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 thiết bị x86 để viết các shellcode mẫu trong bài này, chính vì như thế bạn cũng cần phải phải sẵn sàng một máy tính có thông số kỹ thuật tương trường đoản cú (Linux-x86) như tôi. Các bạn chọn distro nào thì cũng được, nhưng tốt nhất là nên lựa 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à cỗ phần mềm bao gồm 1 assembler thương hiệu nasm với một disassembler sở hữu tên ndisasm. Nasm dùng để làm biên dịch các mã lệnh Assembly sang trọng mã máy, còn ndisasm làm công việc ngược lại.gdb là phần mềm khiến cho bạn debug (bắt lỗi) hoặc disassemble những chương trình viết bởi C. Gdb thông thường có sẵn trong distro của bạn.objdump là công cụ khiến cho bạn xem những thông tin đặc biệt quan trọng trong các file object hay tệp tin executable. Giống như như gdb, objdump thông thường có sẵn trong distro của bạn.strace là khí cụ xem những syscall (tôi sẽ giải thích khái niệm này sau) mà lại một chương trình điện thoại tư vấn khi nó được thực thi

(vnhacker)

Lượt coi (2594)