You are on page 1of 100

MỤC LỤC

LỜI CẢM ƠN...........................................................................................................3

PHẦN I: GIỚI THIỆU ĐỀ TÀI.................................................................................4

PHẦN II: NỘI DUNG...............................................................................................5

CHƯƠNG I: CÁC GIAO THỨC LIÊN QUAN........................................................5


1.1 GIAO THỨC PHÂN GIẢI ĐỊA CHỈ-ARP (ADDRESS RESOLUTION
PROTOCOL).........................................................................................................5
1.2 GIAO THỨC CẤU HÌNH HOST ĐỘNG-DHCP (DYNAMIC HOST
CONFIGURATION PROTOCOL)......................................................................10
1.3 SPANNING TREE PROTOCOL (STP)....................................................13
1.4 MẠNG LANS ẢO-VLAN (VIRTUAL LOCAL AREA NETWORK)......17
1.5 HỆ THỐNG PHÂN GIẢI TÊN MIỀN-DNS (DOMAIN NAME SYSTEM)
…………………………………………………………………………….22
1.6 ĐỊA CHỈ MAC (MEDIA ACCESS CONTROL).......................................25

CHƯƠNG II: TỔNG QUAN VỀ SNIFFER............................................................28


2.1 ĐỊNH NGHĨA SNIFFER...........................................................................28
2.2 PHÂN LOẠI SNIFFER.............................................................................28
2.3 MỘT SỐ PHƯƠNG PHÁP PHÁT HIỆN SNIFFER.................................29
2.4 CÁC PHƯƠNG PHÁP PHÒNG CHỐNG SNIFFER................................33

CHƯƠNG III: CÁC LOẠI SNIFFER VÀ CÁCH PHÒNG CHỐNG.....................35


3.1 MAC FLOODING.....................................................................................35
3.2 DHCP STARVATION...............................................................................39
3.3 ROGUE DHCP SERVER..........................................................................45
3.4 ARP POISONING.....................................................................................49
3.5 DNS POISONING.....................................................................................55
3.6 MAC SPOOFING......................................................................................63
3.7 VLAN HOPPING......................................................................................65

TÌM HIỂU VÀ MINH HỌA SNIFFER 1


3.8 SPANNING TREE PROTOCOL ATTACK..............................................71

PHẦN III: TỔNG KẾT VÀ ĐÁNH GIÁ................................................................77


1. KẾT QUẢ ĐẠT ĐƯỢC................................................................................78
2. HƯỚNG PHÁT TRIỂN................................................................................78

PHẦN IV: TÀI LIỆU THAM KHẢO.....................................................................79

TÌM HIỂU VÀ MINH HỌA SNIFFER 2


TÌM HIỂU VÀ MINH HỌA SNIFFER 3
PHẦN I: GIỚI THIỆU ĐỀ TÀI

TÌM HIỂU VÀ MINH HỌA SNIFFER 4


Hiện nay, khi công nghệ thông tin đang phát triển một cách mạnh mẽ, mạng
máy tính là một thành phần không thể thiếu đối với các hệ thống thông tin của
mọi tổ chức. Hơn nữa, hầu hết các giao dịch, dịch vụ của xã hội đều được triển
khai trên mạng. Nhưng liệu khi tham gia vào hoạt động trên mạng thông tin của
chúng ta có thực sự an toàn, đó là câu hỏi mà nhiều người thường xuyên đặt ra và
đi tìm lời giải đáp. Nếu chúng ta không khắc phục những điểm yếu này thì môi
trường mạng sẽ trở thành một mảnh đất màu mỡ cho những hacker xâm nhập,
gây ra sự thất thoát thông tin, tiền bạc. Do đó bảo mật trong mạng đang là một
vấn đề quan trọng hàng đầu.
Hiểu được các vấn đề đó, nhóm đã quyết định chọn đề tài “Tìm hiểu và
minh họa một số kỹ thuật Sniffer”. Đề tài này sẽ tập trung mô phỏng các
phương thức tấn công tổng quát trên mạng thông qua các chương trình Sniffer và
tìm hiểu các cách phát hiện cũng như phòng chống Sniffer sao cho hiệu quả nhất.
Nội dung đề tài gồm 4 phần: phần giới thiệu đề tài, phần nội dung, phần tổng
kết và phần tài liệu tham khảo.
Phần nội dung của bài tiểu luận được chia thành 4 chương: chương đầu tiên
giới thiệu các giao thức liên quan đến Sniffer. Chương tiếp theo sẽ giới thiệu tổng
quan về Sniffer, phân loại các loại Sniffer, các giao thức dễ bị Sniffer và phương
pháp phát hiện cũng như phòng chống Sniffer hiệu quả. Chương cuối cùng là
trình bày các loại Sniffer và các minh họa cụ thể.

PHẦN II: NỘI DUNG

TÌM HIỂU VÀ MINH HỌA SNIFFER 5


CHƯƠNG I: CÁC GIAO THỨC LIÊN QUAN

1.1 Giao thức phân giải địa chỉ-ARP (Address Resolution Protocol)
1.1.1 Khái niệm
ARP là phương thức phân giải địa chỉ động giữa địa chỉ lớp network và địa
chỉ lớp data-link. Sở dĩ cần phải có giao thức chuyển đổi như vậy là do có nhiều
giao thức lớp 3 như IP, IPX, Appletalk… mỗi giao thức lại có qui ước về địa chỉ
logic riêng. Khi được đóng gói vào một frame tại lớp thì tất cả các địa chỉ này
cần phải được qui đổi thành một kiểu địa chỉ thống nhất (địa chỉ MAC) nhằm
giúp cho mọi thiết bị có thể trao đổi với các thiết bị khác khi chúng nằm trong
cùng một môi trường truyền dẫn vật lý.
Ban đầu ARP chỉ được sử dụng trong mạng Ethernet để phân giải địa chỉ IP
và địa chỉ MAC. Nhưng ngày nay ARP đã được ứng dụng rộng rãi và dùng trong
các công nghệ khác dựa trên lớp hai.

TÌM HIỂU VÀ MINH HỌA SNIFFER 6


Hình 1.1. Vị trí của ARP
1.1.2 Cấu trúc bảng tin ARP
- Hardware type: xác định kiểu mạng phần cứng: Ethernet, Token ring.
- Protocol: xác định kiểu của giao thức lớp network.
- HLEN: độ dài địa chỉ MAC: 48 bits (Ethernet), 32 bits (Token ring).
- PLEN: độ dài địa chỉ IP.

TÌM HIỂU VÀ MINH HỌA SNIFFER 7


Hình 1.2. Cấu trúc bản tin ARP
- Operation: xác định kiểu thông điệp ARP (Request/Respone)
- Sender HA/ Target HA: địa chỉ MAC máy gửi/máy nhận.
- Sender IP/ Target IP: địa chỉ IP máy gửi/máy nhận.
1.1.3 Cơ chế hoạt động
Quá trình thực hiện ARP được bắt đầu khi một thiết bị nguồn trong một
mạng IP có nhu cầu gửi một gói tin IP. Trước hết thiết bị đó phải xác định xem
địa chỉ IP đích của gói tin có phải nằm cùng trong mạng nội bộ của mình hay
không. Nếu đúng vậy thì thiết bị sẽ gửi trực tiếp gói tin đến thiết bị đích. Nếu địa
chỉ IP đích nằm trên mạng khác, thì thiết bị sẽ gửi gói tin đến một trong các
Router nằm cùng trên mạng nội bộ để Router này làm nhiệm vụ forward gói tin.
Cả hai trường hợp ta đều thấy được là thiết bị phải gói tin IP đến một thiết bị IP
khác trên cùng mạng nội bộ. Ta biết rằng việc gửi gói tin trong cùng mạng thông
qua Switch là dựa vào địa chỉ MAC hay địa chỉ phần cứng của thiết bị. Sau khi
gói tin được đóng gói thì mới bắt đầu được chuyển qua quá trình phân giải địa chỉ
ARP và được chuyển đi.
ARP về cơ bản là một quá trình 2 chiều request/response giữa các thiết bị
trong cùng mạng nội bộ. Thiết bị nguồn request bằng cách gửi một bản tin

TÌM HIỂU VÀ MINH HỌA SNIFFER 8


broadcast trên toàn mạng. Thiết bị đích response bằng một bản tin unicast đến
thiết bị nguồn.
Các bước hoạt động của ARP
- B1. Source Device Checks Cache: Trong bước này, thiết bị sẽ kiểm tra
cache (bộ đệm) của mình. Nếu đã có địa chỉ IP đích tương ứng với MAC
nào đó rồi thì lập tức chuyển lên bước 9.
- B2. Source Device Generates ARP Request Message: Bắt đầu khởi tạo
gói tin ARP Request với các trường địa chỉ như trên.
- B3. Source Device Broadcasts ARP Request Message: Thiết bị nguồn
quảng bá gói tin ARP Request trên toàn mạng.
- B4. Local Devices Process ARP Request Message: Các thiết bị trong
mạng đều nhận được gói tin ARP Request. Gói tin được xử lý bằng cách
các thiết bị đều nhìn vào trường địa chỉ Target Protocol Address. Nếu
trùng với địa chỉ của mình thì tiếp tục xử lý, nếu không thì hủy gói tin.
- B5. Destination Device Generates ARP Reply Message: Thiết bị với IP
trùng với IP trong trường Target Protocol Address sẽ bắt đầu quá trình
khởi tạo gói tin ARP Reply bằng cách lấy các trường Sender Hardware
Address và Sender Protocol Address trong gói tin ARP nhận được đưa
vào làm Target trong gói tin gửi đi. Đồng thời thiết bị sẽ lấy địa chỉ
datalink của mình để đưa vào trường Sender Hardware Address.
- B6. Destination Device Updates ARP Cache: Thiết bị đích (thiết bị khởi
tạo gói tin ARP Reply) đồng thời cập nhật bảng ánh xạ địa chỉ IP và
MAC của thiết bị nguồn vào bảng ARP cache của mình để giảm bớt thời
gian xử lý cho các lần sau.
- B7. Destination Device Sends ARP Reply Message: Thiết bị đích bắt đầu
gửi gói tin Reply đã được khởi tạo đến thiết bị nguồn. Gói tin reply là gói
tin gửi unicast.

TÌM HIỂU VÀ MINH HỌA SNIFFER 9


- B8. Source Device Processes ARP Reply Message: Thiết bị nguồn nhận
được gói tin reply và xử lý bằng cách lưu trường Sender Hardware
Address trong gói reply như địa chỉ phần cứng của thiết bị đích.
- B9. Source Device Updates ARP Cache: Thiết bị nguồn update vào ARP
cache của mình giá trị tương ứng giữa địa chỉ network và địa chỉ
datalink của thiết bị đích. Lần sau sẽ không còn cần tới request.

TÌM HIỂU VÀ MINH HỌA SNIFFER 10


Hình 1.3. Quá trình gửi/nhận bản tin ARP
1.1.4 ARP Caching
ARP là một giao thức phân giải địa chỉ động. Quá trình gửi gói tin Request
và Reply sẽ tiêu tốn băng thông mạng. Chính vì vậy càng hạn chế tối đa việc gửi
gói tin Request và Reply sẽ càng góp phần làm tăng khả năng họat động của
mạng. Từ đó sinh ra nhu cầu của ARP Caching.
ARP Cache có dạng giống như một bảng tương ứng giữa địa chỉ hardware và
địa chỉ IP. Có hai cách đưa các thành phần tương ứng vào bảng ARP:
- Static RP Cache Entries: Đây là cách mà các thành phần tương ứng
trong bảng ARP được đưa vào lần lượt bởi người quản trị. Công việc
được tiến hành một cách thủ công.
- Dynamic ARP Cache Entries: Đây là quá trình mà các thành phần địa
chỉ hardware/IP được đưa vào ARP cache một cách hoàn toàn tự động
bằng phần mềm sau khi đã hoàn tất quá trình phân giải địa chỉ. Chúng
được lưu trong cache trong một khoảng thời gian và sau đó sẽ được xóa.
Dynamic Cache được sử dụng rộng rãi hơn vì tất cả các quá trình diễn ra tự
động và không cần đến sự tương tác của người quản trị. Tuy nhiên static cache
vẫn có phạm vi ứng dụng nhất định của nó. Đó là trường hợp mà các workstation
nên có static ARP entry đến router và file server nằm trong mạng. Điều này sẽ
hạn chế việc gửi các gói tin để thực hiện quá trình phân giải địa chỉ.
Tuy nhiên ngoài hạn chế của việc phải nhập bằng tay, static cache còn thêm
hạn chế nữa là khi địa chỉ IP của các thiết bị trong mạng thay đổi thì sẽ dẫn đến
việc phải thay đổi ARP cache.
Quá trình xóa thông tin trong Cache
Ta xét trường hợp bảng cache của một thiết bị A, trong đó có chứa thông tin
về thiết bị B trong mạng. Nếu các thông tin trong cache được lưu mãi mãi, sẽ có
một số vấn đề như sau xảy ra:

TÌM HIỂU VÀ MINH HỌA SNIFFER 11


- Địa chỉ phần cứng thiết vị được thay đổi: Đây là trường hợp khi thiết bị
B được thay đổi card mạng hay thiết bị giao tiếp, làm thay đổi địa chỉ
MAC của thiết bị. Điều này làm cho các thông tin trong cache của A
không còn đúng nữa.
- Địa chỉ IP của thiết bị được thay đổi: Người quản trị hay nhà cung cấp
thay đổi địa chỉ IP của B, cũng làm cho thông tin trong cache của A bị sai
lệch.
- Thiết bị được rút ra khỏi mạng: Khi B được rút ra khỏi mạng nhưng A
không được biết, và gây lãng phí về tài nguyên của A để lưu thông tin
không cần thiết và tốn thời gian để tìm kiếm.
Để tránh được những vấn đề này, các thông tin trong dynamic cache sẽ được
tự động xóa sau một khoảng thời gian nhất định. Quá trình này được thực hiện
một cách hoàn toàn tự động khi sử dụng ARP với khoảng thời gian thường là 10
hoặc 20 phút. Sau một khoảng thời gian nhất định được lưu trong cache , thông
tin sẽ được xóa đi. Lần sử dụng sau, thông tin sẽ được update trở lại.

1.1.5 Giao thức phân giải địa chỉ ngược RARP (Reverse ARP)
RARP là giao thức phân giải địa chỉ ngược. Quá trình này ngược lại với quá
trình ARP ở trên, nghĩa là cho trước địa chỉ mức liên kết, tìm địa chỉ IP tương
ứng. Như vậy RARP được sử dụng để phát hiện địa chỉ IP, khi biết địa chỉ vật lý
MAC.
Khuôn dạng gói tin RARP tương tự như khuôn dạng gói ARP đã trình bày,
chỉ khác là trường Operation có giá trị 0×0003 cho mã lệnh yêu cầu (RARP
Request) và có giá trị 0×0004 cho mã lệnh trả lời (RARP Reply).
Nguyên tắc hoạt động của RARP ngược với ARP, nghĩa là máy đã biết trước
địa chỉ vật lý MAC tìm địa chỉ IP tương ứng của nó.
1.2 Giao thức cấu hình Host động-DHCP (Dynamic Host Configuration
Protocol)

