1. Trang chủ
  2. » Công Nghệ Thông Tin

báo cáo lập trình mạng : Cổng

10 579 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 144,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cổng được liên kết với một địa chỉ IP của máy chủ, cũng như các loại giao thức được sử dụng để giao tiếp.. Mục đích của cổng là để nhận diện các ứng dụng khác nhau hoặc các tiến trình đa

Trang 1

I CỔNG 2

a Khái niệm 2

b Quy ước và hoạt động của các loại cổng 3

c Ứng dụng 5

II QUÉT CỔNG 6

1 Khái niệm 6

2 Nguyên tắc quét cổng trên một hệ thống 7

3 Cài đặt thuật toán 9

III KẾT LUẬN 10

Trang 2

I CỔNG

a Khái niệm.

Trong mạng máy tính, một cổng là một phần mềm ứng dụng cụ thể hay quá trình

cụ thể xây dựng phục vụ như một thiết bị thông tin liên lạc đầu cuối trong hệ thống máy chủ điều hành của máy tính Cổng được liên kết với một địa chỉ IP của máy chủ, cũng như các loại giao thức được sử dụng để giao tiếp Mục đích của cổng là để nhận diện các ứng dụng khác nhau hoặc các tiến trình đang chạy trên một máy tính duy nhất và do

đó cho phép chúng chia sẻ một kết nối vật lý đơn lẻ với một mạng chuyển mạch gói như Internet

Trong giao thức TCP và UDP, cổng là số nguyên 16 bit được chèn vào phần đầu (header) của mỗi gói tin, còn được gọi là số cổng Số cổng, được thêm vào địa chỉ IP của máy tính, hoàn thành địa chỉ đích cho một phiên truyền thông Đó là, các gói dữ liệu được chuyển qua mạng đến một địa chỉ IP đích cụ thể, và sau đó, khi tới máy đích, tiếp tục chuyển đến quá trình cụ thể ràng buộc với số cổng đích Chẳng hạn, phía người dùng (client) có thể yêu cầu một máy chủ nào đó trên Internet cung cấp dịch vụ chia sẻ tập tin (file) qua máy chủ FTP Để đáp ứng yêu cầu này, lớp phần mềm TCP trên máy của bạn phải nhận diện được port số 21 (đăng ký sẵn cho dịch vụ FTP) trong số các port

16 bit số nguyên được ghép theo gói tin yêu cầu của bạn Tại máy chủ, lớp TCP sẽ đọc port 21 và chuyển tiếp yêu cầu đến máy chủ FTP

Hay nói cách khác, với một địa chỉ IP, chúng ta chỉ có thể xác định được một máy tính duy nhất trên mạng, tuy nhiên khi một máy tính chạy nhiều dịch vụ khác nhau thì chúng phải được phân biệt bởi khái niệm port Ví dụ, máy chủ A (Server A) có dịch vụ web, DNS và FTP server, có địa chỉ IP là 210.245.126.14 Các máy tính khác khi muốn đến Server A thì cần đến địa chỉ IP (hay tên miền), nhưng để phân biệt dịch vụ là web, DNS hay FTP, cần xác định thêm port Chẳng hạn, khi máy B muốn truy nhập dịch vụ web trên server A, trong gói tin gửi đi, IP đích sẽ là 210.245.126.14 và port đích sẽ là

80 Cùng lúc đó có máy C truy nhập đến dịch vụ DNS trên server A thì trong gói tin IP gửi đi, IP đích vẫn là 210.245.126.14 nhưng port đích sẽ là 53 Tương tự, máy D truy cập đến dịch vụ FTP trên server A, IP đích sẽ là 210.245.126.14 và port là 21 Thông

Trang 3

thường các ứng dụng thường ẩn các port này để giảm tính phức tạp của giao thức TCP/IP

Có tất cả 65535 cổng (port) và được chia thành 3 đoạn: Well Known Port (WKP), Registered Port (RP) và Dynamic/Private Port (D/PP) WKP gồm các port từ 0 đến 1023

