可是仔細(xì)看看上面的顯示,根本沒有給你輸入用戶名和密碼的機(jī)會(huì),直接斷開連接,這是什么原因呢?原來是win2000中的telnet的一種驗(yàn)證身份方式所致:即Windows NT LAN Manager (NTLM)。早期的SMB協(xié)議在網(wǎng)絡(luò)上明文傳輸口令,后來出現(xiàn)了"LAN Manager Challenge/Response"驗(yàn)證機(jī)制,簡(jiǎn)稱LM,它十分簡(jiǎn)單以至很容易被破解,微軟隨后提出了WindowsNT挑戰(zhàn)/響應(yīng)驗(yàn)證機(jī)制,即NTLM?,F(xiàn)在已經(jīng)有了更新的NTLMv2以及Kerberos驗(yàn)證體系。NTLM工作流程是這樣的:
1、客戶端首先在本地加密當(dāng)前用戶的密碼成為密碼散列
2、客戶端向服務(wù)器發(fā)送自己的賬號(hào),這個(gè)賬號(hào)是沒有經(jīng)過加密的,明文直接傳輸
3、服務(wù)器產(chǎn)生一個(gè)16位的隨機(jī)數(shù)字發(fā)送給客戶端,作為一個(gè) challenge(挑戰(zhàn))
4、客戶端再用加密后的密碼散列來加密這個(gè) challenge ,然后把這個(gè)返回給服務(wù)器。作為 response(響應(yīng))
5、服務(wù)器把用戶名、給客戶端的challenge 、客戶端返回的 response 這三個(gè)東西,發(fā)送域控制器
6、域控制器用這個(gè)用戶名在 SAM密碼管理庫中找到這個(gè)用戶的密碼散列,然后使用這個(gè)密碼散列來加密 challenge。
7、域控制器比較兩次加密的 challenge ,如果一樣,那么認(rèn)證成功。
從上面的過程我們可以看出,NTLM是以當(dāng)前用戶的身份向Telnet服務(wù)器發(fā)送登錄請(qǐng)求的,而不是用你自己的帳戶和密碼登錄,顯然,你的登錄將會(huì)失敗。舉個(gè)例子來說,你家的機(jī)器名為A(本地機(jī)器),你登錄的機(jī)器名為B(遠(yuǎn)地機(jī)器),你在A上的帳戶是ABC,密碼是1234,你在B上的賬號(hào)是XYZ,密碼是5678,當(dāng)你想Telnet到B時(shí),NTLM將自動(dòng)以當(dāng)前用戶的賬號(hào)和密碼作為登錄的憑據(jù)來進(jìn)行上面的7項(xiàng)操作,即用ABC和1234,而并非用你要登錄賬號(hào)XYZ和5678,且這些都是自動(dòng)完成的,根本不給你動(dòng)手的機(jī)會(huì),因此你的登錄操作將失敗。
NTLM身份驗(yàn)證選項(xiàng)有三個(gè)值。默認(rèn)是2??梢杂邢旅孢@些值:
0: 不使用 NTLM 身份驗(yàn)證。
1: 先嘗試 NTLM 身份驗(yàn)證,如果失敗,再使用用戶名和密碼。
2: 只使用 NTLM 身份驗(yàn)證。
Telnet服務(wù)器使用NTLM的有3選項(xiàng)之一時(shí),客戶機(jī)會(huì)顯示下面情況中的一種:
1)身份驗(yàn)證選項(xiàng)=0時(shí)
Microsoft (R) Windows (TM) Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99201.1
login:
password:
NTLM身份驗(yàn)證選項(xiàng)為0時(shí)不使用NTML身份驗(yàn)證,直接輸入用戶名和密碼,比如你可以輸入自己的登錄賬號(hào)密碼XYZ和5678。
2)身份驗(yàn)證選項(xiàng)=1時(shí)
NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password
Microsoft (R) Windows (TM) Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99201.1
login:
password:
這時(shí)先嘗試 NTLM 身份驗(yàn)證,如果失敗,再使用用戶名和密碼,其實(shí)這種方式對(duì)于我們來說,與上一種方式?jīng)]什么區(qū)別。
3)身份驗(yàn)證選項(xiàng)=2時(shí),就是我們一開始遇到的現(xiàn)象。
對(duì)NTLM身份驗(yàn)證選項(xiàng)值的改變可以使用Win2000為我們提供Telnet服務(wù)器管理程序tlntadmn.exe;其實(shí)Win2000同時(shí)為我們提供了Telnet客戶機(jī)和服務(wù)器程序:Telnet.exe是客戶機(jī)程序(Client),tlntsvr.exe是服務(wù)器程序(server),及Telnet服務(wù)器管理程序tlntadmn.exe。若我們不需要NTLM身份驗(yàn)證可以按以下步驟設(shè)置:
1、單擊“開始”—>“運(yùn)行“,鍵入tlntadmn,然后確定
2、在彈出的選項(xiàng)中選擇 Display, 再選擇 Change Registry Settings.
3、選擇 NTLM.
4、改變 NTLM 值為0不使用NTML身份驗(yàn)證
5、重新啟動(dòng)Telnet 服務(wù)器。
其實(shí)也可以使用tlntadmn.exe 對(duì)Telnet 服務(wù)的其他默認(rèn)設(shè)置來進(jìn)行配置,配置后需要重新啟動(dòng)Telnet服務(wù)。如下圖 :
AllowTrustedDomain:是否允許域用戶訪問。默認(rèn)值是1,允許信任域用戶訪問??梢愿臑?: 不允許域用戶訪問(只允許本地用戶)。
DefaultDomain:可以對(duì)與該計(jì)算機(jī)具有信任關(guān)系的任何域設(shè)置。默認(rèn)值是"."。
DefaultShell:顯示 shell 安裝的路徑位置。默認(rèn)值是: %systemroot%\System32\Cmd.exe /q /k
MaxFailedLogins:在連接終止之前顯示嘗試登錄失敗的最大次數(shù)。默認(rèn)是3。
LoginScript:顯示 Telnet 服務(wù)器登錄腳本的路徑位置。默認(rèn)的位置就是“%systemroot%\System32\login.cmd”,你可以更改腳本內(nèi)容,這樣登錄進(jìn)Telnet的歡迎屏幕就不一樣了。
TelnetPort:顯示 telnet 服務(wù)器偵聽 telnet 請(qǐng)求的端口。默認(rèn)是:23。你也可以更改為其他端口。
因此NTLM也是Windows 2000的一種重要安全策略,對(duì)于入侵者來說,NTLM就是橫在面前的一座大山,哪怕你獲得了管理員賬號(hào)和密碼,想簡(jiǎn)單通過NTLM也并非易事,況且win2000中的telnet默認(rèn)僅以NTLM方式驗(yàn)證身份,當(dāng)然道高一尺,魔高一丈,作為網(wǎng)絡(luò)管理員,不是說有了NTLM保護(hù),就可以高枕無憂了,對(duì)于網(wǎng)絡(luò)高手或黑客來說,時(shí)刻在撲捉系統(tǒng)漏洞和管理員疏忽,要突破NTLM的封鎖,常見的有以下幾種方法:
1、通過修改遠(yuǎn)程注冊(cè)表更改telnet服務(wù)器配置,將驗(yàn)證方式從2改為1或0;
2、使用NTLM.exe,上傳后直接運(yùn)行,可將telnet服務(wù)器驗(yàn)證方式從2改為1;
3、在本地建立掃描到的用戶,以此用戶身份開啟telnet客戶機(jī)并進(jìn)行遠(yuǎn)程登錄;
4、使用軟件,比如opentelnet.exe(需要管理員權(quán)限且開啟IPC管道)
5、使用腳本,如RTCS,(需要管理員權(quán)限但不依賴IPC管道)
基本上是以上的5種,其中后兩種是我們比較常用的開telnet的手法,而且使用方法十分簡(jiǎn)單,命令如下:
OpenTelnet.exe \\server username password NTLMAuthor telnetport
OpenTelnet.exe \\服務(wù)器地址 管理員用戶名 密碼 驗(yàn)證方式(填0或1) telnet端口
cscript RTCS.vbe targetIP username password NTLMAuthor telnetport
cscript RTCS.vbe <目標(biāo)IP> <管理員用戶名> <密碼> <驗(yàn)證方式>