Netcat là một công cụ mạng dòng lệnh được sử dụng để mở các cổng, liên kết một trình bao với một cổng, thiết lập kết nối TCP/UDP và hơn thế nữa.
Hướng dẫn này cho thấy cách sử dụng Netcat để quét các cổng trên các mục tiêu từ xa. Các ví dụ bao gồm trong hướng dẫn này giải thích quá trình quét cổng riêng lẻ, quét một số cổng, quét phạm vi cổng và lấy biểu ngữ bằng Netcat.
Sau các ví dụ của Netcat, Viettelco đã thêm các ví dụ về các kiểu quét tương tự bằng cách sử dụng Nmap và Nmap Scripting Engine để lấy biểu ngữ.
Cài đặt Netcat:
Để cài đặt Netcat trên các bản phân phối Linux dựa trên Debian hoặc Debian, chẳng hạn như chạy Ubuntu:
sudo apt install netcat
Trên các bản phân phối Linux dựa trên Red Hat (CentOS, Fedora), bạn có thể chạy:
yum install -y nc
Cách quét một cổng bằng Netcat:
Ví dụ đầu tiên cho thấy cách quét một cổng bằng Netcat. Cổng được quét là FTP (21).
Các đối số được truyền là:
z: hướng dẫn Netcat quét mà không cần thiết lập kết nối.
v: Độ dài để xem kết quả.
n: Bỏ qua tra cứu DNS
nc -zvn < target >
LƯU Ý: Thay thế <target> cho cổng thực tế của bạn.
Như bạn có thể thấy, Netcat báo cáo FTP đang mở.
Quét nhiều cổng bằng Netcat:
Ví dụ thứ hai cho thấy cách quét nhiều cổng, trong trường hợp này là cổng 21, 25 và 80. Sau khi xác định mục tiêu của bạn, chỉ cần liệt kê các cổng bạn có thể được kiểm tra:
nc -zvn < target > 21 25 80
Như bạn có thể thấy, tất cả các cổng đã được thông báo là đang mở.
Cách quét dải cổng bằng Netcat:
Với Netcat, bạn cũng có thể quét phạm vi cổng bằng cách thực hiện dấu gạch nối giữa cổng đầu tiên và cổng cuối cùng để quét, như thể hiện trong ví dụ dưới đây:
nc -zvn < target > 21 - 25
Như bạn có thể thấy, cổng 25 và 21 đang mở trong khi phần còn lại đóng.
Lấy biểu ngữ bằng Netcat:
Lấy biểu ngữ là một phương pháp thu thập thông tin từ các mục tiêu từ các biểu ngữ mà một số ứng dụng hiển thị khi chúng ta kết nối với chúng. Kỹ thuật này có thể tiết lộ thông tin trên phần mềm đang chạy trên mục tiêu. Lấy biểu ngữ có thể nhắm mục tiêu các cổng 21, 25 và 80.
Ví dụ sau cho thấy cách sử dụng Netcat để lấy biểu ngữ để tìm hiểu phiên bản FTP đang chạy trên mục tiêu:
nc -v < target > 21
Netcat báo cáo máy chủ chạy Pure-FTPd.
Ví dụ sau cho thấy việc lấy biểu ngữ bằng cách sử dụng netcat để lấy thông tin về SMTP:
nc -v 198.54.116.246 25
Đầu ra cho thấy máy chủ sử dụng Exim 4.94.2.
Cách quét một cổng bằng Nmap:
Hướng dẫn này sẽ không liệt kê những ưu điểm rõ ràng của Nmap so với Netcat để quét các cổng, nhưng nó giải thích cách thực hiện các quy trình quét được mô tả ở trên với Nmap.
Để quét một cổng duy nhất với nmap, hãy chỉ định nó với đối số -p như được hiển thị trong ví dụ bên dưới bằng cách sử dụng cùng một mục tiêu và cổng mà tôi đã sử dụng với Netcat.
nmap -p 21 198.54.116.246
Quét nhiều cổng bằng Nmap:
Để quét nhiều cổng với Nmap, bạn có thể sử dụng cùng một cú pháp, chỉ cần phân tách từng cổng bằng dấu phẩy. Ví dụ sau cho thấy quá trình quét các cổng 21, 25 và 80 tương tự như ví dụ Netcat thứ hai:
nmap -p 21 , 25 , 80 198.54.116.246
Cách quét dải cổng bằng Nmap:
Để quét phạm vi cổng, bạn có thể sử dụng dấu gạch nối như với Netcat:
nmap -p 21 - 25 198.54.116.246
Lấy biểu ngữ bằng Nmap:
Cuối cùng, để lấy biểu ngữ với Nmap, tôi sẽ áp dụng cờ -sV hướng dẫn Nmap để kiểm tra các phiên bản dịch vụ. Tôi cũng hướng dẫn Nmap chạy biểu ngữ –script = từ NSE (Nmap Scripting Engine); như với ví dụ Netcat, quá trình này nhằm mục đích khám phá phiên bản FTP.
nmap -sV --script = banner -p 21 198.54.116.246
Như bạn có thể thấy, đầu ra giống như với Netcat.
Kết luận về Netcat để quét cổng:
Netcat là một di tích thực sự; nó là một công cụ mạng tuyệt vời nhưng rất hạn chế cho việc quét cổng. Không có lý do gì để thay thế Nmap hoặc bất kỳ trình quét cổng nào khác để Netcat quét các cổng.
Netcat không hỗ trợ quét nhiều mục tiêu; mặc dù nó có thể được tích hợp vào một tập lệnh để đạt được mục tiêu này, nhưng bản thân công cụ này có rất ít tùy chọn để quét cổng.