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

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

换个命令,查询 192.168.75.129 的所有记录:
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):
cat redis.log | grep '192.168.75.129'

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

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

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

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