渗透国内某网络游戏服务器群记实
没什么技术性,只是想说明现状现在想弄钱的入侵者,似乎热衷于入侵网络游戏服务器,盗出游戏服务器程序或是数据库。国内的网络游戏企业,都应该招受过此损失,有暴露出来的,有没暴露出来的。但游戏企业对安全问题理解都十分片面,狭隘!
当然,不只是网络游戏企业。近一两年来,入侵者乐此不疲,各种商业数据的偷盗在国内几乎快形成一种"圈内产业"。不论是技术性还是行事组织性都与早年不可同日而语。需求与供应在这里似乎有着完美结合。再看看各地公安网监部门,媒体似乎每天都有报道关于某地公安抓获某黑客的事件。但却似乎没有一起真正成熟的案件。抓到的都是小鱼,大鱼都在偷着乐。原因有没发现没报案的,也有网监部门的技术问题。还有就是官僚主义,公安部门发布所谓的“战果”也乐此不疲。
话不说远了,转入正题。
一个好友在国内某网络游戏企业工作,让我帮忙测试他们游戏服务器群的安全性。加上我这段时间闲得无聊,也就答应了。
我先下载了游戏客户端程序,得到到了几个游戏服务器的地址。
游戏帐号在WEB网站上也可以注册,看来游戏中央数据库的调用WEB网站也可以。
先仔细的检查了一下WEB网站,大部分是PHP+MYSQL的。代码写得还不错,几乎找不到什么突破口。再看看MYSQL,禁止远程连接。查看了其他游戏服务器,都是LINUX系统,都只是开了OPENSSH和游戏服务器程序端口。只有WEB网站多个80,而又没什么可利用的地方。
看上去安全做得不错,但这是种幻象!
随后仔细分析了下游戏客户端程序,我打开Sniffer Pro以便记录下客户端程序和服务器的所有通信。发现客户端程序有个自动更新功能,我Sniff到是通过FTP去下载更新文件的。但我扫描所有游戏服务器时没发现这个FTP端口啊(8888)。仔细看了一下,原来这个端口连接延时十分长。所以扫描器没发现这个端口。
意外的从更新过程中,竟然Sniff到一个固定的更新程序的FTP帐户。检查了FTP服务器是ProFTPd,我没直接用这个帐户去溢出ProFtpd。因为这台服务器开了SSH,我直接拿帐户去登陆SSH,获得一个权限极低的shell。
就像一块布,一但撕开一丁点口子,只要稍一加力,整块布都会随之撕开!
在系统中寻觅了半天,终于寻找到一个有权限去写的tmp目录。查看了内核版本,用kernel do_brk()的问题溢出提升权限获得了rootshell,没去装rkt,因为只是帮忙测试.
检查了系统的路由表,发现有一个内网,最后确认是VPN,原来所有游戏服务器之间的连接是通过VPN,防火墙的信任检查,都是通过内网的IP地址。外网访问这些服务器都只能看到22端口和游戏服务程序端口。
在这台已控制的服务器上下载了一个nmap,扫描了其他服务器,发现其中一台开了Samba,查看了一下版本,存在问题。溢出并获得了rootshell。
到现在为止以控制两台服务器,我把两台服务器的shadow文件都弄回来,拿jonh跑了一遍,没什么弱智密码。看来密码还设得挺好的。
逛尤了一会,在开了Samba的服务器上,发现了游戏服务器程序。并随之在game.conf文件中发现了中央数据库的地址和一个数据库帐户。登上去看了一下,数据库太庞大,放弃了dump出来的念头。
好象没有必要去分析游戏服务器程序,找出vul,去exp,来撕开其他服务器
但从其中的一个名为"weihu"的table中,发现一个后台管理帐户和密码,这个密码大小写互换加数字加符号。
我在web网站上找到一个后台入口,并用在数据库得到的帐户登陆成功。发现后台管理系统中有一个上传的功能,而且没检查文件后缀名。存放文件目录也是在web目录之下。上传了一个phpshell,执行命令成功,随后我又获得提升权限为root的shell。
发现这台机器上还有个root在上面工作,但正在专注用vi编辑一个文件。没发现我。但我想到一个恶作剧。我给这台web网站服务器装了个能监视tty输入的sniff,随后又skill了那个root,那个root被踢下去没多久,又登陆上来。但我立马就抓到了他的密码。
我用这个抓到的密码去登陆其他服务器的SSH,并也用root帐户,都登陆成功。
感觉所有服务器的系统都应该是直接拷的盘,因为系统版本和所安装的程序和一些配置大都相同。
至此已经控制游戏服务器群的所有服务器,其中还有一台是SMS网关。
我们的游戏时间结束。只是因为一个小问题,最后导致整个服务器群被控制,其实这在安全问题上,这是必然会发生的。安全无小事!
其实这家企业对安全也有投入,硬件防火墙,支持VPN的。但因为一个程序自动更新的设计上的小失败。导致一切都虚设。
随后我把整个过程告诉了我那朋友,听得他立马向他们主管汇报了问题。
如有其他游戏企业被入侵,雷同文章所说,那纯属巧合,本人概不负责! 晕!!看这样的文章更像是在听故事,一点实质性的内容都没有。
不如去水区。 如果你能看懂这篇文章的话会有不小收益的。有没有故事我根本不关心也没注意 -----------------------------------------------------------------------------------------------------------------
在系统中寻觅了半天,终于寻找到一个有权限去写的tmp目录。查看了内核版本,用kernel do_brk()的问题溢出提升权限获得了rootshell,没去装rkt,因为只是帮忙测试.
--------------------------------------------------------------------------------------------------------------------
关键的一笔带过,没有说出shellcode,像我这样的菜鸟更需要的是贴出来shellcode,并且要说明该
shellcode在那个内核版本下测试通过。
--------------------------------------------
在这台已控制的服务器上下载了一个nmap,扫描了其他服务器,发现其中一台开了Samba,查看了一下版本,存在问题。溢出并获得了rootshell。
------------------------------------------------
更晕!!直接一句“溢出并获得了rootshell”敷衍了事,相信没有人能看懂这位
大牛是怎么得到root权限的。
-------------------------------------------
其实这家企业对安全也有投入,硬件防火墙,支持VPN的。但因为一个程序自动更新的设计上的小失败。导致一切都虚设。
------------------------------------------------------
一个程序自动更新的设计上的小失败??什么失败??没有说明,解决办法呢?? 其实最关键的就是一句话:"随后仔细分析了下游戏客户端程序,我打开Sniffer Pro以便记录下客户端程序和服务器的所有通信。发现客户端程序有个自动更新功能,我Sniff到是通过FTP去下载更新文件的"
很多安全人员只是对网站服务器扫描扫描,谁会想到去分析这个网站提供下载的客户端软件?这是一个很大的盲点。而攻击者就是从这一点开始突破的,剩下的,就是大家都知道的攻击技术了,没什么值得太关心的。
这是一个很经典的由一点到整个面的渗透攻击,对方安装了ids、防火墙、安全配置,但就是因为一个没有想到的安全问题(这就是盲点)被黑客想到了,一点被攻破,整个安全体系开始瓦解、倒塌。 :)
sorry,小弟还真是没看到这一点。 -----------------------------------------------------------------------------------------------------------------
在系统中寻觅了半天,终于寻找到一个有权限去写的tmp目录。查看了内核版本,用kernel do_brk()的问题溢出提升权限获得了rootshell,没去装rkt,因为只是帮忙测试.
--------------------------------------------------------------------------------------------------------------------
关键的一笔带过,没有说出shellcode,像我这样的菜鸟更需要的是贴出来shellcode,并且要说明该
shellcode在那个内核版本下测试通过。
需要shellcode吗? 如果你理解了do_brk漏洞问题就不会问shellcode了,况且shellcode非常简单.况且来说,应用层的shellcode根本不需要在不同linux内核上测试
--------------------------------------------
在这台已控制的服务器上下载了一个nmap,扫描了其他服务器,发现其中一台开了Samba,查看了一下版本,存在问题。溢出并获得了rootshell。
------------------------------------------------
更晕!!直接一句“溢出并获得了rootshell”敷衍了事,相信没有人能看懂这位
大牛是怎么得到root权限的。
跟踪漏洞的人都知道这个samba是什么漏洞.
-------------------------------------------
其实这家企业对安全也有投入,硬件防火墙,支持VPN的。但因为一个程序自动更新的设计上的小失败。导致一切都虚设。
------------------------------------------------------
一个程序自动更新的设计上的小失败??什么失败??没有说明,解决办法呢??
这里当然不能说,如果说了,岂非世界大乱? 这里只是渗透,没必要提出解决办法.
我觉得你问的问题和这个文章没一点关系. 本末倒置, 不适合你看的.
--------------------------------------------------------------------------------
痛苦是自己想出来的! bkbll也来啦,哈哈,欢迎兄弟来。 [quote][b]下面是引用bkbll于2004-09-3 2:59 PM发表的 :[/b]
-----------------------------------------------------------------------------------------------------------------
在系统中寻觅了半天,终于寻找到一个有权限去写的tmp目录。查看了内核版本,用kernel do_brk()的问题溢出提升权限获得了rootshell,没去装rkt,因为只是帮忙测试.
--------------------------------------------------------------------------------------------------------------------
关键的一笔带过,没有说出shellcode,像我这样的菜鸟更需要的是贴出来shellcode,并且要说明该
shellcode在那个内核版本下测试通过。
.......[/quote]
:(
看来我只适合灌水!!! 为了网络安全,为了普渡众生,请从技术层面上多多指点 这篇文章确实不是一般的好,看过之后对整个思路有了一个提高。上面那位小朋友的问题提得好,不过文章里一开始就已经给出答案了,你没有认真读懂。
————————————————————————————
其实这家企业对安全也有投入,硬件防火墙,支持VPN的。但因为一个程序自动更新的设计上的小失败。导致一切都虚设。
------------------------------------------------------
一个程序自动更新的设计上的小失败??什么失败??没有说明,解决办法呢??
看看这里:
————————————————————————————————————————
意外的从更新过程中,竟然Sniff到一个固定的更新程序的FTP帐户。检查了FTP服务器是ProFTPd,我没直接用这个帐户去溢出ProFtpd。因为这台服务器开了SSH,我直接拿帐户去登陆SSH,获得一个权限极低的shell。
就像一块布,一但撕开一丁点口子,只要稍一加力,整块布都会随之撕开!
————————————————————————————————————————
这就是那个程序设计思路上的失败,不应该在明文传输的环境里使用固定的ftp帐号密码。遇上高手,一个sniff就可以抓到了,然后的事就是顺理成章的发展,不客气地说都是体力活。
这家公司的安全人员其实挺厉害的,这个系统环境设置和安全防护都不错,不过程序员的代码肯定没有检查过,这也是国内公司的通病,开发人员安全意识太差。 !! 没想到偶的一点浅薄乱侃的文章居然转到天融信安全论坛来了
其实这篇真没什么技术性,我朋友都说我像再记流水帐 垃圾,用别人的帖子给自己贴金 看的满头雾水,哎,要好好学习了 其实就是一个木桶原理,安全性的高低是以最低的一块扳子决定的 到底谁干的? 我比较同意3楼的说法。
作者每次写到技术问题的时候 都是一带而过。我等菜鸟只好慢慢琢磨了。 [quote][b]下面是引用雨夜醉消愁于2005-01-14 00:23发表的:[/b]
我比较同意3楼的说法。
作者每次写到技术问题的时候 都是一带而过。我等菜鸟只好慢慢琢磨了。[/quote]
我不同意!当我看完此篇文章的时候我对文中提到的思想眼前一亮,而很多人觉得此篇文章没什么意思的原因在于自己没有明白文中的思想。 这篇文章对于入侵技术处于初级阶段的人或者只是有一点了解的人来说,确实觉得想看一篇故事。但对于一个具有一定经验的入侵高手来说,却是一种新的启迪。呵呵,难道这就是所谓的内行看门道,外行看热闹。
页:
[1]
2