將telnet用於網絡診斷和攻擊


將telnet用於網絡診斷和攻擊


本文檔的Copyleft歸yfydz所有,使用GPL發佈,可以自由拷貝,轉載,轉載時請保持文檔的完整性,嚴禁用於任何商業用途。

msn: [email protected]


來源:http://yfydz.cublog.cn


1. 概述


telnet是幾乎所有操作系統都帶的一個遠程訪問工具,通常使用之訪問目標的TCP23端口以實現遠程登錄獲取一個shell進行遠程操作,而telnet除瞭此功能外,其實也是一個網絡診斷、探測和攻擊有利工具,因為其可實現最基本的TCP連接操作。


2. 命令格式


telnet命令基本格式為:

telnet server_address [server_port]

其中server_port指定要連接到服務器的TCP端口值,如果沒有該參數缺省為23,有則連接到指定的任何端口。


3. 檢測服務器某端口是否打開


在命令行上執行命令:

telnet server_address server_port


如果服務器端口是打開的,完成TCP連接的三次握手後,對於Linux系統會現實如下提示:

Trying server_address...

Connected to server_address.

Escape character is '^]'.


如果是Windows系統,則命令行窗口會清屏。


如果服務器端口是關閉的或該端口數據被防火墻拒絕,將出現連接失敗的結果。


4. 完成明文文本協議並探測服務器


在沒有相應協議的客戶端時,可以用telnet完成各種明文文本協議,可以判斷服務器正常與否,並能瞭解服務器的一些基本信息,具體協議數據格式可以參考各種協議的RFC。(以下說明中用戶敲入的數據用黑斜體表示,屏幕顯示的用正常字體)


4.1 HTTP

C:>telnet www.cublog.cn 80

(cmd窗口清屏,敲入下面數據,註意大小寫:)

HEAD / HTTP/1.0(回車)

(回車)


HTTP/1.1 200 OK

Date: Mon, 20 Feb 2006 02:18:18 GMT

Server: Apache/2.0.54 (Unix) PHP/5.1.1

X-Powered-By: PHP/5.1.1

Connection: close

Content-Type: text/html; charset=GB2312


失去瞭跟主機的連接。


C:\>


這時可以看到從服務器返回的數據信息,可看出CU的服務器使用的是Apache 2.0.54,PHP解釋器是5.1.1,這樣可以查找該版本服務器代碼是否有相關漏洞而進行下一步的攻擊。


4.2 FTP


FTP通信通常需要兩個連接,主連接用telnet可以連上,數據連接如果是被動模式也可以用另一個telnet連接來獲取數據,如果是主動模式就必須自己寫一個服務器監聽某端口,然後通過PORT命令指定該端口讓服務器來連接。


C:>telnet ftp.kernel.org 21

(cmd窗口清屏,服務器返回下面的數據)

220 Welcome to ftp.kernel.org.

(輸入用戶名,敲入:)

user anonymous(回車)

331 Please specify the password.

(輸入口令,敲入:)

pass anonymous@(回車)

230- Welcome to the

230-

230- LINUX KERNEL ARCHIVES

230- ftp.kernel.org

230-

......省略

230-For comments on this site, please contact [email protected]>.

230-Please do not use this address for questions that are not related to

230-the operation of this site. Please see our homepage at

230-http://www.kernel.org/ for links to Linux documentation resources.

230-

230 Login successful.

(進入被動模式,敲入:)

pasv(回車)

227 Entering Passive Mode (204,152,191,37,28,225)

(列目錄敲入:)

list(回車)

(

此時在另一個cmd窗口敲入下面的命令,回車,其中7393=28*256+225,即可看到服務器傳回的目錄數據




C:\>telnet 204.152.191.37 7393

drwxrwx--- 2 536 528 4096 May 21 2001 for_mirrors_only

drwx------ 2 0 0 16384 Oct 02 09:20 lost+found

drwxrwsr-x 9 536 536 4096 Sep 26 22:48 pub

lrwxrwxrwx 1 0 0 1 Oct 03 04:41 usr -> .

lrwxrwxrwx 1 0 0 10 Oct 03 04:41 welcome.msg -> pub/README


失去瞭跟主機的連接。


C:\>

)

150 Here comes the directory listing.

226 Directory send OK.

(退出,敲入:)

quit(回車)

221 Goodbye.


失去瞭跟主機的連接。


C:\>


4.3 SMTP、POP3


和FTP類似,命令大小寫無關,也是一開始輸入user和pass登錄,其他操作類似,理論上是可以通過telnet來發送接收郵件的,隻要你不怕麻煩,在此不舉例瞭。


5. 命令調試


telnet可用於任何使用明文進行通信的協議的調試,telnet到對方端口後,所輸入的數據都會直接傳到對方,如果使用telnet可以正確操作而自己編寫的程序不能正確操作,可確定是程序出瞭問題。


同樣,使用telnet可以用來檢測某些功能是否正確,如防火墻URL的重組功能,因為telnet的數據即刻發送,最多的緩沖是按行,所以一個完整的URL會在不同的數據包中傳輸,可用這種方法來檢查重組功能是否正確,如:


c:>telnet www.cublog.cn 80

(cmd窗口清屏,敲入下面數據,註意大小寫:)

GET /u/12313/index.php HTTP/1.1(回車)

Host: www.cublog.cn(回車)

(回車)


這時服務器應該返回數據,同時在防火墻上可檢查是否提取出完整的URL,完整的URL是Host字段加第一行中的第二個字段組成的:www.cublog.cn/u/12313/index.php。


6. 網絡攻擊


可以用telnet來發送特殊構造的數據來實現網絡攻擊,而不必寫專門的程序,如phrack63中描述的FTP/IRC跟蹤漏洞攻擊(在我的前一篇文章中有說明),隻需要先編寫一個最基本的服務器程序模擬子連接,該服務器監聽TCP6667端口,一旦有連接,就將特定數據發送給對方,主連接的FTP連接命令操作為:


(現在假定在TCP6667端口監聽的服務器已經啟動)


telnet victim_ftp 21
(cmd窗口清屏,服務器返回下面的數據)


敲入:

user username(回車,用戶名)


pass password(回車,口令)


PORT a,b,c,d,26,11(回車,告訴服務器本機打開的6667端口,a,b,c,d為本機IP)


STOR irc.txt(回車,上載含有特殊IRC命令數據的文件,該文件事先定義好)


這時就可以通過命令:

telnet victim_ftp port_specified_by_irc

就可以訪問目標機的端口


7. 結論


telnet是一個功能很強大的工具,不光是隻能訪問TCP23端口,往往可以用來實現很多你所意想不到的各種功能,越是基本的工具往往能作更多的事。

0 個評論

要回覆文章請先登錄註冊