防范入侵網(wǎng)絡(luò)游戲服務(wù)器的方法
現(xiàn)在國內(nèi)很多高手都在入侵網(wǎng)絡(luò)游戲服務(wù)器了,不過也沒辦法,人總要生存吧!玩黑也要有飯吃,不然,還不餓死了!
入侵網(wǎng)絡(luò)游戲服務(wù)器沒什么技術(shù)性,只是想說明現(xiàn)狀
現(xiàn)在想弄錢的入侵者,似乎熱衷于入侵網(wǎng)絡(luò)游戲服務(wù)器,盜出游戲服務(wù)器程序或是數(shù)據(jù)庫。國內(nèi)的網(wǎng)絡(luò)游戲企業(yè),都應(yīng)該招受過此損失,有暴露出來的,有沒暴露出來的。但游戲企業(yè)對安全問題理解都十分片面,狹隘!
當(dāng)然,不只是網(wǎng)絡(luò)游戲企業(yè)。近一兩年來,入侵者樂此不疲,各種商業(yè)數(shù)據(jù)的偷盜在國內(nèi)幾乎快形成一種"圈內(nèi)產(chǎn)業(yè)"。不論是技術(shù)性還是行事組織性都與早年不可同日而語。需求與供應(yīng)在這里似乎有著完美結(jié)合。再看看各地公安網(wǎng)監(jiān)部門,媒體似乎每天都有報道關(guān)于某地公安抓獲某黑客的事件。但卻似乎沒有一起真正成熟的案件。抓到的都是小魚,大魚都在偷著樂。原因有沒發(fā)現(xiàn)沒報案的,也有網(wǎng)監(jiān)部門的技術(shù)問題。還有就是官僚主義,公安部門發(fā)布所謂的“戰(zhàn)果”也樂此不疲。
話不說遠(yuǎn)了,轉(zhuǎn)入正題。
一個好友在國內(nèi)某網(wǎng)絡(luò)游戲企業(yè)工作,讓我?guī)兔y試他們游戲服務(wù)器群的安全性。加上我這段時間閑得無聊,也就答應(yīng)了。
我先下載了游戲客戶端程序,得到到了幾個游戲服務(wù)器的地址。
游戲帳號在WEB網(wǎng)站上也可以注冊,看來游戲中央數(shù)據(jù)庫的調(diào)用WEB網(wǎng)站也可以。
先仔細(xì)的檢查了一下WEB網(wǎng)站,大部分是PHP+MYSQL的。代碼寫得還不錯,幾乎找不到什么突破口。再看看MYSQL,禁止遠(yuǎn)程連接。查看了其他游戲服務(wù)器,都是LINUX系統(tǒng),都只是開了OPENSSH和游戲服務(wù)器程序端口。只有WEB網(wǎng)站多個80,而又沒什么可利用的地方。
看上去安全做得不錯,但這是種幻象!
隨后仔細(xì)分析了下游戲客戶端程序,我打開SnifferPro以便記錄下客戶端程序和服務(wù)器的所有通信。發(fā)現(xiàn)客戶端程序有個自動更新功能,我Sniff到是通過FTP去下載更新文件的。但我掃描所有游戲服務(wù)器時沒發(fā)現(xiàn)這個FTP端口?。?888)。仔細(xì)看了一下,原來這個端口連接延時十分長。所以掃描器沒發(fā)現(xiàn)這個端口。
意外的從更新過程中,竟然Sniff到一個固定的更新程序的FTP帳戶。檢查了FTP服務(wù)器是ProFTPd,我沒直接用這個帳戶去溢出ProFtpd。因?yàn)檫@臺服務(wù)器開了SSH,我直接拿帳戶去登陸SSH,獲得一個權(quán)限極低的shell。
就像一塊布,一但撕開一丁點(diǎn)口子,只要稍一加力,整塊布都會隨之撕開!
在系統(tǒng)中尋覓了半天,終于尋找到一個有權(quán)限去寫的tmp目錄。查看了內(nèi)核版本,用kernel do_brk()的問題溢出提升權(quán)限獲得了rootshell,沒去裝rkt,因?yàn)橹皇菐兔y試.
檢查了系統(tǒng)的路由表,發(fā)現(xiàn)有一個內(nèi)網(wǎng),最后確認(rèn)是VPN,原來所有游戲服務(wù)器之間的連接是通過VPN,防火墻的信任檢查,都是通過內(nèi)網(wǎng)的IP地址。外網(wǎng)訪問這些服務(wù)器都只能看到22端口和游戲服務(wù)程序端口。
在這臺已控制的服務(wù)器上下載了一個nmap,掃描了其他服務(wù)器,發(fā)現(xiàn)其中一臺開了Samba,查看了一下版本,存在問題。溢出并獲得了rootshell。
到現(xiàn)在為止以控制兩臺服務(wù)器,我把兩臺服務(wù)器的shadow文件都弄回來,拿jonh跑了一遍,沒什么弱智密碼??磥砻艽a還設(shè)得挺好的。
逛尤了一會,在開了Samba的服務(wù)器上,發(fā)現(xiàn)了游戲服務(wù)器程序。并隨之在game.conf文件中發(fā)現(xiàn)了中央數(shù)據(jù)庫的地址和一個數(shù)據(jù)庫帳戶。登上去看了一下,數(shù)據(jù)庫太龐大,放棄了dump出來的念頭。
好象沒有必要去分析游戲服務(wù)器程序,找出vul,去exp,來撕開其他服務(wù)器
但從其中的一個名為"weihu"的table中,發(fā)現(xiàn)一個后臺管理帳戶和密碼,這個密碼大小寫互換加數(shù)字加符號。
我在web網(wǎng)站上找到一個后臺入口,并用在數(shù)據(jù)庫得到的帳戶登陸成功。發(fā)現(xiàn)后臺管理系統(tǒng)中有一個上傳的功能,而且沒檢查文件后綴名。存放文件目錄也是在web目錄之下。上傳了一個phpshell,執(zhí)行命令成功,隨后我又獲得提升權(quán)限為root的shell。 #p#page_title#e#
發(fā)現(xiàn)這臺機(jī)器上還有個root在上面工作,但正在專注用vi編輯一個文件。沒發(fā)現(xiàn)我。但我想到一個惡作劇。我給這臺web網(wǎng)站服務(wù)器裝了個能監(jiān)視tty輸入的sniff,隨后又skill了那個root,那個root被踢下去沒多久,又登陸上來。但我立馬就抓到了他的密碼。
我用這個抓到的密碼去登陸其他服務(wù)器的SSH,并也用root帳戶,都登陸成功。
感覺所有服務(wù)器的系統(tǒng)都應(yīng)該是直接拷的盤,因?yàn)橄到y(tǒng)版本和所安裝的程序和一些配置大都相同。
至此已經(jīng)控制游戲服務(wù)器群的所有服務(wù)器,其中還有一臺是SMS網(wǎng)關(guān)。
我們的游戲時間結(jié)束。只是因?yàn)橐粋€小問題,最后導(dǎo)致整個服務(wù)器群被控制,其實(shí)這在安全問題上,這是必然會發(fā)生的。安全無小事!
其實(shí)這家企業(yè)對安全也有投入,硬件防火墻,支持VPN的。但因?yàn)橐粋€程序自動更新的設(shè)計上的小失敗。導(dǎo)致一切都虛設(shè)。
隨后我把整個過程告訴了我那朋友,聽得他立馬向他們主管匯報了問題