服务器被攻破,求查找原因 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
algas
V2EX    Linux

服务器被攻破,求查找原因

  •  
  •   algas 2016-01-20 10:33:58 +08:00 9489 次点击
    这是一个创建于 3603 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT
    rc.local 文件被编辑, SElinux 被玩坏。

    在装系统的时候有禁止 root 登录,限制 ssh 暴力破解,没有开web服务,没有开数据库,
    然而系统还是悄无声息的被攻破了...
    第 1 条附言    2016-03-07 20:58:05 +08:00
    前几天我们发现受到影响的机器不只一台,另外一台被人用来扫描机器。根据进程找到了相应的文件,所以知道它大概在做什么。因为没有办法干净的删除这个用户,删掉后就会很快再建立一个。

    所以最近就把机器重装了,设置了每天两次的定时更新任务,主要是避免本地提权。指望补丁出的快,汉子祈祷中...

    ssh 防暴力破解改用了 fail2ban
    ssh 禁止 root 登录
    sudo 用户登录密码升级到 12 位以上的随机密码, root 密码真正的加丧心病狂...
    sudo 用户本地私钥重新成生,防止 ssh-server 被替换成有漏洞版本带来的问题

    ssh 端口没有改,也没有限制只用密钥登录,考虑到大多用户对 linux 都很不熟悉。
    第 2 条附言    2016-03-11 23:50:37 +08:00
    基本确定是因为 IPMI 模块没有配置导致的问题。

    http://www.v2ex.com/t/262602
    47 条回复    2016-03-12 14:09:18 +08:00
    paw
        1
    paw  
       2016-01-20 10:40:49 +08:00
    key 登录 + OTP
    然后开端口的服务都 nobody 下跑
    看还怎么被黑
    pheyer
        2
    pheyer  
       2016-01-20 10:44:06 +08:00
    你怎么发现服务器被攻破的?就凭 rc.local 文件?
    algas
        3
    algas  
    OP
       2016-01-20 10:54:52 +08:00
    @pheyer
    rc.local 被修改就够严重了吧,何况还被添加了一条下载并执行未知程序的一行。
    airqj
        4
    airqj  
       2016-01-20 11:12:45 +08:00
    连日志都没有
    让大伙怎么查?
    sunsh217
        5
    sunsh217  
       2016-01-20 11:25:34 +08:00
    第一,只开 web 端口,第二, ssh 端口只对固定 ip 开放。第三,上传文件也只通过 ssh 端口上传。 结束。
    Guenlay
        6
    Guenlay  
       2016-01-20 11:32:23 +08:00
    是攻破还是你机子中马了
    lyragosa
        7
    lyragosa  
       2016-01-20 12:01:27 +08:00
    你怎么发现的?

    被害妄想症患者表示很想知道。
    vicesa
        8
    vicesa  
       2016-01-20 12:17:07 +08:00
    是不是用非官网下载的 putty
    greenskinmonster
        9
    greenskinmonster  
       2016-01-20 12:36:18 +08:00
    有没有关掉用户名密码登录?
    initialdp
        10
    initialdp  
       2016-01-20 13:19:03 +08:00   1
    fail2ban 走起。
    algas
        11
    algas  
    OP
       2016-01-20 13:29:24 +08:00
    @airqj last 里没有看到异常登录,其他的我也不知道该去看什么了。。。

    @sunsh217 除了第二条都有做,固定 ip 开放不太可行,但是有限制密码尝试次数。

    @Guenlay
    @lyragosa
    不知道算是哪种,我只是知道 root 才能修改的文件被改动了,修改结果是自动下载并执行了一个文件。昨天系统出了奇怪的问题,所有用户都无法登录,显示 permission denial ,貌似是 SELinux 被玩坏了的原因,修改了/的权限并关闭了 SELinux 才解决问题。
    @paw 啊,这个,它只是个计算服务器
    algas
        12
    algas  
    OP
       2016-01-20 13:36:27 +08:00
    @greenskinmonster 没有关掉密码登录,只是禁用了 root

    @vicesa 这个可能性很高,有很多普通用户都是小白, windows 下的软件很不注意的,我回头要强调一下

    不过我们几个管理员都是用的 linux ,密码泄露的风险很小,普通用户提权应该很困难吧,用的 centos 系统,也有按时更新的。
    algas
        13
    algas  
    OP
       2016-01-20 13:39:30 +08:00
    @initialdp 晚上我去试试,非常有用的信息。
    keinx
        14
    keinx  
       2016-01-20 14:19:01 +08:00
    开启了阿里云盾,一天收到 20 多个暴力破解预警~~~现在扫描的人真多呀!
    likuku
        15
    likuku  
       2016-01-20 14:23:41 +08:00
    @algas 「没有关掉密码登录,只是禁用了 root 」.... 公网机器一律禁止密码认证,关闭 PAM ,只许可 key 认证。

    开了密码认证,不排除有用户使用弱(智)密码 /自行修改为弱密码 的可能性。
    cheng007
        16
    cheng007  
       2016-01-20 14:43:21 +08:00
    我遇到过一次,原因最后查出是我们的 root 密码太简单了,被人扫描出来了
    likuku
        17
    likuku  
       2016-01-20 15:10:21 +08:00
    顺手查了下办公室里一台作为连接局端网络和自有公网段路由器的 debian , auth.log 昨天一天有 154 次 ssh 错误登录( 不存在的用户),给扫描用的 ssh 用户名排序,前 10 位列表:

    7 oracle
    6 git
    5 admin
    5 a
    4 test
    3 ubuntu
    3 sergeev
    3 r00t
    3 postgres
    3 nagios
    knightlhs
        18
    knightlhs  
       2016-01-20 17:27:53 +08:00
    我的服务器每天都有弱口令扫描
    drop 列表已经长的看不下去了 扫描就扫描吧 反正错 2 次就封 2 周 我就不信能猜到密码
    ioiioi
        19
    ioiioi  
       2016-01-20 18:11:10 +08:00
    各位,我有个 kvm vm 被攻破了,我还不确定是被中木马还是其它,一开机就疯狂的向外发流量,估计是做 ddos ,所以我不敢开机,但是我可以使用 guestmount 来挂载这个 vm 的 image ,这种情况下该如何检查。
    scys
        20
    scys  
       2016-01-20 18:16:33 +08:00
    我不明白:为什么要开密码登录?
    你们密码长度直接 4096 位长度?
    strwei
        21
    strwei  
       2016-01-20 18:25:39 +08:00
    很简单, ssh 配置私钥和公钥
    strwei
        22
    strwei  
       2016-01-20 18:28:03 +08:00
    @ioiioi 直接扔个云盾上去看他们怎么玩
    uFD794c0pT5847IQ
        23
    uFD794c0pT5847IQ  
       2016-01-20 21:07:19 +08:00
    封闭所有端口, 除了必须公开的.
    Cu635
        24
    Cu635  
       2016-01-20 21:30:49 +08:00
    这服务器是你自己一个人用的,还是有别人有账号?
    greenskinmonster
        25
    greenskinmonster  
       2016-01-20 21:32:02 +08:00
    @knightlhs 改个 5 位数端口就好了。
    selinaspy
        26
    selinaspy  
       2016-01-20 21:38:35 +08:00
    用了 key+禁止密码登陆,暴力破就老老实实的了
    jerkzhang
        27
    jerkzhang  
       2016-01-21 00:15:00 +08:00
    以后用 denyhosts 就行了,动态防止暴力破解。 google 开源出来的小工具。
    canautumn
        28
    canautumn  
       2016-01-21 02:58:28 +08:00
    禁止 root 登录,禁止密码登录,改 ssh 端口号,就差不多了。
    wxg4net
        29
    wxg4net  
       2016-01-21 07:52:38 +08:00
    @ioiioi iptables 禁止外网访问 开启外网访问白名单 就可以消除症状了 然后查找问题 并解决。
    另外这个好处就是 即使服务器别人攻破 也不容易下载木马到服务器上
    Guenlay
        30
    Guenlay  
       2016-01-21 09:07:24 +08:00
    突然想起很久以前汉化版 putty 后门的事情
    @algas
    realpg
        31
    realpg  
    PRO
       2016-01-21 09:54:53 +08:00
    @likuku
    一天才 154 次?
    重点机房 IP 段,一天 15400 次都不止
    不改 ssh 端口就是噩梦……
    likuku
        32
    likuku  
       2016-01-21 10:52:02 +08:00
    @greenskinmonster 「改个 5 位数端口就好了。」只改端口?别逗了,安慰剂不能滥用。
    greenskinmonster
        33
    greenskinmonster  
       2016-01-21 11:06:13 +08:00
    @likuku 看上下文语境啊,这位。除非有人定点攻击你。否则的话,改个 5 位数端口,就能避免 99%的弱口令扫描。那种无脑扫描的不会把时间浪费在一个 IP 上面。
    abc123ccc
        34
    abc123ccc  
       2016-01-21 12:53:18 +08:00
    @keinx 换个 SSH 端口呀。
    skyworker
        35
    skyworker  
       2016-01-21 13:45:22 +08:00
    @likuku 如果你的服务器被人盯上了,不仅改端口没用,甚至你连只允许私钥登录都没用(0day 的后门多着哪,鬼才知道 Linux 有那些还没有被曝光的 oday 漏洞?)

    但是一般情况下,你只改改 ssh 端口,的确能避免很多人的攻击.
    nekoyaki
        36
    nekoyaki  
       2016-01-21 14:29:13 +08:00
    我就说一个帖子里还没提到的:如果你有 redis ,并且以高权限的身份运行,还对外暴露了,那么可以通过 redis 持久化的方式,向指定路径写一个公钥,这样攻击者拿着对应的私钥就能直接 ssh 你的机器了。
    gjflsl
        37
    gjflsl  
       2016-01-21 21:36:54 +08:00
    建议日志专门用一台机器,把所有日志都集中收集起来,起码也方便以后查问题。
    lightening
        38
    lightening  
       2016-01-22 05:16:16 +08:00
    无任何线索,会不会是 heartbleed ?
    algas
        39
    algas  
    OP
       2016-03-07 20:30:37 +08:00
    最近观察了一下服务器的情况,顺便等计算任务结束,回复大家晚了很抱歉。
    我会在附言里讲讲后来的处置,给故事结个尾。

    @Guenlay
    我们也是猜可能是某个普通用户的密码泄漏了,然后被本地提权。

    @nekoyaki
    你提供的思路开阔眼界了,不过机器上没有开 redis 或类似的服务。

    @lightening
    据说 heartbleed 不会导致 ssh 密钥泄漏
    lightening
        40
    lightening  
       2016-03-07 21:02:58 +08:00
    @algas  你有泄露秘钥吗?我看你描述,有人非法登录的你的服务器而已,并不一定获取了你的私钥。
    algas
        41
    algas  
    OP
       2016-03-08 00:24:08 +08:00
    @lightening
    最近 ssh-client 爆出了一个漏洞,这个漏洞貌似可以使一台恶意配置的 ssh 服务器获取连接到这个 ssh-server 的计算机内存内容,获取用户用于 SSH 连接的私钥。
    如果对方替换了服务器的 ssh-sever 程序,就有可能利用这个漏洞获得的私钥。
    lightening
        42
    lightening  
       2016-03-08 06:43:10 +08:00
    我说:可能是 heartbleed
    你说: heartbleed 不会导致泄露私钥
    我说:你并没有说你泄露了私钥,所以不能排除 heartbleed 的可能。

    然后你的回复和话题好像是无关的?
    algas
        43
    algas  
    OP
       2016-03-08 23:16:51 +08:00
    @lightening
    你说不一定获取了私钥,
    我理解成你问我为什么要重新生成本地的私钥(在附言里讲的那个),

    所以我就解释了一下对方可能在获得 root 权限后把 ssh-server 换了。
    lightening
        44
    lightening  
       2016-03-09 17:47:53 +08:00
    @algas 哦,原来是这样。既然服务器已经 compromise 了,那就肯定要彻底清空重装了。
    asddsa
        45
    asddsa  
       2016-03-10 22:54:13 +08:00
    给你一次免费安全咨询:
    1.Web 后门找到了没
    2.找到入侵者的入口了没
    3.还原攻击环节很重要
    4.重装了但是你的内核版本升级了没,一般都有提权漏洞
    5.跟 4 一个意思,“飞塔”查一下是什么
    6.入口,入口很重要,看你的描述你的服务器已经成了一个马场
    algas
        46
    algas  
    OP
       2016-03-11 23:49:48 +08:00
    @scys
    因为有很多人都了解和 linux 相关的事情,改成密钥登陆他们会比较费劲。

    从安全角度来说,由于他们也基本不会改密码了,所以在实际使用上 10 位随机密码也不比密钥登陆危险太多
    shizzmk
        47
    shizzmk  
       2016-03-12 14:09:18 +08:00
    何不用密?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4703 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 09:55 PVG 17:55 LAX 01:55 JFK 04:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86