Netcat ( hoặc nc ) là tiện ích dòng lệnh đọc và ghi tài liệu trên những liên kết mạng, sử dụng giao thức TCP hoặc UDP. Nó là một trong những công cụ mạnh nhất trong kho vũ khí của những quản trị viên mạng lưới hệ thống và mạng và nó được coi như một con dao của quân đội Thụy Sĩ về những công cụ mạng .Netcat là đa nền tảng và nó có sẵn cho Linux, macOS, Windows và BSD. Bạn hoàn toàn có thể sử dụng Netcat để gỡ lỗi và giám sát những liên kết mạng, quét những cổng mở, truyền tài liệu, dưới dạng proxy và hơn thế nữa. Gói Netcat được thiết lập sẵn trên macOS và những bản phân phối Linux phổ cập như Ubuntu .

Cú pháp Netcat

Cú pháp cơ bản nhất của tiện ích Netcat có dạng sau :

nc host port

Trên Ubuntu, bạn có thể sử dụng netcat hoặc nc. Cả hai đều là liên kết tượng trưng cho phiên bản openBSD của Netcat.

Theo mặc định, Netcat sẽ cố gắng bắt đầu kết nối TCP đến máy chủ và cổng được chỉ định. Nếu bạn muốn thiết lập kết nối UDP, hãy sử dụng tùy chọn -u :

nc -u host port

Quét cổng

Cổng quét là một trong những cách sử dụng phổ cập nhất cho Netcat. Bạn hoàn toàn có thể quét một cổng hoặc một khoanh vùng phạm vi cổng .
Ví dụ : để quét những cổng mở trong khoanh vùng phạm vi 20-80, bạn sẽ sử dụng lệnh sau :

nc -z -v 10.10.8.8 20-80

Tùy chọn -z sẽ yêu cầu nc chỉ quét các cổng mở, mà không gửi bất kỳ dữ liệu nào cho họ và tùy chọn -v để cung cấp thêm thông tin dài dòng.

Đầu ra sẽ trông giống như thế này :

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused ... nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

Bạn cũng hoàn toàn có thể sử dụng Netcat để tìm ứng dụng sever và phiên bản của nó. Ví dụ : nếu bạn gửi lệnh EXIT Viking đến sever trên cổng SSH mặc định 22 :

echo "EXIT" | nc 10.10.8.8 22

Đầu ra sẽ trông giống như thế này :

SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.

Để quét các cổng UDP, chỉ cần thêm tùy chọn -u vào lệnh như dưới đây:

nc -z -v -u 10.10.8.8 20-80

Trong hầu hết những trường hợp, Nmap là một công cụ tốt hơn Netcat để quét cổng phức tạp .

Gửi tệp qua Netcat

Netcat hoàn toàn có thể được sử dụng để chuyển tài liệu từ sever này sang sever khác bằng cách tạo quy mô máy khách / sever cơ bản .

Điều này hoạt động bằng cách đặt Netcat nghe trên một cổng cụ thể (sử dụng tùy chọn -l ) trên máy chủ nhận và sau đó thiết lập kết nối TCP thông thường từ máy chủ khác và gửi tệp qua đó.

Khi nhận, chạy lệnh sau sẽ mở cổng 5555 cho kết nối đến và chuyển hướng đầu ra sang tệp:

nc -l 5555 > file_name

Từ sever gửi liên kết với sever nhận và gửi tệp :

nc receiving.host.com 5555 < file_name

Để chuyển một thư mục, bạn hoàn toàn có thể sử dụng tar để tàng trữ thư mục trên sever nguồn và trích xuất kho tàng trữ trên máy chủ đích .
Trên sever nhận, đặt công cụ Netcat để nghe liên kết đến trên cổng 5555. Dữ liệu đến được dẫn đến lệnh tar sẽ trích xuất kho tàng trữ :

nc -l 5555 | tar xzvf -

Trên máy chủ gửi gói thư mục và gửi dữ liệu bằng cách kết nối với quá trình nghe nc trên máy chủ nhận:

tar czvf - /path/to/dir | nc receiving.host.com 5555

Bạn có thể xem tiến trình chuyển tiền ở cả hai đầu. Sau khi hoàn thành, nhập CTRL+C để đóng kết nối.

Tạo một máy chủ trò chuyện đơn giản

Quy trình tạo trò chuyện trực tuyến giữa hai hoặc nhiều sever giống như khi chuyển tệp .Trên sever tiên phong khởi đầu quá trình Netcat để nghe trên cổng 5555 :

nc -l 5555

Từ sever thứ hai chạy lệnh sau để liên kết với cổng nghe :

nc first.host.com 5555

Bây giờ nếu bạn gõ một tin nhắn và nhấn ENTER nó sẽ được hiển thị trên cả hai máy chủ.

Để đóng kết nối, nhập CTRL+C

Thực hiện một yêu cầu HTTP

Mặc dù có nhiều công cụ tốt hơn cho những nhu yếu HTTP như curl, bạn cũng hoàn toàn có thể sử dụng Netcat để gửi những nhu yếu khác nhau đến những sever từ xa .Ví dụ : để truy xuất trang man Netcat từ website OpenBSD, bạn sẽ gõ :

printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80

Phản hồi đầy đủ bao gồm các tiêu đề HTTP và mã HTML sẽ được in trong thiết bị đầu cuối.

Phần kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng tiện ích Netcat để thiết lập và kiểm tra những liên kết TCP và UDP .
Để biết thêm thông tin, hãy truy vấn trang người dùng Netcat và đọc về tổng thể những tùy chọn can đảm và mạnh mẽ khác của lệnh Netcat .thiết bị đầu cuối netcat
thiết bị đầu cuối netcat

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *