Snifferen4789E5E616

Sniffer

Thông tin về tài liệu

I Các khái niệm căn bản về Sniffer

1.1 Sniffer là gì ?

1.2 Sniffer được sử dụng như thế nào ?

1.3 Quá trình Sniffer được diễn ra như thế nào ?

1.4 Địa chỉ Ethernet MAC là gì ?

1.5 Định dạng của các địa chỉ MAC

1.6 Làm thế nào để biết được địa chỉ MAC ?

1.7 Tôi có thể Sniffer kết nối giữa 2 người mà tôi không có quyền truy cập vào đường truyền của họ không ?

II Làm thế nào để phòng chống các cuộc tấn công Sniffer ?

2.1 Làm thế nào để ngăn chặn những kẻ muốn Sniffer dữ liệu của tôi ?

2.2 Làm thế nào để ngăn chặn những kẻ muốn Sniffer Password của tôi ?

2.3 Làm thế nào để có thể ngăn chặn hành động Sniffer trên những thiết bị phần cứng của tôi ?

2.4 Tôi có thể sử dụng những Adapter không hỗ trợ Sniffing không ?

2.5 Làm thế nào để tôi có thể phát hiện được Sniffer trên hệ thống mạng của mình ?

III Quá trình phân tích các giao thức là gì (Protocol Analysis) ?

3.1 Hexadecimal là gì ?

3.2 ASCII là gì ?

3.3 Mô hình 7 lớp mạng OSI

3.4 Một số Sniffer thông dụng

3.5 Screen Shot của một số Sniffer thông dụng

IV Lời kết

Thông tin về tài liệu

Tài liệu được tổng hợp, dịch và chỉnh sửa dựa trên tài liệu nguyên bản tiếng anh:

Sniffer Network Writetap

Khi sử dụng lại nội dung bài viết này, xin vui lòng trích dẫn rõ nguồn tài liệu và người thực hiện. Rất cảm ơn sự quan tâm của bạn đến tài liệu.

Sai xót là điều không thể tránh khỏi. Mọi đóng góp, thắc mắc liên quan đến tài liệu xin vui lòng liên hệ:

NGUYỄN Xuân Bình

Email: binhnx2000@yahoo.com

Home: http://www.binhnx2000.com/

I Các khái niệm căn bản về Sniffer

1.1 Sniffer là gì ?

Khởi đầu Sniffer là tên một sản phẩm của Network Associates có tên là Sniffer Network Analyzer. Đơn giản bạn chỉ cần gõ vào từ khoá Sniffer trên bất cứ công cụ tìm kiếm nào, bạn sẽ có những thông tin về các Sniffer thông dụng hiện nay.

Sniffer được hiểu đơn giản như là một chương trình cố gắng nghe ngóng các lưu lượng thông tin trên (trong một hệ thống mạng). Tương tự như là thiết bị cho phép nghe lén trên đường dây điện thoại. Chỉ khác nhau ở môi trường là các chương trình Sniffer thực hiện nghe nén trong môi trường mạng máy tính.

Tuy nhiên những giao dịch giữa các hệ thống mạng máy tính thường là những dữ liệu ở dạng nhị phân (Binary). Bởi vậy để nghe lén và hiểu được những dữ liệu ở dạng nhị phân này, các chương trình Sniffer phải có tính năng được biết như là sự phân tích các nghi thức (Protocol Analysis), cũng như tính năng giải mã (Decode) các dữ liệu ở dạng nhị phân để hiểu được chúng.

Trong một hệ thống mạng sử dụng những giao thức kết nối chung và đồng bộ. Bạn có thể sử dụng Sniffer ở bất cứ Host nào trong hệ thống mạng của bạn. Chế độ này được gọi là chế độ hỗn tạp (promiscuous mode).

1.2 Sniffer được sử dụng như thế nào ?

Sniffer thường được sử dụng vào 2 mục đích khác biệt nhau. Nó có thể là một công cụ giúp cho các quản trị mạng theo dõi và bảo trì hệ thống mạng của mình. Cũng như theo hướng tiêu cực nó có thể là một chương trình được cài vài một hệ thống mạng máy tính với mục đích đánh hơi, nghe nén các thông tin trên đoạn mạng này...Dưới đây là một số tính năng của Sniffer được sử dụng theo cả hướng tích cực và tiêu cực:

- Tự động chụp các tên người sử dụng (Username) và mật khẩu không được mã hoá (Clear Text Password). Tính năng này thường được các Hacker sử dụng để tấn công hệ thống của bạn.

- Chuyển đổi dữ liệu trên đường truyền để những quản trị viên có thể đọc và hiểu được ý nghĩa của những dữ liệu đó.

- Bằng cách nhìn vào lưu lượng của hệ thống cho phép các quản trị viên có thể phân tích những lỗi đang mắc phải trên hệ thống lưu lượng của mạng. Ví dụ như : Tại sao gói tin từ máy A không thể gửi được sang máy B... etc

- Một số Sniffer tân tiến còn có thêm tính năng tự động phát hiện và cảnh báo các cuộc tấn công đang được thực hiện vào hệ thống mạng mà nó đang hoạt động (Intrusion Detecte Service).

- Ghi lại thông tin về các gói dữ liệu, các phiên truyền…Tương tự như hộp đen của máy bay, giúp các quản trị viên có thể xem lại thông tin về các gói dữ liệu, các phiên truyền sau sự cố…Phục vụ cho công việc phân tích, khắc phục các sự cố trên hệ thống mạng.

1.3 Quá trình Sniffer được diễn ra như thế nào ?

Công nghệ Ethernet được xây dựng trên một nguyên lý chia sẻ. Theo một khái niệm này thì tất cả các máy tính trên một hệ thống mạng cục bộ đều có thể chia sẻ đường truyền của hệ thống mạng đó. Hiểu một cách khác tất cả các máy tính đó đều có khả năng nhìn thấy lưu lượng dữ liệu được truyền trên đường truyền chung đó. Như vậy phần cứng Ethernet được xây dựng với tính năng lọc và bỏ qua tất cả những dữ liệu không thuộc đường truyền chung với nó.

