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