应急响应靶机训练 - Linux1
应急响应靶机训练 - Linux1
小王急匆匆地找到小张,小王说 “李哥,我 dev 服务器被黑了”,快救救我!!。请你找出以下内容作为通关条件:
- 黑客的 IP 地址;
- 黑客遗留下的 3 个 flag;
该靶机有很多非预期解,做靶机是给自己做,请大家合理按照预期解进行探索。相关账户密码:
defend/defendroot/defend
1 流程梳理
在 Linux 中最普遍的就是 SSH 登录了,可以使用 last 看看最近的用户登录情况:
1 | [defend@localhost ~]$ last |
根据上述输出内容,可以整理出如下表格:
| 用户名 | 终端 / 类型 | 来源地址 | 登录时间 | 退出时间 | 状态说明 |
|---|---|---|---|---|---|
| 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 查看是否存在大量失败记录:

短时间内大量失败记录,那没错了,去翻阅一下 secure 日志内容:
1 | cat /var/log/secure | grep 'Failed' |awk '{print $11}' | sort -n | uniq -c |

换个命令,查询 192.168.75.129 的所有记录:
1 | cat /var/log/secure | grep '192.168.75.129' |

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

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

去看看 redis 日志(/var/log/redis/redis.log):
1 | cat redis.log | grep '192.168.75.129' |

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

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

第三个我是真没找到,那就只能暴力点了,邪修启动。
一个目录一个目录排查,到 /etc 就有了:
[!Warning]
实战没用,千万别用。
1 | grep -rI 'flag{' /etc 2>/dev/null |

2 总结
Flag 如下:
- 黑客的 IP 地址:192.168.75.129
- 黑客遗留下的 3 个 flag
- flag{thisismybaby}
- flag{kfcvme50}
- flag{P@ssW0rd_redis}