và được giữ cho các ứng dụng phổ biến như web (port 80), mail (port 25), ftp (port 21) RP gồm các port từ 1024 đến 49151 Còn D/PP là các port từ 49152 đến 65535 IANA qui định WKP và RP phải được đăng ký với IANA (iana.org) trước khi sử dụng

b Quy ước và hoạt động của các loại cổng

i Cổng phổ biến (Well Known Port 0-1023)

Trong tầm từ 0-1023, hầu hết các port đã được đăng ký Trong đó, nổi bật có các port phổ biến được liệt kê theo danh sách bên dưới Với mạng cá nhân, muốn triển khai được các dịch vụ, chẳng hạn web server, ftp server hệ thống của bạn phải mở các port tương ứng Ứng với mỗi thiết bị định tuyến (router) của từng hãng, bạn sẽ có cách mở port khác nhau Để dễ dàng mở các port cũng như hướng dẫn chi tiết trên từng router, bạn có thể vào trang portforward.com để tìm đúng router đang có Trang web này luôn cập nhật danh sách router mới nhất của nhiều hãng

Một điều cần lưu ý trước khi mở port là bạn nên kiểm tra lại hệ thống đã mở sẵn cổng này chưa bằng cách vào trang http://www.grc.com(nhớ tắt firewall trên Windows) hoặc dùng lệnh netstat -an để biết máy của bạn đang sử dụng và "lắng nghe" những port nào

Danh sách các cổng thông dụng

Trang 4

42 UDP Host Name Server - Microsoft WINS

Trang 5

989 TCP UDP FTP Data Over TLS/SSL

ii Cổng đăng ký (Registered port: 1024–49151)

Các cổng TCP và UDP có số từ 1024 đến 49151 được gọi là các cổng đăng ký (registered ports) IANA quản lý danh sách các dịch vụ sử dụng các port trong tầm số này để giảm thiểu việc sử dụng trùng nhau Không giống nhu các port có số thấp hơn (0-1023), những nhà phát triển dịch vụ TCP/UDP mới có thể chọn một số mới để đăng ký với IANA thay vì dùng trùng số đã đăng ký

iii Cổng động/Cổng riêng (Dynamic/ Private Port: 49152–65535)

Các cổng TCP và UDP có số bắt đầu từ 49152 đến 65535 được gọi là port động (dynamic port), port riêng (private port) hay port tạm (ephemeral port) IANA không quản lý Dynamic port cũng như không giới hạn việc sử dụng của người dùng Các dịch

vụ có thể chọn một hoặc vài port ngẫu nhiên miễn phí trong tầm số này khi cần truyền trên nhiều socket

c Ứng dụng

Hãy tưởng tượng, chiếc máy tính giống như ngôi nhà của bạn và port sẽ giống như các cửa ra vào Bạn muốn mời một người nào đó vào nhà, nghĩa là phải chỉ cho họ

Trang 6

biết server đang lắng nghe (listening) ở port nào để client biết và gửi yêu cầu Router trong mô hình bên dưới giữ vai trò như một người gác cổng Nó sẽ mở các port dịch vụ trong mạng

1 Khái niệm

"Quét cổng" là thuật ngữ kỹ thuật để xác định cổng mở và các dịch vụ có sẵn trên một máy chủ mạng Nó có thể được sử dụng bởi các chuyên gia an ninh để kiểm toán

Trang 7

các mạng máy tính cho các lỗ hổng có khả năng Nó cũng có thể được sử dụng bởi những kẻ tấn công để kiểm tra các host/hosts có thể để khai thác

2 Nguyên tắc quét cổng trên một hệ thống

a TCP scan

Trên gói TCP/UDP có 16 bit dành cho Port Number điều đó có nghĩa nó có từ 1 –

65535 port Không một hacker nào lại scan toàn bộ các port trên hệ thống, chúng chỉ scan những port hay sử dụng nhất thường chỉ sử dụng scan từ port 1 tới port 1024 mà thôi

Phần trên tôi đã trình bày về nguyên tắc tạo kết nối và ngắt kết nối giữa hai máy tính trên mạng Dựa vào các nguyên tắc truyền thông tin của TCP, có thể Scan Port nào

mở trên hệ thống bằng những phương thức sau đây:

