滲透國(guó)內(nèi)某網(wǎng)絡(luò)游戲服務(wù)器群記實(shí)
時(shí)間:2008-12-07 14:08:00
來(lái)源:UltraLAB圖形工作站方案網(wǎng)站
人氣:3723
作者:admin
一個(gè)好友在國(guó)內(nèi)某網(wǎng)絡(luò)游戲企業(yè)工作,讓我?guī)兔y(cè)試他們游戲服務(wù)器群的安全性。加上我這段時(shí)間閑得無(wú)聊,也就答應(yīng)了。
我先下載了游戲客戶端程序,得到到了幾個(gè)游戲服務(wù)器的地址
游戲帳號(hào)在WEB網(wǎng)站上也可以注冊(cè),看來(lái)游戲中央數(shù)據(jù)庫(kù)的調(diào)用WEB網(wǎng)站也可以。
先仔細(xì)的檢查了一下WEB網(wǎng)站,大部分是PHP+MYSQL的。代碼寫得還不錯(cuò),幾乎找不到什么突破口。再看看MYSQL,禁止遠(yuǎn)程連接。查看了其他游戲服務(wù)器,都是LINUX系統(tǒng),都只是開(kāi)了OPENSSH和游戲服務(wù)器程序端口。只有WEB網(wǎng)站多個(gè)80,而又沒(méi)什么可利用的地方。
看上去安全做得不錯(cuò),但這是種幻象!
隨后仔細(xì)分析了下游戲客戶端程序,我打開(kāi)Sniffer Pro以便記錄下客戶端程序和服務(wù)器的所有通信 。發(fā)現(xiàn)客戶端程序有個(gè)自動(dòng)更新功能,我Sniff到是通過(guò)FTP去下載更新文件的。但我掃描所有游戲服務(wù)器時(shí)沒(méi)發(fā)現(xiàn)這個(gè)FTP端口?。?888)。仔細(xì)看了一下,原來(lái)這個(gè)端口連接延時(shí)十分長(zhǎng)。所以掃描器沒(méi)發(fā)現(xiàn)這個(gè)端口。
意外的從更新過(guò)程中,竟然Sniff到一個(gè)固定的更新程序的FTP帳戶。檢查了FTP服務(wù)器是ProFTPd,我沒(méi)直接用這個(gè)帳戶去溢出ProFtpd。因?yàn)檫@臺(tái)服務(wù)器開(kāi)了SSH,我直接拿帳戶去登陸SSH,獲得一個(gè)權(quán)限極低的shell。
就像一塊布,一但撕開(kāi)一丁點(diǎn)口子,只要稍一加力,整塊布都會(huì)隨之撕開(kāi)!
在系統(tǒng)中尋覓了半天,終于尋找到一個(gè)有權(quán)限去寫的tmp目錄。查看了內(nèi)核版本,用kernel do_brk()的問(wèn)題溢出提升權(quán)限獲得了rootshell,沒(méi)去裝rkt,因?yàn)橹皇菐兔y(cè)試.
檢查了系統(tǒng)的路由表,發(fā)現(xiàn)有一個(gè)內(nèi)網(wǎng),最后確認(rèn)是VPN,原來(lái)所有游戲服務(wù)器之間的連接是通過(guò)VPN,防火墻的信任檢查,都是通過(guò)內(nèi)網(wǎng)的IP地址。外網(wǎng)訪問(wèn)這些服務(wù)器都只能看到22端口和游戲服務(wù)程序端口。
在這臺(tái)已控制的服務(wù)器上下載了一個(gè)nmap,掃描了其他服務(wù)器,發(fā)現(xiàn)其中一臺(tái)開(kāi)了Samba,查看了一下版本,存在問(wèn)題。溢出并獲得了rootshell。
到現(xiàn)在為止以控制兩臺(tái)服務(wù)器,我把兩臺(tái)服務(wù)器的shadow文件都弄回來(lái),拿jonh跑了一遍,沒(méi)什么弱智密碼??磥?lái)密碼還設(shè)得挺好的。
逛尤了一會(huì),在開(kāi)了Samba的服務(wù)器上,發(fā)現(xiàn)了游戲服務(wù)器程序。并隨之在game.conf文件中發(fā)現(xiàn)了中央數(shù)據(jù)庫(kù)的地址和一個(gè)數(shù)據(jù)庫(kù)帳戶。登上去看了一下,數(shù)據(jù)庫(kù)太龐大,放棄了dump出來(lái)的念頭。
好象沒(méi)有必要去分析游戲服務(wù)器程序,找出vul,去exp,來(lái)撕開(kāi)其他服務(wù)器,但從其中的一個(gè)名為"weihu"的table中,發(fā)現(xiàn)一個(gè)后臺(tái)管理帳戶和密碼,這個(gè)密碼大小寫互換加數(shù)字加符號(hào)。
我在web網(wǎng)站上找到一個(gè)后臺(tái)入口,并用在數(shù)據(jù)庫(kù)得到的帳戶登陸成功。發(fā)現(xiàn)后臺(tái)管理系統(tǒng)中有一個(gè)上傳的功能,而且沒(méi)檢查文件后綴名。存放文件目錄也是在web目錄之下。上傳了一個(gè)phpshell,執(zhí)行命令成功,隨后我又獲得提升權(quán)限為root的shell。
發(fā)現(xiàn)這臺(tái)機(jī)器上還有個(gè)root在上面工作,但正在專注用vi編輯一個(gè)文件。沒(méi)發(fā)現(xiàn)我。但我想到一個(gè)惡作劇。我給這臺(tái)web網(wǎng)站服務(wù)器裝了個(gè)能監(jiān)視tty輸入的sniff,隨后又skill了那個(gè)root,那個(gè)root被踢下去沒(méi)多久,又登陸上來(lái)。但我立馬就抓到了他的密碼。
我用這個(gè)抓到的密碼去登陸其他服務(wù)器的SSH,并也用root帳戶,都登陸成功。
感覺(jué)所有服務(wù)器的系統(tǒng)都應(yīng)該是直接拷的盤,因?yàn)橄到y(tǒng)版本和所安裝的程序和一些配置大都相同。
至此已經(jīng)控制游戲服務(wù)器群的所有服務(wù)器,其中還有一臺(tái)是SMS網(wǎng)關(guān)。
我們的游戲時(shí)間結(jié)束。只是因?yàn)橐粋€(gè)小問(wèn)題,最后導(dǎo)致整個(gè)服務(wù)器群被控制,其實(shí)這在安全問(wèn)題上,這是必然會(huì)發(fā)生的。安全無(wú)小事!
其實(shí)這家企業(yè)對(duì)安全也有投入,硬件防火墻,支持VPN的。但因?yàn)橐粋€(gè)程序自動(dòng)更新的設(shè)計(jì)上的小失敗。導(dǎo)致一切都虛設(shè)。 #p#page_title#e#
隨后我把整個(gè)過(guò)程告訴了我那朋友,聽(tīng)得他立馬向他們主管匯報(bào)了問(wèn)題
我先下載了游戲客戶端程序,得到到了幾個(gè)游戲服務(wù)器的地址
游戲帳號(hào)在WEB網(wǎng)站上也可以注冊(cè),看來(lái)游戲中央數(shù)據(jù)庫(kù)的調(diào)用WEB網(wǎng)站也可以。
先仔細(xì)的檢查了一下WEB網(wǎng)站,大部分是PHP+MYSQL的。代碼寫得還不錯(cuò),幾乎找不到什么突破口。再看看MYSQL,禁止遠(yuǎn)程連接。查看了其他游戲服務(wù)器,都是LINUX系統(tǒng),都只是開(kāi)了OPENSSH和游戲服務(wù)器程序端口。只有WEB網(wǎng)站多個(gè)80,而又沒(méi)什么可利用的地方。
看上去安全做得不錯(cuò),但這是種幻象!
隨后仔細(xì)分析了下游戲客戶端程序,我打開(kāi)Sniffer
意外的從更新過(guò)程中,竟然Sniff到一個(gè)固定的更新程序的FTP帳戶。檢查了FTP服務(wù)器是ProFTPd,我沒(méi)直接用這個(gè)帳戶去溢出ProFtpd。因?yàn)檫@臺(tái)服務(wù)器開(kāi)了SSH,我直接拿帳戶去登陸SSH,獲得一個(gè)權(quán)限極低的shell。
就像一塊布,一但撕開(kāi)一丁點(diǎn)口子,只要稍一加力,整塊布都會(huì)隨之撕開(kāi)!
在系統(tǒng)中尋覓了半天,終于尋找到一個(gè)有權(quán)限去寫的tmp目錄。查看了內(nèi)核版本,用kernel do_brk()的問(wèn)題溢出提升權(quán)限獲得了rootshell,沒(méi)去裝rkt,因?yàn)橹皇菐兔y(cè)試.
檢查了系統(tǒng)的路由表,發(fā)現(xiàn)有一個(gè)內(nèi)網(wǎng),最后確認(rèn)是VPN,原來(lái)所有游戲服務(wù)器之間的連接是通過(guò)VPN,防火墻的信任檢查,都是通過(guò)內(nèi)網(wǎng)的IP地址。外網(wǎng)訪問(wèn)這些服務(wù)器都只能看到22端口和游戲服務(wù)程序端口。
在這臺(tái)已控制的服務(wù)器上下載了一個(gè)nmap,掃描了其他服務(wù)器,發(fā)現(xiàn)其中一臺(tái)開(kāi)了Samba,查看了一下版本,存在問(wèn)題。溢出并獲得了rootshell。
到現(xiàn)在為止以控制兩臺(tái)服務(wù)器,我把兩臺(tái)服務(wù)器的shadow文件都弄回來(lái),拿jonh跑了一遍,沒(méi)什么弱智密碼??磥?lái)密碼還設(shè)得挺好的。
逛尤了一會(huì),在開(kāi)了Samba的服務(wù)器上,發(fā)現(xiàn)了游戲服務(wù)器程序。并隨之在game.conf文件中發(fā)現(xiàn)了中央數(shù)據(jù)庫(kù)的地址和一個(gè)數(shù)據(jù)庫(kù)帳戶。登上去看了一下,數(shù)據(jù)庫(kù)太龐大,放棄了dump出來(lái)的念頭。
好象沒(méi)有必要去分析游戲服務(wù)器程序,找出vul,去exp,來(lái)撕開(kāi)其他服務(wù)器,但從其中的一個(gè)名為"weihu"的table中,發(fā)現(xiàn)一個(gè)后臺(tái)管理帳戶和密碼,這個(gè)密碼大小寫互換加數(shù)字加符號(hào)。
我在web網(wǎng)站上找到一個(gè)后臺(tái)入口,并用在數(shù)據(jù)庫(kù)得到的帳戶登陸成功。發(fā)現(xiàn)后臺(tái)管理系統(tǒng)中有一個(gè)上傳的功能,而且沒(méi)檢查文件后綴名。存放文件目錄也是在web目錄之下。上傳了一個(gè)phpshell,執(zhí)行命令成功,隨后我又獲得提升權(quán)限為root的shell。
發(fā)現(xiàn)這臺(tái)機(jī)器上還有個(gè)root在上面工作,但正在專注用vi編輯一個(gè)文件。沒(méi)發(fā)現(xiàn)我。但我想到一個(gè)惡作劇。我給這臺(tái)web網(wǎng)站服務(wù)器裝了個(gè)能監(jiān)視tty輸入的sniff,隨后又skill了那個(gè)root,那個(gè)root被踢下去沒(méi)多久,又登陸上來(lái)。但我立馬就抓到了他的密碼。
我用這個(gè)抓到的密碼去登陸其他服務(wù)器的SSH,并也用root帳戶,都登陸成功。
感覺(jué)所有服務(wù)器的系統(tǒng)都應(yīng)該是直接拷的盤,因?yàn)橄到y(tǒng)版本和所安裝的程序和一些配置大都相同。
至此已經(jīng)控制游戲服務(wù)器群的所有服務(wù)器,其中還有一臺(tái)是SMS網(wǎng)關(guān)。
我們的游戲時(shí)間結(jié)束。只是因?yàn)橐粋€(gè)小問(wèn)題,最后導(dǎo)致整個(gè)服務(wù)器群被控制,其實(shí)這在安全問(wèn)題上,這是必然會(huì)發(fā)生的。安全無(wú)小事!
其實(shí)這家企業(yè)對(duì)安全也有投入,硬件防火墻,支持VPN的。但因?yàn)橐粋€(gè)程序自動(dòng)更新的設(shè)計(jì)上的小失敗。導(dǎo)致一切都虛設(shè)。 #p#page_title#e#
隨后我把整個(gè)過(guò)程告訴了我那朋友,聽(tīng)得他立馬向他們主管匯報(bào)了問(wèn)題