Thursday, 25 April 2013

nc, bạn biết chứ?


netcat (nc) - tool thần thánh mà hồi bé thấy các anh hacker hay dùng. Một chương trình được mệnh danh là "network Swiss army knife".

Bài viết thực hiện trên:
hvn@lappy: ~ () $ lsb_release -d
Description:    Ubuntu 12.04.2 LTS

Tranh thủ "cào lên bề mặt" của nc một tí cho vui:
hvn@cloud:~$ whatis nc; which nc
nc (1)               - arbitrary TCP and UDP connections and listens
/bin/nc
hvn@cloud:~$ dpkg -S `which nc`
dpkg-query: no path found matching pattern /bin/nc.
khá kỳ lạ là dpkg không tìm thấy package chứa netcat @@
Điều tuyệt vời là nc cài sẵn trên ubuntu 12.04, khỏi cần cài đặt gì.

1. Chat siêu tốc bằng `nc`
Mở 2 terminal (khác máy cũng ok). Gọi máy X có ip 192.168.122.2, máy X đóng vai trò server, máy Y là client
trò chơi bắt đầu:
X : nc -l 1234 # listen on port 1234
Y : nc 192.168.122.2 1234
Y : ta la ma day  # gõ vào
X : ta la ma day # hiện ra
Bấm Ctrl D để đóng kết nối 
Vậy là có thể chat với nhau rồi :3

2. gửi file qua mạng bằng `nc`
làm tương tự có thể giúp copy file qua mạng (copy từ máy Y sang máy X)
X: nc -l 1234 > filename.out
Y: nc 192.168.122.2 1234 < filename.in
 3 .Kiểm tra 1 cổng có mở không bằng `nc`
(dùng thay telnet - Kiểm tra cổng 80 của dantri.com.vn có mở không)

hvn@lappy: ~ () $ echo QUIT | nc dantri.com.vn 80
HTTP/1.1 400 Bad Request
Content-Length:54
Connection: close
Cache-Control: no-cache,no-store
Pragma: no-cache

<html><body><b>Http/1.1 Bad Request</b></body> </html>


Đã cào xong vào mặt `nc` và có thể là vài ba điều nhảm nhí với nó.

Khi nào biết dùng nó làm gì khác tớ sẽ post tiếp

PS: các ứng cử viên nặng ký thay thế `nc` là ncat và socat hỗ trợ SSL/TLS.