应急响应靶机训练 - 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 日志:

1
cat /var/log/secure | grep '192.168.20.1' 

image-20251223031338736

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[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 目录所在的位置:

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

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

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

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

image-20251222194336261

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

1
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 日志:

1
2
[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 分析一下:

1
2
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

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

直接再盘一盘日志:

1
2
3
4
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

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

1
2
3
4
5
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 目录还有个数据包:

1
2
[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}