1. Giới thiệu về Sniffer
-Sniffer là gì?
-Sniffer được dùng để làm gì?
-Phương thức kỹ thuật mà Sniffer sử dụng là gì?
-Một số chương trình Sniffer thông dụng: dsniff, snort, cain, ettercap, sniffer pro…
-Sniffer có thể thực hiện trên môi trường nào?
-Những hình thức Sniffer!
Sniffer là gì?
Là một hình thức nghe lén trên hệ thống mạng
Dựa trên những điểm yếu 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.
Man in the middle là kiểu Sniffer hiệu quả nhất
Các hình thức Sniffer
•Active: Chủ động ( Switch )
•Passive: Thụ động ( Hub )
o Sniffer được dùng làm gì?
Được phát triển để thu thập các gói tin trong hệ thống
Mục đích ban đầu: Giúp nhà quản trị mạng quản trị tốt hệ thống
Biến thể của Sniffer là các chương trình nghe lén bất hợp pháp như: Chương trình nghe lén Yahoo, MSN, ăn cắp password Email v.v.
Sniffer hoạt động chủ yếu dựa trên phương thức tấn công ARP
Tấn công ARP được khai thác như thế nào?
Quá trình hoạt động của Sniffer!
o Quá trình “đầu độc” ARP
Host A và Host B là 2 Máy tính đang “nói chuyện” với nhau
Host C là “kẻ Sniffer”
Ở Host A trên bảng ARP có lưu địa chỉ IP và MAC tương ứng của Host B
Ở Host B trên bảng ARP có lưu địa chỉ IP và MAC tương ứng của Host A
Host C thực hiện quá trình nghe lén:
•Host C gữi các ARP packet tới cả Host A và Host B có nội dung sau: “ tôi là A, B, MAC và IP của tôi là XX, YY”
o Quá trình đầu độc ARP
•Host A nhận lầm Host C là Host B
•Host B nhận lầm Host C là Host A
Quá trình “nói chuyện” giữa Host A và Host B, tất cả thông tin đều bị Host C “nghe thấy”.
o Môi trường Sniffer hoạt động!
Mạng LAN, mạng WAN, mạng WLAN
Điều kiện cần chỉ là cùng chung Subnet Mark khi Sniffer.
o Những hình thức Sniffer
Đó là các hình thức Sniffer bằng kỹ thuật máy tính nhằm khai thác thông tin riêng tư!
Bị nhìn trộm khi gỏ Password cũng là 1 hình thức Sniffer !
Bị nghe lén Điện thoại cũng là Sniffer!
Bị đọc trộm thư hay E-mail cũng là một hình thức Sniffer!
Bị nhìn trộm nội dung Chat cũng là Sniffer!
o Các phần mềm thực hiện.
CAIN & ABEL (Sử dụng phần mềm CAIN)
Yêu cầu về phần cứng:
- ổ cứng cần trống 10 Mb
- hệ điều hành Win 2000/2003/XP
- cần phải có Winpcap
Phiên bản càng mới càng tốt
o Chương trình WireShark
Là một chương trình Sniffer hiệu quả!
Có khả năng bắt được hầu hết các gói tin, của rất nhiều các giao thức.
Có thể dùng để kiểm tra lưu lượng băng thông, phân loại lưu lượng theo từng giao thức.
Nhược điểm: Không có sẵn bộ giải mã và bộ lọc password như Cain
Thông tin hiển thị là dạng thô
2. Ping sweep thường để kiểm tra sự tồn tại một lúc nhiều host (thường dùng tool)
Ping chỉ kiểm tra mỗi lúc một host.
3. Scan ports
Port Scanner : Thông thường một hacker để tấn công một hệ thống, điều đầu tiên là phải tìm hiểu rất cặn kẻ về sơ đồ mạng của hệ thống đó. Tiếp theo là tìm hiểu về các port và các access point để có thể tiếp cận hệ thống. Hiện nay, hầu hết các hacker đều sử dụng các chương trình quét port (port scaner) để tìm kiếm các port được mở của hệ thống.
Nhìn chung các chương trình quét port đều được xây dựng dưới 2 phương pháp quét sau: chương trình dùng để quét một port duy nhất của máy đích tại một thời điểm và chương trình dùng để quét một số lượng các port được quy định sẵn tại cùng một thời điểm với một dãy các địa chỉ đích cần quét. Phương pháp một hiện nay ít sử dụng, đa số các chương trình scan port hiện nay đều sử dụng phương pháp 2.
Vậy thực chất scan port làm việc như thế nào? Nó sẽ tạo các gói tin ra sao để máy đích có thể trả lời và nó nhận biết được các port được mở tại máy đích? Sau đây là một số phương pháp tạo gói tin mà các chương trình scan port thường dùng là:
- TCP Connect scan: đây là phương pháp chủ yếu và cơ bản nhất. Chương trình cố gắng tạo các gói tin để kết nối đến mỗi cổng trên một máy, nó sẽ cố gắng thực hiện các cuộc gọi hệ thống và hoàn thành qui trình bắt tay 3 bước. Nếu máy đích trả lời port đó sẽ active. Đây là phương pháp khá phổ biến hiện nay và được dùng nhiều nhất trong hầu hết các chương trình scan port. Tuy nhiên phương pháp này sẽ không còn hiện quả nếu như các máy đích được bảo vệ bởi 1 firewall hoặc người sử dụng ẩn đi các thông tin về port được scan thì xem như phương pháp này cũng không thể hoạt động.
- TCP SYN Scan: Lưu ý rằng, TCP là một giao thức tin cậy, nó sử dụng phương pháp bắt tay 3 bước để thiết lập các kết nối. Nếu ta muốn tìm 1 port có được mở hay không trên một máy, ta sẽ gửi 1 gói tin đến port đó với bit SYN được bật. Nếu port đó được mở, máy đó sẽ gửi lại gói tin với bit thứ 2 với bit SYN và ACK được bật. Lúc này, ta có thể nhanh chóng xác định được rằng, port đó đã active, việc đơn giản bây giờ là ta chỉ cần tạo ra thêm 1 gói tin thứ 3 để hoàn tất việc bắt tay 3 bước. Phương pháp này còn được gọi là phương pháp hafl open connection. Phương pháp này ít được sử dụng hơn phương pháp trên do nhiều máy tính không cho phép tạo half open connection.
- FIN Scan: Ta biết, sau khi 1 kết nối TCP được lập, 2 máy sẽ gửi packet cho nhau. Khi chúng kết nối, chúng sẽ gửi các gói tin với bit FIN được bật. Cách TCP làm việc là nếu ta gửi 1 gói tin đến 1 port bị đóng, hệ thống sẽ gửi ngược lại lệnh RST để báo cho ta biết port đó không active. Như vậy chương trình scan port bằng phương pháp này sẽ hoạt động như sau: nó sẽ gửi một gói tin với bit FIN được bật. Nếu port đó mở nó sẽ xóa gói tin này nếu như port đó bị khóa, thì nó sẽ gửi lại lệnh RST (reset)
- ACK Scan: Khi chúng ta cố gắng thiết lập một kết nối mới, hệ thống phải gửi 1 gói tin với bit SYN được lập. Nếu hệ thống đó gửi đến một máy mà máy đó không chấp nhận kết nối thì nó sẽ gửi ngược lại cho ta RST. Có thể là bạn nghĩ rằng phương pháp này giống với phương pháp FIN Scan nhưng thực chất nó có ưu điềm hơn phương pháp trên. Như chúng ta biết, để thiết lập một cầu nối tin cậy, thì gói tin thứ 2 phải được gửi với bit ACK được bật. Chính điều này mà các firewall tận dụng để lọc bỏ các gói tin gửi đến để tạo kết nối. Vậy nếu ta tạo một gói tin với bit ACK được bật, tức là gói tin ta gửi đi sẽ đóng vai trò là gói tin thứ 2 trong cầu nối tin cậy. Bây giờ thì có lẽ bạn đã hiểu, ta đã qua mặt được firewall vì hiện nay ta đã đóng vai trò là máy đích cho cầu nối TCP của một máy trong mạng có firewall bảo vệ. Firewall không thể lọc bỏ các gói có bit ACK được bật từ bên ngoài gửi vào, vì nếu như thế thì mạng LAN bên trong Firewall sẽ không thể trao đổi thông tin với các máy bên ngoài. Vậy là đã vượt qua Firewall, việc còn lại thực hiện giống như phương pháp đầu tiên.
Trên đây là một số phương pháp mà các chương trình scan port sử dụng để scan các port. Các bạn có thể sử dụng Visual C++ để viết thử các phần mềm này. Lần tới tui sẽ giới thiệu một số phần mềm Scan port và tìm kiếm các Access point để giúp đỡ cho admin trong việc quản lý hệ thống. Để hiểu thêm các bit và cấu tạo khung tin của các gói tin, bạn có thể tham khảo thêm tài liệu về mô hình TCP/IP.
Ở đây có đoạn code bằng c# bạn tham khảo thử:
Khai báo
CODE:
using System.Net.Sockets;
CODE:
// Store values from the NumericUpDown to variables
StartPort = Convert.ToInt32(numStart.Value);
EndPort = Convert.ToInt32(numEnd.Value);
// Reset the progress bar
prgScanning.Value = 0;
// Set the max value of the progress bar
prgScanning.Maximum = EndPort - StartPort + 1;
// Let the user know the application is busy
Cursor.Current = Cursors.WaitCursor;
// Loop through the ports between start port and end port
for (int CurrPort = StartPort; CurrPort <= EndPort; CurrPort++)
{
TcpClient TcpScan = new TcpClient();
try
{
// Try to connect
TcpScan.Connect(txtIP.Text, CurrPort);
// If there's no exception, we can say the port is open
txtLog.AppendText("Port " + CurrPort + " open");
}
catch
{
// An exception occured, thus the port is probably closed
txtLog.AppendText("Port " + CurrPort + " closed");
}
// Increase the progress on the progress bar
prgScanning.PerformStep();
}
// Set the cursor back to normal
Cursor.Current = Cursors.Arrow;
Đoạn mã trên nếu dùng StartPort =1 và EndPort=25 và txtIP=192.168.0.1 thì có kết quả như sau
Cập nhật thư mục trên máy win7
A. ở máy con
Cập nhật vào window 7 (hình như trên)
2.Star/run/ gõ: gpupdate /force
B. Ở máy win 7: share thư mục
-Sniffer là gì?
-Sniffer được dùng để làm gì?
-Phương thức kỹ thuật mà Sniffer sử dụng là gì?
-Một số chương trình Sniffer thông dụng: dsniff, snort, cain, ettercap, sniffer pro…
-Sniffer có thể thực hiện trên môi trường nào?
-Những hình thức Sniffer!
Sniffer là gì?
Là một hình thức nghe lén trên hệ thống mạng
Dựa trên những điểm yếu 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.
Man in the middle là kiểu Sniffer hiệu quả nhất
Các hình thức Sniffer
•Active: Chủ động ( Switch )
•Passive: Thụ động ( Hub )
o Sniffer được dùng làm gì?
Được phát triển để thu thập các gói tin trong hệ thống
Mục đích ban đầu: Giúp nhà quản trị mạng quản trị tốt hệ thống
Biến thể của Sniffer là các chương trình nghe lén bất hợp pháp như: Chương trình nghe lén Yahoo, MSN, ăn cắp password Email v.v.
Sniffer hoạt động chủ yếu dựa trên phương thức tấn công ARP
Tấn công ARP được khai thác như thế nào?
Quá trình hoạt động của Sniffer!
o Quá trình “đầu độc” ARP
Host A và Host B là 2 Máy tính đang “nói chuyện” với nhau
Host C là “kẻ Sniffer”
Ở Host A trên bảng ARP có lưu địa chỉ IP và MAC tương ứng của Host B
Ở Host B trên bảng ARP có lưu địa chỉ IP và MAC tương ứng của Host A
Host C thực hiện quá trình nghe lén:
•Host C gữi các ARP packet tới cả Host A và Host B có nội dung sau: “ tôi là A, B, MAC và IP của tôi là XX, YY”
o Quá trình đầu độc ARP
•Host A nhận lầm Host C là Host B
•Host B nhận lầm Host C là Host A
Quá trình “nói chuyện” giữa Host A và Host B, tất cả thông tin đều bị Host C “nghe thấy”.
o Môi trường Sniffer hoạt động!
Mạng LAN, mạng WAN, mạng WLAN
Điều kiện cần chỉ là cùng chung Subnet Mark khi Sniffer.
o Những hình thức Sniffer
Đó là các hình thức Sniffer bằng kỹ thuật máy tính nhằm khai thác thông tin riêng tư!
Bị nhìn trộm khi gỏ Password cũng là 1 hình thức Sniffer !
Bị nghe lén Điện thoại cũng là Sniffer!
Bị đọc trộm thư hay E-mail cũng là một hình thức Sniffer!
Bị nhìn trộm nội dung Chat cũng là Sniffer!
o Các phần mềm thực hiện.
CAIN & ABEL (Sử dụng phần mềm CAIN)
Yêu cầu về phần cứng:
- ổ cứng cần trống 10 Mb
- hệ điều hành Win 2000/2003/XP
- cần phải có Winpcap
Phiên bản càng mới càng tốt
o Chương trình WireShark
Là một chương trình Sniffer hiệu quả!
Có khả năng bắt được hầu hết các gói tin, của rất nhiều các giao thức.
Có thể dùng để kiểm tra lưu lượng băng thông, phân loại lưu lượng theo từng giao thức.
Nhược điểm: Không có sẵn bộ giải mã và bộ lọc password như Cain
Thông tin hiển thị là dạng thô
2. Ping sweep thường để kiểm tra sự tồn tại một lúc nhiều host (thường dùng tool)
Ping chỉ kiểm tra mỗi lúc một host.
3. Scan ports
Port Scanner : Thông thường một hacker để tấn công một hệ thống, điều đầu tiên là phải tìm hiểu rất cặn kẻ về sơ đồ mạng của hệ thống đó. Tiếp theo là tìm hiểu về các port và các access point để có thể tiếp cận hệ thống. Hiện nay, hầu hết các hacker đều sử dụng các chương trình quét port (port scaner) để tìm kiếm các port được mở của hệ thống.
Nhìn chung các chương trình quét port đều được xây dựng dưới 2 phương pháp quét sau: chương trình dùng để quét một port duy nhất của máy đích tại một thời điểm và chương trình dùng để quét một số lượng các port được quy định sẵn tại cùng một thời điểm với một dãy các địa chỉ đích cần quét. Phương pháp một hiện nay ít sử dụng, đa số các chương trình scan port hiện nay đều sử dụng phương pháp 2.
Vậy thực chất scan port làm việc như thế nào? Nó sẽ tạo các gói tin ra sao để máy đích có thể trả lời và nó nhận biết được các port được mở tại máy đích? Sau đây là một số phương pháp tạo gói tin mà các chương trình scan port thường dùng là:
- TCP Connect scan: đây là phương pháp chủ yếu và cơ bản nhất. Chương trình cố gắng tạo các gói tin để kết nối đến mỗi cổng trên một máy, nó sẽ cố gắng thực hiện các cuộc gọi hệ thống và hoàn thành qui trình bắt tay 3 bước. Nếu máy đích trả lời port đó sẽ active. Đây là phương pháp khá phổ biến hiện nay và được dùng nhiều nhất trong hầu hết các chương trình scan port. Tuy nhiên phương pháp này sẽ không còn hiện quả nếu như các máy đích được bảo vệ bởi 1 firewall hoặc người sử dụng ẩn đi các thông tin về port được scan thì xem như phương pháp này cũng không thể hoạt động.
- TCP SYN Scan: Lưu ý rằng, TCP là một giao thức tin cậy, nó sử dụng phương pháp bắt tay 3 bước để thiết lập các kết nối. Nếu ta muốn tìm 1 port có được mở hay không trên một máy, ta sẽ gửi 1 gói tin đến port đó với bit SYN được bật. Nếu port đó được mở, máy đó sẽ gửi lại gói tin với bit thứ 2 với bit SYN và ACK được bật. Lúc này, ta có thể nhanh chóng xác định được rằng, port đó đã active, việc đơn giản bây giờ là ta chỉ cần tạo ra thêm 1 gói tin thứ 3 để hoàn tất việc bắt tay 3 bước. Phương pháp này còn được gọi là phương pháp hafl open connection. Phương pháp này ít được sử dụng hơn phương pháp trên do nhiều máy tính không cho phép tạo half open connection.
- FIN Scan: Ta biết, sau khi 1 kết nối TCP được lập, 2 máy sẽ gửi packet cho nhau. Khi chúng kết nối, chúng sẽ gửi các gói tin với bit FIN được bật. Cách TCP làm việc là nếu ta gửi 1 gói tin đến 1 port bị đóng, hệ thống sẽ gửi ngược lại lệnh RST để báo cho ta biết port đó không active. Như vậy chương trình scan port bằng phương pháp này sẽ hoạt động như sau: nó sẽ gửi một gói tin với bit FIN được bật. Nếu port đó mở nó sẽ xóa gói tin này nếu như port đó bị khóa, thì nó sẽ gửi lại lệnh RST (reset)
- ACK Scan: Khi chúng ta cố gắng thiết lập một kết nối mới, hệ thống phải gửi 1 gói tin với bit SYN được lập. Nếu hệ thống đó gửi đến một máy mà máy đó không chấp nhận kết nối thì nó sẽ gửi ngược lại cho ta RST. Có thể là bạn nghĩ rằng phương pháp này giống với phương pháp FIN Scan nhưng thực chất nó có ưu điềm hơn phương pháp trên. Như chúng ta biết, để thiết lập một cầu nối tin cậy, thì gói tin thứ 2 phải được gửi với bit ACK được bật. Chính điều này mà các firewall tận dụng để lọc bỏ các gói tin gửi đến để tạo kết nối. Vậy nếu ta tạo một gói tin với bit ACK được bật, tức là gói tin ta gửi đi sẽ đóng vai trò là gói tin thứ 2 trong cầu nối tin cậy. Bây giờ thì có lẽ bạn đã hiểu, ta đã qua mặt được firewall vì hiện nay ta đã đóng vai trò là máy đích cho cầu nối TCP của một máy trong mạng có firewall bảo vệ. Firewall không thể lọc bỏ các gói có bit ACK được bật từ bên ngoài gửi vào, vì nếu như thế thì mạng LAN bên trong Firewall sẽ không thể trao đổi thông tin với các máy bên ngoài. Vậy là đã vượt qua Firewall, việc còn lại thực hiện giống như phương pháp đầu tiên.
Trên đây là một số phương pháp mà các chương trình scan port sử dụng để scan các port. Các bạn có thể sử dụng Visual C++ để viết thử các phần mềm này. Lần tới tui sẽ giới thiệu một số phần mềm Scan port và tìm kiếm các Access point để giúp đỡ cho admin trong việc quản lý hệ thống. Để hiểu thêm các bit và cấu tạo khung tin của các gói tin, bạn có thể tham khảo thêm tài liệu về mô hình TCP/IP.
Ở đây có đoạn code bằng c# bạn tham khảo thử:
Khai báo
CODE:
using System.Net.Sockets;
CODE:
// Store values from the NumericUpDown to variables
StartPort = Convert.ToInt32(numStart.Value);
EndPort = Convert.ToInt32(numEnd.Value);
// Reset the progress bar
prgScanning.Value = 0;
// Set the max value of the progress bar
prgScanning.Maximum = EndPort - StartPort + 1;
// Let the user know the application is busy
Cursor.Current = Cursors.WaitCursor;
// Loop through the ports between start port and end port
for (int CurrPort = StartPort; CurrPort <= EndPort; CurrPort++)
{
TcpClient TcpScan = new TcpClient();
try
{
// Try to connect
TcpScan.Connect(txtIP.Text, CurrPort);
// If there's no exception, we can say the port is open
txtLog.AppendText("Port " + CurrPort + " open");
}
catch
{
// An exception occured, thus the port is probably closed
txtLog.AppendText("Port " + CurrPort + " closed");
}
// Increase the progress on the progress bar
prgScanning.PerformStep();
}
// Set the cursor back to normal
Cursor.Current = Cursors.Arrow;
Đoạn mã trên nếu dùng StartPort =1 và EndPort=25 và txtIP=192.168.0.1 thì có kết quả như sau
Cập nhật thư mục trên máy win7
A. ở máy con
Cập nhật vào window 7 (hình như trên)
2.Star/run/ gõ: gpupdate /force
B. Ở máy win 7: share thư mục