Nó thực hiện được điều này trên nguyên lý bỏ qua tất cả những Frame có địa chỉ MAC không hợp lệ đối với nó. Khi Sniffer được tắt tính năng lọc này và sử dụng chế độ hỗn tạp (promiscuous mode). Nó có thể nhìn thấy tất cả lưu lượng thông tin từ máy B đến máy C, hay bất cứ lưu lượng thông tin giữa bất kỳ máy nào trên hệ thống mạng. Miễn là chúng cùng nằm trên một hệ thống mạng.

1.4 Địa chỉ Ethernet MAC là gì ?

Khi nhiều máy tính trên mạng có thể cùng chia sẻ một đường truyền? Thì bản thân mỗi máy đó phải có một thông tin nhận dạng khác nhau. Khi bạn gửi dữ liệu từ bên ngoài hệ thống mạng Ethernet bạn phải biết rõ địa chỉ nào? Máy nào ? mà bạn cần gửi dữ liệu đến.

MAC là một dãy 12 số Hex cho mỗi phần cứng Ethernet để thực hiện nhiệm vụ này. Sự truyền thông trên hệ thống mạng Ethernet được xử lý bởi các thiết bị phần cứng Ethernet (Card mạng).

_________

/.........\

/..Internet.\

+-----+ +------+.........+---+

|Alice|-----|ROUTER|.........|Bob|

+-----+ ^ +------+.........+---+

| \.........../

| \---------/

-------+

|wiretap|

+-------+

Alice có địa chỉ IP là 10.0.0.23

Bob có địa chỉ IP là 192.168.100.54

Để nói chuyện với Bob, Alice cần phải tạo ra một Packet IP từ 10.0.0.23 đến 192.168.100.54. Trong khi gói dữ liệu được đi ngang qua Internet nó sẽ được đi từ Router này đến Router kia. Các Router nó sẽ kiểm tra địa chỉ đến và quyết định có cho Packet đó đi ra hay không ?

Trong sơ đồ đơn giản trên, chúng ta coi môi trường Internet như một đám mây. Tất cả những Packet IP của Alice muốn chuyển đến Bob sẽ được đi qua Router đầu tiên. Alice không biết được cấu trúc của Internet, cũng như tuyền đường mà Packet IP của cô phải đi qua. Cô ấy phải nói chuyện với Router để chúng thực hiện việc này. Trong hệ thống mạng cục bộ, để nói chuyện với Router cô ấy sử dụng Ethernet.

+--+--+--+--+--+--+

| destination MAC |

+--+--+--+--+--+--+

| source MAC |

+--+--+--+--+--+--+

|08 00|

+--+--+-----------+

. IP packet .

| |

+--+--+--+--+-----+

| CRC |

+--+--+--+--+

Những phương pháp nào trên Stack TCP/IP trong máy của Alice có thể tạo ra một gói dữ liệu dài 100 bytes (hãy nói cho nó tạo 20 bytes cho thông tin về IP, 20 bytes cho thông tin về TCP và 60 bytes cho thông tin về dữ liệu). Stack TCP/IP sẽ gửi nó cho Modules Ethernet, đặt 14 bytes cho địa chỉ MAC của nơi nhận, của nơi gửi. Cuối cùng nó sẽ gán 4 bytes kết thúc cho quá trình kiểm tra CRC/Checksum.

Bộ tiếp hợp (Adapter) sẽ gửi những thông tin này ra ngoài. Tất cả các adapter dựa trên phần cứng trên hệ thống mạng đều nhìn thấy Frame dữ liệu này. Bao gồm adapter của Router, của chương trình Sniffer cũng như tất cả các adapter trên hệ thống mạng.

Tuy nhiên có một bộ phận trong các thiết bị phần cứng Ethernet được dùng để so sánh các địa chỉ MAC gửi đi với chính khung địa chỉ MAC (Frame MAC) của chính mình. Nếu chúng không phù hợp thì bỏ qua Frame MAC đó. Quá trình này được xử lý lý bởi các thiết bị phần cứng.

1.5 Định dạng của các địa chỉ MAC

Địa chỉ MAC là một dãy số 48 bits.  48 bits này tiếp tục được chia đôi. 24 bit đầu tiên xác định tên hãng sản xuất Ethernet Card của bạn. 24 bit còn lại là số hiệu Serial được gán bởi nhà sản xuất. Đảm bảo trên nguyên tắc không có 2 Ethernet Card có trùng một địa chỉ MAC. 24 bit thứ 2 còn được gọi là OUI (Organizationally Unique Identifier).

Tuy nhiên OUI có độ dài thực sự chỉ là 22 bit, 2 bit còn dư lại sẽ được sử dụng cho những mục đích khác. 1 bit được chỉ định nếu nó là địa chỉ Broadcast/Multicast (địa chỉ loan báo tin chung trên một hệ thống mạng). 1 bit còn lại được sử dụng nếu cần thiết lập lại địa chỉ cục bộ cho một Adapter.

1.6 Làm thế nào để biết được địa chỉ MAC ?

Với Windows bạn sử dụng câu lệnh « ipconfig /all » :

Windows NT IP Configuration

Host Name . . . . . . . . . : sample.robertgraham.com

DNS Servers . . . . . . . . : 192.0.2.254

Node Type . . . . . . . . . : Hybrid

NetBIOS Scope ID. . . . . . :

IP Routing Enabled. . . . . : No

WINS Proxy Enabled. . . . . : No

NetBIOS Resolution Uses DNS : No

Ethernet adapter SC12001:

Description . . . . . . . . : DEC DC21140 PCI Fast Ethernet Adapter

Physical Address. . . . . . : 00-40-05-A5-4F-9D

DHCP Enabled. . . . . . . . : No

IP Address. . . . . . . . . : 192.0.2.160

Subnet Mask . . . . . . . . : 255.255.255.0

Default Gateway . . . . . . : 192.0.2.1

Primary WINS Server . . . . : 192.0.2.253

Địa chỉ MAC trong ví dụ này là 00-40-05-A5-4F-9D

Trong Linux/Unix bạn sử dụng câu lệnh « ifconfig »

eth0 Link encap:Ethernet HWaddr 08:00:17:0A:36:3E