TÌM HIỂU VÀ MINH HỌA SNIFFER 12


1.2.1 Khái niệm.
Giao thức cấu hình host động (DHCP) làm việc theo cơ chế Client-Server.
DHCP cho phép các DHCP Client trong một mạng nhận cấu hình IP của mình từ
một DHCP Server. Khi sử dụng DHCP thì công việc quản lý IP của người quản
trị sẽ ít hơn vì phần lớn IP của Client được lấy về từ Server.
Server chạy DHCP thực hiện tiến trình xác định địa chỉ IP cấp cho Client.
Client sử dụng địa chỉ được cấp từ Server trong một khoảng thời gian nhất định
do người quản trị mạng quy định. Khi thời này hết hạn thì Client phải yêu cầu
cấp lại địa chỉ mới mặc dù thông thường Client sẽ vẫn được cấp lại địa chỉ cũ.
DHCP sử dụng giao thức UDP (User Datagram Protocol) làm giao thức vận
chuyển của nó. Client gửi thông điệp cho server trên port 67. Server gửi thông
điệp cho Client trên port 68.
Ưu điểm của DHCP:
- Quản lý TCP/IP tập trung.
- Giảm gánh nặng cho các nhà quản trị hệ thống.
- Giúp hệ thống mạng luôn được duy trì ổn định và linh hoạt.

1.2.2 Cơ chế hoạt động của DHCP.


Giao thức DHCP làm việc theo mô hình Client/Server. Theo đó, quá trình
tương tác giữa DHCP Client và Server diễn ra theo 4 bước sau đây
IP Lease Request:
Đầu tiên, client sẽ broadcast một message tên là DHCPDISCOVER, vì
Client lúc này chưa có địa chỉ IP cho nên nó sẽ dùng một địa chỉ source (nguồn)
là 0.0.0.0 và cũng vì Client không biết địa chỉ của DHCP Server nên nó sẽ gửi
đến một địa chỉ broadcast là 255.255.255.255. Lúc này gói tin DHCPDISCOVER
này sẽ broadcast lên toàn mạng. Gói tin này cũng chứa một địa chỉ MAC (Media
Access Control - là địa chỉ mà mỗi một network adapter (card mạng) sẽ được nhà
sản xuất cấp cho và là mã số để phân biệt các card mạng với nhau) và đồng thời

TÌM HIỂU VÀ MINH HỌA SNIFFER 13


nó cũng chứa computer name của máy Client để DHCP Server có thể biết được
Client nào đã gởi yêu cầu đến.
IP Lease Offer:
Nếu có một DHCP hợp lệ (nghĩa là nó có thể cấp địa chỉ IP cho một Client)
nhận được gói tin DHCPDISCOVER của Client thì nó sẽ trả lời lại bằng một gói
tin DHCPOFFER, gói tin này đi kèm theo những thông tin sau:
- MAC address của Client.
- Một IP address cấp cho (offer IP address).
- Một subnetmask.
- Thời gian thuê.
- Địa chỉ IP của DHCP cấp IP cho Client này.
Lúc này DHCP Server sẽ được giữ lại một IP đã offer (cấp) cho Client để nó
không cấp cho DHCP Client nào khác. DHCP Client chờ một vài giây cho một
offer, nếu nó không nhận một offer nó sẽ rebroadcast (broadcast gói
DHCPDISCOVER) trong khoảng thời gian là 2, 4, 8 và 16 giây, bao gồm một
khoảng thời gian ngẫu nhiên từ 0 - 1000 mili giây.
Nếu DHCP Client không nhận một offer sau 4 lần yêu cầu, nó sử dụng một
địa chỉ IP trong khoảng 169.254.0.1 đến 169.254.255.254 với subnetmask là
255.255.0.0. Nó sẽ sử dụng trong một số trong khoảng IP đó và việc đó sẽ giúp
các DHCP Client trong một mạng không có DHCP Server thấy nhau. DHCP
Client tiếp tục cố gắng tìm kiếm một DHCP Server sau mỗi 5 phút.
IP Lease Selection:
DHCP client đã nhận được gói tin DHCPOFFER thì nó sẽ phản hồi
broadcast lại một gói DHCPREQUEST để chấp nhận cái offer đó.
DHCPREQUEST bao gồm thông tin về DHCP Server cấp địa chỉ cho nó. Sau đó,
tấc cả DHCP Server khác sẽ rút lại các offer (trường hợp này là trong mạng có
nhiều hơn 1 DHCP Server) và sẽ giữ lại IP address cho các yêu cầu xin IP
address khác.

TÌM HIỂU VÀ MINH HỌA SNIFFER 14


IP Lease Acknowledgement:
DHCP server nhận được DHCPREQUEST sẽ gởi trả lại DHCP Client một
DHCPACK để cho biết là đã chấp nhận cho DHCP Client đó thuê IP address đó.
Gói tin này bao gồm địa chỉ IP và các thông tin cấu hình khác (DNS Server,
WINS Server... ). Khi DHCP Client nhận được DHCPACK thì cũng có nghĩa là
kết thúc quá trình tìm kiếm của mình.
Cơ chế tự động refresh lại thời gian đăng ký (lease time).
Bây giờ ta coi như là DHCP Client đã đăng ký được một IP address rồi. Theo
mặc định của DHCP Server thì mỗi IP lease chỉ được có 8 ngày. Nếu theo như
mặc định (8 ngày) thì một DHCP Client sau một khoảng thời gian là 50% (tức là
4 ngày) nó sẽ tự động xin lại IP address với DHCP mà nó đã xin ban đầu. DHCP
Client lúc này sẽ gởi một sẽ gởi một DHCPREQUEST trực tiếp (unicast) đến
DHCP Server mà nó đã xin ban đầu.
Nếu mà DHCP Server đó "còn sống", nó sẽ trả lời bằng một gói DHCPACK
để renew (cho thuê mới lại) tới DHCP Client, gói này bao gồm thông các thông
số cấu hình mới cập nhật nhất trên DHCP Server. Nếu DHCP Server "đã chết",
thì DHCP Client này sẽ tiếp tục sử dụng cấu hình hiện thời của nó.

TÌM HIỂU VÀ MINH HỌA SNIFFER 15


Hình 1.4. Thứ tự các gói tin trong DHCP
Nếu sau 87.5% (7 ngày) của thời gian thuê hiện thời của nó, nó sẽ broadcast
một DHCPDISCOVER để update địa chỉ IP của nó. Vào lúc này, nó không kiếm
tới DHCP Server ban đầu cho nó thuê nữa mà nó là sẽ chấp nhận bất cứ một
DHCP Server nào khác.
Nếu thời gian đăng ký đã hết thì Client sẽ ngay lập tức dừng lại việc sử dụng
IP address đã đăng ký đó. Và DHCP Client sau đó sẽ bắt đầu tiến trình thuê một
địa chỉ như ban đầu.
1.3 Spanning Tree Protocol (STP)
1.3.1 Khái niệm

TÌM HIỂU VÀ MINH HỌA SNIFFER 16


Trong hệ thống mạng, người quản trị luôn thiết kế hệ thống có tính sẵn sàng
cao (HA-High Availability). Vì thế, người quản trị luôn thiết kế hệ thống luôn có
đường dự phòng để phòng những trường hợp những đường chính bị mất kết nối.
Nhưng như thế sẽ dễ dẫn tới hiện tượng lặp (loop) trong mạng, vì thế ta cần có
giao thức STP.
STP là một giao thức ngăn chặn sự lặp vòng, cho phép các Switch truyền
thông với nhau để phát hiện vòng lặp vật lý trong mạng. Sau đó giao thức này sẽ
định rõ một thuật toán mà Switch có thể tạo ra một topology luận lý chứa loop-
free. Nói cách khác STP sẽ tạo một cấu trúc cây của free-loop gồm các lá và các
nhánh nối toàn bộ mạng lớp 2.Các nguyên nhân chính dẫn đến sự chậm trễ hoặc
thậm chí sự đụng độ củaqSwitch:

TÌM HIỂU VÀ MINH HỌA SNIFFER 17


