`
zhengdl126
  • 浏览: 2538435 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

一次被黑经历与一些反思

 
阅读更多

2012年5月22日17时许,发现公司一台非正式生产服务器(有公网IP)的root密码被修改,导致无法登陆服务器,排查处理过程如下:
1、通过vmware vcenter管理端进入单用户模式修改root密码

2、查看最近登陆信息,如下:
[root@localhost home]# last  | more
root     pts/5        218.247.13.60    Tue May 22 18:12   still logged in  
root     pts/4        120.72.48.70     Tue May 22 17:59   still logged in  
root     pts/3        120.72.48.70     Tue May 22 17:49   still logged in  
root     pts/2        218.247.13.60    Tue May 22 17:37   still logged in  
root     pts/1        218.247.13.60    Tue May 22 17:37   still logged in  
root     pts/0        218.247.13.60    Tue May 22 16:56   still logged in  
root     tty1                        Tue May 22 16:56 - 16:56  (00:00)   
reboot   system boot  2.6.18-238.el5   Tue May 22 16:55          (01:56)   
reboot   system boot  2.6.18-238.el5   Tue May 22 16:53          (00:00)   
lilei    pts/3        120.72.48.52     Tue May 22 17:03 - down   (00:05)   
root     pts/0        188.173.171.146  Tue May 22 16:16 - 16:30  (00:13)   

发现16:16分来自罗马尼亚的IP(IP138资源)有登陆

立刻查看secure日志,如下
May 22 16:16:46 localhost sshd[26364]: Address 188.173.171.146 maps to 188-173-171-146.next-
gen.ro, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
May 22 16:16:48 localhost sshd[26364]: Accepted password for root from 188.173.171.146 port
1493 ssh2
May 22 16:16:48 localhost sshd[26364]: pam_unix(sshd:session): session opened for user root by
(uid=0)
May 22 16:17:09 localhost passwd: pam_unix(passwd:chauthtok): password changed for root
May 22 16:24:53 localhost sshd[3521]: Received signal 15; terminating.
May 22 16:34:51 localhost sshd[26364]: pam_unix(sshd:session): session closed for user root
May 22 16:39:47 localhost groupadd[1622]: new group: name=screen, GID=84

可以确定此机已经被黑,首先将此IP 188.173.171.146加入hosts.deny防止在处理过程中再次破坏,通过日志可以看出,被建立了一个组screen gid为84,在/etc/group中找到删除,继续排查。

由于此机器非正式环境使用,安全方面无过多策略,只开启http下载服务,扫描端口如下:
[root@localhost home]# nmap 127.0.0.1

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2012-05-23 15:13 CST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1676 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
80/tcp  open  http
111/tcp open  rpcbind
900/tcp open  unknown

ps查看进程如下
[root@localhost home]# ps aux
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND


root      3676  0.0  0.0 74836 1236 ?        S    16:56   0:00 crond
xfs       3699  0.0  0.0 20108 1044 ?        S    16:56   0:00 xfs -droppriv -da
avahi     3750  0.0  0.0 23172 1284 ?        S    16:56   0:00 avahi-daemon: run
avahi     3751  0.0  0.0 23172  340 ?        S    16:56   0:00 avahi-daemon: chr
root      3883  0.0  0.0 18440  480 ?        S    16:56   0:00 /usr/sbin/smartd
root      3888  0.0  0.0  3816  492 tty2     S    16:56   0:00 /sbin/mingetty tt
root      3890  0.0  0.0  3816  492 tty3     S    16:56   0:00 /sbin/mingetty tt
root      3891  0.0  0.0  3816  484 tty4     S    16:56   0:00 /sbin/mingetty tt
root      3892  0.0  0.0  3816  488 tty5     S    16:56   0:00 /sbin/mingetty tt
root      3893  0.0  0.0  3816  484 tty6     S    16:56   0:00 /sbin/mingetty tt
root      3959  0.0  0.8 258352 16992 ?      SN   16:56   0:00 /usr/bin/python -
root      3961  0.0  0.0 12940 1192 ?        SN   16:56   0:00 /usr/libexec/gam_
root      4024  0.0  0.0  3816  492 tty1     S    16:56   0:00 /sbin/mingetty tt
root      4025  0.0  0.0 24068 1740 ?        S    16:56   0:00 sshd: root@pts/0,
root      4036  0.0  0.0 66088 1580 pts/0    S    16:56   0:00 -bash
root      4944  0.5  0.2 157528 5196 ?       S    17:24   0:28 /usr/bin/python /
root      5170  0.0  0.0 66084 1484 pts/1    S    17:37   0:00 -bash
root      5200  0.0  0.0 24068 1696 ?        S    17:37   0:00 sshd: root@pts/2
root      5208  0.0  0.0 66088 1536 pts/2    S    17:37   0:00 -bash
root      5341  0.0  0.0 23904 1688 ?        S    17:49   0:00 sshd: root@pts/3
root      5349  0.0  0.0 66088 1572 pts/3    S    17:49   0:00 -bash
root      5457  0.0  0.0 23904 1548 ?        S    17:59   0:00 sshd: root@pts/4
root      5465  0.0  0.0 66084 1484 pts/4    S    17:59   0:00 -bash
root      5591  0.0  0.0 24068 1704 ?        S    18:12   0:00 sshd: root@pts/5
root      5599  0.0  0.0 66088 1568 pts/5    S    18:12   0:00 -bash
root      5895  0.0  0.1  4200 2092 pts/5    R    18:53   0:00 ps aux

从进程并未看出有什么异常进程,继续排查

查看日志目录,发现maillog日志异常大,内容如下:
)
May 22 16:53:48 localhost sendmail[3647]: q4M8rjFf003627: to=<bloodvio@yahoo.com>, ctladdr=<root@localhost.localdomain> (0/0), delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=120382, relay=mta5.am0.yahoodns.net. [66.94.238.147], dsn=2.0.0, stat=Sent (ok dirdel)
May 22 16:56:30 localhost sendmail[3965]: q4M8uU5j003965: to=bloodvio@yahoo.com, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30083, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q4M8uUoA003985 Message accepted for delivery)
May 22 16:56:32 localhost sendmail[3987]: q4M8uUoA003985: to=<bloodvio@yahoo.com>, ctladdr=<root@localhost.localdomain> (0/0), delay=00:00:02, xdelay=00:00:02, mailer=esmtp, pri=120381, relay=mta5.am0.yahoodns.net. [67.195.103.233], dsn=2.0.0, stat=Sent (ok dirdel)
May 22 16:56:43 localhost sendmail[4030]: q4M8uhGd004030: to=bloodvio@yahoo.com, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30083, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q4M8uhR3004033 Message accepted for delivery)
May 22 16:56:46 localhost sendmail[4035]: q4M8uhR3004033: to=<bloodvio@yahoo.com>, ctladdr=<root@localhost.localdomain> (0/0), delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=120381, relay=mta5.am0.yahoodns.net. [72.30.235.196], dsn=2.0.0, stat=Sent (ok dirdel)

可以看出,在频繁给yahoo发邮件,本以为此人只为盗发邮件才入侵我的机器,但是仔细一看,以前被盗发邮件都发送给不同账号,但这个是同一账号,应该是黑客接收邮件的客户端。

继续排查。
查看定时任务:
[root@localhost mabil]# ls /var/spool/crron
root
[root@localhost mail]# crontab -l
0 6 * * * /usr/sbin/ntpdate asia.pool.ntp.org >>/var/log/ntpdatelog
没有异常的定时任务

查看用户
[root@localhost mail]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash


oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:4294967294:4294967294:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
avahi-autoipd:x:100:156:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin


nagios:x:502:501::/home/nagios:/bin/bash
异常:仔细看一下bin用户的登陆shell,默认应该为/sbin/nologin,它为/bin/bash,也就是意味着它可以通过密码登陆系统,改之。

查看group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:


nagios:x:501:
screen:x:84:
除了最后一行screen(已经在日志中提示)异常,其他无异常,删之

到了此时,不知道如何排查了,感觉被黑以后并没有对服务器做过多操作,top盯着看看吧,有什么特殊进程:啊哈,看到了,不是进程,是显示,

 

  6:53pm  up  1:59,  6 users,  load average: 0.00, 0.00, 0.00

102 processes: 101 sleeping, 1 running, 0 zombie, 0 stopped

CPU states:  0.7% user,  0.6% system,  0.0% nice, 98.5% idle

Mem:  2058840K av,  613508K used, 1445332K free,       0K shrd,   86528K buff

Swap: 2064376K av,       0K used, 2064376K free                  327072K cached

$<5>$<3>$<2>$<2>Unknown command `