inet addr:192.0.2.161 Bcast:192.0.2.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:1137249 errors:0 dropped:0 overruns:0

TX packets:994976 errors:0 dropped:0 overruns:0

Interrupt:5 Base address:0x300

Địa chỉ MAC trong ví dụ này là 08 :00 :17 :0A :36 :3E

Nếu muốn biết những địa chỉ Ethernet nào mà bạn đang truyền thông, đơn giản chỉ cần sử dụng lệnh« arp –a » cho cả Windows cũng như *Nix.

1.7 Tôi có thể Sniffer kết nối giữa 2 người mà tôi không có quyền truy cập vào đường truyền của họ không ?

Hãy tưởng tượng :

Alice và Bob một người ở Berlin, một người ở London...Họ đang truyền thông với nhau. Còn bạn, bạn đang ở Paris. Bạn muốn nghe trộm phiên truyền thông của họ ?

Bạn không có quyền nhảy vào đường truyền của họ. Rất tiếc! Câu trả lời là không. Bạn phải có quyền truy cập trên đường truyền mà bạn muốn Sniffer. Tuy nhiên nếu bạn là một Hacker thực thụ thì vẫn có cách để bạn thực hiện mục đích này bằng cách dành được quyền truy cập từ xa như :

- Tấn công và đột nhập vào máy tính của Bob hay Alice cài đặt phầm mềm Sniffer, rồi từ xa bạn chỉ việc khai

thác thông tin.

- Tấn công đột nhập vào hệ thống mạng của ISP và cài đặt Sniffer.

- Hối lộ, lừa đảo nhân viên trong ISP để bạn tiến hành móc nối cài đặt các thiết bị, chương trình Sniffer trên

các thiết bị vật lý của ISP này. Như đường dây Cable chẳng hạn.

II Làm thế nào để phòng chống các cuộc tấn công Sniffer ?

2.1 Làm thế nào để ngăn chặn những kẻ muốn Sniffer dữ liệu của tôi ?

Có lẽ cách đơn giản nhất để ngăn chặn những kẻ muốn Sniffer dữ liệu của bạn là sử dụng các giao thức mã hoá chuẩn cho dữ liệu trên đường truyền. Khi bạn mã hoá dữ liệu, những kẻ tấn công ác ý có thể Sniffer được dữ liệu của bạn, nhưng chúng lại không thể đọc được nó...

- SSL (Secure Socket Layer) : Một giao thức mã hoá được phát triển cho hầu hết các Webserver, cũng như các Web Browser thông dụng. SSL được sử dụng để mã hoá những thông tin nhạy cảm để gửi qua đường truyền như: Số thẻ tin dụng của khách hàng, các password và thông tin quan trọng.

http://www.openssl.org/

http://www.modssl.org/

- PGP và S/MIME: E-mail cũng có khả năng bị những kẻ tấn công ác ý Sniffer. Khi Sniffer một E-mail không được mãhoá, chúng không chỉ biết được nội dung của mail, mà chúng còn có thể biết được các thông tin như địa chỉ của người gửi, địa chỉ của người nhận…Chính vì vậy để đảm bảo an toàn và tính riêng tư cho E-mail bạn cũng cần phải mã hoá chúng…S/MIME được tích hợp trong hầu hết các chương trình gửi nhận Mail hiện nay như Netscape Messenger, Outlock Express…

- PGP cũng là một giao thức được sủ dụng để mã hoá E-mail. Nó có khả năng hỗ trợ mã hoá bằng DSA, RSA lên đến 2048 bit dữ liệu.

http://www.gnupg.org/

- OpenSSH: Khi bạn sử dụng Telnet, FTP…2 giao thức chuẩn này không cung cấp khả năng mã hoá dữ liệu trên đường truyền. Đặc biệt nguy hiểm là không mã hoá Password, chúng chỉ gửi Password qua đường truyền dưới dạng Clear Text. Điều gì sẽ xảy ra nếu những dữ liệu nhạy cảm này bị Sniffer. OpenSSH là một bộ giao thức được ra đời để khắc phục nhược điểm này: ssh (sử dụng thay thế Telnet), sftp (sử dụng thay thế FTP)…

http://www.openssh.org/

- VPNs (Virtual Private Networks): Được sử dụng để mã hoá dữ liệu khi truyền thong trên Internet. Tuy nhiên nếu một Hacker có thể tấn công và thoả hiệp được những Node của của kết nối VPN đó, thì chúng vẫn có thể tiến hành Sniffer được.

Một ví dụ đơn giản,là một người dung Internet khi lướt Web đã sơ ý để nhiễm RAT (Remoto Access Trojan), thường thì trong loại Trojan này thường có chứa sẵn Plugin Sniffer. Cho đến khi người dùng bất cẩn này thiết lập một kết nối VPN. Lúc này Plugin Sniffer trong Trojan sẽ hoạt động và nó có khả năng đọc được những dữ liệu chưa được mã hoá trước khi đưa vào VPN. Để phòng chống các cuộc tấn công kiểu này: bạn cần nâng cao ý thức cảnh giác cho những người sử dụng trong hệ thống mạng VPN của bạn, đồng thời sử dụng các chương trình quét Virus để phát hiện và ngăn chặn không để hệ thống bị nhiễm Trojan.

2.2 Làm thế nào để ngăn chặn những kẻ muốn Sniffer Password của tôi ?

Để ngăn chăn những kẻ tấn công muốn Sniffer Password. Bạn đồng thời sử dụng các giao thức, phương pháp để mã hoá password cũng như sử dụng một giải pháp chứng thực an toàn (Authentication):

- SMB/CIFS: Trong môi trường Windows/SAMBA bạn cần kích hoạt tính năng LANmanager Authencation.

- Keberos: Một giải pháp chứng thực dữ liệu an toàn được sử dụng trên Unix cũng như Windows:

ftp://aeneas.mit.edu/pub/kerberos/doc/KERBEROS.FAQ

- Stanford SRP (Secure Remote Password): Khắc phục được nhược điểm không mã hoá Password khi truyền thông của 2 giao thức FTP và Telnet trên Unix:

http://srp.stanford.edu/srp/

2.3 Làm thế nào để có thể ngăn chặn hành động Sniffer trên những thiết bị phần cứng của tôi ?

