Trao đổi với tôi

http://www.buidao.com

12/8/09

[Hacking] Sniffers - Lý thuyết cơ bản

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

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).

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.

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.

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ư truyề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ưr lý bởi các thiết bị phần cứng.

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.

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.

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.

8. Một số tool Sniffer thông dụng:

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/

For Unix/Linux:

Tcpdump

http://www.tcpdump.org/

Ethereal

http://www.ethereal.com/

Ettercap

http://ettercap.sourceforge.net/

Dsniff

www.monkey.org/~dugsong/dsniff

(Sưu tập) Cái này hay lắm đo hihi mình cũng đang vọc hhihihi chúc anh em vui vẻ hi

+5 EXP

Link: http://ceh.vn/@4rum/showthread.php?t=46