[ Bài 1.1.4 ] Metasploit : Mixins và Plugins
Tiếp cận nhanh chút với Ruby :
- Mỗi lớp chỉ có một lớp cha
- Một lớp có thể bao gồm nhiều Mô-đun
- Các mô-đun có thể thêm các phương thức ( methods ) mới
- Các mô-đun có thể quá tải ( overload ) các methods cũ
- Các mô đun Metasploit kế thừa từ Msf::Module và gồm có các mixin để thêm các tính năng.
Metasploit Mixins
Mixins khá đơn giản, lý do tại sao :
- Mixins bao hàm một lớp vào lớp khác
- Điều này vừa khác và vừa giống như thừa kế
- Mixins có thể ghi đè các phương thức của lớp
Mixins có thể thêm các tính năng mới và cho phép các mô-đun có 'hương vị' khác nhau.
Mixins có thể thay đổi hành vi.
Metasploit Plugins - Giao thức cụ thể (HTTP, SMB)
- Hành vi cụ thể (brute force)
- connect() được triển khai bởi TCP mixin
- connect() sau đó bị quá tải bởi FTP, SMB và khác
Mixins có thể thay đổi hành vi.
- Quá tải mixin Scanner chạy ()
- Thay đổi máy quét run () cho run_host () và run_range ()
- Gọi song song dựa trên THREADS
- bruteforce mixin cũng tương tự
Plugin hoạt động trực tiếp với API.
- Nó thao túng toàn bộ framework
- Plugin móc vào các sự kiện của hệ thống con (subsystem)
- Tự động hóa các thao tác
Plugin chỉ hoạt động trong msfconsole.
- Plugin được dùng có thể thêm các lệnh console mới
- Mở rộng thêm chức năng của framework
Ví dụ :
class MyParent
def woof
puts “woof!”
end
end
class MyClass > MyParent
end
object = MyClass.new
object.woof() => “woof!”
================================================================
module MyMixin
def woof
puts “hijacked the woof method!”
end
end
class MyBetterClass > MyClass
include MyMixin
end
OK ! DONE
[" Các bài viết liên quan đến Metasploit mà thuộc phần cấu trúc tổng thể của nó thì tớ chỉ dịch cho các cậu, nếu tớ hiểu thì tớ giải thích vì nó thuộc phần của các "đê vờ lớp" rồi. Mà tớ thì lại không chuyên về phần này đồng thới tớ cũng không chuyên Anh ^-^ "]