Hình 1.5. Mô hình STP
Bão Broadcast
Bão Broadcast là hiện tượng rất nhiều frame chạy liên tục trong môi trường
các Switch đấu vòng. Làm cho tốc độ hệ thống mạng chậm và có thể làm treo các
Switch tốc tộ thấp.
Instability MAC-address Table
Đây là hiện tượng bảng CAM không ổn định. Bảng CAM trong Switch sẽ
cập nhật liên tục mỗi khi có một gói tin được gởi đi trong mạng.
Multiple Frame Copies
Đây là hiện tượng thiết bị đầu cuối nhận rất nhiều frame do các frame này
chạy vòng trong hệ thống. Hiện tượng này sẽ làm cho thiết bị đích sẽ chạy chậm
vì tốc độ xử lý của card mạng không đáp ứng một lúc rất nhiều frame.
1.3.2 Cơ chế hoạt động.
STP là một giao thức hoạt động ở lớp 2, nó sử dụng một giải thuật để tìm ra
các vòng lặp trong mạng và tác động của một mạng không bị loop. Giải thuật
chống Loop trong STP được thực hiện lần lượt qua 3 bước:
Bước 1: lựa chọn một Switch gốc (root bridge) trong số các Switch trên
mạng.
Bước 2: Lựa chon một root port (là một cổng duy nhất trên mà Switch sử
dụng để đi tới gốc) trên các Switch khác (trừ gốc).
Bước 3: Lựa chọn một designated port (là một cổng duy nhất mà một
colision domain sử dụng để đi tới gốc.
Việc tính toán Spanning Tree dựa trên hai khái niệm khi tạo ra vòng lặp logic
trong cấu trúc mạng đó là BridgeID và Cost.
BridgeID (BID): là một trường gồm 8 byte, gồm 2 trường con:
- Địa chỉ MAC: có 6 byte được gán cho Switch, sử dụng dưới dạng
Hexa.
- Bridge Priority: là độ ưu tiên có chiều dài là 2 byte tạo thành 2 16 giá trị
từ 0 đến 65535, có giá trị mặc định là 32768

TÌM HIỂU VÀ MINH HỌA SNIFFER 18


Hình 1.6. Bridge ID
Cost: là chi phí đi tới Root Bridge có giá trị thấp nhất, chi phí được tính
bằng tổng cost trên các đoạn đường đi tới đích.

TÌM HIỂU VÀ MINH HỌA SNIFFER 19


Hình 1.7. Cost
1.3.3 Hoạt động của Spanning Tree
Thuật toán Spanning Tree sẽ được thực hiện trình tự theo các bước sau:
- Bước 1: Sau khi Switch được khởi động, nó gửi gói tin BPDU (Bridge
Protocol Data Units), gói tin này gồm Switch Bridge ID và Root ID 2
giây/lần.
- Bước 2: Trong pha khởi tạo ban đầu mỗi thì Switch đều coi nó là Root
Bridge.
- Bước 3: Nếu Switch nhận được Root ID trong bản tin BPDU của Switch
neighbour mà nhỏ hơn Root ID của nó thì nó sẽ coi Switch neighbour là
Root Bridge (Switch có Root ID nhỏ hơn thì sẽ được bầu làm Root Bridge).
- Bước 4: Switch sau đó sẽ forward bản tin BPDU với Root ID nhỏ hơn này
tới các Switch kế cận nó.
- Bước 5: Switch với Root ID nhỏ nhất được coi là Root Bridge trong topo
Spanning-Tree.
- Bước 6: Trong trường hợp 2 Switch có Root ID bằng nhau, chúng sẽ tiến
hàng quá trình bầu chọn thông qua địa chỉ MAC address. Switch nào có địa
chỉ MAC address nhỏ hơn thì được coi là Root Bridge.
- Bước 7: Sau khi xác định được Root Bridge, trên các Non-Root Bridge sẽ
tìm ra các Port mà có Cost đến Root Bridge nhỏ nhất để được bầu làm Root
Port. Cost đến Root Bridge được tính bằng tổng Cost trên các Segment từ nó
tới đích. Cost bằng 10^8/BW.

TÌM HIỂU VÀ MINH HỌA SNIFFER 20


o Bước 7.1: Nếu Cost trên các cổng của Switch đến Root Bridge là giống
nhau thì nó sẽ chọn Port nào có kết nối tới Switch có Bridge ID nhỏ hơn
thì port đó được gọi là Root port.
o Bước 7.2: Giả sử các cổng cùng nối đến một Switch, điều đó có nghĩa là
Bridge ID mà các port dựa vào để đưa ra chọn lựa là 1, là giống nhau, thì
nó sẽ dựa vào Port ID trên các Switch mà nó kết nối tới. Port nào mà kết
nối tới Port ID có Port Priority nhỏ hơn thì được chọn là Root Port.

TÌM HIỂU VÀ MINH HỌA SNIFFER 21


Hình 1.8. Quá trình hoạt động của STP
- Bước 8: Sau khi xác định Root Port, trên mỗi Segment các cặp Switch sẽ
tiến hành bầu chọn Designated Port. Nhiệm vụ của Designated Port là: Gửi
các bản tin PBDU và Replay BPDU của Root gửi tới. Quá trình bầu chọn
Designated Port tương tự quá trình bầu chọn Root Port ( 1.Dựa vào cost;
2.Dựa vào Switch – Priority ; 3.Dựa vào Port ID của Switch )
- Bước 9: Các port còn lại được xác định là Block Port.
1.4 Mạng LANs ảo-VLAN (Virtual Local Area Network)
1.4.1 Khái niệm

TÌM HIỂU VÀ MINH HỌA SNIFFER 22


VLAN là một mạng LAN ảo. Mỗi VLAN được xem như một mạng con riêng
(có IP được chia như một mạng con) và được tạo ra bằng cách cấu hình trên thiết
bị chuyển mạch lớp 2. Một VLAN tập trung một nhóm thiết bị mạng (điện thoại
IP, PC, Server, máy in…) và được thiết kế dựa trên các yêu cầu đặt ra từ các
doanh nghiệp. Ví dụ, thiết bị mạng trong một phòng ban sẽ được cấu hình trong
một VLAN.
Mỗi VLAN sẽ được quản lý dựa trên số VLAN ID (số xác định khi cấu hình
VLAN) với một tên VLAN tương ứng (tên VLAN này đặt tùy ý). VLAN ID có
thể đặt theo quy định từ 0 đến 4095.

TÌM HIỂU VÀ MINH HỌA SNIFFER 23


Hình 1.9. VLAN ID
1.4.2 Chức năng của VLAN
Việc cấu hình VLAN trong doanh nghiệp có rất nhiều ý nghĩa. Mục đích ra
đời của VLAN là giúp giảm chi phí hạ tầng, nâng cao được tính bảo mật, ngoài ra
VLAN còn có rất nhiều chức năng như:
- VLAN giúp cho hệ thống mạng được linh hoạt: Hệ thống mạng sẽ được
linh hoạt nếu như cấu hình VLAN vì khi muốn thêm hay bớt các thiết bị
mạng vào VLAN rất đơn giản, chỉ cần cấu hình hay hủy cấu hình trên cổng
của Switch cho thiết bị đó với VLAN tương ứng. Mặc khác, việc cấu hình
VLAN làm cho việc di chuyển các thiết bị mạng một cách dễ dàng bằng cách

TÌM HIỂU VÀ MINH HỌA SNIFFER 24


người quản trị chỉ cần cấu hình lại các cổng Switch rồi đặt các thiết bị đó vào
các VLAN theo yêu cầu.
- Tăng khả năng bảo mật: Đối với hệ thống mạng không cấu hình VLAN thì
người dùng với các thiết bị mạng đều có thể truy cập vào nhau, khi bị tấn
công tất cả các thiết bị đều ảnh hưởng . Đối với các hệ thống đã cấu hình
VLAN thì các thiết bị ở các VLAN khác nhau không thể truy cập vào nhau,
khi bị tấn công chỉ có các thiết bị mạng thuộc VLAN tương ứng bị ảnh
hưởng.
- Giảm miền quảng bá (broadcast domain): Hệ thống không cấu hình
VLAN là một miền broadcast, mỗi gói broadcast sẽ gởi đến tất cả các thiết bị
trong mạng. Khi đã cấu hình VLAN thì mạng LAN sẽ được chia nhỏ làm
nhiều segment (đoạn mạng), nếu khi có gói tin broadcast thì nó chỉ được
truyền duy nhất trong VLAN đó.
- Tiết kiệm băng thông mạng: Khi hệ thống mạng mở rộng, số lượng người
dùng tăng lên và nhu cầu sử dụng băng thông cũng tăng lên và do đó băng
thông và khả năng thực thi của hệ thống mạng sẽ giảm. Khi cấu hình VLAN
thì nó sẽ làm giảm broadcast domain và gói tin broadcast chỉ được truyền đi
trong VLAN tương ứng và giúp tiết kệm băng thông của hệ thống.
- Hỗ trợ cho cân bằng tài và dự phòng: VLAN giúp cho việc truyền dữ liệu
có thể đi theo nhiều đường khác nhau nhờ cơ chế ngăn chặn sự lặp vòng của
gói tin.
1.4.3 Các kiểu VLAN
Khi VLAN được cung cấp hay tạo ra ở thiết bị Switch thì các thiết bị mạng
đầu cuối phải được gán vào VLAN tương ứng theo sự thiết kế. Dựa trên tính
năng VLAN có thể được cấu hình tĩnh hay động mà người quản trị mạng có thể
dùng một trong 2 phương pháp sau để thiết lập thành viên cho VLAN (gán thiết
bị vào VLAN tương ứng).

TÌM HIỂU VÀ MINH HỌA SNIFFER 25


Static VLAN (Port based VLAN):

Hình 1.10. Static VLAN


Đây là cách cấu hình VLAN tĩnh, tức là việc gán các thiết bị mạng vào làm
thành viên của VLAN dựa vào các cổng vật lý trên Switch, nói cách khác thì các
cổng của Switch được gán với các VLAN riêng biệt. Khi thiết bị mạng kết nối
vật lý đến đến một cổng trên Switch thì thiết bị này sẽ được tự động gán vào
VLAN đã được cấu hình từ trước. Trong kiểu cấu hình VLAN này thì người quản
trị mạng sẽ cấu hình các cổng trên Switch gán cho các VLAN bằng tay. Một hay
nhiều cổng trên Switch sẽ được cấu hình vào một VLAN với một VLAN ID. Mặc
dù hai thiết bị mạng được kết nối vào cùng một Switch nhưng lưu lượng mạng
giữa hai thiết bị không thể trao đổi với nhau vì hai VLAN này không cùng một
VLAN ID.
Dynamic VLAN (MAC address base VLAN):

TÌM HIỂU VÀ MINH HỌA SNIFFER 26


Đây là cách cấu hình VLAN động, việc cấu hình sẽ dựa trên địa chỉ MAC
của thiết bị thành viên VLAN. Khi một thiết bị mạng kết nối đến một cổng của
Switch thì thiết bị mạng này sẽ không được tự động được gán vào VLAN như
Static VLAN. Mà khi một thiết bị mạng kết nối đến một cổng của Switch, Switch
phải truy vấn đến một cơ sở dữ liệu để gán thiết bị mạng vào làm thành viên của
VLAN. Cơ sở dữ liệu này được gọi là VMPS (VLAN Membership Policy
Server) database. Người quản trị phải thực hiện gán địa chỉ MAC của các thiết bị
thành viên VLAN tương ứng trong VMPS database trên TFTP (Trivial File
Transfer Protocol) Server. Khi đổi thiết bị sang Switch khác, Switch sẽ dựa vào
VMPS database thực hiện chỉ định VLAN cho thiết bị đó.
Quá trình thực hiện Dynamic VLAN:
- Thiết bị mạng (Client) thực hiện kết nối vào một cổng trên Switch.
- Switch đóng vai trò VMPS Client nhận được địa chỉ MAC của thiết bị
mạng.

Hình 1.11.
Dynamic VLAN (MAC address base VLAN)
- Switch VMPS Client tiến hành kiểm tra địa chỉ MAC này bằng cách gửi
gói request đến Switch đóng vai trò là VMPS Server.
- Thông tin VMPS database (địa chỉ MAC tương ứng với VLAN) từ TFTP
Server sẽ được tải vào VMPS Server để kiểm chứng địa chỉ MAC request
từ VMPS Client.

TÌM HIỂU VÀ MINH HỌA SNIFFER 27


- Nếu thông tin được kiểm chứng là đúng thì VMPS Server sẽ gửi về VLAN
ID cho VMPS Client.
- VMPS Client sẽ cấu hình cổng cho thiết bị mạng vào đúng VLAN dựa trên
những thông tin nhận từ VMPS Server.
Các cổng trên Switch chỉ thuộc 1 VLAN. Lưu lượng sẽ không lưu thông qua
các cổng này cho đến khi Switch VMPS server chỉ định VLAN cho cổng này.
Nhiều thiết bị mạng có thể hoạt động trên cùng 1 cổng của Switch khi chúng
cùng chung VLAN. Các cổng trên Switch mà thiết bị được gán vào làm thành
viên của VLAN theo Dynamic VLAN được gọi là cổng động (Dynamic port).

Dynamic VLAN (Protocol base VLAN):


Đây cũng là cách cấu hình VLAN động. Cách cấu hình này gần giống như
MAC address base VLAN, nhưng sử dụng một địa chỉ logic hay địa chỉ IP thay
thế cho địa chỉ MAC. Cách cấu hình không còn thông dụng nhờ sử dụng giao
thức DHCP.
1.5 Hệ thống phân giải tên miền-DNS (Domain Name System)
1.5.1 Khái niệm
Mỗi máy tính trong mạng muốn liên lạc hay trao đổi thông tin, dữ liệu cho
nhau cần phải biết rõ địa chỉ IP của nhau. Nếu số lượng máy tính trong mạng
nhiều thì việc nhớ những IP này là rất khó khăn. Mỗi máy tính ngoài địa chỉ IP ra
còn có tên máy (host name). Đối với con người thì việc nhớ tên máy bao giờ
cũng dễ nhớ hơn địa chỉ IP vì chúng có tính trực quang và gợi nhớ hơn. Do đó
người ta tìm cách ánh xạ địa chỉ IP thành tên máy.
Dịch vụ DNS hoạt động theo mô hình Client-Server:
Server: có chức năng là phân giải tên thành địa chỉ IP và ngược lại địa chỉ IP
thành tên, được gọi là Name Server, lưu trữ cơ sở dữ liệu của DNS.

TÌM HIỂU VÀ MINH HỌA SNIFFER 28


Hình 1.12.
Sơ đồ tổ chức DNS
Client: truy vấn phân giải tên đến DNS server được gọi là Resolver, chứa
các hàm thư viện dùng để tạo các truy vấn (query) đến Name Server.DNS
được thi hành như 1 giao thức của tầng Application trong mô hình mạng
TCP/IP.Một hostname trong domain là sự kết hợp giữa những từ phân cách
nhau bởi dấu chấm (.).
Ví dụ: Tên máy là srv1 gọi là hostname. Tên đầy đủ trong domain theo mô
hình trên thì là srv1.csc.hcmuns.edu.vn gọi là FQDN (Fully Qualified
Domain Name).
1.5.2 Cơ chế phân giải tên
Phân giải tên thành địa chỉ IP
Root Name Server là máy chủ quản lý các name server ở mức top-level
domain. Khi có query về 1 tên domain nào đó thì Root Name Server sẽ cung cấp
tên và địa chỉ IP của name server quản lý top-level domain đó (thực tế thì hầu hết
các root server cũng chính là máy chủ quản lý top-level domain) và đến lược các
name server của top-level domain cung cấp danh sách các name server có quyền
trên các secon-level domain mà domain này thuộc vào. Cứ như thế đến khi nào
tìm được máy chủ quản lý tên domain cần truy vấn.
Qua quá trình trên cho thấy vai trò rất quan trọng của Root Name Server
trong quá trình phân giải tên domain. Nếu mọi Root Name Server trên mạng

TÌM HIỂU VÀ MINH HỌA SNIFFER 29


Internet không liên lạc được với nhau thì mọi yêu cầu phân giải tên đều sẽ không
được thực hiện.
Ví dụ : Client cần truy cập trang web Yahoo thì Client sẽ yêu cầu phân giải
địa chỉ IP của Web Server nào có chứa website Yahoo này. Đầu tiên Client sẽ tìm
trong cache của nó, nếu cache của nó không có thì nó sẽ gửi request querry đến
DNS local (nếu trong mạng nội bộ có DNS Server). Sau đó DNS local cũng sẽ
tìm trong cache của nó, nếu có nó sẽ gửi địa chỉ IP cần truy vấn đến cho Client,
nếu cache không có thì lúc này DNS local sẽ gửi request query này đến 1 Root
Name Server nào đó gần nó nhất mà nó biết được. Sau đó Root Name Server này
sẽ trã lời địa chỉ IP của Name Server quản lý miền .com cho DNS local. DNS
local lại hỏi tiếp name server quản lý domain .com miền yahoo.com địa chỉ IP là
bao nhiêu. Cuối cùng DNS local truy vấn máy chủ quản lý domain Yahoo và
nhận được câu trả lời.Truy vấn có thể ở 2 loại:
- Truy vấn đệ quy (recursive query) : khi name server nhận được truy vấn
dạng này, nó bắt buộc phải trả về kết quả tìm được hoặc thông báo lỗi nếu
như truy vấn này không phân giải được. Name Server không thể tham
chiếu đến 1 Name Server khác. Name Server có thể gửi truy vấn dạng
recursive hoặc interative đến Name Server khác nhưng phải thực hiện cho
đến khi nào có kết quả mới thôi.

Hình 1.13. Truy vấn đệ quy

TÌM HIỂU VÀ MINH HỌA SNIFFER 30


- Truy vấn tương tác (Iteractive query): khi name server nhận được truy
vấn dạng này, nó trả lời cho Resolver với thông tin tốt nhất mà nó có được
vào thời điểm lúc đó. Bản thân name server không thực hiện bất cứ một
truy vấn nào thêm. Thông tin trả về lúc đó có thể lấy từ dữ liệu cục bộ (kể
cả cache). Trong trường hợp Name Server không tìm thấy thông tin trong
dữ liệu cục bộ nó sẽ trả về tên miền và địa chỉ IP của Name Server nào
gần nhất mà nó biết.
Phân giải địa chỉ IP thành tên host
Để có thể phân giải tên máy tính của 1 địa chỉ IP, trong không gian tên miền
người ta bổ xung thêm 1 nhánh tên miền mà được lập chỉ mục theo địa chỉ IP.
Phần không gian này có tên miền là in-addr.arpa. Mỗi node trong miền in-
addr.arpa có 1 tên nhãn là chỉ số thập phân của địa chỉ IP.

TÌM HIỂU VÀ MINH HỌA SNIFFER 31


Hình 1.14. Truy vấn tương tác
Ví dụ: Miền in-addr.arpa có thể có 256 subdomain tương ứng với 256 giá trị
từ 0 đến 255 của byte đầu tiên trong địa chỉ IP. Trong mỗi subdomain lại có 256
subdomain con nữa ứng với byte thứ 2. Cứ như thế và đến byte thứ 4 có các bản
ghi cho biết tên miền đầy đủ của các máy tính hoặc các mạng có địa chỉ IP tương
ứng.
1.6 Địa chỉ MAC (Media Access Control)
1.6.1 Khái niệm
Năm 1976, khi nhu cầu kết nối các máy tính lại với nhau trở nên cấp thiết, 3
công ty lớn là Xerox, Intel và Digital Equipment Corp (DEC) đã cùng nhau
nghiên cứu và đưa ra bản thảo cho chuẩn DIX Ethernet, chuẩn cho phép các máy
tính kết nối với nhau thành mạng LAN. Đến năm 1980, tổ chức IEEE (Institute of
Electrical and Electronics Engineers) dựa vào bản thảo DIX Ethernet nói trên đã
xây dựng chuẩn Etherner đầu tiên, trong đó gồm 2 phần: IEEE 802.3 quy định về
lớp điều khiển truy cập môi trường, viết tắt là MAC và IEEE 802.2 quy định về
lớp điều khiển kết nối logic, viết tắt là LLC (Logical Link Control).
Trong mô hình tham chiếu OSI (Open Systems Interconnection) hay mô hình
tham chiếu kết nối các hệ thống mở thì địa chỉ MAC nằm ở lớp 2 (data-link). Nói

TÌM HIỂU VÀ MINH HỌA SNIFFER 32


một cách đơn giản, địa chỉ MAC là địa chỉ vật lý hay còn gọi là số nhận dạng của
mỗi thiết bị (identification number) của mỗi thiết bị. Mỗi thiết bị (card mạng,
modem, router,...) được nhà sản xuất gán sẵn một địa chỉ MAC nhất định và địa
chỉ này là duy nhất trên thế giới (có thể giả mạo được địa chỉ MAC).
1.6.2 Cấu trúc địa chỉ MAC
Địa chỉ MAC được biểu diễn bằng một số nhị phân 48 bit. Trong đó 24 bit
đầu là mã số của hãng sản xuất thiết bị đó và được tổ chức IEEE cấp cho mỗi
hãng và 24 bit này gọi là OUI (Organizationnally Unique Identifier). Còn 24 bit
sau là số seri cho từng thiết bị do nhà sản xuất tự gán cho từng thiết bị. Địa chỉ
MAC này được lưu trong chip ROM trên mỗi thiết bị trong quá trình sản xuất.
Địa chỉ MAC thường được viết ở dạng 12 số hexa và có 2 kiểu ghi địa chỉ MAC:
XX:XX:XX:YY:YY:YY (cách nhau bởi dấu 2 chấm) hoặc XX-XXXX-YY-YY-
YY (cách nhau bởi dấu gạch ngang).
Địa chỉ MAC được phân làm 3 loại:
- Unicast: đây là loại địa chỉ dùng để đại diện cho một thiết bị duy nhất.

Hình 1.15. Cấu trúc địa chỉ MAC


- Multicast: đây là loại địa chỉ đại diện cho một nhóm các thiết bị trong
mạng LAN. Địa chỉ được dùng trong trường hợp một ứng dụng có thể
muốn trao đổi với một nhóm các thiết bị. Bằng cách gửi đi một bản tin có
địa chỉ multicast; tất cả các thiết bị trong nhóm đều nhận và xử lí gói tin
trong khi các thiết bị còn lại trong mạng sẽ bỏ qua. Giao thức IP cũng hỗ
trợ truyền multicast. Khi một gói tin IP multicast được truyền qua một
mạng LAN, địa chỉ MAC multicast tương ứng với địa chỉ IP sẽ là
0100.5exxx.xxxx.

TÌM HIỂU VÀ MINH HỌA SNIFFER 33


- Broadcast: địa chỉ này đại diện cho tất cả các thiết bị trong cùng một
mạng LAN. Điều đó cũng có nghĩa là nếu một gói tin có địa chỉ MAC là
FFFF.FFFF.FFFF được gửi đi thì tất cả các thiết bị trong mạng LAN đều
phải thu nhận và xử lí.
Số lượng địa chỉ MAC rất lớn (2 48 địa chỉ) và sẽ được tái sử dụng vài năm
một lần nên đủ giải quyết việc phân định địa chỉ vật lý cho tất cả các máy tính.

TÌM HIỂU VÀ MINH HỌA SNIFFER 34


CHƯƠNG II: TỔNG QUAN VỀ SNIFFER
2.1 Định nghĩa Sniffer
Sniffer là một hình thức nghe lén trên hệ thống mạng, dựa trên những đặc
điểm của cơ chế TCP/IP. Sniffer là một kỹ thuật bảo mật, được phát triển nhằm
giúp đỡ những nhà quản trị mạng khai thác mạng hiệu quả hơn và có thể kiểm tra
các dữ liệu ra vào mạng, cũng như các dữ liệu chạy trong mạng. Về mặt tiêu cực,
Sniffer được sử dụng như một công cụ với mục đích nghe lén các thông tin trên
mạng để lấy các thông tin quan trọng.
2.2 Phân loại Sniffer
2.2.1 Active Sniffer
- Môi trường: Chủ yếu hoạt động trong môi trường có các thiết bị chuyển
mạch gói.Phổ biến hiện nay là các dạng mạch sử dụng switch.
- Cơ chế hoạt động: Chủ yếu hiện nay thường dùng cơ chế ARP và RARP
bằng cách phát đi các gói tin đầu độc, mà cụ thể ở đây là phát đi các gói
thông báo cho máy gởi gói tin là “tôi là người nhận” mặc không phải là
“người nhận”.
- Đặc điểm: Do phải gởi gói tin đi nên có thể chiếm băng thông mạng. Nếu
sniff quá nhiều máy trong mạng thì lượng gói gởi đi sẽ rất lớn (do liên tục
gởi đi các gói tin giả mạo) có thể dẫn đến nghẽn mạng hay gây quá tải trên
chính NIC của máy đang dùng sniff (thắt nút cổ chai).
Ngoài ra các sniffer còn dùng một số kỹ thuật để ép dòng dữ liệu đi qua NIC
như:
o MAC fooding: làm tràn bộ nhớ switch từ đó switch sẽ chạy chế độ
forwarding mà không chuyển mạch gói.
o MAC Spoofing/Duplicating: các sniffer sẽ thay đổi MAC của mình
thành MAC của một máy hợp lệ và qua được chức năng lọc MAC của
thiết bị.
o Đầu độc DHCP để thay đổi gateway của client.
o Giả mạo ARP.

TÌM HIỂU VÀ MINH HỌA SNIFFER 35


2.2.2 Passive Sniffer
- Môi trường: chủ yếu hoạt động trong môi trường không có các thiết bị
chuyển mạch gói. Phổ biến hiện nay là các dạng mạng sử dụng hub, hay các
mạng không dây.
- Cơ chế hoạt động: do không có các thiết bị chuyển mạch gói nên các host
phải bị broadcast các gói tin đi trong mạng từ đó có thể bắt gói tin lại xem
(dù host nhận gói tin không phải là nơi đến của gói tin đó).
- Đặc điểm: do các máy tự broadcast các gói nên hình thức sniff này rất khó
phát hiện.
2.2.3 Các giao thức dễ bị Sniffing
Bất kỳ giao thức nào không thực hiện mã hóa dữ liệu thì về nguyên tắc đều
có thể bị hacker tấn công qua hình thức sniffer. Những giao thức thông dụng như
Telnet, HTTP, POP3, SMNP, NNTP, FTP, IMAP đều bị sniffer đánh cắp dữ liệu
dễ dàng vì thông tin đăng nhập được gửi đi dưới dạng cleartext.
2.3 Một sốn phương pháp phát hiện Sniffer
2.3.1 Phương pháp Ping
ICMP (Internet Control Message Protocol) là một giao thức hoạt động trong
bộ giao thức TCP, giao thức này dùng để kiểm tra kết nối trong hệ thống mạng
thông qua hành động Ping.
Các máy tính trên mạng thường sử dụng giao thức TCP, khi gửi yêu cầu đến
những máy tính này, chúng sẽ phản hồi lại kết quả. Mỗi máy bao gồm hai loại địa
chỉ gồm địa chỉ IP và địa chỉ MAC. Khi dữ liệu được truyền trên mạng, một máy
tính chỉ chấp nhận gói tin khi gói tin này chứa địa chỉ MAC hợp lệ. Máy tính
chạy sniffer có thể được phát hiện bằng cách gởi đi những gói tin đến địa chỉ IP
của máy đó trong mạng, nhưng không thông qua card mạng.
Ví dụ, máy tính chạy sniffer có địa chỉ MAC là 00-32-08-A4-64-21 và có địa
chỉ IP là 10.0.0.4. Người quản trị mạng có thể đổi địa chỉ MAC của máy trên
trong router table thành 00-32-08-A4-64-24, sau đó Ping đến địa chỉ IP và MAC
mới này. Theo nguyên tắc thì không có máy tính nào có thể trả lời, nhưng vẫn có

TÌM HIỂU VÀ MINH HỌA SNIFFER 36


trả lời từ máy tính chạy chương trình sniffer, vì máy này có thể đã tắt tính năng
MAC Address Filtering trên card mạng. Trên cơ sở đó, người quản trị mạng sẽ
xác định được máy tính nào chạy sniffer trên hệ thống.
2.3.2 Phương pháp ARP
Phương pháp phát hiện Sniffer này tương tự như phương pháp dùng Ping.
Khác biệt chỗ chúng ta sẽ sử dụng gói tin ARP. Trong header của gói tin ARP
chứa địa chỉ IP và địa chỉ MAC của cả máy tính gửi và máy tính nhận. Trong hệ
thống mạng, nếu một gói tin ARP nonbroadcast được gửi đi, tất cả các máy tính
trong mạng mà gói tin đi qua, kể cả máy có cài đặt sniffer, sẽ lưu lại thông tin
này. Nếu ta ping tới địa chỉ broadcast, thì tất cả các máy trừ máy đã nhận gói tin
nonbroadcast sẽ trả lời lại. Nếu không có sự trả lời nào từ một máy nào đó, thì
máy đó có khả năng đã cài sniffer.
Ví dụ, giả sử có một gói tin ARP nonbroadcast từ gửi từ máy tính A đến máy
tính B. Máy tính C chạy sniffer sẽ lưu lại gói tin ARP nonbroadcast này. Khi ping
tới địa chỉ broadcast, cả máy B và C đều không trả lời. Suy ra, máy tính C có
chạy các chương trình sniffer.
2.3.3 Phương pháp DNS
Một số chương trình sniffer có tính năng phân giải ngược các địa IP thành
DNS mà chúng nhìn thấy. Để thực hiện phương pháp này, bạn cần theo dõi quá
trình phân giải ngược trên DNS Server, bằng cách ping đến những địa chỉ IP
không tồn tại trên hệ thống, nếu có trả lời từ một máy tính nào đó thì rất có thể
máy đó đã được cài đặt chương trình sniffer và nó đang cố gắng phân giải ngược
địa chỉ IP không tồn tại này.
2.3.4 Phương pháp Source-Route
Để phát hiện sniffer, phương pháp Souce-Route sử dụng một kỹ thuật gọi là
loose-source route. Loose-source route chứa thông tin đường đi (danh sách các
địa chỉ IP) mà gói tin phải đi qua để đến được đích.
Ví dụ, ta có các máy tính với IP như hình, loose-source route chứa đường
dẫn 192.168.0.12  192.168.0.15  192.168.0.17  192.168.0.23, với

TÌM HIỂU VÀ MINH HỌA SNIFFER 37


192.168.0.12 là địa chỉ nguồn, 192.168.0.23 là địa chỉ đích. Giả sử rằng để đến
được máy D, gói tin từ máy A phải đi qua máy B và máy C. Nếu người quản trị
vô hiệu hóa tính năng routing trên máy C mà gói tin vẫn đi sang máy D được thì
rất có thể máy C đã cài đặt các chương trình sniffer. Một cách khác để phát hiện
sniffer là sử dụng trường time to live(TTL), nếu TTL ở máy A là 25, khi gói tin
đến máy B, TTL sẽ giảm xuống còn 24, tương tự cuối cùng khi đến được đích
(máy D) TTL còn 22. Nếu máy D sniff các gói tin từ máy B thì khi đến D, TTL
chỉ giảm đến 23. Điều này chứng tỏ máy D có cài đặt các chương trình sniffer.
2.3.5 Phương pháp giăng bẫy (Decoy)
Phương pháp này được sử dụng trong những phạm vi mạng rộng lớn hơn
như Internet. Rất nhiều giao thức sử dụng các password không được mã hoá trên
đường truyền. Đơn giản bạn chỉ cần giả lập những Client sử dụng dịch vụ mà
Password không được mã hoá như : POP, FTP, Telnet,...Bạn có thể cấu hình
những User không có quyền hạn, hay thậm chí những User không tồn tại. Khi
sniff được những thông tin này, các Hacker sẽ tìm cách kiểm tra, sử dụng và khai
thác chúng...
2.3.6 Minh họa sử dụng công cụ Ettercap để phát hiện Arp poisoning

192.168.1.20
Admin

192.168.1.1
192.168.1.10
Attacker

192.168.1.21
User

Hình 2.1. Mô hình minh họa

TÌM HIỂU VÀ MINH HỌA SNIFFER 38


Ở minh họa này máy Attacker sẽ sử dụng phần mềm Cain & Abel để thực
hiện tấn công Arp Poisoning, cách tấn công tương tự như phần ở chương 2. Trên
máy Admin sẽ cài thêm phần mềm Ettercap để giám sát hệ thống.
Các bước thực hiện:
Trên máy Attacker, kết quả sau khi thực hiện tấn công Arp Poisoning.

TÌM HIỂU VÀ MINH HỌA SNIFFER 39


Hình 2.2. Kết quả sau khi tấn công
Sang máy Admin khởi động Ettercap, chọn Sniff  Unified Sniffing, chọn
eth0 (card mạng giao tiếp với hệ thống)  OK.
Chọn tiếp Host  Scan for host, để scan tất cả các host trong mạng, Start
 Start sniffing, sang tab Plugin  Manage the plugin.
Click đúp vào mục search_promisc để lọc ra những card mạng đang ở trạng
thái promiscuous mode, ta được kết quả

TÌM HIỂU VÀ MINH HỌA SNIFFER 40


Hình 2.3. Phát hiện Sniffer bằng Ettercap
Ở dòng Most probably sniffing NICs liệt kê những địa chỉ IP có khả năng
cao đang chạy các chương trình Sniffer( máy Attacker). Ở phần này Admin cũng
có thể sử dụng thêm plugin arp_cop để theo dõi các hoạt động Arp đáng ngờ trên
hệ thống.
2.4 Các phương pháp phòng chống Sniffer
Nhìn chung, sử dụng phần mềm phát hiện nghe trộm là giải pháp nhanh và
thuận tiện nhất đối với người dùng cuối. Tuy nhiên hạn chế lớn của các chương
trình này là chỉ phát hiện được sau khi đã bị nghe lén phát hiện trong thế bị động
khi sự nghe trộm đã xảy ra. Cách đơn giản nhất để ngăn chặn những kẻ muốn
Sniffer dữ liệu là sử dụng các giao thức mã hoá chuẩn cho dữ liệu trên đường
truyền. Dưới đây là một số cách phòng chống Sniffer trên hệ thống mạng:
- Thay thế Hub bằng những Switch, nó có thể cung cấp một sự phòng chống
hiệu quả hơn, tuy nhiên cũng cần phải giới hạn mức độ và phạm vi broadcast
bằng cách phân chia VLAN.
- Giới hạn khả năng bị cài đặt chương trình nghe lén bằng cách áp dụng chính
sách quản lý cài đặt phần mềm cho hệ thống như: Port Sercurity, DHCP
snooping, Dynamic Arp Inspection,…
- Đối với mạng nhỏ, nên sử dụng địa chỉ IP tĩnh và bảng ARP tĩnh để hạn chế
khả năng bị tấn công kiểu ARP spoofing thông qua giám sát chặt chẽ sự thay
đổi địa chỉ MAC (Media Access Control) trên thiết bị switch.
- Áp dụng cơ chế one-time password, thay đổi password liên tục.
- Mã hóa dữ liệu truyền dẫn bằng các cơ chế truyền thông dữ liệu an toàn SSL
(Secure Sockets Layer), mạng riêng ảo VNP (Virtual Private Network). Nói
cách khác là thay thế hoặc hạn chế sử dụng các giao thức truyền thông không
mã hóa dữ liệu bằng giao thức mã hóa. Ví dụ: Dùng SSH (Secure Shell Host)
thay cho Telnet/Rlogin, dùng SFTP (secure FTP) thay vì FTP, dùng HTTPS
thay cho HTTP,..

TÌM HIỂU VÀ MINH HỌA SNIFFER 41


- Đối với hệ thống mạng công ty, cách bảo vệ tốt nhất là ngăn chặn, phòng
ngừa ngay từ đầu bằng cách xây dựng các chính sách bảo mật mạng
(Network Security Policy). Trong đó có những chính sách quản lý truy xuất,
quản lý bảo vệ vật lý hệ thống mạng với những quy định như: ai được phép
tiếp xúc với các máy, được phép sử dụng máy, được phép gắn thêm thiết bị
vào máy, được phép cài đặt những loại chương trình nào (không cho phép
người dùng tự ý cài đặt chương trình), nhằm hạn chế đến mức tối đa khả
năng xâm nhập về mặt vật lý đế cài đặt các chương trình nghe lén trong
mạng.

TÌM HIỂU VÀ MINH HỌA SNIFFER 42


CHƯƠNG III: CÁC LOẠI SNIFFER VÀ CÁCH PHÒNG CHỐNG
3.1 MAC flooding
3.1.1 Bảng CAM (Content Address Memory)
Bảng CAM là vùng nhớ trong RAM của Switch dùng để lưu các ánh xạ giữa
địa chỉ MAC nguồn của các PC, thiết bị mạng và port trên Switch mà các thiết bị
đó kết nối vào mạng. Kích thước các bảng CAM là giới hạn và tùy thuộc vào các
dòng Switch khác nhau. Dữ liệu trong bảng CAM được Switch xây dựng qua quá
trình học địa chỉ MAC, duy trì trong quá trình hoạt động và sẽ được cập nhật sau
một khoảng thời gian nhất định hoặc khi Switch khởi động lại. Thời gian cập
nhật của bảng CAM thường là sau khoảng thời gian 300s.

TÌM HIỂU VÀ MINH HỌA SNIFFER 43


Hình 3.1. Bảng CAM
3.1.2 MAC flooding
Tấn công:
MAC flooding thuộc loại active Sniffer, là một kiểu tấn công dựa vào điểm
yếu của Switch. Kẻ tấn công sẽ dùng một phần mềm để gửi đến Switch thật nhiều
gói tin mà mỗi gói tin có địa chỉ MAC nguồn khác nhau (các địa chỉ MAC này là
giả). Theo nguyên tắc hoạt động của Switch, khi nhận được địa chỉ MAC nguồn
của gói tin không có trong bảng CAM thì Switch sẽ học thêm địa chỉ này vào
bảng CAM ứng với port nhận gói tin gửi tới. Như vậy nếu trong một khoảng thời
gian mà Switch nhận được một số lượng lớn các gói tin như thế thì bảng CAM sẽ
bị đầy và Switch sẽ không thể học thêm địa MAC từ bất cứ máy nào gửi gói tin
đến. Khi bảng CAM bị đầy thì Switch sẽ gửi các gói tin mà nó nhận được ra tất
cả các cổng trừ cổng nó nhận được, cơ chế này giống như một Hub (thiết bị hoạt
động ở lớp 1). Lúc này kẻ tấn công có thể thấy gói tin của các máy gửi cho nhau
trong mạng nhờ vào các phần mềm Sniffer.
Cách phòng chống:
Nguyên lý của phương pháp phòng chống MAC flooding là không cho các
gói tin có địa MAC lạ đi qua Switch. Phương pháp phòng chống hiệu quả nhất là
cấu hình port-security trên Switch. Đây là phương pháp cấu hình cho phép điều
khiển việc truy cập vào các port của Switch thông qua địa chỉ MAC của thiết bị
gắn vào.
Khi Switch nhận được một gói tin chuyển đến, nó sẽ kiểm tra địa chỉ MAC
nguồn của gói tin với danh sách các địa chỉ MAC trong bảng CAM. Nếu địa chỉ
MAC này đã có trong bảng CAM thì switch sẽ forward gói tin đến địa chỉ MAC
đích mà gói tin yêu cầu. Nếu địa chỉ này chưa có trong bảng CAM thì tuỳ theo sự

TÌM HIỂU VÀ MINH HỌA SNIFFER 44


cấu hình của người quản trị mà Switch sẽ xử lí gói tin đến với các mức độ khác
nhau. Các biện pháp xử lí có thể là:
- shutdown: cổng sẽ bị ngừng hoạt động, không nhận và chuyển gói tin
- restrict: cổng chỉ cho phép các gói tin có địa chỉ MAC hợp lệ đi qua, các
gói tin vi phạm sẽ bị huỷ. Đồng thời sẽ báo syslog cho người quản trị.
- protect: cũng giống như trong trường hợp restrict, tuy nhiên sẽ không báo
syslog.
3.2.3 Minh họa
Chuẩn bị
- Một Cisco Switch
- Một PC đóng vai trò User
- Một PC đóng vai trò Attacker
- Cáp kết nối

Mô hình

F0/1 User

Switch F0/7

Attacker

Hình 3.2. Mô hình MAC flooding


Thực hiện
Để tiến hành tấn công MAC flooding ta có rất nhiều công cụ nhưng hiệu quả
hơn cả là macof. Đây là một phần mềm nhỏ trong gói phần mềm dsniff, gói phần
mềm này chỉ chạy trên môi trường Linux. Ta có mô hình như hình trên, mô hình

TÌM HIỂU VÀ MINH HỌA SNIFFER 45


gồm 2 PC và một Switch. Trên mô hình ta có một máy Attacker dùng để tấn công
MAC flooding và một máy là user bình thường. Trên máy Attacker, trong
terminal ta dùng lệnh sau: macof –i eth0 (lệnh này thực hiện việc flood
MAC qua cổng ethernet0), macof –i eh0 –n n (lệnh này thực hiện việc flood
MAC qua interface ethernet0 và flood n lần).

Hình 3.3. Flood MAC trên ubuntu


Khi thực hiện lệnh trên, PC sẽ tiến hành gởi các địa chỉ MAC ảo tới Switch,
Switch sẽ học tất cả các địa chỉ MAC này và sau một thời gian Switch sẽ xảy ra
hiện tượng tràn bảng CAM. Ta xem tất cả các địa chỉ MAC trong bảng CAM
bằng lệnh trên Switch: Switch#show mac address-table

TÌM HIỂU VÀ MINH HỌA SNIFFER 46


Hình 3.4. Kết quả sau khi thực hiện MAC flooding

TÌM HIỂU VÀ MINH HỌA SNIFFER 47


Để phòng chống MAC flooding ta sẽ cấu hình chức năng port-security trên
Switch. Ta sẽ xác định cổng tin tưởng và chỉ cho một hoặc một số cổng được gởi
frame qua Switch.

TÌM HIỂU VÀ MINH HỌA SNIFFER 48


Hình 3.5. Cấu hình port-security trên Switch
3.2 DHCP starvation
3.2.1 DHCP starvation
Như chúng ta đã tìm hiểu ở chương 1, DHCP Server cấp phát, quản lý
thông tin cấu hình TCP/IP của các Client như địa chỉ IP, Default Gateway,
DNS Server, và khoảng thời gian được cấp phát. Quá trình cấp phát diễn ta gồm
4 bước, trong đó bước đầu tiên là Client broadcast DHCPDISCOVER nhằm xin
địa chỉ IP của Server, sau các bước tiếp theo thì Client sẽ nhận được IP từ Server.
Như vậy, ta có thể thấy bước đầu tiên rất quan trọng và rất dễ bị tấn công

DHCP Request/Reply Message

TÌM HIỂU VÀ MINH HỌA SNIFFER 49


TÌM HIỂU VÀ MINH HỌA SNIFFER 50
Hình 3.6. Chức năng các gói tin DHCP
Tấn công
Khi một Client cần cấp ip từ DHCP Server thì đầu tiên Client sẽ gởi một gói
tin broadcast DHCPDISCOVER đến DHCP Server, sau đó thì DHCP sẽ xử lý và
cấp phát địa chỉ IP cho Client và hầu hết việc gởi gói tin DHCPDISCORVER của
Client đều được DHCP Server cấp địa chỉ IP. Lợi dụng điều này thì Attacker sẽ
tấn công vào dịch vụ DHCP. Ý tưởng của việc tấn công DHCP starvation là
Attacker sẽ gởi rất nhiều gói broadcast DHCPDISCOVER với những địa MAC
khác nhau tới DHCP Server, điều này sẽ làm cho DHCP Server “bị đánh lừa” từ
đó Attacker sẽ nhận địa những địa chỉ IP tương ứng với những gói broadcast
DHCPDISCOVER đã gửi trước đó. Điều này sẽ làm cho việc quản lý địa chỉ IP
gặp nhiều khó khăn vì các Users khi cần địa chỉ IP từ DHCP Server sẽ không
nhận được địa chỉ IP vì khi đó tất cả địa chỉ IP đã được cấp cho các gói tin từ
Attacker gởi tới.
DHCP starvation là một phương thức tấn công từ chối dịch vụ (DoS-Denial
of Service) dựa trên bản tin DHCP và đây thuộc loại active sniffer.

Client

DHCP Server
Yersinia
DHCPDISCOVER
DHCPOFFER
DHCPREQUEST
DHCPACK

Hình 3.7. Tấn công DHCP stravation


Phòng chống
Khi Client gởi một gói tin DHCPDISCOVER tới DHCP Server thì trong gói
tin đó cũng bao gồm cả địa chỉ MAC của Client cũng như là Computer name của

TÌM HIỂU VÀ MINH HỌA SNIFFER 51


Client. Nhờ vào đặc điểm này DHCP Server có thể biết được gói tin từ Client nào
gởi tới. Ta có thể nhờ vào đặc điểm này để phòng chống việc tấn công DHCP
starvation, ý tưởng của việc này là lọc những gói tin được gởi tới switch, chỉ cho
những địa chỉ chúng ta đã định sẵn đi qua, còn những gói tin từ những địa chỉ lạ
chúng ta sẽ hủy không cho gói tin từ địa chỉ lạ đó đi qua. Tính năng hiệu quả nhất
ta nên dùng là port-sercurity trên Switch.

3.2.2 Minh họa


Chuẩn bị
- Một Cisco router
- Một Cisco switch
- Một PC đóng vai trò User
- Một PC đóng vai trò Attacker (chạy Linux đã cài sẵn yersinia)
Mô hình

F0/1 User
F0/0 F0/24
F0/7
Switch
Router

Attacker

Hình 3.8. Mô hình tấn công DHCP starvation


Thực hiện
Để tiến hành tấn công DHCP starvation ta có rất nhiều công cụ, trên Linux ta
có một công cụ rất hiệu quả và dễ sử dụng đó là yersinia. Như mô hình trên ta
dùng một

TÌM HIỂU VÀ MINH HỌA SNIFFER 52


Router đóng vai trò như một DHCP Sever, Switch đóng vai trò forward các gói
tin từ PC gởi tới Router. Đầu tiên ta tiến hành cấu hình DHCP Server trên Router.

Hình 3.9. Cấu hình DHCP Server trên Router


Để tiến hành tấn công, đầu tiên ta khởi động chương trình bằng lệnh
yersinia –G trong terminal

Hình 3.10. Giao diện yersinia trên ubuntu


Sau đó, chọn qua thẻ DHCP để theo dõi tiến trình Attack. Để bắt đầu tấn
công, click nút Launch attack để mở giao diện attack option.
Tiếp theo, chọn sending DISCOVER packet và click nút OK để gởi
DHCPDISCOVER cho DHCP Server.

TÌM HIỂU VÀ MINH HỌA SNIFFER 53


Hình 3.11. DHCP Attack option
Để xem những bản tin DHCPDISCOVER, ta chuyển qua thẻ DHCP trên
giao diện yersinia

TÌM HIỂU VÀ MINH HỌA SNIFFER 54


Hình 3.12. Bản tin DHCPDISCOVER trên yersinia
Sau khi Attack bằng cách gởi gói tin DHCPDISCOVER, ta kiểm tra việc
Attack bằng cách xem những IP đã được Server cấp cho Client. Ta xem tất cả các
địa chỉ MAC trong bảng CAM bằng lệnh trên Router:
Router#show ip dhcp binding

TÌM HIỂU VÀ MINH HỌA SNIFFER 55


TÌM HIỂU VÀ MINH HỌA SNIFFER 56
Hình 3.13. Show DHCP binding
Để phòng chống DHCP starvation, ta cũng cấu hình port-security trên Switch
tương tự như trên phương pháp phòng chống MAC flooding.
3.3 Rogue DHCP Server
3.3.1 Rogue DHCP Server
Trong mỗi hệ thống đều có một DHCP Server có nhiệm vụ cung cấp toàn bộ
IP cho hệ thống mạng, những IP này sẽ có Default-gateway và DNS-Server.
Những thông tin này được người quản trị mạng cấu hình sẵn, nó giúp hoạt động
trong mạng theo đúng mong muốn của người quản trị mạng. Nhưng nếu toàn bộ
thông tin trên của các máy Client bị sai lệch không đúng với mong muốn của
người quản trị mạng thì toàn bộ hệ thống mạng sẽ hoạt động sai lệch. Trên những
ý tưởng đó, Attacker sẽ tấn công Rogue DHCP Server. Attacker trong cuộc tấn
công này sẽ đóng vai trò như một DHCP Server trong mạng, Attacker sẽ cài đặt
một DHCP pool, trong đó DHCP pool này sẽ có default gateway và DNS Server
chỉ về địa chỉ mà Attacker mong muốn

Hình 3.14. Rogue DHCP Server


Tấn công
Ý tưởng của Rogue DHCP Server là một hệ thống mạng sẽ tồn tại một
DHCP Server không nằm trọng kế hoạch của người quản trị, DHCP này sẽ do
Attacker cấu hình. Khi Client xin địa chỉ IP bằng gói tin DHCPDISCOVER thì

TÌM HIỂU VÀ MINH HỌA SNIFFER 57


Attacker sẽ trả lời lại những gói tin này, sau đó Client sẽ nhận được IP từ DHCP
Server giả này, địa chỉ IP này sẽ trỏ tới một địa chỉ Default-gateway của chính
máy Attacker và DNS-Server là do Attacker phân giải, điều này có thể dẫn đến
sai lệch về việc phân giải tên miền, từ đó việc sniff của Attacker sẽ rất dễ dàng.
Việc tấn công này không đảm bảo lúc nào cũng thành công, vì theo lý thuyết thì
khi Client gởi DHCPDISCOVER thì Server sẽ trả về IP. Nhưng khi mạng tồn tại
2 Server thì Server nào trả IP về trước thì Client sẽ nhận IP đó.
Phòng thủ
Trong hệ thống mạng các Server được kết nối với các thiết bị Client qua
Switch. Trên Switch ta có thể cấu hình DHCP snooping để phòng chống việc tấn
công Rogue DHCP Server. Ý tưởng của phương pháp trên là xác định cổng tin
tưởng trên Switch, các thiết bị đầu cuối được nối với Switch chỉ nhận IP được
cấp từ các Server được nối với cổng tin tưởng trên Switch. DHCP snooping sẽ
các định cổng tin tưởng trên các VLAN, vì vậy ta sẽ chia VLAN trên Switch
trước khi cấu hình DHCP snooping cho hệ thống.
3.3.2 Minh họa
Chuẩn bị
- Một Cisco router
- Một Cisco switch
- Một PC đóng vai trò User
- Một PC đóng vai trò Attacker (chạy Windows Server 2008)
Mô hình

TÌM HIỂU VÀ MINH HỌA SNIFFER 58


Hình 3.15. Mô hình tấn công Rogue DHCP Server
Thực hiện
Trên mô hình có 2 DHCP Server, đối với Server làm Attacker ta sử dụng
Windows Server 2008 để dựng DHCP Server và Server chính ta sử dụng Router
để
dựng

DHCP Server.

TÌM HIỂU VÀ MINH HỌA SNIFFER 59


Hình 3.16. DHCP trên Windows Server 2008
Trên DHCP ta tạo một scope mới, có dãy địa chỉ từ 172.16.1.1 đến
172.16.1.200

Hình 3.17. Tạo scope trên DHCP Server


Trên Router ta cũng cấu hình tạo một DHCP pool, việc cấu hình tương tự
như trên phần DHCP stavation, dãy địa chỉ là toàn bộ lớp mạng 192.168.1.0/24.
Khi Client xin IP thì không chắc chắn rằng IP mà Client nhận được sẽ từ

TÌM HIỂU VÀ MINH HỌA SNIFFER 60


Attacker hay do Router cấp, vì thế ở bài LAB này đôi khi là IP của Attacker và
đôi khi cũng là Router.
Để cấu hình phòng chống cho việc tấn công Rogue DHCP Server, ta cấu
hình DHCP snooping. Mặc định tất cả các cổng trên Switch đều thuộc VLAN 1,
ta sẽ cấu hình trên VLAN 1 và sau đó xác định cổng tin tưởng

Hình 3.18. Cấu hình DHCP snooping


Sau khi cấu hình ta sẽ kiểm tra việc cấu hình DHCP snooping

Hình 3.19. Kiểm tra DHCP snooping


3.4 ARP Poisoning
3.4.1 Quá trình ARP
HostA và HostB truyền tin cho nhau, các packet sẽ được đưa xuống tầng
Datalink để đóng gói, các Host sẽ phải đóng gói MAC nguồn, MAC đích vào
frame. Như vâ ̣y trước khi quá trình truyền dữ liê ̣u xảy ra, 2 máy sẽ phải làm đô ̣ng
tác hỏi MAC của nhau.
Nếu HostA khởi đô ̣ng quá trình hỏi MAC trước, nó broadcast gói tin ARP
request để hỏi MAC HostB, thì HostB coi như đã có MAC của HostA, và HostB
chỉ trả lời cho A MAC của HostB thôi (gói tin trả lời từ HostB là ARP response).
3.4.2 ARP Spoofing Attack
Lợi dụng điểm yếu của giao thức ARP là giao thức stateless, có nghĩa là một
host khi nhận bản tin reply vẫn cập nhật thông tin trong đó vào ARP cache mặc

TÌM HIỂU VÀ MINH HỌA SNIFFER 61


dù nó hoàn toàn không gửi đi ARP request. Kẻ tấn công lợi dụng điểm yếu này
để gửi đi bản tin gratuitous giả mạo địa chỉ MAC nguồn tới máy nạn nhân.

Hình 3.20. ARP Spoofing Attack


Đầu tiên, UserA muốn gởi dữ liệu cho Victim (User B). UserA cần phải biết
địa chỉ MAC của Victim để liên lạc. UserA sẽ gửi broadcast ARP Request tới tất
cả các máy trong cùng mạng LAN để hỏi xem IP 10.1.1.1 (IP của Victim) có địa
chỉ MAC là bao nhiêu. Tất cả các User trên mạng LAN (kể cả Attacker) đều nhận
được gói tin ARP Request, nhưng chỉ có Victim là gửi lại gói tin ARP Response
lại cho UserA. ARP Response chứa thông tin về IP của Victim, MAC Victim,
MAC UserA.
Sau khi nhận được gói tin ARP Response từ Victim, UserA đã biết được địa
chỉ MAC của Victim. UserA bắt đầu thực hiện liên lạc, truyền dữ liệu tới Victim.
Các User khác không thể xem nội dung dữ liệu được truyền giữa 2 máy UserA và
Victim. Attacker muốn xem dữ liệu truyền giữa UserA và Victim. Attacker sử
dụng kiểu tấn công ARP Spoofing. Attacker thực hiện gửi liên tục ARP Response
chứa thông tin về IP Victim, MAC Attacker, MAC UserA. Ở đây, thay vì là
MAC Victim, Attacker đã đổi thành địa chỉ MAC của mình.
UserA nhận được ARP Response và nghĩ là IP Victim 10.1.1.1 sẽ có địa chỉ
MAC là 9:8:7:6:5:4 (MAC của Attacker). UserA lưu thông tin này vào bảng ARP
Cache. Bây giờ mọi thông tin, dữ liệu UserA gửi tới 10.1.1.1 (Victim), Attacker

TÌM HIỂU VÀ MINH HỌA SNIFFER 62


đều có thể nhận được, Attacker có thể xem toàn bộ nội dung UserA gửi cho
Victim.
Attacker còn có thể kiểm soát toàn bộ quá trình liên lạc giữa UserA và
Victim thông qua ARP Attack. Attacker thường xuyên gửi các gói tin ARP
Response chứa địa chỉ IP của UserA và Victim nhưng có địa chỉ MAC là của
Attacker.
- UserA nhận được gói tin này thì cứ nghĩ Victim sẽ có địa chỉ MAC là
9:8:7:6:5:4 (MAC của Attacker).
- Victim nhận đươc gói tin này thì cứ nghĩ UserA sẽ có địa chỉ MAC là
9:8:7:6:5:4 (MAC của Attacker).
Mọi thông tin trao đổi giữa UserA và Victim, Attacker đều có thể nhận được.
Như vậy là Attacker có thể biết được nội dung trao đổi giữa UserA và Victim.
Bằng cách giả mạo các gói tin ARP, Attacker có thể chuyển hướng tất cả
các kết nối giữa hai thiết bị khiến toàn bộ traffic đi về máy của mình, từ đó sẽ
dẫn tới:
- Từ chối dịch vụ.
- Chặn dữ liệu.
- Nghe lén cuộc gọi VoIP.
- Đánh cắp Password.
- Chỉnh sửa dữ liệu.
3.4.3 Nhược điểm của ARP Spoofing Attack
Chỉ có những máy nằm trong cùng đường mạng với máy Attacker mới bị tấn
công. Các máy nằm khác mạng sẽ không thể bị tấn công bằng hình thức này vì
trong cùng một đường mạng LAN, các máy sẽ thực hiện trao đổi dữ liệu với nhau
dựa vào địa chỉ MAC. HostA muốn trao đổi dữ liệu với HostB. HostA sẽ dò tìm
trong bảng ARP cache xem IP của HostB sẽ có địa chỉ MAC tương ứng là gì.
HostA đóng gói dữ liệu cần truyền với MAC nguồn là MAC HostA, MAC đích

TÌM HIỂU VÀ MINH HỌA SNIFFER 63


là MAC HostB. Sau đó HostA sẽ truyền dữ liệu tới HostB dựa vào MAC đích
của gói tin.
Trong trường hợp HostA, HostB khác đường mạng muốn liên lạc với nhau,
ta phải dựa vào địa chỉ IP để truyền dữ liệu và phải thông qua một thiết bị định
tuyến, đó là router. HostA sẽ đóng gói dữ liệu cần truyền với MAC nguồn là
HostA, MAC đích là router. Gói tin đó sẽ được truyền đến router, router sẽ dựa
vào địa chỉ IP đích (IP HostB)và dò tìm trong bảng định tuyến nhằm xác định
con đường đi đến HostB. Router có khả năng ngăn chặn các gói tin broadcast
Hình thức tấn công này không thể thực hiện được trong mạng WAN, trên
Internet mà chỉ thực hiện được trên cùng mạng LAN.
Cách phòng chống ARP Spoofing
- Dùng lênh:
̣
arp -a xem bảng ARP trên máy mình, kiểm tra MAC của B có đúng
là MAC B hay không.
arp -d * xóa toàn bô ̣ ARP table trên máy mình, như vâ ̣y các địa chỉ
MAC bị tấn công cũng mất, và máy tính sẽ bắt đầu học lại. Nhưng nếu
máy tấn công vẫn tiếp tục bơm các gói tin ARP đầu đô ̣c thì viê ̣c xóa ARP
table này cũng vô ích.
arp -s gắn cố định IP đích vào MAC thâ ̣t của nó, như vâ ̣y kẻ tấn công
không đầu đô ̣c được IP này nữa. Nhưng viêc̣ này không khả thi cho mạng
lớn, nhiều máy tính, và có sự thay đổi IP (dùng DHCP).
- Dùng thiết bị:
Sử dụng DAI (Dynamic ARP Inspection): DAI tương thích với
các Trusted và Untrusted Port trên Switch. Trusted Port cho qua tất
cả các gói tin ARP. Untrusted Port xác nhận sự đúng đắn của các gói
tin ARP.
- Cấu hình kích hoạt DAI trên các VLAN
Switch(config)# ip arp inspection vlan [vlan_id,vlan_id,…]
Cấu hình Trusted và Untrusted Interface trên Switch

TÌM HIỂU VÀ MINH HỌA SNIFFER 64


Switch(config-if)# ip arp inspection trust
Cấu hình DAI loại bỏ các gói ARP nếu địa chỉ IP không hợp lệ
Switch(config-if)# ip arp inspection validate {[src-mac][dst-mac]
[ip]}
Kiểm tra
Switch# show ip dhcp snooping bindings
Switch# show ip arp inspection
3.4.4 Minh họa
Chuẩn bị
- Một Cisco router
- Một Cisco switch
- Một PC đóng vai trò Victim
- Một PC đóng vai trò Attacker (cài Sniffer)
Mô hình