' -- hit `h' for help$<2>IZE  RSS SHARE STAT  LIB %CPU %MEM   TIME COMMAND

    1 root      15   0 10372  688   576 S       0  0.0  0.0   0:00 init

    2 root      0K  -5     0    0     0 SW<     0  0.0  0.0   0:00 migration/0

    3 root      34  19     0    0     0 SWN     0  0.0  0.0   0:00 ksoftirqd/0

    4 root      10  -5     0    0     0 SW<     0  0.0  0.0   0:00 events/0

    5 root      10  -5     0    0     0 SW<     0  0.0  0.0   0:00 khelper

 


第一行:前面有个空格
第三行:cpu显示
第五行:swap显示
还有字体,上面部分与下面进程 显示部分完全不是一个字体

立刻想到的就是系统命令被人替换了
查看top命令的信息
-rwxr-xr-x   1 122      114         33992 Mar 31  2010 /usr/bin/top

属主、属组都是那么的诡异,122类似这样的用户一般为上传文件所拥有
具体看一下文件大小
[root@localhost home]# ll -ha /usr/bin/top
ls: invalid option -- h
Try `ls --help' for more information.
ls命令也被改了

利用find命令查找下最近被修改过的文件:
find / -user 122 | xargs ls -l
输出如下:
-rwxr-xr-x   1 122      114         39696 Mar  1  2010 /bin/ls
-rwxr-xr-x   1 122      114         54152 Jan 27  2010 /bin/netstat
-rwxr-xr-x   1 122      114         62920 Mar 31  2010 /bin/ps
-rwxr-xr-x   1 122      114         31504 Jan 27  2010 /sbin/ifconfig
-rwxr-xr-x   1 122      114        212747 Mar  1  2010 /sbin/ttyload
-rwxrwxr-x   1 122      114         93476 Mar  1  2010 /sbin/ttymon
-rwxr-xr-x   1 122      114         39696 Mar  1  2010 /usr/bin/dir
-rwxr-xr-x   1 122      114         59536 Sep  4  2009 /usr/bin/find
-rwxr-xr-x   1 122      114         31452 Mar  1  2010 /usr/bin/md5sum
-rwxr-xr-x   1 122      114         12340 Sep 27  2009 /usr/bin/pstree
-rwxr-xr-x   1 122      114         33992 Mar 31  2010 /usr/bin/top
-rwxr-xr-x   1 122      114         82628 Jan 10  2007 /usr/sbin/lsof
这些系统命令已经被更换过了
如何解决呢?直接从相同系统拷贝一份过来就可以了
那么,先备份这些命令吧
[root@localhost home]# mv /bin/ls /bin/ls.bak
mv: cannot move `/bin/ls' to `/bin/ls.bak': Operation not permitted
在看看自己的登陆用户:
[root@localhost home]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=system_u:system_r:initrc_t
没有问题啊,文件普通权限也没问题,让我想起来chattr +i 去锁定文件修改权限
随即
find / -user 122 | xargs lsattr如下:
s----a------- /bin/ls
s---ia------- /sbin/ttyload
s---ia------- /sbin/ifconfig
s---ia------- /sbin/ttymon
s---ia------- /usr/sbin/lsof
s---ia------- /usr/bin/dir
s---ia------- /usr/bin/pstree
s---ia------- /usr/bin/top
s---ia------- /usr/bin/find
s----a------- /bin/ls
s---ia------- /bin/netstat
s---ia------- /bin/ps