Việc thay thế Hub của bạn bằng những Switch, nó có thể cung cấp một sự phòng chống hiệu quả hơn. Switch sẽ tạo ra một “Broadcast Domain” nó có tác dụng gửi đến những kẻ tấn công những gói ARP không hợ lệ (Spoof ARP Packet).

Tuy nhiên các Hacker vẫn có những cách thức khéo léo để vượt qua sự phòng thủ này. Các yêu cầu truy vấn ARP chứa đựng những thông tin chính xác từ IP cho đến MAC của người gửi. Thông thường để giảm bớt lưu lượng ARP trên đường truyền, đa số các máy tính sẽ đọc và sử dụng các thông tin từ bộ đệm (Cache) mà chúng truy vấn được từ Broadcast.

Bởi vậy một Hacker có thể Redirect những máy tính gần mình để vượt qua sự phòng thủ này bằng cách gửi những gói ARP chứa đựng những thông tin về địa chỉ IP của Router đến chính địa chỉ MAC của anh ta. Tất cả những máy tính trong hệ thống mạng cục bộ này sẽ nhầm tưởng anh ta là Router và sẽ thiết lập phiên truyền thông đi qua máy tính của anh ta.

Một cuộc tấn công DOS tương tự trên một hệ thống mạng cục bộ, khi thành công sẽ đá văng mục tiêu mà họ muốn tấn công ra khỏi mạng. rồi bắt đầu sử dụng chính địa chỉ IP của máy tính vừa bị tấn công này. Những kẻ tấn công sẽ khéo léo thừa kể và sử dụng những kết nối này. Bản than Windows khi phát hiện được hành động này, nó không hành động gì cả mà lại tử tế đóng Stack TCP/IP của chính mình và cho phép kết nối này tiếp tục.

Để phòng chống lại các cuộc tấn công dạng bạn chỉ cần sử dụng các công cụ IDS (Intrusion Detecte Service).

Các IDS như BlackICE IDS, Snort sẽ tự động phát hiện và cảnh báo về các cuộc tấn công dạng này.

http://www.blackice.com/

http://www.snort.org/

Hầu hết các Adapter Ethernet đều cho phép cấu hình địa chỉ MAC bằng tay. Hacker có thể tạo ra các địa chỉ Spoof MAC bằng cách hướng vào các địa chỉ trên Adapter. Để khắc phục điều này, hầu hết các Switch đều không cho phép tự ý cấu hình lại các địa chỉ MAC.

2.4 Tôi có thể sử dụng những Adapter không hỗ trợ Sniffing không ?

Câu trả lời là có. Một số Adapter cũ không hỗ trợ chế độ hỗn tạp (Promiscuos Mode).

Về căn bản những bộ Adapter Token Ring của IBM không hỗ trợ chế độ hỗn tạp. Cũng có một số Adapter cũ khác không hỗ trợ chế độ hỗn tạp. Nếu bạn thật sự không muốn Sniffing ở chế độ hỗn tạp xảy ra. Bạn có thể tham khảo thông tin của những nhà sản xuất Sniffer để biết được những Card Ethernet nào mà họ không hỗ trợ chế độ Sniffing ở chế độ hỗn tạp.

2.5 Làm thế nào để tôi có thể phát hiện được Sniffer trên hệ thống mạng của mình ?

Về mặt lý thuyết thì rất khó có thể phát hiện được sự hiện diện của các chương trình Sniffer trên hệ thống. Bởi chúng chỉ chộp và cố gắng đọc các gói tin, chúng không gây ra sự xáo trộn hay mất mát Packet nghiêm trọng nào trên đường truyền cả. Tuy nhiên trên thực tế lại có nhiều cách để phát hiện ra sự hiện diện của các Sniffer.

Khi đứng đơn lẻ trên một máy tính không có sự truyền thông thì sẽ không có dấu hiệu gì. Tuy nhiên nếu được cài đặt

trên một máy tính không đơn lẻ và có sự truyền thông, bản thân Sniffer sẽ phát sinh ra lưu lượng thông tin. Bạn có thể truy vấn ngược DNS để tìm thông tin liên quan đến những địa chỉ IP.

Dưới đây liệt kê một số phương pháp để phát hiện Sniffer :

Phương pháp dùng Ping:

Hầu hết các chương trình Sniffer được cài đặt trên các máy tính trong mạng sử dụng TCP/IP Stack. Bởi vậy khi bạn gửi yêu cầu đến những máy tính này, chúng sẽ phản hồi lại cho bạn kết quả. Bạn hãy gửi một yêu cầu phản hồi tới địa chỉ IP của máy tính nào đó trong mạng (máy mà bạn cần kiểm tra xem có bị cài đặt Sniffer hay không), nhưng không thông qua Adapter Ethernet của nó.

Lấy ví dụ cụ thể :

1. Bạn nghi ngờ máy tính có địa chỉ IP là 10.0.0.1, có địa chỉ MAC là 00-40-05-A4-79-32. Đã bị cài đặt Sniffer.

2. Bạn đang ở trong cùng một hệ thống mạng Ethernet mà bạn nghi ngờ có kẻ đã tiến hành Sniffer.

3. Bạn thay đổi địa chỉ MAC của bạn thành là 00-40-05-A4-79-33.

4. Bạn Ping đến địa chỉ IP và địa chỉ MAC mới.

5. Trên nguyên tắc không một máy tính nào có thể nhìn thấy có thể nhìn thấy được Packet này. Bởi Adapter

Ethernet chỉ chấp nhận những địa chỉ MAC hợp lệ của chính nó.

6. Nếu bạn thấy sự trả lời từ địa chỉ mà bạn nghi ngờ không phải trên địa chỉ lọc của MAC (MAC Address Filter) trên Ethernet Card…Máy tính có địa chỉ IP 10.0.0.1 đã bị cài đặt Sniffer Bằng các kỹ thuật của mình các Hacker vẫn có thể né tránh được phương pháp nêu trên. Các Hacker sẽ sử dụng những MAC Address ảo. Rất nhiều hệ thống máy tính trong đó có Windows có tích hợp khả năng MAC Filtering.

