本帖最后由 乐清小俊杰 于 2016-2-29 20:03 编辑
#看了版规标题已改 原标题:如何优雅的搭讪mysql然后推倒它
0x00 背景
通过wooyun上的一个漏洞 加上apache解析漏洞getshell 就不赘述了
通过大马搜索“mysql_connect” 逆向追踪找到账号密码 root:空
常规无法连接 报错 /tmp/mysql.sock 不存在
0x01 连接mysql
查看原因 ps -aux | grep mysqld
发现修改了端口和sock文件位置
姿势一 mysql -e
首先要反弹一个shell 目标机器没有nc 直接bash反弹
mysql -uroot -e"show databases" --port 3301 --socket=/opt/mysql/mysql.sock
-e 后面是sql命令 --socket指定文件位置
姿势2 导入sql文件
他喵的上面的都太麻烦了 还有个原因 等下讲
姿势3 127.0.0.1:/path/sock
细心的同学可能已经发现了 mysql –e 和mysql <1.sql 的结果是一样的
但是php执行结果不一样 然而我查了information_schema.schemata里面仍然是这个结果 求大牛指点
至于为啥会发现… 因为我在mysql –e下找不到我要的数据 而它真实存在!
在php下也找不到另一个数据… 然后在mysql –e下找到了
继续 查表
0x02超多表名 如何快速找到想要的
姿势1 搜索information_schema.columns
[SQL] 纯文本查看 复制代码 select table_name,table_schema from information_schema.columns where column_name like '%pass%'
类似关键词还有name pwd 之类的 自选
姿势2 根据经验 找敏感的表 然后desc table_name 验证
可能有同学说 丫的我一眼就看出在user_basic里 搞那么麻烦 然而用户名不在里面(在其他表) 管理员的信息也不在里面(管理资料只能在mysql –e中找到)
怎么找用户名? 请参考姿势1
至于连接俩个表 union select 或者join 自选
0x03 hash值怎么解
参考上面的生成了123456的值 4QrcOUm6Wau+VuBX8g+IPg==用过php的同学喵一眼就知道其实这是base64_encode(md5('123456',true))
姿势1 直接丢 http://www.pdtools.net/tools/md5.jsp
不收费 有些cmd5收费的也能解
姿势2 还原成正常的md5 然后彩虹表
e10adc3949ba59abbe56e057f20f883e (老司机说 我口算都知道是123456)
===================== 我是分割线 ======================
其实已经结束了后面的只是记录
0x04 关于提权
进mysql只是为了找管理的密码还有普通用户中与本机用户同名的密码 猜解ssh密码(都没有成功)
内核版本无exp
计划任务无写入权限
请大牛指导其他提权姿势
0x05 内网探测
tunna,reduh 无法转发(秒断)
phproxy 传递错误
编译的linuxlcx 连接经常会断开
phpsocks 无法转发
最后在自己工具库的角落了找到了另一个reduh发现可以用 =.=
于是欢乐的开始撸某内网ip 还做死的用御剑扫了下... 结果网页变成了
这难道是内网防火墙? 我在shell下用curl 和wget 显示的都还是之前的网页 转发出来就不行
以为是暂时的屏蔽 然而 过了2天还是不行
最后求指点一波这种情况下浏览内网网站姿势(可以用file_get_contents 但是这样无法加载图片和css)
|