记一次实战渗透

admin 2022年9月16日08:36:07评论47 views字数 2147阅读7分9秒阅读模式

一次艰难的旅程,从一个登录页面到后来getshell

记一次实战渗透


探索一


打开网站的页面长着这样的:这个地方万能密码、sql注入、用户名爆破之类的试了下没啥进展,就在一筹莫展的时候!我家"宝贝"突然想起来,以前在内网漫游的时候不是搞定了这一套系统嘛,于是嘛.......(代码审计咯)

 

记一次实战渗透

 

经过漫长的审计与分析,得出几个结论:

删除了大部分的功能原来getshell的位置现在使用不了,被删除了反正除了看看几个目录基本没啥用了

 

要是有一个未授权页面多好呀~至少不用在登录页面蹭蹭啦,于是思路就转战到源码审计找一个未授权的页面好进一步利用

审计了很久,发现都有验证,如下图所示:

记一次实战渗透


    通过session判断是否处于登录状态,这种是没法伪造绕过的,没有办法呀!


突然有个想法,访问已经有的一些文件,例如用户管理页面、ip管理等页面看看跳转方式是否也是session值判断呢?也是死马当活马医了.....

记一次实战渗透

 

惊喜!竟然可以直接访问到,虽然也有跳转,但是通过js跳转的,直接返回报删除就不跳转了,直接访问到页面,不是session判断的!。

 

通过查看内网源码分析,找到用户管理页面为Users.aspx,相同的方式,删除返回包中的js跳转成功访问到,然后添加一个“测试账号”,成功进入后台:

 

记一次实战渗透


后续就是兵分两路,一路SQL注入去拿数据库的数据,顺便看看能不能拿到个os-shell一发入魂,另一路就常规文件上传看看能不能webshell来一个,测试发现,原来存在的上传漏洞在这个系统不存在,并且站点编辑功能有点问题,一修改文件就会报错,那只能sql注入看看能不能搞点事儿了。

 

注入发现是sqlserver(老八狂喜!!!)

记一次实战渗透

 

直接os-shell,报错?!不应该呀,xp_cmdshell开了不是分分钟getshell的事儿嘛,结果通过手工注入发现如下问题:

Timeout超时?!经过查阅资料发现,是因为数据库并没有设置默认的超时时间,那么一旦超时的话就会先于xp_cmdshell报错,解决这个问题只能是修改配置文件设置一个长的超时时间来屏蔽错误

 

记一次实战渗透



咋整?前前后后,左左右右,不断的尝试文件上传,sql注入读写数据。最终确定一条攻击线路:添加数据库用户,通过数据库直接操作写注册表的方式来看看会不会有什么转机

 

添加用户之后,使用navicat连上去之后,先是尝试直接使用下面命令写一个shift后门:没有权限!!!遂放弃....

execxp_regwrite'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftWindowsNTCurrentVersionImageFile ExecutionOptionssethc.exe','debugger','REG_SZ','c:\windows\system32\taskmgr.exe'

 

而后:尝试注册表写开机自启,同样没有权限,遂放弃......这个时候绝望了,基本没啥好的办法了吧!

 

脑子一热!我再试最后一下,还不行就去TMD的吧!想着xp_cmdshell再试一下,发现返回结果不一样了,原来burp直接手工的时候是现实Timeout超时,现在返回的报错值为5,众所周知,5是没有权限的报错,这个时候 明白了些内幕:

 原来是注入拿到用户权限过低导致没法xp_cmdshell执行系统命令造成的。

 

山重水复疑无路,柳暗花明又一村:

 

使用sqlserver的另外一个组件可以直接执行:sp_oacreate

他和xp_cmdshell的差异:

xp_cmdshell有回显、sp_oacreate没有回显


查看这个组件是否开启可以使用如下命令:

declare @shell int exec sp_oacreate'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'whoami'


如果关闭的话(大概率是关闭的,你懂啦~),可以使用命令开启:

    EXECsp_configure 'show advanced options'1;        RECONFIGURE WITH OVERRIDE;         EXEC sp_configure 'Ole Automation Procedures'1;          RECONFIGURE WITH OVERRIDE;

而后直接无回显执行命令就可以啦,可以用Dnslog打一下看看:

记一次实战渗透

 

最后远程下载powershell脚本反弹到我们的VPS上成功getshell,这个需要注意一下绕过powershell执行脚本的策略绕过。

 

总结:

不到最后一刻坚决不放弃sqlserver可用户执行命令组件可再总结总结思路还可以模型化,但是自己太懒了多想想低权限os-shell还可以有啥利用的姿势

疑问:为啥不直接日志或者目录写马(根据报错,已经有绝对路径了):

    这个问题是最早尝试的一个方法,但是有一个问题存在,就是这一台服务器的网站根目录是挂载的一个虚拟盘,不是本机的磁盘,我直接写文件到网站根目录的时候会报一个”设备未就绪“的错误,没法直接写,不然这个过程更加简单些

 



原文始发于微信公众号(增益安全):记一次实战渗透

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月16日08:36:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次实战渗透http://cn-sec.com/archives/784491.html

发表评论

匿名网友 填写信息