Windows chỉ kiểm tra những byte đầu tiên. Nếu một địa chỉ MAC có dạng FF-00-00-00-00-00, thì đơn giản Windows sẽ coi nó là FF-FF-FF-FF-FF-FF. Đây là sơ hở cho phép các Hacker có thể khai thác đánh lừa hệ thống máy tính của bạn.

Kỹ thuật phát hiện Sniffer đơn giản này thường được sử dụng trên các hệ thống Ethernet dựa trên Switch và Bridge.

Phương pháp sử dụng 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 những Packet ARP. Bạn có thể tim thấy hướng dẫn chi tiết cụ thể cùng với một chương trình đi kèm hỗ trợ việc phát hiện

Sniffer theo phương pháp này ở :

http://www.apostols.org/projectz/neped/

Đơn giản bạn chỉ cần gửi một Packet ARP đến một địa chỉ nào đó trong mạng (không phải Broadcast). Nếu máy tính đó trả lời lại Packet ARP bằng địa chỉ của chính nó. Thì máy tính đó đang cài đặt Sniffer ở chế độ hỗn tạp (Promiscuous Mode).

Mỗi Packet ARP đều chứa đầy đủ thông tin về người gửi và người nhận. Khi Hacker gửi một Packet ARP đến địa chỉ loan truyền tin (Broadcast Address), nó bao gồm thông tin về địa chỉ IP của bạn và địa chỉ MAC được phân giải bởi Ethernet. Ít phút sau mọi máy tính trong hệ thống mạng Ethernet đều nhớ thông tin này. Bởi vậy khi Hacker gửi các Packet ARP không đi qua Broadcast Address. Tiếp đó anh ta sẽ ping đến Broadcast Address. Lúc này bất cứ máy tính nào trả lời lại anh ta mà không bằng ARPing, anh ta có thể chụp được các thông tin về địa chỉ MAC của máy tính này bằng cách sử dụng Sniffer để chụp các khung ARP (ARP Frame).

Phương pháp sử dụng DNS :

Rất nhiều 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 (như dsniff). Bởi vậy khi quan sát lưu lượng truyền thông của DNS bạn có thể phát hiện được Sniffer ở chế độ hỗn tạp (Promiscuous Mode).

Để 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 của bạn. Khi bạn phát hiện được những hành động Ping liên tục với mục đích thăm dò đến những địa chỉ IP không tồn tại trên hệ thống mạng của bạn. Tiếp đó là những hành động cố gắng phân giải ngược những địa chỉ IP được biết từ những Packet ARP. Không gì khác đây là những hành động của một chương trình Sniffer.

Phương pháp Source-Route :

Phương pháp này sử dụng những thông tin như địa chỉ nguồn và địa chỉ đích trong mỗi Header của IP để phát hiện hành động Sniff trên từng đoạn mạng. Tiến hành ping từ một máy tính này đến một máy tính khác. Nhưng tính năng Routing trên máy tính nguồn phải được vô hiệu hoá. Hiểu đơn giản là làm thế nào để gói tin này không thể đi đến đích. Nếu như bạn thấy sự trả lời, thì đơn giản hệ thống mạng của bạn đã bị cài đặt Sniffer.

Để sử dụng phương pháp này bạn cần sử dụng vào một vài tuỳ chọn trong Header IP. Để Router sẽ bỏ qua những địa chỉ IP đến và tiếp tục chuyển tiếp đến những địa chỉ IP trong tuỳ chọn Source-Route của Router.

Lấy một ví dụ cụ thể : Bob và Anna cùng nằm trên một đoạn mạng. Khi có một người khác trên cùng đoạn mạng gửi cho cô ta vài Packet IP và nói chuyển chúng đến cho Bob. Anna không phải là một Router, cho lên cô ta sẽ Drop tất cả Packet IP mà người kia muốn chuyển tới Bob (bởi cô ta không thể làm việc này). Một Packet IP không được gửi đến Bob, mà anh ta vẫn có thể trả lời lại được. Điều này vô lý, anh ta đã sử dụng các chương trình Sniffer.

Phương pháp giăng bẫy (Decoy) :

Tương tự như phương pháp sử dụng ARP nhưng nó được sử dụng trong những phạm vi mạng rộng lớn hơn (gần như là khắp nơi). Rất nhiều giao thức sử dụng các Password không được mã hoá trên đường truyền, các Hacker rất coi trọng những Password này, phương pháp giăng bẫy này sẽ thoả mãn điều đó. Đơn giản bạn chỉ cần giả lập những Client sử dụng Service mà Password không được mã hoá như : POP, FTP, Telnet, IMAP...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 được coi là «quý giá» này các Hacker sẽ tìm cách kiểm tra, sử dụng và khai thác chúng...Bạn sẽ làm gí kế tiếp ???

Để biết thêm thông tin về phương pháp thú vị này bạn có thể tham khảo trang thông tin:

http://www.zurich.ibm.com/%7Edac/Prog_RAID98/Full_Papers/sniffer_detector.html/index.htm

Phương pháp kiểm tra sự chậm trễ của gói tin (Latency) :

Phương pháp này sẽ làm giảm thiểu sự lưu thông trên hệ thống mạng của bạn. Bằng cách gửi một lượng thông tin lớn đến máy tính mà bạn nghi là đã bị cài đặt Sniffer. Sẽ không có hiệu ứng gí đáng kể nếu máy tính đó hoàn toàn không có gì. Bạn ping đến máy tính mà bạn nghi ngờ đã bị cài đặt Sniffer trước thời gian chịu tải và trong thời gian chị tải. Để quan sát sự khác nhau của 2 thời điểm này.

Tuy nhiên phương pháp này tỏ ra không mấy hiệu quả. Bản thân những Packet IP được gửi đi trên đường truyền cũng gây ra sự trậm trễ và thất lạc. Cũng như những Sniffer chạy ở chế độ “User Mode” được xử lý độc lập bởi CPU cũng cho ra những kết quả không chính xác.

Do đây chỉ mà một tài liệu có tính chất căn bản giới thiệu về Sniffer, nên tôi sẽ không đề cập đến cách thức để sử dụng Sniffer trên các hệ thống mạng. Tuy nhiên tôi vẫn nêu qua những hệ thống mạng có thể bị Sniffer:

