当前位置: 首页 > news >正文

入侵网游服务器手记

现在想弄钱的入侵者,似乎热衷于入侵网络游戏服务器,盗出游戏服务器程序或是数据库。国内的网络游戏企业,都应该招受过此损失,有暴露出来的,有没暴露出来的。但游戏企业对安全问题理解都十分片面,狭隘!

 当然,不只是网络游戏企业。近一两年来,入侵者乐此不疲,各种商业数据的偷盗在国内几乎快形成一种"圈内产业"。不论是技术性还是行事组织性都与早年不可同日而语。需求与供应在这里似乎有着完美结合。再看看各地公安网监部门,媒体似乎每天都有报道关于某地公安抓获某黑客的事件。但却似乎没有一起真正成熟的案件。抓到的都是小鱼,大鱼都在偷着乐。原因有没发现没报案的,也有网监部门的技术问题。还有就是官僚主义,公安部门发布所谓的“战果”也乐此不疲。

 话不说远了,转入正题。

 一个好友在国内某网络游戏企业工作,让我帮忙测试他们游戏服务器群的安全性。加上我这段时间闲得无聊,也就答应了。

 我先下载了游戏客户端程序,得到到了几个游戏服务器的地址。
 游戏帐号在WEB网站上也可以注册,看来游戏中央数据库的调用WEB网站也可以。
 先仔细的检查了一下WEB网站,大部分是PHP+MYSQL的。代码写得还不错,几乎找不到什么突破口。再看看MYSQL,禁止远程连接。查看了其他游戏服务器,都是LINUX系统,都只是开了OPENSSH和游戏服务器程序端口。只有WEB网站多个80,而又没什么可利用的地方。

  看上去安全做得不错,但这是种幻象!

  随后仔细分析了下游戏客户端程序,我打开SnifferPro以便记录下客户端程序和服务器的所有通信。发现客户端程序有个自动更新功能,我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的。但因为一个程序自动更新的设计上的小失败。导致一切都虚设。

 随后我把整个过程告诉了我那朋友,听得他立马向他们主管汇报了问题。

相关文章:

  • win7 32bit下安装mysql server
  • 有时候就是看不进论文-jQuery动画特效篇MySQL
  • Java之父回应苹果停止更新Java
  • CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突
  • 当项目经理是一种修炼
  • git重写历史记录
  • Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
  • 在京高校大学生“准”程序员召集令(新发布上课时间及地点)
  •  D - 粉碎叛乱F - 其他起义
  • Ruby的GC机制源码分析(4)
  • 【随笔】android开发的学习路线
  • 第十章学习笔记总结
  • S3C2440-AD应用
  • 【JavaScript知识点七】 javascript 字符串函数
  • Molehill 3D APIs - GPU硬件加速的Flash 3D API
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 30秒的PHP代码片段(1)数组 - Array
  • gf框架之分页模块(五) - 自定义分页
  • MySQL数据库运维之数据恢复
  • text-decoration与color属性
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue脚手架vue-cli
  • WebSocket使用
  • Web设计流程优化:网页效果图设计新思路
  • 笨办法学C 练习34:动态数组
  • 给初学者:JavaScript 中数组操作注意点
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 手机端车牌号码键盘的vue组件
  • 由插件封装引出的一丢丢思考
  • 最近的计划
  • Semaphore
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #《AI中文版》V3 第 1 章 概述
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (zhuan) 一些RL的文献(及笔记)
  • (汇总)os模块以及shutil模块对文件的操作
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (转)创业家杂志:UCWEB天使第一步
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .md即markdown文件的基本常用编写语法
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net core控制台应用程序初识
  • .NET 服务 ServiceController
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • /run/containerd/containerd.sock connect: connection refused