看一下这些隐含权限的意思
a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖
或 截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改
文件,而不允许删除任何文件。
s:Secure Delete,让系统在删除这个文件时,使用0 填充文件所在的区域。
i:Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,

改掉:find / -user 122 | xargs chattr -a -i -s

改完以后,就可以备份删除了,从其他机器将相同文件拷贝过来,完成。
拷贝过程中发现两个问题:
1:/sbin/ttyload 正常系统中没有这个可执行文件
2:/sbin/ttymon  这个也是没有的
将这两个命令备份,然后重新使用正常的ps命令查看进程
这时候显示出了两个异常进程
ttyload  && ttymon -q 两个进程(当时没记录下来就直接重启了)

这个进程我分析是个后门进程,重启后由于改了命令名字 就不在存在了。

然后就是去找,这两个进程是如何开机启动的以及调用什么文件:
ll /etc/init.d
-r-xr-xr-x 1 root sys   3414 Mar  7  2011 sshd
发现sshd的开机启动服务权限不对,改掉,在核对文件大小无误后继续后面的排查
 
查找其他文件并无异常后,只能从两个异常文件继续下手了/sbin/ttyload /sbin/ttymont

 

利用top命令再次查看,负载达到了2.0 2.0 2.0

 5172 root      25   0 88552 4028 1272 R 49.9  0.2 624:30.54 perl                              

                                   
19193 root      25   0 88552 4024 1272 S 49.9  0.2 541:24.42 perl  
发现这两个进程占用系统资源比较高(我这台机器正常应该是无负载的)