Cable Modem

DSL

ADSL

Switched Network

Wireless like IEEE 802.11 a.k.a. AirPort (hệ thống mạng không dây)

Những giao thức mà thông tin Password không được mã hoá, khá nguy hiểm khi bị Sniffer:

Telnet, Rlogin

SNMP

NNTP

POP, IMAP, SMTP

FTP

….

III Quá trình phân tích các giao thức là gì (Protocol Analysis) ?

Là quá trình chụp các lưu lượng dữ liệu và xem xét cấu trúc bên trong khi chúng được truyền qua đường truyền. Vềcăn bản dữ liệu khi truyền trên đường truyền sẽ được chia nhỏ thành nhiều gói và được chúng sẽ được ráp lại ở cuối đường truyền trước khi đến tay người nhận. Chẳng hạn như khi bạn lấy xuống một tài liệu có độ lớn khoảng 45,000 bytes, nó sẽ được phân thành 30 gói với độ lớn của mỗi gói là 1,500 bytes để chuyển đến cho bạn.

Lấy ví dụ một gói dữ liệu được chụp bởi các chương trình Sniffer. Nó có độ lớn là 1517 bytes, nhưng tôi chỉ hiển thị 512 bytes ở đây:

000 00 00 BA 5E BA 11 00 A0 C9 B0 5E BD 08 00 45 00 ...^......^...E.

010 05 DC 1D E4 40 00 7F 06 C2 6D 0A 00 00 02 0A 00 ....@....m......

020 01 C9 00 50 07 75 05 D0 00 C0 04 AE 7D F5 50 10 ...P.u......}.P.

030 70 79 8F 27 00 00 48 54 54 50 2F 31 2E 31 20 32 py.'..HTTP/1.1.2

040 30 30 20 4F 4B 0D 0A 56 69 61 3A 20 31 2E 30 20 00.OK..Via:.1.0.

050 53 54 52 49 44 45 52 0D 0A 50 72 6F 78 79 2D 43 STRIDER..Proxy-C

060 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D onnection:.Keep-

070 41 6C 69 76 65 0D 0A 43 6F 6E 74 65 6E 74 2D 4C Alive..Content-L

080 65 6E 67 74 68 3A 20 32 39 36 37 34 0D 0A 43 6F ength:.29674..Co

090 6E 74 65 6E 74 2D 54 79 70 65 3A 20 74 65 78 74 ntent-Type:.text

0A0 2F 68 74 6D 6C 0D 0A 53 65 72 76 65 72 3A 20 4D /html..Server:.M

0B0 69 63 72 6F 73 6F 66 74 2D 49 49 53 2F 34 2E 30 icrosoft-IIS/4.0

0C0 0D 0A 44 61 74 65 3A 20 53 75 6E 2C 20 32 35 20 ..Date:.Sun,.25.

0D0 4A 75 6C 20 31 39 39 39 20 32 31 3A 34 35 3A 35 Jul.1999.21:45:5

0E0 31 20 47 4D 54 0D 0A 41 63 63 65 70 74 2D 52 61 1.GMT..Accept-Ra

0F0 6E 67 65 73 3A 20 62 79 74 65 73 0D 0A 4C 61 73 nges:.bytes..Las

100 74 2D 4D 6F 64 69 66 69 65 64 3A 20 4D 6F 6E 2C t-Modified:.Mon,

110 20 31 39 20 4A 75 6C 20 31 39 39 39 20 30 37 3A .19.Jul.1999.07:

120 33 39 3A 32 36 20 47 4D 54 0D 0A 45 54 61 67 3A 39:26.GMT..ETag:

130 20 22 30 38 62 37 38 64 33 62 39 64 31 62 65 31 ."08b78d3b9d1be1

140 3A 61 34 61 22 0D 0A 0D 0A 3C 74 69 74 6C 65 3E :a4a"....<title>

150 53 6E 69 66 66 69 6E 67 20 28 6E 65 74 77 6F 72 Sniffing.(networ

160 6B 20 77 69 72 65 74 61 70 2C 20 73 6E 69 66 66 k.wiretap,.sniff

170 65 72 29 20 46 41 51 3C 2F 74 69 74 6C 65 3E 0D er).FAQ</title>.

180 0A 0D 0A 3C 68 31 3E 53 6E 69 66 66 69 6E 67 20 ...<h1>Sniffing.

190 28 6E 65 74 77 6F 72 6B 20 77 69 72 65 74 61 70 (network.wiretap

1A0 2C 20 73 6E 69 66 66 65 72 29 20 46 41 51 3C 2F ,.sniffer).FAQ</

1B0 68 31 3E 0D 0A 0D 0A 54 68 69 73 20 64 6F 63 75 h1>....This.docu

1C0 6D 65 6E 74 20 61 6E 73 77 65 72 73 20 71 75 65 ment.answers.que

1D0 73 74 69 6F 6E 73 20 61 62 6F 75 74 20 74 61 70 stions.about.tap

1E0 70 69 6E 67 20 69 6E 74 6F 20 0D 0A 63 6F 6D 70 ping.into...comp

1F0 75 74 65 72 20 6E 65 74 77 6F 72 6B 73 20 61 6E uter.networks.an

…..

Trên đây là một “hexdump” chuẩn của một gói dữ liệu, trước khi chúng được giải mã (Decode). Hexdump gồm có 3 cột thông tin: cột thông tin nhận dạng theo dòng, dữ liệu ở dạng hexadecimal và cuối cùng là dữ liệu ở dạng ASCII.

Gói tin này gồm có 14 bytes cho Ethernet Header, 20 bytes cho IP Header, 20 bytes cho TCP Header, HTTP Header chấm dứt sau hàng “(0D 0A 0D 0A)” và tiếp đó là dữ liệu truyền thông.

Lý do mà một gói tin sử dụng cả Hex và ASCII, có trường hợp thì các dữ liệu hiển thị ở dạng Hex thì dễ đọc hơn và ngược lại ASCII cũng tương tự.

Quá trình phân tích giao thức sẽ tiến hành chộp Hexdump và cố gắng hiển thị chúng một cách dễ hiểu:

