[Scapy] - Giới thiệu

Điều gì làm cho Scapy trở nên đặc biệt
Đầu tiên, với hầu hết các công cụ mạng khác, bạn sẽ không tạo ra một cái gì đó mà công cụ không cho phép. Những công cụ này đã được xây dựng cho một mục tiêu cụ thể và không thể làm nhiều hơn khả năng của nó. Ví dụ, một chương trình ARP cache poisoning sẽ không cho phép bạn sử dụng double 802.1q encapsulation. Hoặc cố gắng để tìm một chương trình mà có thể gửi, nói rằng, một gói tin ICMP với padding (Tôi đã nói padding, không phải payload). Trong thực tế, mỗi khi bạn có một nhu cầu mới, bạn phải xây dựng một công cụ mới.
Thứ hai, họ thường nhầm lẫn giữa giải mã (decoding) và phiên dịch (interpreting). Máy tính thực hiện tốt công việc giải mã và có thể giúp con người với điều đó. Sự phiên dịch (Interpretation) được dành cho con người. Một số chương trình cố gắng bắt chước hành vi này. Ví dụ chương trình thông báo "cổng này được mở" thay vì "Tôi nhận được một SYN-ACK". Đôi khi thì điều đó đúng. Đôi khi không. Điều đó giúp dễ dàng hơn cho người mới bắt đầu, nhưng khi bạn biết những gì bạn đang làm, bạn tiếp tục cố gắng để suy luận những gì thực sự đã xảy ra từ việc phiên dịch của chương trình (program’s interpretation), điều đó gây khó khăn bởi vì nó làm bạn bị mất một lượng lớn thông tin. Và bạn thường kết thúc bằng cách sử dụng  tcpdump -xX để giải mã và thông dịch (interpret) những gì cụ bỏ qua.
Thứ ba, thậm chí có một số chương trình chỉ giải mã không cung cấp cho bạn tất cả các thông tin mà nó nhận được. network’s vision được cung cấp cho bạn là những gì mà tác giả của họ nghĩ là đủ. Nhưng nó không phải là hoàn toàn, và bạn có một sự thiên vị. Ví dụ, bạn có biết một công cụ cung cấp các báo cáo Ethernet padding?
Scapy cố gắng để khắc phục những vấn đề. Nó cho phép bạn xây dựng một cách chính xác các gói tin mà bạn muốn. Ngay cả khi tôi nghĩ xếp một lớp 802.1q trên đầu trang của TCP không có ý nghĩa, nó có thể có một số cho người khác làm việc trên một số sản phẩm mà tôi không biết. Scapy có một mô hình linh hoạt mà cố gắng để tránh giới hạn tùy ý như vậy. Bạn được tự do để đặt bất kỳ giá trị mà bạn muốn trong bất kỳ trường (field) nào bạn muốn, và ngăn xếp chúng như bạn muốn. Bạn là người quyết định tất cả.
Trong thực tế, nó giống như việc xây dựng một công cụ mới cho mỗi lần, nhưng thay vì đối mặt với một chương trình C dài hàng trăm dòng, bạn chỉ viết 2 dòng Scapy.
Sau quá tình thăm dò (probe) ( bao gồm quét (scan), truy vết (traceroute), vv) Scapy luôn trả về cho bạn các gói tin được giải mã đầy đủ, trước khi có bất kỳ sự thông dịch (interpretation) nào.
Điều đó có nghĩa là bạn có thể thăm dò (probe) một lần và thông dịch (interpret) nhiều lần, yêu cầu truy vết (traceroute ) và nhìn vào padding là một ví dụ.

Comments

Popular posts from this blog

Thiết lập card không dây trên Kali Linux

Monitor mode

Giới thiệu - Scapy