查看: lsof -p 5172

perl    5172 root    3u  IPv4  22292               TCP 120.72.48.51:51501-

>Tampa.FL.US.Undernet.org:ircd (ESTABLISHED)

发现正在连接美国的一个域名(ip138),tcp信息包状态为established

查看ircd服务是什么:
[root@localhost ~]# cat /etc/services | grep ircd
ircd            6667/tcp                        # Internet Relay Chat
ircd            6667/udp                        # Internet Relay Chat

6667端口,查看下
[root@localhost ~]# lsof -i:6667
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
perl     5172 root    3u  IPv4  22292       TCP 120.72.48.51:51501-

>Tampa.FL.US.Undernet.org:ircd (ESTABLISHED)
perl    19193 root    3u  IPv4 953876       TCP 120.72.48.51:55219-

>Tampa.FL.US.Undernet.org:ircd (ESTABLISHED)

经过google,找到这样一篇文章
http://netsecurity.51cto.com/art/200702/40163.htm

认为此程序是个木马程序

查看此进程的command
[root@localhost ~]# ps aux | grep 5172
root      5172 48.1  0.1  88552  4028 ?        R    May23 627:05 /usr/sbin/sshd
立刻就明白了,正对应了/etc/init.d/sshd的权限有问题

老套路,替换、删除(包括/etc/init.d/sshd),然后重启系统

重启后,再次使用top命令查看,系统负载正常,进程也正常了,到此问题解决

观察了两天,发现并无异常了,但是由于是非正式生产机器,还是准备从做下系统以绝后患

一些安全方面的反思:
1、iptables是个好东西,提供四层的包过滤防护功能,运用得当可以防止很多安全隐患。
2、hosts.deny/allow ,存在于Iptables之下的硬性防护措施,虽然不怎么灵活但是安全性更高
3、Selinux,这个内核级的防护墙被很多人所放弃,主要是由于它很不灵活,如果运用不得当会更自己添加很多麻烦,但是它对于保护系统安全非常重要
4、sshd的策略,禁止root以及修改端口是个不错的办法
5、密码复杂性以及定期更换密码、检查系统账号是系统管理员的日常工作
6、第三方监控以及监控脚本是个不错的策略,zabbix和cacti都支持监控系统登录用户
7、系统漏洞:尽量使用较新版本的二进制包部署服务器的应用程序
8、第三方软件:fail2ban和denyhost这两款防护软件个人认为还不错
9、合理运用权限位控制系统文件被修改

分享到:
评论

