简介
服务器场景操作系统 Linux
服务器账号密码 root xjredis
任务环境说明
注:样本请勿在本地运行!!!样本请勿在本地运行!!!样本请勿在本地运行!!!
应急响应工程师小王某人收到安全设备告警服务器被植入恶意文件,请上机排查
1. 通过本地 PC SSH到服务器并且分析黑客攻击成功的 IP 为多少,将黑客 IP 作为 FLAG 提交;
需要分析redis日志,根据前置知识可知,redis日志在/var/log/redis.log中
cat /var/log/redis.log
可以直接用命令查找访问的ip,由图可知ip在第十列
cat /var/log/redis.log | awk '{print$10}' | sort | uniq -c
#获取第十列数据
awk '{print$10}'
# 统计每行出现的频率
sort|uniq -c
根据查找到的ip,分别查看其在日志中的行为
192.168.100.13只见爆破,但未见登陆成功
192.168.100.20此ip成功登录
flag{192.168.100.20}
2.通过本地 PC SSH到服务器并且分析黑客第一次上传的恶意文件,将黑客上传的恶意文件里面的 FLAG 提交;
还是查看日志中给出的信息,linux中可执行文件后缀是.so文件,经过分析日志发现此处存在一个exp.so文件
find / -type f -name "exp.so"
flag{XJ_78f012d7-42fc-49a8-8a8c-e74c87ea109b}
3.通过本地 PC SSH到服务器并且分析黑客反弹 shell 的IP 为多少,将反弹 shell 的IP 作为 FLAG 提交;
其中redis有一种攻击手法为:利用crontab反弹shell
#查看计划任务
crontab -l
flag{192.168.100.13}
4.通过本地 PC SSH到服务器并且溯源分析黑客的用户名,并且找到黑客使用的工具里的关键字符串(flag{黑客的用户-关键字符串} 注关键字符串 xxx-xxx-xxx)。将用户名和关键字符串作为 FLAG提交
经过排查,恶意文件exp.so中没发现像是用户名的关键词,还有可能是黑客生成公钥的时候写了用户名
排查下
cat /root/.ssh/authorized_keys
在GitHub上寻找这个用户名:https://github.com/xj-test-user
flag{xj-test-user-wow-you-find-flag}
5.通过本地 PC SSH到服务器并且分析黑客篡改的命令,将黑客篡改的命令里面的关键字符串作为 FLAG 提交;
查找最新修改的前10个文件
ls -lt --time=ctime /usr/bin | head -n 10
此服务器是靶场,如存在篡改命令,可以通过查找最新修改的10个命令的方式去寻找
cat /usr/bin/ps
此处能明显看到ps文件存在异常,且权限为777也不太对劲,查看ps命令
发现异常,黑客对ps命令做了个备份,备份为ps_,这个脚本替换了原本的ps命令,用户输入ps命令,会调用ps_,正常显示进程,并且过滤掉包含threadd字符串的行,但如果想效果更隐蔽的话,可以再过滤个包含ps_的行,这样ps -aux也不会显示调用了备份文件的ps_ -aux ,更加隐蔽
flag{c195i2923381905517d818e313792d196}
flag
flag{192.168.100.20}
flag{XJ_78f012d7-42fc-49a8-8a8c-e74c87ea109b}
flag{192.168.100.13}
flag{xj-test-user-wow-you-find-flag}
flag{c195i2923381905517d818e313792d196}
好小子,离成功又近一步!!!