Hình 3.21. Sơ đồ minh họa ARP Spoofing


Thực hiện
Để thực hiện minh họa này, ta cần có 3 máy tính chạy hệ điều hành Windows
XP, máy Attacker sẽ cài đặt thêm phần mềm Cain&Abel.

TÌM HIỂU VÀ MINH HỌA SNIFFER 65


Trên máy attacker khởi chạy Cain&Abel, chọn tab Sniffer. Chọn Configure
 chọn card mạng giao tiếp với hệ thống, ở đây chọn 192.168.1.3 Apply
OK
Chọn Start Sniffer, sau đó chọn tiếp Start ARP
Chọn Add to list để quét tất cả các máy có trên mạng OK, ta được kết quả

TÌM HIỂU VÀ MINH HỌA SNIFFER 66


Hình 3.22. ARP Spoofing trên Cain & Abel
Chọn sang tab ARP Add to list, chọn các máy muốn sniff, OK. Chọn
Start ARP 1 lần nữa.

TÌM HIỂU VÀ MINH HỌA SNIFFER 67


Hình 3.23. Kết quả Spoofing
Sang máy User A, vào Command Prompt, gõ telnet 192.168.1.4 (telnet sang
máy Victim), đăng nhập bằng username Administrator, password 123456. Sang
máy Attacker, đến tab Password  Telnet, ở khung bên phải, click vào dòng
cuối, chọn View, ta được kết quả:

