圖解:VNC Server攻擊實戰(zhàn)案例
原創(chuàng)【51CTO.com 獨家特稿】VNC目前已被廣泛應(yīng)用的一個遠程控制程序,很多攻擊者對VNC的攻擊技術(shù)研究熱情是高漲的,絲毫不亞于對Windows的遠程桌面(3389)、PcAnywhere的攻擊研究。從最開始爆發(fā)出來的VNC的低版本密碼驗證繞過漏洞,到各種版本的VNC密碼破解技術(shù)的公布,再到針對各種版本VNC的專門的攻擊程序出現(xiàn),VNC的攻擊也在網(wǎng)絡(luò)中不斷的進行著。下文將重點介紹針對各版本的VNC的攻擊技術(shù),以案例模擬的方式進行詳細的操作和原理講解,同時對不同版本的不同情況會有特別的提示。
首先我們看看VNC運行的工作流程:
(1) VNC客戶端通過瀏覽器或VNC Viewer連接至VNC Server;
(2) VNC Server傳送一個對話窗口至客戶端,要求輸入連接密碼(可能為空),以及存取的VNC Server顯示裝置;
(3) 在客戶端輸入連接密碼后,VNC Server驗證客戶端是否具有存取權(quán)限;
(4) 若是客戶端通過VNC Server的驗證,客戶端即要求VNC Server顯示桌面環(huán)境;
(5) 被控端將畫面顯示控制權(quán)交由VNC Server負(fù)責(zé);
(6) VNC Server將把被控端的桌面環(huán)境利用VNC通信協(xié)議送至客戶端,并且允許客戶端控制VNC Server的桌面環(huán)境及輸入裝置。
一、 VNC攻擊工具:vncpwdump
國內(nèi)很少沒有針對VNC攻擊技術(shù)的專門研究團隊,大部分的VNC攻擊技術(shù)和相關(guān)工具都是國外攻擊者推出的,所以如果要深入研究VNC的攻防技術(shù),在國內(nèi)比較難找到新的技術(shù)資料,如這里將要介紹的Vncpwdump。Vncpwdump是一個很早以前就已經(jīng)推出的VNC綜合性的攻擊和破解工具,但是國內(nèi)能下載到的基本都是vncpwdump 0.0.1版,也就是最開始公布出來的那個版本,已經(jīng)古老得基本沒有任何作用了。最新的可以針對各版本VNC進行密碼破解和攻擊的vncpwdump是1.0.6版,具有非常強悍的各項功能。Vncpwdump是個開源的程序,不但可以下載到它,還可以下載到它的源代碼進行修改和增加、刪除相關(guān)功能,詳細的程序執(zhí)行界面如圖1所示。
圖1
Vncpwdump的主要功能是獲取VNC的密碼,它提供多種獲取方式,比如:從NTUSER.DAT文件中獲取;從命令行輸入獲取;注入VNC線程獲??;注冊表中獲取等方式。#p#
二、 使用vncpwdump進行攻擊模擬
Vncpwdump的功能很多,從它的使用界面來看,有如下的功能參數(shù):
下面對各參數(shù)的具體含義和使用方式做簡單演示。
首先是"-c"和"-s"參數(shù),這兩個參數(shù)的意義是從注冊表的"HKEY_CURRENT USER"或"HKEY_LOCAL MACHINE"下讀取VNC的密碼,因為版本不同的關(guān)系,上述兩個注冊表鍵值中的其中一個會存在VNC的密碼。其中"HKCU "是簡寫,代表注冊表中得"HKEY_CURRENT_USER"位置。當(dāng)我們打開注冊表,找到相應(yīng)位置得時候密碼內(nèi)容就逐步浮出水面,可以找到里面有一行如下顯示:
- Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4]
- "Password"=hex:49,40,15,f9,a3,5e,8b,22
- "SecurityTypes"="VncAuth"
- "ReverseSecurityTypes"="None"
- "QueryConnect"=dword:00000000
- "QueryOnlyIfLoggedOn"=dword:00000000
- "PortNumber"=dword:0000170c
- "IdleTimeout"=dword:00000e10
- "HTTPPortNumber"=dword:000016a8
- "LocalHost"=dword:00000000
- "Hosts"="+,"
- "AcceptKeyEvents"=dword:00000001
- "AcceptPointerEvents"=dword:00000001
- "AcceptCutText"=dword:00000001
- "SendCutText"=dword:00000001
- "DisableLocalInputs"=dword:00000000
- "DisconnectClients"=dword:00000001
- "AlwaysShared"=dword:00000000
- "NeverShared"=dword:00000000
- "DisconnectAction"="None"
- "RemoveWallpaper"=dword:00000000
- "RemovePattern"=dword:00000000
- "DisableEffects"=dword:00000000
- "UpdateMethod"=dword:00000001
- "PollConsoleWindows"=dword:00000001
- "UseCaptureBlt"=dword:00000001
- "UseHooks"=dword:00000001
- "Protocol3.3"=dword:00000000
這password后得值就是加密的密碼,雖然我們不能直接讀懂他,我們可以使用多種方法來破解,比如VNCX4和我們下面要介紹的vncpwdump均可,如果你是高手那么用windows自帶的計算器也能搞定。
以VNC 4為例,使用"-s"參數(shù)可以直接得到相關(guān)的密碼,如圖2所示。
圖2
可以看到上面設(shè)置的密碼直接被讀出:"123456"。
"-r"參數(shù)后的說明是"decrypts password in <file>",也就是從文件中讀出密碼,通常情況下,攻擊者會嘗試使用"NTUSER.DAT"文件讀取密碼。"NTUSER.DAT"和"NTUSER.ini"都屬于系統(tǒng)的用戶配置文件,里面存儲了一些用戶的相關(guān)配置信息,有一些版本的VNC會將密碼存儲于這個文件之中,不過大家不必?fù)?dān)心,一般情況下這個文件無法讀出密碼。
"-d"參數(shù)的說明是"dumps the password by injecting into running process",意思是以注入進程的方式讀取密碼。在實際的網(wǎng)絡(luò)中,考慮到服務(wù)器的穩(wěn)定性,一般不適用這個參數(shù)進行攻擊。
"-k"參數(shù)和"-e"參數(shù)是相對應(yīng)的配套參數(shù),"-k"的作用是在獲得系統(tǒng)中存在的加密VNC密碼以后解密,"-e"參數(shù)的作用是將沒有經(jīng)過VNC加密的密碼進行加密。
先看看"-e"是什么效果。
從上圖中可以看到,使用命令后得到加密后的KEY是"494015F9A35E8B22",實際上,這個key如果是VNC的鏈接密碼的話,VNC會將這個密碼存放在注冊表中的一個固定的地方,每當(dāng)用戶連接的時候都會驗證,如果管理員修改密碼,這個值也跟著改變。再看看使用"-k"參數(shù)進行解密的命令:
可以看到密碼"123456"已經(jīng)被破解出來。
"-s"和"-c"參數(shù)也是成對使用的,功能類似。"-s"參數(shù)用于直接修改VNCserver的鏈接密碼,"-c"參數(shù)用戶修改當(dāng)前用戶的密碼。
舉例來說,如果使用"-s"參數(shù)將vnc的鏈接密碼改成"123",則使用如下命令
這里需要注意的是,vncpwdump的各個參數(shù)都是區(qū)分大小寫的,大小寫不同作用也不同,大家在實際使用過程中一定要注意區(qū)分。在實際的網(wǎng)絡(luò)攻擊中,當(dāng)攻擊者無法獲得VNC密碼時候,就可以使用"-s"參數(shù)來強制改變VNC密碼,但這樣做也會被管理員發(fā)現(xiàn)。#p#
三、針對VNC的掃描
在這里我們使用的是vncscan工具。運行截圖如下:
從上圖可知,這個程序主要包含3個部分,分別是"target"、"scantype"、"option",其中"target"用于定義掃描的IP地址范圍,"scantype"確定掃描的方式,"option"是附帶的其他參數(shù)。
舉例來說,要批量掃描內(nèi)部網(wǎng)絡(luò)中安裝了VNC的計算機,確定IP地址段為192.168.0.1-192.168.0.254,VNC默認(rèn)端口是5900,這樣需要構(gòu)造的命令如下:
其中有6個輸出參數(shù),分別如下:
"FOUND"?。骸 ”硎镜玫降慕Y(jié)果數(shù)據(jù);
"PORT": 掃描的端口數(shù);
"IP": 掃描的IP數(shù);
"STATUS": 完成進度
"THREADS": 線程;
"TOTAL/REMAINING":用時;
從結(jié)果中我們看出192.168.0.243開放了5900端口。在實際的攻擊過程中,攻擊者往往都會利用自己控制的肉雞進行大范圍的掃描,如果只通過在CMD下運行并查看結(jié)果,這樣比較繁瑣,所以這個掃描程序會在程序目錄生成一個TXT文件,里面有掃描結(jié)果的記錄。例如:
上圖中實際IP地址已處理,VNC_bypauth.txt文件會記錄開放5900端口的IP地址及VNC狀態(tài)。其中只有"VULNERABLE"是存在直接可以利用的漏洞,可以被攻擊者利用的,而"patched,banned"這兩種狀態(tài)沒有用。
這樣一個典型的VNC的漏洞攻擊模擬就完成了。
【51CTO.com獨家特稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載!合作媒體轉(zhuǎn)載請注明原文出處及出處!】