相关推荐

    一次被黑经历与反思.pdf

    一次被黑经历与反思.pdf

    记一次字节跳动面试经历.docx

    本文记录了作者的一次字节跳动面试经历,涵盖了面试的准备、过程和感悟。作者通过亲身经历,总结出了面试的要点和技巧,并分享了自己的经验和教训。 面试前的准备 作者在面试前夕,进行了充分的准备工作。包括理了...

    2020年的黑天鹅事件带给餐饮行业的反思精品报告2020.pdf

    2020年的新冠疫情正是这样一个事件,对于餐饮行业而言,它不仅是一场公共卫生危机,更是一次空前的经济挑战。疫情期间,大量餐饮企业不得不暂停营业,导致营收大幅下降。根据罗兰贝格的研究,海底捞、国际天食、小尾...

    离群的小黑鸡作文.doc

    标题中的“离群的小黑鸡作文.doc”实际上是一篇...总的来说,这篇作文通过小黑鸡的冒险经历,提供了一次寓教于乐的阅读体验,让读者在欣赏故事的同时,也能从中汲取关于自我成长、责任意识和环境适应等多个层面的启示。

    VR影视:真实与虚拟的技术反思.pdf

    在电影和电视发展的过程中,每一次影视技术的革新都推动着影视媒介向前发展,从无声电影到有声电影,从黑白视频到彩色视频,从胶片技术到数字传输,从模拟信号到数字信号,从卫星传输到网络传输。每一种新技术都给...

    初中语文文摘文苑张抗抗:假如再做一次女孩

    总之,这篇文章通过“假如再做一次女孩”的设想,探讨了个人成长过程中对于外貌、个性、兴趣、技能、情感、人际关系和价值观等多方面的认识与期望,展现出对生活的深度思考和对未来的美好憧憬。

    黑骏马读后感范文5篇.pdf

    故事中,黑骏马原本生活在贵族家庭,受过良好训练,性格温顺聪明,但因家庭变故被迫多次易主,经历了各种人间冷暖。它遇到过酗酒的恶霸,也有过善良的主人,如乐观的安妮小姐。这些经历揭示了动物与人的互动关系,...

    读《王妃黑叶猴》有感.docx

    正如我们日常生活中,父母对孩子的关心可能隐藏在一杯热牛奶、一句问候或一次宽容中。书中通过丹顶佛的母爱和金腰带猴王的父爱,让我们看到,即使在动物界,父爱和母爱同样深厚且感人。 此外,《王妃黑叶猴》还反映...

    经一事,长一智作文.doc

    标题中的“经一事,长一智”是一句中国古老的谚语,意指通过一次经历,可以获得一份智慧。这篇作文正是作者通过自身的一次经历,学习到了一个宝贵的生活教训。描述中提到的“范文”表明这是一篇作为示例的文章,可能...

    《王妃黑叶猴》读后感五年级作文10篇.docx

    得那些在灾难中,母亲用身体挡住倒塌的墙体保护孩子的故事吗?母爱的力量是无法估量的。《王妃黑叶猴》这本书通过讲述母猴丹顶佛的故事,...这本书不仅是对孩子们进行生命教育的好教材,也是对所有读者的一次心灵洗礼。

    红黑简约风部门工作总结汇报项目计划

    例如,从2314的数字中,可以推断出部门在某些方面可能经历了2次大的挫折,但通过不断努力,最终实现了3次重要突破,带来了1次重大的成功。 总结: 本次红黑简约风部门工作总结汇报项目计划,注重实际工作内容的呈现...

    《月亮忘记了》读后感.doc

    这是一次心灵之旅,一次对自我认知的探索,一次关于成长和治愈的体验。 总的来说,《月亮忘记了》是一部触动人心的绘本,它以简洁而深邃的笔触,揭示了生命中那些无形但重要的情感纽带,鼓励我们在面对生活的困境时...

    2020年的黑天鹅事件带给餐饮行业的反思.pdf

    总之,2020年的新冠疫情对餐饮行业是一次严峻的考验,也是一个深刻的教训。未来餐饮行业的发展将不再是简单地追求规模扩张,而是更加注重如何在多变的市场环境中稳固自己的位置,提升抗风险能力,并为消费者提供更...

    black beuty

    - **家族背景**:黑骏马的父亲在当地很有名气,祖父曾两次赢得纽马克特赛马大赛的冠军杯,祖母拥有最温柔的性格,这些都为黑骏马树立了一个正面的形象和期望。 - **避免坏习惯**:母亲特别提醒黑骏马要避免学习坏...

    童年没有橡皮擦作文.doc

    4. **人生无法重来**:生活中没有真正的“橡皮擦”,我们不能抹去已发生的事情,因此要珍惜每一次经历,无论是好是坏,都是人生的组成部分。 5. **写作技巧**:此篇范文展示了如何运用比喻(如“墨黑的污点”和...

    《骆驼祥子》读后感优秀范文550字.pdf

    第一次,新车被大兵夺走;第二次,积蓄被狡猾的孙侦探敲诈;第三次,借助虎妞的钱买了车,但虎妞的去世使他又一次失去希望。祥子的悲惨经历反映了旧社会的不公和黑暗,他最终在生活的重压下堕落,丧失了人性的光辉,...

    初中语文文学讨论现当代文学屈原之心境

    面对未知的未来,他展现出坚韧的精神风貌:"又一次流放,又一次无罪流放",即使遭受不公,他的意志仍然坚定。在余浦的密林深处,面对凄厉的猿声,他依然坚持自己的独特服饰,象征着他不随波逐流,保持高尚品德的决心...

    六年级语文下册 出色的老师 一课一练练习 语文S版 试题.doc

    三、《出色的老师》的主要内容是描述作者的一次经历,他在学校丢失了一只珍贵的手表,是黑大哥这位外国老师帮他找到了手表。然而,黑大哥却按照校规对作者处以高额罚金,让作者认识到规则的重要性和对自己行为的反思...

    六年级成长作文合集六篇.docx

    2. **学习与反思**:主人公在五班级时经历了一次考试失败,这让他意识到需要更加努力学习。通过阅读,他从书中人物的故事中汲取了教训,明白了只有勤学苦练才能取得成功。 3. **友情的力量**:在六班级的一个事件中...

    初中语文文摘人生说走就走的旅行让我在故事里生活

    这篇文章主要讲述了作者的一次说走就走的旅行经历,从中提炼出以下几个与旅行、生活感悟和情感体验相关的知识点: 1. **旅行的意义**:旅行并不仅仅是为了到达某个著名的景点,它更是一种心灵的解放和自我更新的...

Global site tag (gtag.js) - Google Analytics