Hình
3.24. Username và Password bắt được
Sang máy User A, gõ lệnh arp –a, để xem bảng arp

Hình 3.25. Bảng ARP trên máy Victim


Việc phòng thủ ARP spoofing, chúng ta sẽ dùng tính năng DAI (Dynamic
ARP Inspection) trên Switch. Nhưng vì một số nguyên nhân khách quan nên

TÌM HIỂU VÀ MINH HỌA SNIFFER 68


nhóm không thể thực hiện tính năng này trên Switch, nên vì thế nhóm chỉ giới
thiệu tính năng này trong phần lý thuyết phòng thủ ARP spoofing.
3.5 DNS Poisoning
3.5.1 Tổng quan
DNS poisoning là kỹ thuật đánh lừa DNS server làm cho nó tưởng là nó đã
nhận được thông tin phân giải địa chỉ-ip đúng tuy nhiên trên thực tế thì nó nhận
thông tin giả mạo. Đây là dạng attacker mà các Attacker thường hay sử dụng khi
có mong muốn tấn công vào một mạng nào đó. Dạng attacke này nếu xảy ra sẽ có
hậu quả to lớn cho toàn bộ hệ thống bị tấn công, toàn bộ địa chỉ phân giải sẽ bị
thay đổi làm cho thông tin bị sai lệch. DNS poisonig gồm có 4 kiểu tấn công phổ
biến: Intranet DNS spoofing (local network), Internet DNS spoofing (remote
network), Proxy Server DNS poisoning, DNS Cache poisoning.

