Bài thực hành: Các giao thức mạng cơ bảnbộ giao tiếp với nhau, đặc biệt khi một thiết bị cần gửi gói tin đến một thiết bị khác mà chỉbiết địa chỉ IP.. - Cập nhật bảng ARP: Thiết bị gửi y
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA AN TOÀN THÔNG TIN
-BÀI THỰC HÀNH 01 MÔN HỌC: CƠ SỞ AN TOÀN THÔNG TIN
Tháng 9/2024
Trang 2Mục Lục
Bài thực hành: Các giao thức mạng cơ bản 3
1 Tìm hiểu lý thuyết 3
2 Nội dung thực hành 5
3 Kết luận 9
Bài thực hành: Phát hiện các lỗ hổng bảo mật sử dụng công cụ rà quét nmap 9 1 Tìm hiểu lý thuyết 9
2 Nội dung thực hành 10
3 Kết luận 13
Bài thực hành: Sử dụng công cụ truy nhập từ xa telnet 14
1 Tìm hiểu lý thuyết 14
2 Nội dung thực hành 14
3 Kết luận 19
Bài thực hành: Giới thiệu về Wireshark 19
1 Tìm hiểu lý thuyết 19
2 Nội dung thực hành 19
3 Kết luận 22
Trang 3Bài thực hành: Các giao thức mạng cơ bản
bộ giao tiếp với nhau, đặc biệt khi một thiết bị cần gửi gói tin đến một thiết bị khác mà chỉbiết địa chỉ IP Cụ thể, ARP hoạt động như sau:
- Thiết bị gửi yêu cầu ARP: Khi một thiết bị muốn gửi gói tin đến một thiết bị khác
trong mạng nội bộ và chỉ biết địa chỉ IP đích, nó sẽ gửi một gói yêu cầu ARP (ARPRequest) dưới dạng broadcast tới toàn bộ mạng, yêu cầu địa chỉ MAC tương ứng với địa chỉ IP đó
- Thiết bị phản hồi ARP: Thiết bị có địa chỉ IP đích sẽ phản hồi với gói ARP Reply,
cung cấp địa chỉ MAC của nó
- Cập nhật bảng ARP: Thiết bị gửi yêu cầu sẽ cập nhật bảng ARP của mình với địa
chỉ MAC nhận được để sử dụng cho các lần giao tiếp sau
b Các vấn đề bảo mật liên quan đến ARP
ARP Spoofing (Giả mạo ARP): Một thiết bị độc hại có thể gửi ARP Reply giả để đánh
lừa các thiết bị khác, làm chúng cập nhật bảng ARP sai và gửi dữ liệu nhầm lẫn đến thiết
bị đó Điều này có thể dẫn đến các cuộc tấn công như man-in-the-middle (MITM).
1.2 Mô hình Client-Server
Tổng quan: kiến trúc mạng trong đó client (khách) gửi yêu cầu dịch vụ và server (chủ)
cung cấp dịch vụ Client có thể là máy tính hoặc ứng dụng, gửi yêu cầu như tải trang web hoặc truy vấn dữ liệu, còn server xử lý và phản hồi lại Ví dụ, trình duyệt web là client yêu cầu trang web từ máy chủ web Mô hình này giúp phân chia tài nguyên và quản lý dịch vụ trong mạng
1.3 Các giao thức cơ bản của mạng TCP/IP
- TCP (Transmission Control Protocol):
Chức năng: Đảm bảo truyền tải dữ liệu tin cậy, không mất mát TCP thiết lập kết nối trước khi gửi dữ liệu và sử dụng cơ chế kiểm tra lỗi, truyền lại gói tin bị mất
Ứng dụng: Dùng cho các dịch vụ như web (HTTP/HTTPS), email (SMTP),
và truyền file (FTP)
- IP (Internet Protocol):
- UDP (User Datagram Protocol:
Trang 4- HTTP (Hypertext Transfer Protocol):
- FTP (File Transfer Protocol)
- SMTP (Simple Mail Transfer Protocol)
- DNS (Domain Name System)
- ARP (Address Resolution Protocol)
- DHCP (Dynamic Host Configuration Protocol)
- ICMP (Internet Control Message Protocol)
1.4 3-way handshake
a Các bước của 3-way handshake:
Bước 1: SYN (Synchronize)
Máy khách gửi một gói tin TCP với cờ SYN (Synchronize) đến máy chủ, yêu cầu
thiết lập kết nối
Gói SYN này chứa một số thứ tự (sequence number) mà máy khách sẽ sử dụng để bắt đầu kết nối
Bước 2: SYN-ACK (Synchronize-Acknowledge)
Máy chủ nhận gói SYN và phản hồi bằng một gói tin có cờ SYN và ACK
(Acknowledge)
Gói SYN-ACK này chứa:
o Số thứ tự (sequence number) của máy chủ
o Một số xác nhận (acknowledgment number) để xác nhận đã nhận được gói SYN từ máy khách
Bước 3: ACK (Acknowledge)
Máy khách nhận gói SYN-ACK từ máy chủ và gửi lại một gói tin ACK để xác
nhận đã nhận số thứ tự từ máy chủ
Sau khi gói tin ACK này được gửi, kết nối TCP đã được thiết lập và hai bên có thể bắt đầu truyền dữ liệu
b Minh họa Quá trình:
Client -> Server (SYN): Máy khách gửi yêu cầu kết nối
Server -> Client (SYN-ACK): Máy chủ chấp nhận yêu cầu và xác nhận
Client -> Server (ACK): Máy khách xác nhận lại, kết nối hoàn tất
Trang 51.5 Các công cụ:
ip addr: Kiểm tra thông tin về các giao diện mạng
arp: Xem bảng ánh xạ ARP
ping: Kiểm tra kết nối giữa các máy
tcpdump: Quan sát lưu lượng mạng chi tiết
2 Nội dung thực hành
2.1 Khởi động bài lab
- Vào terminal, gõ: “labtainer network-basics” để tải bài thực hành về
- Sau đó, sử dụng mã Sinh viên của mình để nhập thông tin email người thực hiện bài lab khi có yêu cầu, để sử dụng khi chấm điểm
- Sau khi khởi động xong hai terminal ảo sẽ xuất hiện, 1 terminal mang tên “box1” đóng vai trò máy tính 1 và 1 terminal mang tên “box2” đóng vai trò máy tính 2, haimáy tính kết nối với nhau qua mạng ảo có thể coi như kết nối qua dây cáp
Ethernet
2.2 Khám phá
- Trên terminal box1 và box2 sử dụng lệnh: “ip addr” để kiểm tra địa chỉ IP trên cả hai máy tính để làm quen với các giao diện mạng
Trang 6Trong các thông tin trên, cần tập trung vào giao diện mạng eth0 Địa chỉ MAC (ví dụ: 02:42:ac:00:00:03) được hiển thị dưới dạng link/ether và là địa chỉ vật lý của giao diện mạng (dù trong mạng ảo, địa chỉ này cũng ảo) Địa chỉ IP (ví dụ: 172.0.0.3/24) xuất hiện dưới inet, với /24 cho biết 24 bit đầu đại diện cho subnet và phần còn lại là địa chỉ của máy tính trong subnet.
Địa chỉ MAC và IP được dùng ở các tầng khác nhau, và cần có cách dịch từ địa chỉ IP sang địa chỉ MAC để giao tiếp ở tầng liên kết (link layer)
2.3 ARP (Address Resolution Protocol) được sử dụng để ánh xạ địa chỉ IP sang địa
chỉ MAC
Trên box2, sử dụng lệnh: “arp -a” để xem bảng ánh xạ hiện tại -> Thấy rằng không có hiển thị gì là do bảng ARP đang trống Khi hai máy tính của chúng ta mới khởi động, chúng không biết địa chỉ MAC của nhau
Trang 7- Trên box1, khởi động chương trình tcpdump để quan sát lưu lượng mạng: “sudo tcpdump -vv -n -e -i eth0”
- Các tùy chọn cho lệnh tcpdump này là:
o -vv – Cung cấp thông tin chi tiết
o -n – Không thực hiện tra cứu DNS ngược, chỉ hiển thị các địa chỉ IP
o -e – Hiển thị địa chỉ MAC của Ethernet
o -i eth0 – Hiển thị lưu lượng trên giao diện eth0
- Trên box2, sử dụng lệnh ping để ping box1: “ping 172.0.0.2 -c 2” rồi quan sát lưu lượng trong tcpdump -> Box2 gửi yêu cầu ARP dưới dạng broadcast để tìm địa chỉ MAC của box1, và box1 phản hồi với địa chỉ MAC của nó Sau khi ánh xạ địa chỉ
IP với MAC, hai box có thể trao đổi gói ICMP (ping)
- Sử dụng ctrl-c để thoát khỏi tcpdump trên box1
- Cuối cùng, lệnh arp -a trên cả hai box hiển thị bảng ARP, lưu ánh xạ để tránh yêu cầu ARP lặp lại
Trang 82.4 TCP: xem xét ngắn gọn một số gói IP trong một phiên TCP, cụ thể là "bắt tay
ba bước"
- Khởi động lại tcpdump trên box1 bằng câu lệnh: “sudo tcpdump -vv -n -i eth0” Sau đó, trên box2, khởi tạo một phiên SSH tới box1 “ssh 172.0.0.2” -> khởi tạo kếtnối SSH giữa hai máy (box2 và box1)
Box2 gửi gói SYN đến box1, box1 phản hồi bằng gói SYN-ACK, và box2 hoàn tất với gói ACK Quá trình này thiết lập một kết nối TCP tin cậy, chuẩn bị cho việc trao đổi dữ
liệu qua giao thức SSH
Trang 9- Kết thúc bài lab: Trên terminal đầu tiên sử dụng câu lệnh sau để kết thúc bài lab: “stoplab network-basics”
2.5 Kiểm tra kết quả và checkwork
- Gõ lệnh: “checkwork network-basics”
3 Kết luận
Bài thực hành cung cấp một nền tảng vững chắc để sinh viên hiểu rõ về cách thức hoạt động của mạng máy tính ở cấp độ giao thức Những kiến thức này sẽ rất hữu ích cho việc học tập các môn học liên quan đến mạng và an toàn thông tin
Bài thực hành: Phát hiện các lỗ hổng bảo mật sử dụng công cụ rà quét nmap
1 Tìm hiểu lý thuyết
1.1 Tìm hiểu về công cụ rà quét nmap
Nmap (Network Mapper) là một công cụ mã nguồn mở mạnh mẽ dùng để khám phá
mạng và kiểm tra bảo mật Được sử dụng rộng rãi bởi quản trị viên mạng, chuyên gia bảo mật và cả những người dùng cá nhân, Nmap giúp quét và thu thập thông tin về mạng và
hệ thống Nmap có các tính năng
Quét cổng: Xác định cổng mở và dịch vụ đang chạy
Phát hiện hệ điều hành: Xác định loại và phiên bản hệ điều hành
Trang 10 Phát hiện dịch vụ và phiên bản: Kiểm tra phiên bản dịch vụ trên các cổng mở.
Tìm lỗ hổng bảo mật: Sử dụng Nmap Scripting Engine (NSE) để quét lỗ hổng
Quét mạng lớn: Quét hàng ngàn thiết bị cùng lúc
Chế độ quét tàng hình: Quét stealth giảm nguy cơ bị phát hiện
2 Nội dung thực hành
- Vào terminal, gõ: “labtainer nmap-discovery” Sau khi khởi động xong hai terminal
ảo sẽ xuất hiện, một cái là đại diện cho máy khách: mycomputer, một cái là đại diện cho máy chủ: friedshrimp.
- Trên terminal mycomputer sử dụng lệnh “ifconfig”, rồi sử dụng nmap để tìm ra địa chỉ IP của máy friedshrimp vì chúng cùng nằm trong mạng LAN: “nmap –sP <IP
mạng LAN>” (ví dụ IP máy: 172.25.0.2 🡪 IP mạng LAN cần điền 172.25.0.0/24)
Trang 11- Sử dụng nmap để tìm cổng dịch vụ đang mở trên máy friedshrimp biết rằng cổng
(port) nằm từ 2000-3000
nmap –p 2000-3000 <IP friedshrimp> Ở đây IP friedshrimp là: 172.25.0.5
- Sau khi xác định được cổng ssh đang mở Sử dụng ssh để truy cập vào máy chủ
“ssh –p <port> <IP friedshrimp>” (câu lệnh nhập: ssh -p 2765 172.25.0.5)
Trang 12- Sau khi truy cập được vào máy chủ friedshrimp đi tìm file friedshrimp.txt Mở và đọc file bằng cách nhập: “cat friedshrimp.txt”.
- Đóng kết nối từ máy mycomputer đến friedshrimp gõ: “exit”
Trang 13- Kiểm tra kết quả :”checkwork nmap-discovery”
- Kết thúc bài lab bằng lệnh: stoplab nmap-discovery
3 Kết luận
Bài thực hành này cung cấp cho sinh viên một cái nhìn tổng quan về việc sử dụng công cụNmap để phát hiện lỗ hổng bảo mật, cụ thể bài thực hành đã sử dụng Nmap để tìm máychủ và cổng dịch vụ, truy cập thành công vào máy chủ qua SSH và đọc file cần tìm Qua
Trang 14bài thực hành, sinh viên đã sẽ hiểu rõ hơn về cách các hacker có thể khai thác các lỗ hổngnày và tầm quan trọng của việc bảo mật hệ thống.
Bài thực hành: Sử dụng công cụ truy nhập từ xa telnet
1 Tìm hiểu lý thuyết
1.1 Truy cập từ xa
Truy cập từ xa là khái niệm chỉ việc điều khiển hoặc truy cập vào một máy tính, hệ
thống, hoặc thiết bị từ một địa điểm cách xa mà không cần có sự tiếp xúc vật lý trực tiếp với nó Điều này thường được thực hiện thông qua mạng internet hoặc mạng nội bộ (LAN), và có thể thực hiện qua nhiều phương tiện như phần mềm, giao thức, hoặc dịch vụ
từ xa
1.2 So sánh 2 giao thức truy cập từ xa Telnet và SSH
Telnet và SSH (Secure Shell) đều là các giao thức truy cập từ xa, cho phép người dùng
điều khiển một hệ thống hoặc thiết bị qua mạng Tuy nhiên, chúng có nhiều điểm khác biệt quan trọng về bảo mật, cách thức hoạt động và mục đích sử dụng Dưới đây là bảng
so sánh chi tiết giữa hai giao thức này:
Bảo mật Không mã hóa, dễ bị tấn công Mã hóa dữ liệu, bảo mật cao
Mã hóa dữ
liệu Không Có (AES, RSA)
Xác thực Tên đăng nhập và mật khẩu Tên đăng nhập, mật khẩu, hoặc khóaTính năng Ít tính năng Nhiều tính năng mở rộng
Sử dụng
chính Mạng tin cậy, không yêu cầu bảo mật Quản lý hệ thống từ xa an toàn
Rủi ro bảo
mật
Dễ bị tấn công nghe lén Bảo vệ khỏi hầu hết các tấn công
-> Trong bài thực hành này, sinh viên sẽ được hướng dẫn cách sử dụng Telnet và SSH
để kết nối đến máy chủ, đăng nhập và đọc nội dung file
2 Nội dung thực hành
- Khởi động bài lab: “cd ~/labtainer/trunk/scripts/labtainer-student”
“labtainer telnetlab” -> hai terminal ảo sẽ xuất hiện, một cái là đại diện cho máy
khách: client, một cái là đại diện cho máy chủ: server.
Trang 15- Xác định IP của các máy: sử dụng lệnh “ifconfig” -> địa chỉ IP sẽ nằm sau “inet adddr:”
- Thực hiện telnet từ máy khách vào máy chủ và đọc dữ liệu trên máy chủ
o Trên máy khách sử dụng telnet để kết nối với máy chủ thông qua địa chỉ IP:
“telnet <IP>” (nhập username và mật khẩu vào máy chủ là ubuntu”)
Trang 16o Thực hiện việc đọc tệp có sẵn chứ đoạn mật mã của sinh viên: cat filetoview.txt
o Thoát khỏi phiên telnet trên máy khách thông qua lệnh “exit”
- Xem mật khẩu người dùng nhập khi dùng telnet cần thực hiện các bước sau:
o Trên server, hãy dùng câu lệnh sau để chạy tcpdump, giúp hiện thị các gói tin TCP:
o Thực hiện phiên telnet trên máy khách, khi được nhắc nhập mật khẩu, nhập
"abc123" Nhận thấy rằng mật khẩu "abc123" sẽ được hiển thị trong các gói tin
Trang 17truy cập trong tcpdump Điều này cho thấy rằng thông tin truyền qua telnet không được mã hóa và có thể bị người khác đánh cắp dễ dàng Việc sử dụng telnet không
an toàn cho việc truyền thông tin nhạy cảm như mật khẩu Để bảo vệ thông tin, nên
sử dụng giao thức SSH thay vì telnet vì SSH sử dụng mã hóa để bảo vệ dữ liệu truyền qua mạng
- Thực hiện ssh từ máy khách vào máy chủ và đọc dữ liệu trên máy chủ
o Trên máy khách sử dụng ssh để kết nối với máy chủ thông qua địa chỉ IP: ssh <IP>
o Bỏ qua cảnh báo và nhập mk là ubuntu
Trang 18o Thực hiện việc đọc tệp có sẵn chứ đoạn mật mã của sinh viên: cat filetoview.txt
o Thoát khỏi phiên ssh trên máy khách thông qua lệnh “exit”
- Kiểm tra kết quả bài lab: checkwork telnetlab, sau đó đóng bài lab: stoplab telnetlab
Trang 193 Kết luận
Bài thực hành giúp hiểu rõ về hai giao thức truy cập từ xa phổ biến là Telnet và SSH Qua
đó, nhận thấy tầm quan trọng của việc sử dụng các giao thức bảo mật như SSH để bảo vệ thông tin khi truy cập từ xa
Bài thực hành: Giới thiệu về Wireshark
1 Tìm hiểu lý thuyết
1.1 Giới thiệu về Wireshark
Wireshark là công cụ phân tích gói tin mạng phổ biến và mạnh mẽ nhất hiện nay, được
sử dụng rộng rãi trong các lĩnh vực bảo mật mạng, quản trị hệ thống và giáo dục Với Wireshark, người dùng có thể giám sát, phân tích và ghi lại lưu lượng mạng theo thời gianthực, từ đó hiểu rõ cách hoạt động của mạng và phát hiện các sự cố hoặc tấn công tiềm ẩn
Các tính năng chính của Wireshark:
Phân tích lưu lượng thời gian thực: Giám sát và bắt gói tin trên nhiều giao thức mạng khác nhau
Giải mã gói tin: Hỗ trợ giải mã dữ liệu từ nhiều giao thức, cho phép sinh viên quan sát chi tiết từng gói tin
Bộ lọc mạnh mẽ: Wireshark cung cấp các bộ lọc giúp người dùng lọc dữ liệu theo giao thức, địa chỉ IP, cổng, v.v
Ghi lại và xuất dữ liệu: Người dùng có thể lưu lại các phiên phân tích để phân tích sau hoặc chia sẻ với người khác
1.2 Phân tích lưu lượng Telnet: Sinh viên sẽ thực hành tìm kiếm và phân tích các
gói tin trong một phiên Telnet, đặc biệt tập trung vào việc tìm kiếm gói tin chứathông tin mật khẩu
1.3 Làm quen với khái niệm PCAP: Hiểu rõ định dạng tệp PCAP và cách sử dụng
nó để lưu trữ và phân tích lưu lượng mạng
PCAP (Packet Capture) là một định dạng tệp phổ biến được sử dụng để lưu trữ các gói tin
mạng đã được ghi lại Đây là định dạng chuẩn cho các công cụ phân tích mạng như
Wireshark, Tcpdump, và nhiều công cụ khác Tệp PCAP chứa toàn bộ nội dung của các gói tin đi qua một mạng, cho phép người dùng phân tích chi tiết các hoạt động mạng đã diễn ra
2 Nội dung thực hành
- Khởi động bài Lab: labtainer wireshark-intro
- Khám phá: Sử dụng lệnh ls -l để xem nội dung của thư mục trong terminal đã mở khi
sinh viên bắt đầu phòng thí nghiệm Tệp telnet.pcap chứa lưu lượng mạng mà sinh viên sẽ
phân tích Sử dụng lệnh file telnet.pcap để xem thông tin về tệp.
- Chạy Wireshark để thực hiện phân tích PCAP
Trang 20o Khởi động Wireshark bằng cách sử dụng lệnh: “wireshark”.
o Sử dụng File->Open để mở tệp telnet.pcap
o Xác định gói tin duy nhất chứa mật khẩu được cung cấp khi người dùng cố gắng sửdụng Telnet để đăng nhập với tư cách người dùng "john" (nhập telnet.data vàotrường "Add a display filter" để lọc)
Trang 21o Khi tìm thấy gói tin duy nhất chứa mật khẩu không hợp lệ, sử dụng File=>Export specified packets để lưu gói tin duy nhất mà đã tìm thấy Lưu gói tin duy nhất này dưới dạng invalidpassword.pcap Hãy chắc chắn chọn nút radio "Selected packets only" trong hộp thoại Export và chắc chắn đặt tên tệp chính xác.
o Sau khi lưu gói tin, sinh viên có thể sử dụng File=>Open để mở tệp pcap mới của mình để xác nhận nó chứa gói tin chính xác
- Khám phá thêm: Xem qua các gói tin khác và thử nghiệm với các bộ lọc Thử chọn một trong các gói TELNET và sử dụng chức năng Analyze=>Follow=>TCP stream để xem toàn bộ cuộc trò chuyện TELNET