ETHER: Destination address : 0000BA5EBA11

ETHER: Source address : 00A0C9B05EBD

ETHER: Frame Length : 1514 (0x05EA)

ETHER: Ethernet Type : 0x0800 (IP)

IP: Version = 4 (0x4)

IP: Header Length = 20 (0x14)

IP: Service Type = 0 (0x0)

IP: Precedence = Routine

IP: ...0.... = Normal Delay

IP: ....0... = Normal Throughput

IP: .....0.. = Normal Reliability

IP: Total Length = 1500 (0x5DC)

IP: Identification = 7652 (0x1DE4)

IP: Flags Summary = 2 (0x2)

IP: .......0 = Last fragment in datagram

IP: ......1. = Cannot fragment datagram

IP: Fragment Offset = 0 (0x0) bytes

IP: Time to Live = 127 (0x7F)

IP: Protocol = TCP - Transmission Control

IP: Checksum = 0xC26D

IP: Source Address = 10.0.0.2

IP: Destination Address = 10.0.1.201

TCP: Source Port = Hypertext Transfer Protocol

TCP: Destination Port = 0x0775

TCP: Sequence Number = 97517760 (0x5D000C0)

TCP: Acknowledgement Number = 78544373 (0x4AE7DF5)

TCP: Data Offset = 20 (0x14)

TCP: Reserved = 0 (0x0000)

TCP: Flags = 0x10 : .A....

TCP: ..0..... = No urgent data

TCP: ...1.... = Acknowledgement field significant

TCP: ....0... = No Push function

TCP: .....0.. = No Reset

TCP: ......0. = No Synchronize

TCP: .......0 = No Fin

TCP: Window = 28793 (0x7079)

TCP: Checksum = 0x8F27

TCP: Urgent Pointer = 0 (0x0)

HTTP: Response (to client using port 1909)

HTTP: Protocol Version = HTTP/1.1

HTTP: Status Code = OK

HTTP: Reason = OK

....

Quá trình phân tích giao thức thật sự không đơn giản, nó đòi hỏi người sử dụng phải có một hiểu biết nền căn bản về các giao thức mạng. Các thông tin được Hexdump và giải mã là những thông tin khá hữu ích cho các nhà quản trị, cũng như là những thông tin khá có giá trị cho những kẻ tấn công.

3.1 Hexadecimal là gì ?

Như chúng ta đã biết trong thế giới PC, tất cả mọi dữ liệu đều được hiểu và ghi lại dưới dạng những con số theo hệ nhị phân, thập phân…Hexadecimal đơn giản là một hế số được sử dụng để ghi lại dữ liệu (hệ 16), là hệ được sử dụng để ghi lại các dữ liệu trên các hệ thống mạng.

Hệ thập phân (Decimal) có nghĩa là các dữ liệu được sử dụng các ký tự trong hệ thập phân này:

0 1 2 3 4 5 6 7 8 9

Hệ 16 (Hexdecimal) tương tự như hệ thập phân nhưng chúng mở rộng ra một chút:

0 1 2 3 4 5 6 7 8 9 A B C D E F

Cách hiển thị dữ liệu của hệ 16:

0000 = 0

0001 = 1

0010 = 2

0011 = 3

0100 = 4

0101 = 5

0110 = 6

0111 = 7

1000 = 8

1001 = 9

1010 = A

1011 = B

1100 = C

1101 = D

1110 = E

1111 = F

Lưu ý: Các chữ số trong hệ 16 thường được đi kèm với một ký tự đặc biệt. Lấy ví dụ như số 12, nó thường được hiểu như sau: 0x12, x12, $12

3.2 ASCII là gì ?

American Standard Code for Information Interchange - Đơn giản chỉ là một bảng mã chuẩn quy định cho việc hiển thị dữ liệu trên máy tính.

3.3 Mô hình 7 lớp mạng OSI

Về mặt cơ bản, Internet là một hệ thống mạng máy tính lớn được dùng để kết nối các máy tính ở khắp nơi trên thế giới với nhau và bao gồm nhiều giao thức (Protocol). Các giao thức này được sắp xếp một cách hợp lý trong một mô hình mạng OSI (Open Systems Interconnect Refence Model) hay còn gọi là mô hình mạng 7 lớp:

Tầng 1 - Physcial: Thực hiện truyền thông tin ở cấp độ vật lý giữa các máy tính với nhau. Bao gồm các giao thức: Ethernet, Wireless, Serial Direct Cable Connection, Point to Point Protocol (PPP).

Tầng 2 - Data Link: Định nghĩa các quy luật để nhận và gửi thông tin từ máy ày đến máy khác. Bao gồm các

giao thức: Ethernet, Wrieless, Serial Direct Cable Connection, Point to Point Protocol (PPP).

Tầng 3 - Network: Định hướng đường đI cho dữ liệu giữa các hệ thống lớn trên mạng để đảm bảo dữ liệu đến đúng đích. Bao gồm các giao thức: IP (Internet Protocol), ICMP (Internet Control Message Protocol), ARP (Address Resolution Protocol), RARP (Reverse Address Resolution Protocol).

Tầng 4 - Transport: Vận chuyển, kiểm tra, khắc phục và truyền lại dữ liệu. Bao gồm các giao thức: TCP (Tranmission Control Protocol), UDP (User Datagram Protocol).

Tầng 5 - Session: Giám sát truyền thông tin giữa các hệ thống bao gồm: bảo mật (Security), nhật ký – ghi nhớ (Logging) và các chức năng giám sát quản trị (IDS, Admin). Bao gồm các giao thức: TCP (Tranmission Control Protocol), UDP (User Datagram Protocol).

Tầng 6 - Presentation: Điều khiển định dạng thông tin để hiển thị hay in ra và mã hoá dữ liệu. Bao gồm các giao thức ứng dụng: Telnet, FTP (File Transfer Protocol), HTTP (Hyper Text Transfer Protocol), SMTP (Simple Mail Transfer Protocol), DNS (Domain Name Service)...

7: Applicationon

6: Presentationon

5: Sessionon

4: Transportrt

3: Networkrk

2: Datata Linknk

1: Physcialal

