CHI TIẾT BÀI VIẾT

NETWORK SCANNING

13/10/2019 11:52:03 PM | Xem: lần

Trong bước đầu tiên của tiến trình tấn công các hacker thường tiến hành quét mạng mà chúng ta sẽ gọi bằng thuật ngữ scanning để kiểm tra các cổng đang mở hay những dịch vụ mà mục tiêu đang sử dụng. Bên cạnh đó scanning còn cho biết các thông tin quan trọng như hệ điều hành đang sử dụng hay hệ thống máy chủ hosting trang web đang dùng là IIS, Apache …


Scanning bao gồm các thao tác để xác định các host (máy trạm) và những port (cổng) đang hoạt động hay những dịch vụ đang chạy trên hệ thống của mục tiêu cần tấn công và khai thác. Đây là một trong những bước quan trọng của tiến trình thu thập thông tin thông minh (intelligence gathering) mà các hacker sử dụng để lập sơ đồ của các tổ chức hay mạng mục tiêu. Trong tiến trình scanning những kẻ tấn công sẽ gởi các gói tin TCP/IP đến mục tiêu và phân tích các kết quả trả về nhằm xác định các thông tin giá trị mà họ quan tâm.

 

1. CÁC KIỂU SCANNING
Có ba dạng scanning khác nhau đó là Port Scanning, Vulnerability Scanning Network Scanning.
+ Port Scanning: Kẻ tấn công sẽ gởi một loạt các thông điệp đến mục tiêu nhằm xác định các cổng đang mở, và thông qua các cổng này họ sẽ biết được có những dịch vụ nào đang chạy trên máy tính mục tiêu. Một trong các ứng dụng port scanning phổ biên là Nmap.
+ Vulnerability Scanning: Là quá trình quét lỗi nhằm xác định ra các lỗ hổng bảo mật hay những điểm yếu mà thường gọi là các điểm "nhạy cảm” của các ứng dụng hay máy chủ, máy trạm để từ đó đưa ra các phương án tấn công thích hợp. Tiến trình quét lỗi có thể xác định được các bản cập nhật hệ thống bị thiếu, hay những lỗi hệ thống chưa được vá. Các chuyên gia bảo mật cũng thường tiến hành vulnerability scanning trong công tác đánh giá lỗ hổng và bảo vệ hệ thống mạng của mình.
+ Network Scanning: Quá trình này dùng để xác định các máy đang hoạt động trên hệ thống mạng thường được các hacker, chuyên gia bảo mật hay những quản trị hệ thống thực hiện

2. TRUYỀN THÔNG VỚI TCP & UDP

Trong gói tin TCP/IP có các thông số Flag của giao tiếp TCP như sau:

  • Cờ SYNchronize: Yêu cầu kết nối giữa 2 máy.
  • Cờ ACKnowledgement: Trả lời kết nối giữa 2 máy có thể bắt đầu thực hiện
  • Cờ FINal: Kết thúc quá trình kết nối giữa 2 máy.
  • Cờ RST (reset): Khởi động lại kết nối.
  • Cờ PSH ( push): Thực hiện chức năng đẩy trong bộ đệm trong TCP – thường sử dụng cho các gói tin ưu tiên.
  • Cờ URG (Urgent): Thông số nhằm thiết lập độ ưu tiên cần xử lý ngay cho gói tin.

Các cờ này trong TCP Header có giá trị là 0 (Không thiết lập) hoặc 1(Được thiết lập) và nằm trong 8 bít trong phần Flag của TCP Header.

Nếu như gói tin truyền bằng TCP để đảm bảo sự toàn vẹn của gói tin sẽ luôn được truyền tới đích. Gói tin truyền bằng UDP sẽ đáp ứng nhu cầu truyền tải dữ liệu nhanh với các gói tin nhỏ.

 

3. CÁC CƠ CHẾ PORT SCANNING

Trên gói TCP/UDP có 16 bit dành cho Port Number điều đó có nghĩa nó sẽ có từ 1 – 65535 cổng. Các cổng cổng thường chia thành 3 phạm vi

  • Well Known Ports (0 – 1023): các cổng phổ biến, đã biết, nó thường đi kèm với các chuẩn dịch vụ trên hệ thống. Ví dụ: telnet (23/tcp), www-http (80/tcp), ftp (21), ssh (22/tcp)…
  • Registered Ports (1024 – 49151): Các cổng được sử dụng riêng cho từng chương trình, dịch vụ cụ thể. Radius – RADIUS Authentication Protocol (1812), Microsoft Internet Name Server
  • Dynamic and/or Private Ports (49152 – 65535): Các cổng động hoặc không công khai.

