应急响应靶机训练 - Linux1

小王急匆匆地找到小张,小王说 “李哥,我 dev 服务器被黑了”,快救救我!!。请你找出以下内容作为通关条件:

  • 黑客的 IP 地址;
  • 黑客遗留下的 3 个 flag;

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

  • defend/defend

  • root/defend

1 流程梳理

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

1
2
3
4
5
6
7
8
9
10
11
12
[defend@localhost ~]$ last
defend pts/0 :0 Sun Dec 21 22:44 still logged in
defend :0 :0 Sun Dec 21 22:44 still logged in
reboot system boot 3.10.0-1160.el7. Sun Dec 21 22:44 - 22:44 (00:00)
defend pts/1 :0 Tue Mar 19 10:17 - crash (642+12:26)
defend pts/1 :0 Mon Mar 18 20:25 - 20:26 (00:01)
root pts/1 192.168.75.129 Mon Mar 18 20:23 - 20:25 (00:02)
defend pts/0 :0 Tue Mar 19 03:16 - crash (642+19:27)
defend :0 :0 Tue Mar 19 03:15 - crash (642+19:28)
reboot system boot 3.10.0-1160.el7. Tue Mar 19 03:14 - 22:44 (642+19:30)

wtmp begins Tue Mar 19 03:14:14 2024

根据上述输出内容,可以整理出如下表格:

用户名 终端 / 类型 来源地址 登录时间 退出时间 状态说明
defend pts/0 :0 2024-12-21 22:44 -(仍登录) still logged in
defend :0 :0 2024-12-21 22:44 -(仍登录) still logged in
reboot system boot 3.10.0-1160.el7 2024-12-21 22:44 2024-12-21 22:44 系统启动
defend pts/1 :0 2024-03-19 10:17 -(系统崩溃) crash
defend pts/1 :0 2024-03-18 20:25 2024-03-18 20:26 正常退出
root pts/1 192.168.75.129 2024-03-18 20:23 2024-03-18 20:25 正常退出
defend pts/0 :0 2024-03-19 03:16 -(系统崩溃) crash
defend :0 :0 2024-03-19 03:15 -(系统崩溃) crash

在 2024-03-18 20:23 时,192.168.75.129 使用 root 账户远程登录了服务器。

对于远程登录服务器而言,那就很有可能是爆破出来的了,使用 lastb 查看是否存在大量失败记录:

image-20251221224706303

短时间内大量失败记录,那没错了,去翻阅一下 secure 日志内容:

1
cat /var/log/secure | grep 'Failed' |awk '{print $11}'  | sort -n | uniq -c

image-20251222133227209

换个命令,查询 192.168.75.129 的所有记录:

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

image-20251221232953489

这个 Accepted 有点不同,以前遇到的都是 Accepted password 这里是 Accepted publickey 说明对面采用的公钥登录。可能是攻击者爆破不成功,采用了其他方法写入了公钥?

查看 /root/.ssh/authrized_keys 文件:

image-20251221233105709

有意外发现,不仅看到了对方的用户名 chinaran@kali,还看到了 redis。

image-20251221233303965

去看看 redis 日志(/var/log/redis/redis.log):

1
cat redis.log | grep '192.168.75.129'

image-20251222134433824

那说明攻击者是通过 Redis 攻击进来写入的公钥,既然已经使用 root 用户登录了,查看攻击者的历史执行命令:

image-20251222135007642

发现攻击者修改过 /etc/rc.d/rc.local 文件,同时发现第一个 flag。

查看 rc.local 文件内容,发现第二个 flag:

image-20251222135120264

第三个我是真没找到,那就只能暴力点了,邪修启动。

一个目录一个目录排查,到 /etc 就有了:

[!Warning]

实战没用,千万别用。

1
grep -rI 'flag{' /etc 2>/dev/null

image-20251222140546842

2 总结

Flag 如下:

  • 黑客的 IP 地址:192.168.75.129
  • 黑客遗留下的 3 个 flag
    • flag{thisismybaby}
    • flag{kfcvme50}
    • flag{P@ssW0rd_redis}