Tầng 7 - Applications: Các ứng dụng tương tác cụ thể. Bao gồm các giao thức ứng dụng: Telnet, FTP (File Transfer Protocol), HTTP (Hyper Text Transfer Protocol), SMTP (Simple Mail Transfer Protocol), DNS (Domain Name Service)...etc

Giải thích một số thuật ngữ viết tắt và giao thức:

Ethernet : Một công nghệ nối mạng có năng lực mạnh được sử dụng trong hầu hết các mạng LAN.

Wireless : Các công nghệ nối mạng không dây.

Serial Direct Cable Connection : Công nghệ kết nối máy tính bằng Cable truyền nhận dữ liệu.

PPP (Point-to-Point Protocol) : Một giao thức kết nối Internet tin cậy thông qua Modem.

IP (Internet Protocol) : Giao thức được dùng để xử lý cơ chế truyền dữ liệu thực tế. Là cơ sở cho việc định hướng và vận chuyển dữ liệu trên Internet.

ICMP (Internet Control Message Protocol) : Giao thức xử lý các thông báo trạng thái cho IP, ví dụ như báo

lỗi và các thay đổi mạng có thể ảnh hưởng đến việc định tuyến.

ARP (Address Resolution Protocol) : Giao thức chuyển các địa chỉ mạng sang địa chỉ phần cứng vật lý tương dùng các thông điệp Broadcast. Dùng để xác định địa chỉ mạng.

RARP (Reverse Address Resolution Protocol) : Làm công việc ngược lại ARP, chuyển địa chỉ phần cứng từ một máy sang địa chỉ IP.

TCP (Transmission Control Protocol) : Một giao thức, dịch vụ dựa trên kết nối, điều này cho phép các máy

nhận và gửi dữ liệu có thể truyền thông với nhau vào mọi lúc, mọi nơi.

UDP (User Datagram Protocol) : Một giao thức, một dịch vụ không kết nối, hai máy gửi và nhận sẽ không truyền thông với nhau thông qua một kết nối liên tục.

Telnet : Giao thức cho phép đăng nhập từ xa đê người ding trên máy này có thể kết nối với máy kia và sẽ hoạt động như là ngồi ở máy đó vậy.

FTP (File Transfer Protocol) : Giao thức truyền dữ liệu từ máy này sang máy khác ding giao thức TCP.

SMTP (Simple Mail Transfer Protocol) : Giao thức dùng để truyền nhận thư điện tử giữa các máy.

DNS (Domain Name Service) : Xác định các địa chỉ máy tính từ tên chữ sang số. Còn rất nhiều giao thức dịch vụ khác ở tầng 7. Nhưng do khuôn khổ bài viết lên tôi chỉ nêu một số giao thức dịch vụ

cơ bản.

+-------------+

| Computer |

| |

| +-------+

|

| | Web |

|

____

| |Browser|

|

__/ \__

| +----++-+

|

/ Internet\

| ||

|

| cloud \

| +----||-+

|

+--------+

|

+------+

| | TCP \\| +-----+ Link | Router |

\

| Web |

| | IP \+=+ NIC +===//==+ +=====//======+====+ Site |

| | | +-----+

| |

/

| |

| +-------+

|

+--------+

|

+------+

| |

| /

+-------------+

\__ __/

\____/

3.4 Một số Sniffer thông dụng

Windows:

Network Associates Sniffer (for Windows)

http://www.nai.com/mktg/survey.asp?type=d&code=2483

Analyzer: a public domain protocol analyzer

http://netgroup-serv.polito.it/analyzer/

Windump

http://windump.polito.it/

Unix:

Tcpdump

http://www.tcpdump.org/

Ethereal

http://www.ethereal.com/

Ettercap

http://ettercap.sourceforge.net/

Dsniff

http://www.monkey.org/dugsong/dsniff

3.5 Screen Shot của một số Sniffer thông dụng

Windump, một version của sniffer thông dụng tcpdump trên các OS *Nix. Windump đang trong phiên capture đơn giản của mình. Điểm mạnh của Windump ? Cũng như người anh em tcpdump của nó …khi hoạt động tốn rất ít tài nguyên của hệ thống, cũng như hoạt động khá an toàn, ổn định. Nó đã trở thành một chương trình ở môi trường Shell của đa số các Administrator.

Lưu ý : Để sử dụng Windump hay một số Sniffer khác như Ethereal, Ettercap…etc. Ban đầu là những Sniffer trên môi trường *Nix. Sau này được tiếp tục phát triển các phiên bản trên Windows. Bạn cần phải cài thư viện Wincap. Bạn có thể xem thêm thông tin chi tiết về thư viện Wincap ở địa chỉ :

http://www.winpcap.org/install/default.htm

Ettercap, sniffer khá thông dụng trong thế giới *Nix. Ettercap đang trong phiên capture và finger print những host đang trao đổi thông tin với hệ thống mà nó đang hoạt động. Ettercap được nhiều người dùng bởi nó có khá nhiều plugin, hỗ trợ nhiều tính năng và đặc biệt là khi cài đặt không cần đòi hỏi nhiểu thư viện như các Sniffer đồng nghiệp khác trong thế giới *Nix. Ở các version mới sau này ettercap sử dụng các thư viện gtk cho giao diện đồ hoạ. Muốn sử dụng Ettercap ở chế độ GUI khi cài đặt ban đầu Ettercap yêu cầu hệ thống của bạn phải cài đặt gtk. Với Ettercap bạn có thể theo dõi những lưu lượng thông tin hoạt động trên hệ thống mạng của bạn, chụp các thông tin, hiển thị và can thiệp vào các kết nối.

Đã có phiên bản Ettercap cho Windows.

Ethereal, một trong những Sniffer mới xuất hiện trong thế giới Nix. Điểm mạnh của Ethereal là khả năng Decode và phân tích các gói dữ liệu khá tốt…

IV Lời kết

Hy vọng qua bài dịch nhỏ này bạn có thể hiểu được các vấn đề cơ bản: Sniffer là gì ? Nó hoạt động ra sao? Nó có những tính năng gì ? Cách sử dụng và phòng chống nó ra sao và một số khái niệm khác liên quan đến Sniffer.