- SYN Scan: Khi Client bắn gói SYN với một thông số Port nhất định tới Server nếu server gửi về gói SYN/ACK thì Client biết Port đó trên Server được mở Nếu Server gửi về cho Client gói RST/SYN tôi biết port đó trên Server đóng

- FIN Scan: Khi Client chưa có kết nối tới Server nhưng vẫn tạo ra gói FIN với số port nhất định gửi tới Server cần Scan Nếu Server gửi về gói ACK thì Client biết Server mở port đó, nếu Server gửi về gói RST thì Client biết Server đóng port đó

- NULL Scan Sure: Client sẽ gửi tới Server những gói TCP với số port cần Scan mà không chứa thông số Flag nào, nếu Server gửi lại gói RST thì tôi biết port

đó trên Server bị đóng

- XMAS Scan Sorry: Client sẽ gửi những gói TCP với số Port nhất định cần Scan chứa nhiều thông số Flag như: FIN, URG, PSH Nếu Server trả về gói RST tôi biết port đó trên Server bị đóng

- TCP Connect: Phương thức này rất thực tế nó gửi đến Server những gói tin yêu cầu kết nối thực tế tới các port cụ thể trên server Nếu server trả về gói SYN/ACK thì Client biết port đó mở, nếu Server gửi về gói RST/ACK Client biết port đó trên Server bị đóng

Trang 8

- ACK Scan: dạng Scan này nhằm mục đích tìm những Access Controll List trên Server Client cố gắng kết nối tới Server bằng gói ICMP nếu nhận được gói tin

là Host Unreachable thì client sẽ hiểu port đó trên server đã bị lọc

- Có vài dạng Scan cho các dịch vụ điển hình dễ bị tấn công như:

- RPC Scan: Cố gắng kiểm tra xem hệ thống có mở port cho dịch vụ RPC không

- Windows Scan tương tự như ACK Scan, nhưng nó có thể chỉ thực hiện trên một số port nhất định

- FTP Scan: Có thể sử dụng để xem dịch vụ FTP có được sử dụng trên Server hay không

- IDLE cho phép kiểm tra tình trạng của máy chủ

b UDP scan

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ỏ Với quá trình thực hiện truyền tin bằng TCP kẻ tấn công dễ dàng Scan được hệ thống đang mở những port nào dựa trên các thông số Flag trên gói TCP

Cấu tạo gói UDP:

Như ta thấy gói UDP không chứa các thông số Flag, cho nên không thể sử dụng các phương thức quét cổng của TCP sử dụng cho UDP được Thật không may hầu hết

hệ thống đều cho phép gói ICMP

Trang 9

Nếu một cổng bị đóng, khi Server nhận được gói ICMP từ client nó sẽ cố gắng gửi một gói ICMP type 3 code 3 port với nội dung là "unreachable" về Client Khi thực hiện UDP Scan bạn hãy chuẩn bị tinh thần nhận được các kết quả không có độ tin cây cao

3 Cài đặt thuật toán

- Tư tưởng thuật toán:

+ Tạo một lớp socket với giao thức TCP + Kết nối tới địa chỉ IP và cổng cần quét + Nếu kết nối thành công → cổng mở + Ngược lại → cổng đóng

- Giao diện chính của chương trình:

Trang 10

III KẾT LUẬN

Việc quét cổng có ý nghĩa quan trọng trong việc kiểm tra, thăm dò máy chủ Nó

có ý nghĩa cả đối với các quản trị viên và những kẻ tấn công Các quản trị viên dựa vào

đó để có các chính sách an ninh mạng đối với hệ thống Còn đối với những kẻ tấn công dựa vào đó để khai thác lỗ hổng, tấn công mạng

Mặc dù đã cố gắng, cùng với sự hướng dẫn tận tình của thầy Nguyễn Quang Uy, song vì thời gian còn hạn chế, kiến thức và kinh nghiệm còn chưa nhiều nên chương trình của chúng em không tránh khỏi những thiếu sót Chúng em rất mong nhận được

sự chỉ dẫn của thầy và sự góp ý của các bạn để chương trình được hoàn thiện hơn

Ngày đăng: 23/10/2014, 09:43

TỪ KHÓA LIÊN QUAN

w