TÌM HIỂU VÀ MINH HỌA SNIFFER 69


Hình 3.26. DNS Poisoning
3.5.2 Intranet DNS Spoofing
Intranet DNS spoofing là kiểu tấn công dựa trên hoạt động của DNS. Kiểu
tấn công này tấn công vào mạng cục bộ. Đầu tiên, Attacker sẽ kết nối vào hệ
thống, Attacker sẽ đầu độc toàn bộ hệ thống bằng cách lây nhiễm Trojan. Con
Trojan này sẽ tiến hành thay đổi toàn bộ địa chỉ DNS của User thành địa chỉ mà
của Attacker dựng nên, vì thế khi User tiến hành yêu cầu phân giải địa chỉ thì yêu
cầu này sẽ gởi tới máy Attacker.

TÌM HIỂU VÀ MINH HỌA SNIFFER 70


Hình 3.27. Intranet DNS spoofing
Bước tiếp theo Attacker sẽ gởi trả về cho User một địa chỉ IP đã được phân
giải, mà địa chỉ đó chỉ tới một Website giả mà Attacker tạo nên (có thể mọi yêu
cầu phân giải của User đều được Attacker phân giải thành một địa chỉ IP). Ở
Website giả này, Attacker sẽ có toàn bộ thông tin mà User thao tác trên Website
bằng các phần mềm Sniffer, từ đó Attacker sẽ sử dụng những thông tin này để
gởi tới Website thật để tấn công toàn hệ thống.
Ví dụ: User trong hệ thống có địa chỉ IP 10.0.0.3 có yêu cầu phân giải địa chỉ
để đi tới Website thật có địa chỉ 200.0.0.4. Nhưng nếu có Intranet DNS spoofing
xảy ra, khi đó Attacker có địa chỉ 100.0.0.5 sẽ lây nhiễm Trojan cho User làm địa
chỉ DNS của User này là 100.0.0.5. Sau đó Attacker sẽ phân giải Website mà
User muốn đến thành 65.0.0.2 và từ đó Attacker sẽ bắt gói tin User gởi tới sau đó
forward tới Website thật có địa chỉ 200.0.0.4.

TÌM HIỂU VÀ MINH HỌA SNIFFER 71


3.5.3 DNS Cache Poisoning
Các thông tin về địa chỉ của Website được DNS Server phân giải sẽ được lưu
trữ vào các Record trong DNS cache. Khi một Client gởi yêu cầu truy nhập tới
một địa chỉ nào đó thì Local DNS Server sẽ tra các record trong cache của chính
mình và gửi địa chỉ phân giải cho Client. Nếu trong cache của Local DNS Server
không có sẵn địa chỉ đã phân giải sẵn mà Client yêu cầu thì Local DNS Server sẽ
gởi truy vấn tới External DNS Server, sau đó Local DNS Server sẽ nhận được địa
chỉ phân giải. Tiếp theo Local DNS Server sẽ lưu thông tin này vào cache của
mình và trả truy vấn về cho Client . Nhưng nếu trên các Record, thông tin của các
địa chỉ bị sai lệch thì DNS Server sẽ gởi cho Client các địa chỉ bị sai lệch.

TÌM HIỂU VÀ MINH HỌA SNIFFER 72


Hình 3.28. DNS Cache poisoning

Dựa trên ý tưởng trên, Attacker sẽ là làm thay đổi các Record lưu trữ trên
DNS Server, do đó DNS Server sẽ query vào địa chỉ IP của một Website giả
được thiết lập bởi Attacker và trả về cho Client. Nếu DNS Server không xác
minh lại các gói tin, nó sẽ lưu lại những Record với những IP sai lệch.
3.5.4 Internet DNS Spoofing
Internet DNS spoofing là một kỹ thuật MITM được sử dụng nhằm cung cấp
thông tin DNS sai cho một host để khi người dùng duyệt đến một địa chỉ nào đó,
ví dụ  abc.vn có IP X.X.X.X, thì sẽ bị chuyển hướng đến một địa chỉ abc.vn giả
mạo cư trú ở địa chỉ IP Y.Y.Y.Y, đây là địa chỉ mà kẻ tấn công đã tạo trước để
đánh cắp các thông tin của người dùng. Để rõ hơn, hãy tham khảo hình bên dưới:

Hình 3.29. Internet DNS Spoofing


Quá trình trên được tóm tắt như sau:
- Ban đầu, Attacker đầu độc Router, chuyển tất cả các DNS request về máy
của mình.

