對于Telnet的認(rèn)識,不同的人持有不同的觀點(diǎn),可以把Telnet當(dāng)成一種通信協(xié)議,但是對于入侵者而言,Telnet只是一種遠(yuǎn)程登錄的工具。一旦入侵者與遠(yuǎn)程主機(jī)建立了Telnet連接,入侵者便可以使用目標(biāo)主機(jī)上的軟、硬件資源,而入侵者的本地機(jī)只相當(dāng)于一個(gè)只有鍵盤和顯示器的終端而已。
(1)Telnet是控制主機(jī)的第一手段
在前幾節(jié)介紹過,如果入侵者想要在遠(yuǎn)程主機(jī)上執(zhí)行命令,需要建立IPC$連接,然后使用net time命令查看系統(tǒng)時(shí)間,最后使用at命令建立計(jì)劃任務(wù)才能完成遠(yuǎn)程執(zhí)行命令。雖然這種方法能夠遠(yuǎn)程執(zhí)行命令,但相比之下,Telnet方式對入侵者而言則會(huì)方便得多。入侵者一旦與遠(yuǎn)程主機(jī)建立Telnet連接,就可以像控制本地計(jì)算機(jī)一樣來控制遠(yuǎn)程計(jì)算機(jī)??梢姡琓elnet方式是入侵者慣于使用的遠(yuǎn)程控制方式,當(dāng)他們千方百計(jì)得到遠(yuǎn)程主機(jī)的管理員權(quán)限后,一般都會(huì)使用Telnet方式進(jìn)行登錄。
(2)用來做跳板
入侵者把用來隱身的肉雞稱之為“跳板”,他們經(jīng)常用這種方法,從一個(gè)“肉雞”登錄到另一個(gè)“肉雞”,這樣在入侵過程中就不會(huì)暴露自己的IP地址,這一過程將在第5章中詳細(xì)介紹。
由于Telnet功能太強(qiáng)大,而且也是入侵者使用最頻繁的登錄手段之一,因此微軟公司為Telnet添加了身份驗(yàn)證,稱為NTLM驗(yàn)證,它要求 Telnet終端除了需要有Telnet服務(wù)主機(jī)的用戶名和密碼外,還需要滿足NTLM驗(yàn)證關(guān)系。NTLM驗(yàn)證大大增強(qiáng)了Telnet主機(jī)的安全性,就像一只攔路虎把很多入侵者拒之門外。
登錄命令:telnet HOST [PORT]
斷開Telnet連接的命令:exit
成功地建立Telnet連接,除了要求掌握遠(yuǎn)程計(jì)算機(jī)上的賬號和密碼外,還需要遠(yuǎn)程計(jì)算機(jī)已經(jīng)開啟“Telnet服務(wù)”,并去除NTLM驗(yàn)證。也可以使用專門的Telnet工具來進(jìn)行連接,比如STERM,CTERM等工具。
步驟一:建立IPC$連接。其中sysback是前面建立的后門賬號,命令如圖所示。
步驟二:開啟遠(yuǎn)程主機(jī)中被禁用的Telnet服務(wù),如圖所示。
步驟三:斷開IPC$連接,如圖所示。
步驟四:去掉NTLM驗(yàn)證。如果沒有去除遠(yuǎn)程計(jì)算機(jī)上的NTLM驗(yàn)證,在登錄遠(yuǎn)程計(jì)算機(jī)的時(shí)候就會(huì)失敗,如圖所示。
不過入侵者會(huì)使用各種方法使NTLM驗(yàn)證形同虛設(shè)。解除NTLM的方法有很多,下面列出一些常用的方法,來看看入侵者如何去除NTLM驗(yàn)證。
(1)方法一
首先,在本地計(jì)算機(jī)上建立一個(gè)與遠(yuǎn)程主機(jī)上相同的賬號和密碼,如圖所示。
然后,通過“開始”→“程序”→“附件”找到“命令提示符”,使用鼠標(biāo)右鍵單擊“命令提示符”,然后選擇“屬性”,打開后如圖所示。
在“以其他用戶身份運(yùn)行(U)”前面“打鉤”,然后單擊“確定”按鈕。接著,仍然按照上述路徑找到“命令提示符”,用鼠標(biāo)左鍵單擊打開,得到如圖所示對話框。
如圖所示,鍵入“用戶名”和“密碼”。
單擊“確定”按鈕后,得到MS-DOS界面,然后用該MS-DOS進(jìn)行Telnet登錄,如圖所示。
鍵入“telnet 192.168.27.128”命令并回車后,在得到的界面中鍵入“y”表示發(fā)送密碼并登錄,如圖所示。
最后得到如圖所示。
圖2-47就是遠(yuǎn)程主機(jī)為Telnet終端用戶打開的Shell,在該Shell中輸入的命令將會(huì)直接在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行。
比如,鍵入“net user”命令來查看遠(yuǎn)程主機(jī)上的用戶列表,如圖所示。
(2)方法二
該方法使用工具NTLM.EXE來去除NTLM驗(yàn)證。首先與遠(yuǎn)程主機(jī)建立IPC$連接,然后將NTLM.EXE拷貝至遠(yuǎn)程主機(jī),最后通過at命令使遠(yuǎn)程計(jì)算機(jī)執(zhí)行NTLM.EXE,整個(gè)過程如圖所示。
計(jì)劃任務(wù)執(zhí)行NTLM.EXE后,便可鍵入“telnet 192.168.27.128”命令來登錄遠(yuǎn)程計(jì)算機(jī),如圖所示。
最后得到登錄界面,如圖所示。
在該登錄界面中鍵入用戶名和密碼,如果用戶名和密碼正確,便會(huì)登錄到遠(yuǎn)程計(jì)算 機(jī),得到遠(yuǎn)程計(jì)算機(jī)的Shell。
成功登錄后,得到如圖所示的登錄界面。
另外,還可以使用與opentelnet.exe相配套的程序resumetelnet.exe來恢復(fù)遠(yuǎn)程主機(jī)的NTLM驗(yàn)證,命令格式為“ResumeTelnet.exe \\\\server sername password”,如圖所示。
執(zhí)行后如圖所示。
根據(jù)圖的回顯可知,resumetelnet.exe關(guān)閉了目標(biāo)主機(jī)的Telnet服務(wù),恢復(fù)了NTLM驗(yàn)證。
從前面的介紹可以看出,即使計(jì)算機(jī)使用了NTLM驗(yàn)證,入侵者還是能夠輕松地去除NTLM驗(yàn)證來實(shí)現(xiàn)Telnet登錄。如果入侵者使用23號端口登錄,管理員便可以輕易地發(fā)現(xiàn)他們,但不幸的是,入侵者通常不會(huì)通過默認(rèn)的23號端口進(jìn)行Telnet連接。那么入侵者究竟如何修改Telnet端口,又如何修改Telnet服務(wù)來隱蔽行蹤呢?下面舉一些常見的例子來說明這一過程,并介紹一下完成這一過程所需要的工具。
è X-Scan:用來掃出存在NT弱口令的主機(jī)。
è opentelnet:用來去NTLM驗(yàn)證、開啟Telnet服務(wù)、修改Telnet服務(wù)端口。
è AProMan:用來查看進(jìn)程、殺死進(jìn)程。
è instsrv:用來給主機(jī)安裝服務(wù)。
(1)AProMan簡介
AproMan以命令行方式查看進(jìn)程、殺死進(jìn)程,不會(huì)被殺毒軟件查殺。舉個(gè)例子,如果入侵者發(fā)現(xiàn)目標(biāo)主機(jī)上運(yùn)行有殺毒軟件,會(huì)導(dǎo)致上傳的工具被殺毒軟件查殺,那么他們就會(huì)要在上傳工具前關(guān)閉殺毒防火墻。使用方法如下:
c:\\AProMan.exe -a 顯示所有進(jìn)程
c:\\AProMan.exe -p 顯示端口進(jìn)程關(guān)聯(lián)關(guān)系(需Administrator權(quán)限)
c:\\AProMan.exe -t [PID] 殺掉指定進(jìn)程號的進(jìn)程
c:\\AProMan.exe -f [FileName] 把進(jìn)程及模塊信息存入文件
(2)instsrv簡介
instsrv是一款用命令行就可以安裝、卸載服務(wù)的程序,可以自由指定服務(wù)名稱和服務(wù)所執(zhí)行的程序。instsrv的用法如下,更詳細(xì)的用法如圖2-61所示。
安裝服務(wù):instsrv <服務(wù)名稱> <執(zhí)行程序的位置>
卸載服務(wù):instsrv <服務(wù)名稱> REMOVE
還有另一款優(yōu)秀的遠(yuǎn)程服務(wù)管理工具SC。它屬于命令行工具,可以在本地對遠(yuǎn)程計(jì)算機(jī)上的服務(wù)進(jìn)行查詢、啟動(dòng)、停止和刪除。它的用法很簡單,這里不作介紹了。下面通過實(shí)例來介紹入侵者如何實(shí)現(xiàn)Telnet登錄并留下Telnet后門的過程。
步驟一:掃出有NT弱口令的主機(jī)。在X-Scan的“掃描模塊”中選中“NT-SERVER弱口令”,如圖所示。
然后在“掃描參數(shù)中”指定掃描范圍為“192.168.27.2到192.168.27.253”,如圖2所示。
等待一段時(shí)間后,得到掃描結(jié)果如圖所示。
步驟二:用opentelnet打開遠(yuǎn)程主機(jī)Telnet服務(wù)、修改目標(biāo)主機(jī)端口、去除NTLM驗(yàn)證。
無論遠(yuǎn)程主機(jī)是否開啟“Telnet服務(wù)”,入侵者都可以通過工具opentelnet來解決。比如,通過“opentelnet \\\\192.168.27.129 administrator "" 1 66”命令為IP地址為192.168. 27.129的主機(jī)去除NTLM認(rèn)證,開啟Telnet服務(wù),同時(shí)又把Telnet默認(rèn)的23號登錄端口改成66號端口。
步驟三:把所需文件(instsrv.exe、AProMan.exe)拷貝到遠(yuǎn)程主機(jī)。
首先建立IPC$,然后通過映射網(wǎng)絡(luò)硬盤的方法把所需文件拷貝、粘貼到遠(yuǎn)程計(jì)算機(jī)的c:\\winnt文件夾中,具體過程如圖所示。
拷貝成功后,如圖所示。
步驟四:Telnet登錄。
在MS-DOS中鍵入命令“telnet 192.168.27.129 66”來登錄遠(yuǎn)程主機(jī)192.168.27.129。
步驟五:殺死防火墻進(jìn)程。
如果入侵者需要把類似木馬的程序拷貝到遠(yuǎn)程主機(jī)并執(zhí)行,那么他們會(huì)事先關(guān)閉遠(yuǎn)程主機(jī)中的殺毒防火墻。雖然這里沒有拷貝類似木馬的程序到遠(yuǎn)程主機(jī),但還是要介紹一下這一過程。當(dāng)入侵者登錄成功后,他們會(huì)進(jìn)入到c:\\winnt目錄中使用AProMan程序。首先通過命令A(yù)ProMan –A查看所有進(jìn)程,然后找到殺毒防火墻進(jìn)程的PID,最后使用AProMan –t [PID]來殺掉殺毒防火墻。
步驟六:另外安裝更為隱蔽的Telnet服務(wù)。
為了事后仍然能登錄到該計(jì)算機(jī),入侵者在第一次登錄之后都會(huì)留下后門。這里來介紹一下入侵者如何通過安裝系統(tǒng)服務(wù)的方法來讓Telnet服務(wù)永遠(yuǎn)運(yùn)行。在安裝服務(wù)之前,有必要了解一下Windows操作系統(tǒng)是如何提供“Telnet服務(wù)”的。打開“計(jì)算機(jī)管理”,然后查看“Telnet服務(wù)”屬性,如圖示。
然后使用instsrv.exe建立一個(gè)名為“SYSHEALTH”的服務(wù),并把這個(gè)服務(wù)指向C:\\WINNT z\\SYSTEM32\\tlntsvr.exe,根據(jù)instsrv.exe的用法,鍵入命令“instsrv.exe SYSHEALTH C:\\WINNT\\SYSTEM32\\tlntsvr.exe”,如圖所示。
一個(gè)名為“SYSHEAHTH”的服務(wù)就這樣建立成功了。雖然從表面看上去該服務(wù)與遠(yuǎn)程連接不存在任何關(guān)系,但是實(shí)際上該服務(wù)是入侵者留下的Telnet后門服務(wù)。
通過“計(jì)算機(jī)管理”可以看到該服務(wù)已經(jīng)添加在遠(yuǎn)程計(jì)算機(jī)上。入侵者一般會(huì)把這個(gè)服務(wù)的啟動(dòng)類型設(shè)置成“自動(dòng)”,把原來的“Telnet服務(wù)”停止并禁用,如圖所示。
通過驗(yàn)證可知,雖然遠(yuǎn)程主機(jī)上的Telnet服務(wù)已經(jīng)被停止并禁用,但入侵者仍然能夠通過Telnet來控制遠(yuǎn)程主機(jī)。通過這些修改,即使管理員使用“netstat –n”命令來查看開放端口號也看不出66端口正在提供Telnet服務(wù)。
另外,這里順便介紹一下netstat –n命令。該命令用來查看本地機(jī)當(dāng)前連接情況,如圖所示。其中,“Proto”列為當(dāng)前連接的協(xié)議類型,如TCP協(xié)議和UDP協(xié)議。“Local Address”列為本地主機(jī)的IP地址,從圖可見,本地主機(jī)有兩個(gè)IP地址,分別為“192.168.0.2”和“192.168.27.1”。 “Foreign Address”列為遠(yuǎn)程主機(jī)IP地址。“State”列為當(dāng)前連接狀態(tài),其中包括ESTABLISHED(已經(jīng)建立),TIME_WAIT(等待), SYN_SENT(正在連接)等狀態(tài)。
常見問題與解答
1.問:雖然獲得遠(yuǎn)程主機(jī)的用戶名和密碼,但是使用opentelnet連接的時(shí)候失敗,如圖所示,為什么?
答:根據(jù)返回的錯(cuò)誤號“53”可知,目標(biāo)主機(jī)沒有啟動(dòng)Server服務(wù),或者沒有開放IPC$。
2.問:如何才能抵御Telnet入侵?
答:
保證賬號密碼的強(qiáng)壯性,防止被暴力破解。
禁用Telnet服務(wù)。
由于opentelnet是通過IPC$來實(shí)現(xiàn)的,所以關(guān)閉IPC$也可以防止一些情況的發(fā)生。
安裝網(wǎng)絡(luò)防火墻。