Kỹ thuật đơn giản nhất của quét các cổng từ 1 --> 65535 và lấy ra các cổng đã mở. Thông thường chúng ta sẽ không quét toàn bộ 65535 mà chỉ tập trung vào các cổng phổ biến hoặc các phạm vi quét cổng hẹp hơn.

Ứng Dụng nmap trong TCP Connect() Scan

Trong kiểu scan này, kẻ tấn công sẽ gửi một gói tin SYN đến tất cả các cổng của máy mục tiêu.nếu một hoặc nhiều cổng được mở nó sẽ trả về một gói tin SYN|ACK, và kẻ tấn công sẽ hoàn thành một quá trình bắt tay bằng việc gửi lại gói tin ACK, Nếu các cổng đều đóng thì mục tiêu sẽ trả về gói tin RST để khởi động lại kết nối.

[root@localhost ~]# nmap -sT 192.168.1.22

Ứng Dụng nmap trong SYN Scan

Đây là một kiểu scan khác với TCP Connect() Scan vì quá trình bắt tay 3 bước sẽ không được hoàn thành. Kẻ tấn công sẽ gửi một gói tin SYN đến tất cả các cổng của mục tiêu. Trong trường hợp các cổng tương ứng mở nó sẽ gửi trả lại một gói tin SYN | ACK. Tại điểm này kẻ tấn công sẽ kết thúc bằng một gói tin RST. Nếu cổng đóng mục tiêu sẽ gửi trở lại một gói tin RST. Trong cả 2 trường hợp quá trình bắt tay 3 bước đều sẽ không được hoàn thành.

[root@localhost ~]# nmap -sS 192.168.1.22

Ứng Dụng nmap trong FIN Scan

Kẻ tấn công sẽ gửi một gói tin với cờ FIN tới tất cả các cổng của mục tiêu. Với các cổng được mở, mục tiêu sẽ bỏ qua gói tin và không phản hồi về cho kẻ tấn công. Các cổng đóng sẽ gửi về gói tin RST để khởi tạo kết nối.

[root@localhost ~]# nmap -sF 192.168.1.22

Ứng Dụng nmap trong XMAS Scan

Gần giống như FIN scan nhưng trong kiểu scan này kẻ tấn công sẽ gửi một gói tin FIN|URG|PSH.

[root@localhost ~]# nmap -sX 192.168.1.22

Ứng Dụng nmap trong NULL Scan

Kiểu scan này tương tự như FIN scan và XMAS scan nhưng kẻ tấn công sẽ gửi một gói tin mà không thiết lập bất cứ cờ nào trong Header của TCP.

[root@localhost ~]# nmap -sN 192.168.1.22

Ứng Dụng nmap trong UDP Scan

Đây là kiểu scan để phát hiện một cổng UDP đang mở. Gói tin UDP sẽ được gửi tới tất cả các cổng của mục tiêu, nếu cổng mở mục tiêu sẽ không gửi lại gì, nếu cổng là đóng mục tiêu sẽ gửi lại một gói tin ICMP Port Unreachable.

[root@localhost ~]# nmap -sU 192.168.1.22

Kỹ thuật quét Port nâng cao Decoy Scan

Decoy Scan là một kỹ thuật thực hiện một IP Spoofing (giả mạo). Mục đích nhằm ấn địa chỉ thực sự của kẻ tấn công (scanner). Ta xét ví dụ sau.

[root@localhost ~]# nmap -sS 192.168.1.22 -D 1.2.3.4, 5.6.7.8
Sau tham số "-D” là các giá trị IP cụ thể, với mỗi cổng khi scan mục tiêu sẽ nhận đồng thời 3 gói tin (một từ kẻ tấn công, một từ IP: 1.2.3.4, và một từ IP: 5.6.7.8). Kết quả là mục tiêu sẽ phản hồi với cả 3 địa chỉ IP và có sẽ nghĩ rằng cả 3 IP đang scan mình. Tuy nhiên, khi ta tăng giá trị IP lên hàng trăm IP thì việc tìm ra kẻ tấn công thực sự là rất khó khăn.