TÌM HIỂU VÀ MINH HỌA SNIFFER 73


- Máy Victim yêu cầu phân giải tên miền abc.vn
- Attacker sẽ respone DNS phân giải abc.vn thành IP của website giả mạo.
- Khi Victim truy cập tới abc.vn sẽ bị chuyển hướng tới website giả
- Attacker sẽ bắt các gói tin, đánh cắp thông tin của Victim và chuyển
hướng tới Website thật.
3.5.5 Proxy Server DNS Poisoning
Proxy Server DNS poisoning là một kiểu tấn công dựa trên hoạt động DNS.
Ở kiểu tấn công này thì Attacker sẽ tấn công vào proxy trên trên trình duyệt IE
(Internet Explorer). Trong hệ thống mạng, Attacker sẽ lây nhiễm Trojan vào toàn
bộ các PC của hệ thống. Con Trojan này sẽ làm thay đổi proxy Serrver trên IE,
địa chỉ proxy Server mà User chỉ tới lúc này là địa chỉ của Attacker. Khi đó tất
cả các Web request của User đều chạy qua máy Attacker, Attacker sẽ chuyển tất
cả các request này sang một Website giả mà Attacker đã dựng sẵn. Trên Website
giả, Attacker sẽ bắt toàn bộ gói tin mà User gởi tới, sau đó tất cả gói tin này sẽ
được Attacker forward tới Website thật.

TÌM HIỂU VÀ MINH HỌA SNIFFER 74


Hình 3.30. Proxy Server DNS Poisoning
Ví dụ, User có yêu cầu tới Website có địa chỉ 200.0.0.4. Nhưng nếu trong
trường hợp có tấn công Proxy Server DNS poisoning xảy ra thì Attacker có địa
chỉ 100.0.0.5 sẽ cho lây nhiễm Trojan vào trong hệ thống. Trojan sẽ làm thay đổi
IE proxy (IP của proxy Server: 100.0.0.5). Khi đó các Web request sẽ đi qua
Attacker.
3.5.6 Phòng chống
Việc tấn công DNS poisoning thường rất phức tạp, vì thế để phòng chống
DNS poisoning chúng ta phải kết hợp nhiều phương pháp trên toàn hệ thống.
Dưới đây là một số phương pháp dùng để phòng chống DNS poisoning hiệu quả:
Phân giải tất cả DNS query vào Local DNS Server
Việc phân giải tất cả DNS query vào Local DNS Server nhằm đảm bảo mọi
yêu cầu phân giải từ User đều nằm trong cache của Local DNS Server
Block tất cả các request tới External DNS Server
Khi có request tới External DNS Server sẽ dễ làm cho User nhận thông tin
phân giải bị sai lệch, vì khi đó Attacker sẽ lợi dụng sơ hở để đóng vai trò là
External DNS Server.

Triển khai DNSSEC


DNSSEC là công nghệ an toàn mở rộng của DNS, về bản chất DNSSEC
cung cấp các cơ chế có khả năng chứng thực và đảm bảo toàn vẹn dữ liệu cho hệ
thống DNS, theo đó DNSSEC đưa ra 4 loại bản ghi mới:

TÌM HIỂU VÀ MINH HỌA SNIFFER 75


- Bản ghi khóa công cộng DNS (DNSKEY - DNS Public Key): sử dụng để
chứng thực zone dữ liệu.
- Bản ghi chữ ký tài nguyên (RRSIG - Resource Record Signature): sử dụng
để chứng thực cho các bản ghi tài nguyên trong zone dữ liệu.
- Bản ghi bảo mật kế tiếp (NSEC - Next Secure): sử dụng trong quá trình
xác thực đối với các bản ghi có cùng sở hữu tập các bản ghi tài nguyên
hoặc bản ghi CNAME. Kết hợp với bản ghi RRSIG để xác thực cho zone
dữ liệu.
- Bản ghi ký ủy quyền (DS - Delegation Signer): thiết lập chứng thực giữa
các zone dữ liệu, sử dụng trong việc ký xác thực trong quá trình chuyển
giao DNS.
Cấu hình Firewall loại bỏ các gói tin DNS đi ra External DNS Server
Đây là một phương pháp hạn chế việc User query ra ngoài External DNS
Server, Attacker sẽ dễ dàng gởi thông tin sai lệch về thông tin DNS cho User.
Hạn chế sử dụng dịch vụ DNS, bằng cách phân quyền cho User
Đây là một phương pháp rất hữu hiệu, vì khi không dùng dịch vụ DNS thì
Attacker sẽ không thể tấn công DNS poisoning.
3.5.7 Minh họa
Vì một số lí do khách quan nên nhóm không thể tiến hành minh họa toàn bộ
những kiểu tấn công DNS poisoning nên chỉ đưa ra một bài minh họa cho việc
tấn công này.
Để minh họa cho hình thức tấn công này cần có 2 máy tính chạy hệ điều
hành Windows XP (có thể sử dụng Linux) , riêng trên máy tấn công phải cài đặt
công cụ Ettercap và dựng sẵn một website giả mạo có giao diện giống với trang
facebook.com thật, hai máy tính truy cập Internet thông qua ADSL Router có IP
là 192.168.1.1.
Chú
ý cách
tạo

TÌM HIỂU VÀ MINH HỌA SNIFFER 76


website giả mạo và tạo cơ sở dữ liệu để lưu password mình sẽ không đề cập ở
đây, phần minh họa này chỉ tập trung vào cách làm sao để chuyển hướng truy cập
của nạn nhân đến website giả mà thôi.

Hình 3.31. Minh họa tấn công DNS poisoning


Thực hiện
Mở file etter.dns ở thư mục C:\Program Files\EttercapNG\share trên máy
Attacker, đây là một file khá đơn giản và có chứa các bản ghi DNS mà bạn muốn
giả mạo, thêm vào các dòng sau:
facebook.com A 192.168.1.22
*.facebook.com A 192.168.1.22
www.facebook.com PTR 192.168.1.22
Mục đích của việc làm này là khi nạn nhân truy cập facebook.com thật thì sẽ
bị chuyển hướng tới website giả mà ta đã dựng sẵn trên máy tấn công.
Khởi chạy công cụ Ettercap, chọn tab Sniff  chọn tiếp Unifiedsniffing,
chọn card mạng giao tiếp với hệ thống.

Chọn tab Host  Scan for host, để scan tất cả các host có trên mạng. Sau
khi đã scan xong, chọn tiếp tab Host Host List. Click chọn 192.168.1.23 
Add to target 1. Click chọn 192.168.1.22  Add to target 2. Chọn tiếp tab
Start  Start Sniffing. Sau đó chọn Tab Plugin  Manage the plugin, click
double vào dns_spoof để kích hoạt tính năng gởi các DNS replies giả mạo đến
máy nạn nhận.

TÌM HIỂU VÀ MINH HỌA SNIFFER 77


Hình 3.32. Chọn tính năng dns_spoof
Sang máy nạn nhân, truy cập website www.facebook.com. Trở lại máy tấn
công, trên giao diện phần mềm Ettercap, ta thấy trang www.facebook.com đã bị
chuyển hướng đến địa chỉ IP của máy tấn công (chứa website giả mạo).

TÌM HIỂU VÀ MINH HỌA SNIFFER 78


Hình 3.33. Kết quả DNS spoofing
Dùng wireshark để bắt gói tin, ta thấy rằng khi máy nạn nhân(192.168.1.23)
yêu cầu phân giải tên miền facebook.com, thì ADSL Router sẽ response về địa
chỉ 192.168.1.22 (địa chỉ website giả mạo).

TÌM HIỂU VÀ MINH HỌA SNIFFER 79


Hình 3.34. Kết quả bắt gói tin trên Wireshark
Cuối cùng, ta được kết quả:

TÌM HIỂU VÀ MINH HỌA SNIFFER 80


Hình 3.35. Username và Password
3.6 MAC spoofing
3.6.1 MAC spoofing
Mỗi thiết bị mạng đều được nhà sản xuất gán cho một địa chỉ xác định, đó là
địa chỉ MAC. Địa chỉ này dùng để phân biệt thiết bị này với thiết bị kia và địa chỉ
này sẽ là duy nhất cho mỗi thiết bị. Nhưng chúng ta có một kỹ thuật có thể thay
đổi địa chỉ này đó là MAC spoofing. Khi thay đổi địa chỉ MAC chúng ta có thể
vượt qua được các phương pháp bảo mật dựa trên đặc điểm duy nhất của địa chỉ
MAC, những phương pháp có thể vượt qua có thể là: ACLs (Access Control
List), port-sercurity…
3.6.2 Minh họa
Để thay đổi địa chỉ MAC trên thiết bị ta dùng phần mềm SMAC v2.7. Phần
mềm này được cài đặt trên Windows XP

TÌM HIỂU VÀ MINH HỌA SNIFFER 81


Hình 3.36. SMAC v2.7 professional
Ở dòng khoảng trắng, sổ xuống chọn 10NET COMMUNICATION/DCA

Hình 3.37. Chọn 10NET COMMUNICATION/DSA


Điền địa chỉ MAC mới vào những ô còn trống, sau đó click Update MAC để
đổi địa chỉ MAC.

Hình

TÌM HIỂU VÀ MINH HỌA SNIFFER 82


Kiểm tra ta dùng lệnh ipconfig /all

TÌM HIỂU VÀ MINH HỌA SNIFFER 83


Hình 3.39. Kiểm tra địa chỉ MAC sau khi đổi
3.7 VLAN Hopping
3.7.1 Các giao thức hoạt động trong môi trường VLAN
Các chuẩn đóng gói VLAN
Khi sử dụng nhiều VLAN trong mạng có các Switch được nối với nhau, giữa
các Switch sẽ được kết nối trunk. Đường trunk này có nhiệm vụ truyền frame của
các VLAN khác nhau cùng một lúc. Khi gởi frame tới một Switch khác, các
Switch cần một các để định ra các VLAN mà frame muốn gởi tới. Vì thế chúng
ta cần một chuẩn để đóng gói các frame để các Switch phân biệt được frame đó
của VLAN nào. Ta có 2 chuẩn:
- Inter-Switch Link (ISL):
Đây là chuẩn độc quyền của Cisco nên chỉ có thể sử dụng trên các Switch
của Cisco. ISL đóng gói toàn bộ các frame Ethernet gốc trong một ISL
header. Các frame Ethernet được đóng gói bên trong không có gì thay đổi.
Trong ISL header sẽ gán VLAN ID, dựa vào VLAN ID này nên Switch nhận
biết được frame thuộc VLAN nào gởi tới.

TÌM HIỂU VÀ MINH HỌA SNIFFER 84


Hình 3.40. Inter-Switch Link
- IEEE 802.1Q
IEEE 802.1Q (hay đơn giản là .1Q) là một chuẩn dùng chung cho tất cả
các thiết bị. Chuẩn này được sử dụng cho môi trường LAN. 802.1Q sử dụng
một cách hoàn toàn khác với ISL, nó không đóng gói frame gốc mà nó thêm
vào header của frame 4 bytes. Trong 4 bytes đó thì sẽ chứa VLAN ID và dựa
vào VLAN ID mà Switch có thể nhận biết ra frame thuộc VLAN nào.

TÌM HIỂU VÀ MINH HỌA SNIFFER 85


Hình 3.41. IEEE 802.1Q
VLAN Trunking Protocol (VTP)
VTP là giao thức của Cisco dùng để đồng bộ tất cả VLAN trên Switch với
nhau. Xét ví dụ sau để thấy vì sao nên dùng VTP trong việc triển khai VLAN.
Tình huống đặt ra: Một công ty có 10 Switch, mỗi Switch được chia thành 10
VLAN, công việc cấu hình VLAN sẽ tốn nhiều thời gian và gây nhầm lẫn, kết
hợp với việc tạo thêm, xóa, thay đổi VLAN sẽ làm cho việc cấu hình phức tạp.
Lúc này với VTP cho phép quản lý VLAN hiệu quả hơn. Chỉ cần tạo VLAN trên
server, thông tin sẽ được phân phối đến các Switch khác, nếu có thay đổi VLAN
thì giữa các Switch sẽ tự động đồng bộ với nhau. VTP sử dụng gói tin VTP
advertisement để đồng bộ. Theo chu kỳ 5 phút 1 lần các Switch sẽ gửi gói tin này
cho các Switch nối trực tiếp với nó. Mặc định thì VTP đã được bật trên Switch
nhưng không tắt giao thức này được.

Hình 3.42. Mô hình VTP

TÌM HIỂU VÀ MINH HỌA SNIFFER 86


Để thực hiện đồng bộ thông tin cấu hình VLAN thì phải thõa mãn 2 điều
kiện sau:
- Có đường Trunk nối các Switch lại với nhau.
- Các Switch phải cùng chung một miền VTP (VTP domain).
VTP chỉ giúp đồng bộ thông tin cấu hình VLAN chứ không đồng bộ cổng.
Vì vậy phải cấu hình gán cổng cho các VLAN trên Switch.
Ví dụ: Switch A có các cổng F0/1, F0/2, F0/2 gán cho VLAN 10, trong khi
Switch B có các cổng F0/1, F0/2, F0/2 gán cho VLAN 20.
Dynamic Trunking Protocol (DTP)
DTP là giao thức độc quyền của Cisco. Giao thức này dùng để thiết lập
đường Trunk và cách đóng gói frame VLAN (chuẩn IEEE 802.1Q hoặc chuẩn
ISL) giữa hai Switch. Có thể cấu hình đường Trunk bằng tay giữa hai thiết bị
chuyển mạch. Nhưng với giao thức DTP thì đường Trunk được thiết lập một cách
tự động. Theo mặc định thì giao thứ DTP đã được bật trên các thiết bị chuyển
mạch của Cisco. Giữa Router và Switch có thể cấu hình đường Trunk nhưng
không có giao thức này vì Router không hiểu được giao thức DTP. Người quản
trị mạng có thể cấu hình trạng thái DTP trên mỗi trunk port. Các trạng thái bao
gồm: On, Off, Desirable,fAutorvàeNon-Negotiate. 
- On: trạng thái này được sử dụng khi Switch khác không hiểu giao
thứcrDTP.
- Off: trạng thái này được sử dụng khi cổng đã được cấu hình từ trước
không với mục đích trở thành trunk port.
- Desirable: trạng thái này được sử dụng khi cổng Switch muốn trở thành
trunk port.
- Auto: Đây là trạng thái mặc định trên nhiều Switch.
- Non-Negotiate: trạng thái này được sử dụng khi người quản trị muốn một
loại trunk được đóng gói ISL hay IEEE 802.1Q cụ thể.

TÌM HIỂU VÀ MINH HỌA SNIFFER 87


