Skip to main content

ShellCode là gì?

ShellCode là chuỗi mã máy hoặc các hướng dẫn thực thi, được đưa vào bộ nhớ máy tính với mục đích kiểm soát chương trình đang chạy.Trong một cuộc tấn công như vậy, một trong các bước là để giành quyền kiểm soát bộ đếm chương trình, xác định hướng dẫn tiếp theo sẽ được thực thi.Lưu lượng chương trình sau đó có thể được chuyển hướng đến mã được chèn.Mã máy xâm nhập được gọi là tải trọng của cuộc tấn công và là phần tử thường được đề cập bởi thuật ngữ shellcode.Phương pháp này thường được sử dụng để cấp quyền truy cập của kẻ tấn công bằng cách mở vỏ lệnh hệ thống hoạt động, do đó, các cuộc tấn công tiêm mã nói chung đã được gọi là shellcode.của dữ liệu đầu vào và xử lý các lỗi bộ nhớ.Các nhà phát triển phần mềm thường có thể tránh được mối đe dọa này bằng cách xác định nghiêm ngặt dữ liệu đầu vào và từ chối các giá trị không đúng.Nếu không được chọn, các giá trị cần nhiều không gian lưu trữ hơn bộ nhớ được phân bổ cho giá trị đó có thể được chấp nhận.Điều này gây ra một breech bảo mật được gọi là tràn bộ đệm, trong đó một phần của dữ liệu được ghi vào các vị trí bộ nhớ liền kề với không gian được gán giá trị.Khi được thao tác cẩn thận, sự bất thường này có thể cho phép mã xâm nhập được giới thiệu.ShellCode thường được viết bằng ngôn ngữ lập trình với truy cập hệ thống cấp thấp như lắp ráp, C hoặc C ++.Tuy nhiên, tùy thuộc vào lỗ hổng được nhắm mục tiêu, kết quả tương tự có thể được nhận ra bằng cách chèn mã cho ngôn ngữ kịch bản được giải thích, như Perl hoặc mã byte cho một máy ảo, chẳng hạn như Java.Mã này có thể được cấy ghép trước, trong hoặc sau vụ cướp của bộ đếm chương trình.Do đó, mã xâm nhập có thể được chứa trong một tệp trên máy được nhắm mục tiêu hoặc được truyền qua kết nối mạng trong thời gian thực.Khai thác ShellCode cục bộ được thiết kế để cung cấp cho kẻ tấn công kiểm soát một máy mà anh ta hoặc cô ta có quyền truy cập vật lý.Ví dụ, một mục tiêu trong trường hợp này có thể là tạo một tài khoản có đặc quyền quản trị viên.Tương tự, nếu một quy trình chạy có mức đặc quyền cao, một khai thác thành công sẽ tạm thời cấp cùng một mức độ truy cập vào kẻ xâm nhập.Các quy trình chạy trên máy từ xa có thể được khai thác bằng cách sử dụng các giao thức mạng tiêu chuẩn để liên lạc với máy tính đích.Connect-bade ShellCode hướng dẫn máy đích bắt đầu kết nối với máy tính Infruders.Nếu kẻ xâm nhập bắt đầu kết nối, mã được gọi là BindShell, vì nó cố gắng kiểm soát kết nối mạng được gọi là cổng trên máy từ xa.Phương pháp kết nối-back được sử dụng rộng rãi hơn, vì tường lửa hiếm khi cấm các kết nối bên ngoài.