yongz
发布于 2025-12-22 / 4 阅读
0

应急响应靶机训练 - Linux2

应急响应靶机训练 - Linux2

看监控的时候发现 Webshell 告警,领导让你上机检查,你可以救救安服仔吗!!。

请你找出以下内容作为通关条件:

  • 黑客的 IP 地址;

  • 黑客修改的管理员密码(明文);

  • 黑客留下的 WebShell 连接密码;

  • 黑客后续上传的木马文件名称;

  • 黑客遗留下的 3 个 flag;

该靶机有很多非预期解,做靶机是给自己做,请大家合理按照预期解进行探索。相关账户密码:

  • root/Inch@957821.

1 流程梳理

[!Note]

这里推荐使用 SSH 远程连接服务器,因为 Linux2 靶机没有 GUI 界面,操作不是很方便。

在 Linux 中最普遍的就是 SSH 登录了,可以使用 last 看看最近的用户登录情况:

image-20251222194300625

可以看到 192.168.20.1 在 2024-03-20 有个连接,看看登录失败的记录:

image-20251222194319114

翻一翻 secure 日志:

cat /var/log/secure | grep '192.168.20.1' 
image-20251223031338736

不够这点信息也不能确定是否是攻击者,查看 root 的历史命令:

[root@web-server ~]# history 
......
   90  cd .api/
   91  ls
   92  vim mpnotify.php 
   93  yum install vim
   94  ls
   95  vim  alinotify.php 
   96  cat /etc/shadow
   97  who
   98  w
   99  history
  100  useradd flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
  101  env
  102  $flag3 = [root@web-server .api]# useradd flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
  103  useradd: invalid user name 'flag3{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}'
  104  $flag3 = flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}
  105  vim /etc/profile
  106  source /etc/p
  107  source /etc/profile
  108  env
......

有一些剧透的部分我省略了,上述内容分析如下:

  • 有一个 .api 目录;

  • 编辑了两个文件:mpnotify.php、alinotify.php;

  • flag3:flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}

查找一下 .api 目录所在的位置:

[root@web-server /]# find / -name .api
/www/wwwroot/127.0.0.1/.api

在 alinotify.php 文件中发现了 flag2:

[root@web-server /]# cat /www/wwwroot/127.0.0.1/.api/alinotify.php | grep 'flag'
$flag2 = "flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}";

查看一下当前服务器的端口开放情况:

image-20251222194336261

可以简单识别一下 PID 对应的程序:

netstat -antlp | awk '{print $7}' | sort -n | uniq -c | tail -n 8 | awk '{print $2}' | awk -F / '{print $1}' | xargs -n 1 ps -o cmd -p
image-20251223033603457

可以看到有 FTP、MySQL、Nginx、BT、SSH,重点先放在 Nginx 看看,前往查看 Nginx 日志:

[root@web-server logs]# ls
error.log  nginx.pid

没日志,这么尴尬,80 和 888 端口,尝试访问一下:

image-20251223034508962
image-20251223033857966

俩都拒绝访问了,那就访问 BT 试试,先看看 BT 的 URL:

image-20251223034901007

由于不知道密码,这里重置一下密码:

image-20251223034937679

访问一下 BT:

image-20251223035016223
image-20251223035041173

在 BT 的网站配置里修改配置文件,添加上 IP 地址:

image-20251223035133672

现在就可以正常访问 80 的 Web 了(PhpMyAdmin 的 Nginx 是独立的):

image-20251223035157867

在 BT 面板里看看日志存放位置:

image-20251223035455205

现在查看一下网站的日志信息:

image-20251223035542237

日志文件不小,使用 GoAccess 分析一下:

yum install goaccess
LANG=zh_CN.UTF-8 goaccess /www/wwwlogs/127.0.0.1.log -o nginx_report.html --log-format=COMBINED
image-20251223035853357
image-20251223035932855

可以发现 192.168.20.1 访问频率最高,其中 /index.php?user-app-register/version2.php 被访问的次数最多,我也尝试访问一下:

image-20251223040056041
image-20251223040108134

一个是用户注册页面,一个直接访问不到。

直接再盘一盘日志:

192.168.20.1 - - [07/Mar/2024:12:07:05 +0800] "GET / HTTP/1.1" 200 1993 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"
......
192.168.20.1 - - [07/Mar/2024:12:07:15 +0800] "GET /index.php?content-master-blocks HTTP/1.1" 200 1922 "http://192.168.20.144/index.php?content-master-contents" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"
......

这里就很可疑,简单试了一下 /index.php?content-master-blocks 是后台登录成功后的页面,所以该页面应该存在弱口令了。

去翻一翻数据库内容,在 BT 里可以直接看到数据库账号密码:

image-20251223041026020

这里也可以直接打开 PhpMyAdmin,不过由于协议不同没法登录:

image-20251223041102177

有个更简单的方法,不用登录,直接在 BT 上备份下载即可:

image-20251223022727205

直接在备份文件看到了账号密码,那是什么加密呢?

直接使用 CMD5 梭哈:

image-20251223041411184
image-20251223041423986

寄,关键的没查到(看了眼 WP,Network@2020)。

有了密码后,就可以登后台了:

image-20251223041532355

接着翻日志,经过一条条的比对,整理如下:

192.168.20.1 - - [20/Mar/2024:07:59:46 +0800] "GET /index.php?content-master-blocks-modify&blockid=1&page= HTTP/1.1" 200 18933 "http://192.168.20.144/index.php?content-master-blocks" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"
......
192.168.20.1 - - [20/Mar/2024:08:24:11 +0800] "POST /index.php?user-app-register HTTP/1.1" 200 17611 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; de-de) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"
......
192.168.20.1 - - [20/Mar/2024:14:38:27 +0800] "GET /version2.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"

访问 /index.php?content-master-blocks-modify&blockid=1&page= 页面:

image-20251223042245088

大致就是攻击者在 /index.php?content-master-blocks-modify&blockid=1&page= 写入了 Shell,通过 /index.php?user-app-register 访问 Shell,然后应该上传了个 version2.php 文件。

在 /root 目录还有个数据包:

[root@web-server ~]# ls
anaconda-ks.cfg  wp  数据包1.pcapng

由于包有点大,这里使用 WireShark 打开,另存为 pcap 格式:

image-20251222200955224
image-20251222201024763

使用 NetworkMiner 打开:

image-20251222201117732

点击 Files 选项,看到了 flag:

image-20251223042946603

接着一个包一个分析一下:

image-20251223043726896

在出现 version.php 前一个包中发现了冰蝎木马。

2 总结

Flag 如下:

  • 黑客的 IP 地址:192.168.20.1

  • 黑客修改的管理员密码(明文):Network@2020

  • 黑客留下的 WebShell 连接密码:Network202

  • 黑客后续上传的木马文件名称:version2.php

  • 黑客遗留下的 3 个 flag:

    • flag1{Network@_2020_Hack}

    • flag{bL5Frin6JVwVw7tJBdqXlHCMVpAenXI9In9}

    • flag{5LourqoFt5d2zyOVUoVPJbOmeVmoKgcy6OZ}