Trên phần lớn Switch giao thức DTP trên các cổng được cấu hình mặc
định là auto.
3.7.2 VLAN Hopping
VLAN hopping là một phương thức tấn công mạng dựa trên những điểm yếu
của VLAN. Attacker sử dụng VLAN hopping khi muốn đi vòng qua các thiết bị
lớp 2, lớp 3 khi trao đổi thông tin từ một VLAN này sang một VLAN khác. Ý
tưởng tấn công dựa trên các trunk port trên Switch được cấu hình bất hợp lý. Mặc
định, các trunk port có thể truy nhập tới tất cả các VLAN. Dữ liệu truyền qua các
đường trunk này có thể được đóng gói theo chuẩn IEEE 802.1Q hoặc ISL (Inter-
Switch Link). VLAN hopping được thực hiện theo hai cách: Switch spoofing và
double tagging.
VLAN hopping với Switch spoofing
Tất cả các trunk port đều có thể truy cập tới tất cả các VLAN. Nếu Attacker
kết nối vào trunk port thì Attacker sẽ thấy được tất cả các gói tin của tất cả các
VLAN bằng các phần mềm Sniffer. Để tiến hành tấn công VLAN hopping theo
kiểu Switch spoofing, Attacker sẽ gởi các gói tin được đóng gói theo các chuẩn
Inter-Switch Link (ISL) hoặc 802.1Q cùng với Dynamic Trunking Protocol
(DTP), để thiết lập kết nối trunk đến Switch. Theo mặc định thì trạng thái DTP
trên mỗi trunk port trên Switch đều ở chế độ auto, khi Attacker gởi DTP packet
đến Switch thì Switch sẽ kết nối trunk với Attacker. Do đó Attacker sẽ dễ dàng
truy cập vào tất cả các VLAN. Attacker có thể gửi packet hoặc nhận các packet
tới bất kỳ VLAN nào.

TÌM HIỂU VÀ MINH HỌA SNIFFER 88


Hình 3.43. VLAN hopping-Switch spoofing
VLAN hopping với double tagging
Kiểu tấn công này lợi dụng cách thức hoạt động của Switch. Hiện nay, phần
lớn các Switch chỉ thực hiện đóng gói IEEE 802.1Q. Điều này cho phép Attacker
trong những tính huống cụ thể có khả năng gắn các đuôi 802.1Q (gọi là .1Q tag)
vào khung. Khung này sẽ vào VLAN với đuôi .1Q đầu ra không xác định. Một
đặc điểm quan trọng của kiểu tấn công VLAN hopping double tagging là nó có
thể tiến hành thậm chí với các cổng trunk đã được thiết lập ở chế độ Off.

Hình 3.44. VLAN hopping-Double tagging


Ngăn chặn kiểu tấn công này không dễ như việc ngăn chặn kiểu tấn công
VLAN hopping Switch spoofing. Biện pháp tốt nhất để đảm bảo các VLAN của
các trunk port được phân biệt rạch ròi với các VLAN của các cổng của User.
3.7.3 Minh họa VLAN hopping
Để minh họa tấn công VLAN hopping ta dùng chương trinh yersinia trên
ubuntu

TÌM HIỂU VÀ MINH HỌA SNIFFER 89


Hình 3.45. Tấn công VLAN hopping với yersinia
Chọn tab 802.1Q, sau đó chon Edit mode để chỉnh sửa VLAN muốn attack,
theo minh họa là VLAN 20.

TÌM HIỂU VÀ MINH HỌA SNIFFER 90


Hình 3.46. Tấn công VLAN 20

Sau đó hộp
thoại hiện ra, chọn
sending
802.1Q
double enc.
Packet, click OK.

TÌM HIỂU VÀ MINH HỌA SNIFFER 91


Hình 3.47. Sending 802.1Q

3.8 Spanning Tree Protocol Attack


3.8.1 Các kiểu tấn công
Lợi dụng điểm yếu về chứng thực bản tin, một hacker có thể tiến hành tấn
công theo kiểu gửi đi bản tin BPDU giả dạng để tuyên bố mình là root bridge.
Thực hiện điều này không khó bởi chỉ cần gửi đi bản tin BPDU có priority cực
thấp thì khả năng của host trở thành root bridge là rất cao.
Hậu quả là, cấu trúc cây STP bị thay đổi không theo ý muốn của người quản
trị.Ví dụ khi kẻ tấn công chiếm được quyền làm root bridge, khi nhận được bản
tin TCN báo có sự thay đổi cấu hình từ một Switch, root vẫn gửi đi bản tin
BPDU với TC = 0 báo trạng thái STP bình thường. Kết quả là mọi Switch khác
đều không biết về sự thay đổi này dẫn đến việc trao đổi thông tin có thể bị gián
đoạn. Dữ liệu truyền qua lại giữa các Switch thuộc các nhánh khác nhau của cây
STP sẽ được truyền qua host trước (tấn công man in the middle).

TÌM HIỂU VÀ MINH HỌA SNIFFER 92


Thay đổi cấu trúc cây STP:

Hình 3.48. Cấu trúc cây STP lúc đầu


Trước khi bị tấn công, cây STP có root bridge là Switch 1. Attacker gửi đi
bản tin giả mạo có Priority thấp nhất (Priority 0) đến Switch 3. Khi Switch 3
nhận được bản tin BPDU từ cổng 3 của nó, nó biết là có sự thay đổi topology của
mạng. Lúc đó 3 cổng trên switch 3 sẽ chuyển từ trạng thái blocking sang trạng
thái listening để Switch tham gia vào quá trình bình bầu root bridge, root portvà
designated port. Trong trạng thái này, switch 3 cũng gửi đi bản tin BPDU có
priority 0 đến hai Switch 1 và 2. Quá trình bình bầu diễn ra có kết quả như sau:
- Các Switch sẽ coi Attacker là root bridge.
- Trên Switch 3: cổng 3 được chọn làm root port vì có chi phí đến root thấp
nhất, vậy cổng 1, 2 được chọn làm designated port vì nó gửi đi bản tin
BPDU có chi phí thấp hơn so với chi phí của các bản tin gửi từ Switch 1
và 2.
- Trên Switch 1: cổng 1 được chọn làm root port, cổng 2 được chọn là
designated port .
- Trên Switch 2: cổng 2 được chọn làm root port; cổng 1 là non-designated
port.
Sau khi đã chọn được root port; Switch 3 sẽ gửi đi bản tin TCN qua cổng 3
cho root bridge mới thông báo là đã có sự thay đổi trong mạng. Attacker gửi lại
bản tin TCA cho Switch 3 và gửi đi bản tin BPDU có TC=1 đến tất cả các Switch

TÌM HIỂU VÀ MINH HỌA SNIFFER 93


khác. Các Switch khác khi nhận được bản tin này sẽ đặt thời gian tồn tại các ánh
xạ trong bảng cache xuống còn 15 s để chuẩn bị học địa chỉ MAC mới.
Tất cả quá trình trên được diễn ra trong khoảng 15s (trạng thái listening). Các
Switch đợi thêm 15s nữa để học lại địa chỉ MAC (trạng thái learning). Sau 30s,
các cổng là root port hoặc designated port sẽ được đặt vào trạng thái forwarding
còn các cổng là non-designated port sẽ được đặt vào trạng thái blocking.

Hình 3.49. Cấu


trúc cây STP đã bị thay đổi
Chúng ta thấy cấu trúc cây đã bị thay đổi
Tấn công Man in the middle:

Hình 3.50. Sơ đồ tấn công Man in the middle


Trong sơ đồ tấn công trên, Attacker cần có hai card mạng gắn vào các cổng
tương ứng trên các Switch, sau đó gửi bản tin BPDU với Priority nhỏ hơn
Priority của các Switch. Khi đó, Attacker sẽ trở thành root bridge.

TÌM HIỂU VÀ MINH HỌA SNIFFER 94


Hình 3.51. Đường đi của dữ liệu
Dữ liệu từ PC 1 sang PC 2 phải đi qua máy của kẻ tấn công thay vì đi trực
tiếp qua đường nối giữa Switch 1 và Switch 2 như trong sơ đồ mạng trước khi bị
tấn công.
3.8.2 Cách phòng chống
Nguyên lý phòng chống STP là không cho host gửi bản tin BPDU giả mạo.
Cấu hình BPDU guard:
Cấu hình này thường đi kèm với cấu hình portfast trên cùng một cổng. Nếu
cổng nhận được bất kì một bản tin BPDU nào đó thì ngay lập tức, cổng sẽ được
chuyển vào trạng thái errdisable, trạng thái cần phải bị shut-down do lỗi. Cổng
chỉ có thể được hoạt động trở lại khi có sự can thiệp của người quản trị hoặc
được khôi phục lỗi tự động sau khoảng thời gian timeout của trạng thái
errdisable.
SW(config-if)# spanning-tree portfast
SW(config-if)# spanning-tree portfast bpduguard default
Cấu hình root guard:
Bình thường khi một Switch nhận được bản tin BPDU của một Switch có
bridge ID tốt hơn root bridge của nó, ngay lập tức nó sẽ công nhận Switch mới
chính là root bridge và như vậy làm mất đi tính ổn định của mạng. Với việc cấu
hình root guard, khi một cổng của Switch nhận được bản tin BPDU quảng cáo tốt
hơn, port sẽ được chuyển sang một trạng thái được gọi là root-inconsistent. Trong
trạng thái này, dữ liệu và BPDU không được gửi nhận qua cổng nhưng Switch
vẫn lắng nghe các bản tin BPDU trên đó. Chừng nào không nhận được bản tin
BPDU tốt hơn nữa, port sẽ trở lại trạng thái bình thường.

TÌM HIỂU VÀ MINH HỌA SNIFFER 95


SW(config-if)# spanning-tree guard root
3.8.3 Minh họa
Để thực hiện minh họa này, ta cần có:
- Máy Attacker chạy hệ điều hành Ubuntu, cài đặt sẵn 2 phần mềm Ettercap
và Yersinia.
- Hai cisco Switch và 1 máy victim chạy hệ điều hành Windows XP (có thể
dùng linux).

Root bridge
FWD FWD
F1/0 SW1 F1/15 F1/15 SW2
F1/1 F1/2
Victim

eth0 eth1

SW1 MAC: c200.0ab8.0000


SW2 MAC: c201.0ab8.0000
Attacker

Hình 3.52.Mô hình minh họa


Trước khi minh họa cách tấn công ta cần phải cấu hình để Victim có thể
telnet đến 2 Switch.
SW2(config)# int vlan 1
SW2(config-if)# ip address 10.0.0.2 255.255.255.0
SW2(config)# line vty 0 15
SW2(config-line)# password 654321
SW2(config-line)# login
SW2(config)# enable secret cisco
Cấu hình tương tự với Switch 1.
Theo mô hình trên, vì Switch 1 có địa chỉ MAC nhỏ hơn của Switch 2
(priority mặc định bằng nhau) nên Switch 1 sẽ được bình chọn là root bridge, các
cổng của 2 Switch đang ở trạng thái forwarding.
Các bước thực hiện:
Trên máy Attacker, khởi chạy phần mềm Ettercap.

TÌM HIỂU VÀ MINH HỌA SNIFFER 96


Chọn tab Sniff  Bridged sniffing, chọn First network interface là eth0,
second network interface là eth1.
Chọn Start  Start sniffing, chọn đến tab View  Connection.
Trên Terminal, gõ yersinia –G để khởi động Yersinia.
Chọn tab Edit interfaces, tick chọn eth0, eth1
Chọn Launch Attack, chuyển sang tab STP, chọn Claiming Root Role để
kích hoạt tính năng gởi BPDU giả mạo root bridge  OK.

Hình 3.53. Máy Attacker gởi tin BPDU


Ta thấy rằng, sau khi xác định được bridge ID của Switch (c200.0ab8.0000),
phần mềm Yersinia sẽ tự động sinh ra một bridge ID thấp hơn (c200.0ab7.0000)
để gởi đến Switch để bắt đầu lại quá trình bầu chọn root bridge.
Sang Switch 1 gõ lệnh: SW1# show spanning-tree vlan 1 brief.

TÌM HIỂU VÀ MINH HỌA SNIFFER 97


Hình 3.54.Show STP trên Switch
Khi đó, cổng f1/15 của Switch 2 sẽ ở trạng thái blocking. Cấu trúc cây STP
bây giờ sẽ là:

FWD BLK
F1/0 SW1 F1/15 F1/15 SW2
F1/1 F1/2
Victim
Root bridge
BPDU
BPDU
eth0 eth1
SW1 MAC: c200.0ab8.0000
SW2 MAC: c201.0ab8.0000
Attacker MAC: c201.0ab7.0000
Attacker

Hình 3.55. Cấu trúc cây STP bị thay đổi


Trên máy victim ta mở Command promt, gõ lệnh telnet 10.0.0.2.
Login với mật khẩu đã cấu hình trước đó.
Sang máy Attacker, trên giao diện Ettercap, ở tab Connection, double click
vào gói tin có port là 23  chọn Join view, ta được kết quả:

TÌM HIỂU VÀ MINH HỌA SNIFFER 98


Hình 3.56. Password bắt được trên Ettercap
Ta có nhận xét là khi cổng f1/15 của Switch 2 ở trạng thái blocking thì dữ
liệu từ máy victim thay vì đi qua đường nối giữa 2 Switch thì sẽ phải đi qua máy
Attacker
PHẦN III: TỔNG KẾT VÀ ĐÁNH GIÁ
1. Kết quả đạt được
Sau quá trình tìm hiểu các kỹ thuật Sniffer, nhóm đã nắm được những vấn đề
cơ bản sau:
Hiểu sâu hơn về các giao thức như: ARP, DNS, DHCP, STP,..
Phân loại được 2 phương thức Sniffer: Active Sniffer và Passive Sniffer.
Minh họa các kỹ thuật Sniffer cơ bản trong hệ thống mạng như: MAC
Attack, DHCP Attack, ARP Poisoning, DNS Poisoning.
Triển khai được các phương thức phòng chống Sniffer: Port Security, DHCP
Snooping, Dynamic ARP Inspection.
Sử dụng được các phần mềm hỗ trợ việc giám sát hệ thống mạng.
Hạn chế: đề tài báo cáo đã hoàn tất tuy nhiên để hiểu rõ sâu hơn về các kiểu
tấn công trên mạng cần phải có thời gian dài nghiên cứu, do thời gian làm đề tài
không cho phép, nhận thức của bản thân có hạn, nên còn nhược điểm và thiếu
sót, chúng em sẽ cố gắng hoàn thiện hơn nữa.

TÌM HIỂU VÀ MINH HỌA SNIFFER 99


2. Hướng phát triển
Trên cơ sở của đề tài này, chúng em sẽ tìm hiểu thêm một số kỹ thuật tấn
công mạng khác như Footprinting, Scaning, Phishing,… Từ đó có thể từng bước
làm chủ được hệ thống mạng, tăng cường khả năng bảo mật, đối phó với các sự
cố xảy ra.

PHẦN IV: TÀI LIỆU THAM KHẢO


Tiếng Việt
[1] Huỳnh Nguyên Chính, Giáo trình mạng máy tính nâng cao, Đại học Sư
Phạm Kỹ Thuật TP.Hồ Chí Minh.
Tiếng Anh
[1] Certified Ethical Hacker Version 7 Module 8 Sniffer, EC-Council Press.

[2] Yusuf Bhaiji, Layer 2 Attacks & Mitigation Techniques, Cisco Systems.

[3] Sean Convery, Hacking Layer 2: Fun with Ethernet Switch, Cisco Systems.

[4] Threats and Defense Mechanisms, EC-Council Press.

[5] CCNA Security - Cisco Certified Network Associate Security (640-554)

[6] http://wikipedia.org

TÌM HIỂU VÀ MINH HỌA SNIFFER 100

You might also like