网站被黑的经过 怎么防止网站被黑?
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=
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=
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=
可以看出,在频繁给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,找到这样一篇文章认为此程序是个木马程序
查看此进程的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、合理运用权限位控制系统文件被修改
作者:搁浅
flash安全不可忽略!新浪微博也存在cookies漏洞?
最近突然觉得,很多FLASH开发人员在编写的时候,忽视了安全问题。被恶意利用的话,可以实现URL跳转,COOKIES盗取,甚至是蠕虫攻击。漏洞测试:IE , firefox , chrome(= = 这个输入测试代码,浏览器直接崩溃
详情2018-01-18 09:38:30责编:llp 来源:驱动管家心脏出血漏洞检测 心脏出血漏洞检测软件
小编带来了心脏出血漏洞检测软件下载地址,大家可以下载心脏出血漏洞一键检测app,为了我们账户的安全,大家都可以检测一下自己的手机是否存在心脏出血漏洞哦~尽管“心脏出血”是一个网络漏洞,但是某些手机App通
详情2018-01-07 08:24:37责编:llp 来源:驱动管家攻击3389端口的方法有哪些?3389端口的入侵步骤
WIN2000中文简体版存在的输入法漏洞,可以使本地用户绕过身分验证机制进入系统内部。经实验,WIN2000中文简体版的终端服务,在远程操作时仍然存在这一漏洞,而且危害更大。WIN2000的终端服务功能,能使系统管理员
详情2018-01-14 19:42:27责编:llp 来源:驱动管家黑客入侵网站的基本步骤 网络服务器的入侵方法
尽管为服务器设计软件的软件工程师们想方设法提高系统的安全性,然而由于系统管理员的水平参差不齐或安全意识底下,往往给黑客提供了入侵的机会。其实每一个黑客都有自己独到的方法。笔者对于入侵网站服务器的资
详情2018-01-07 16:30:26责编:llp 来源:驱动管家rootkit是什么?rootkit是如何隐形的?
一、综述本文将引领读者打造一个初级的内核级Rootkit,然后为其引入两种简单的隐形技术:进程隐形技术和文件隐形技术。同时,为了让读者获得rootkit编程的相关经验,我们顺便介绍了rootkit的装载、卸载方法,以及
详情2018-01-12 14:51:50责编:llp 来源:驱动管家怎么使用cryptsetup加密u盘?如何在ubuntu里创建一个加密u盘?
首先讲讲保护U盘的重要性笔记本和U盘被盗,是过去几年数据泄露的主要原因之一。然而比起笔记本电脑,人们通常不太重视U盘这个小玩意儿的安全。但是如果罪犯偷窃了一枚价值只有12美元的U盘,也许会让一家公司付出
详情2018-01-04 12:22:51责编:llp 来源:驱动管家《网络安全法》颁布实施,怎么保证企业不触犯网络安全法?
一不留神违法了~冤吗?真相是:重庆这家公司自2017年6月1日后,在提供互联网数据中心服务时,存在未依法留存用户登录相关网络日志的违法行为,根据《中华人民共和国网络安全法》第二十一条(三)项:采取监测、记
详情2018-01-19 10:59:49责编:llp 来源:驱动管家为什么企业数据泄密?要如何防范企业数据泄密?
当前企业信息安全、商业机密保护是国内各行业网络管理的热点,在知识经济时代,商业机密的安全管理至关重要。如何防止员工复制电脑文件到U盘携带出去,如何禁止员工通过QQ发送文件将商业机密发送出去,以及如何禁
详情2018-01-06 16:52:46责编:llp 来源:驱动管家木马捆绑器有哪些?什么是资源包裹捆绑器?
一、传统的捆绑器这种原理很简单,也是目前用的最多的一种。就是将B exe附加到A exe的末尾。这样当A exe被执行的时候,B exe也跟着执行了。这种捆绑器的代码是满网都是。我最早是从jingtao的一篇关于流的文章中得
详情2018-01-19 13:32:37责编:llp 来源:驱动管家什么是nmap?nmap有哪些常用的命令?
nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取被扫描主机正在运行以及提供什么服务等信息。 nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)
详情2018-01-19 15:10:32责编:llp 来源:驱动管家
- 小米平板为什么不支持AVI格式的视频?小米平板支持视频格式
- 移动练歌房录歌功能在哪儿?移动练歌房怎么录制自己唱的歌?
- 为什么ipad连不上wifi?ipad连不上wifi怎么解决
- 小米出的这款车载充电器到底好不好呢?看下这个就知道了
- global.asa木马怎么清理?为什么会出现global.asa木马?
- linux文件系统为什么会变成只读的方式?怎么修复
- iso是什么文件?两种方法快速打开iso文件
- 国行iphone5支持4g吗?国行iphone5升级4g的方法
- 华为手机解锁忘了密码找得回吗?怎么找回?
- 为什么ipad显示不在充电?ipad不充电怎么解决?
- 路由器的网关地址在哪儿?路由器网关地址怎么找?
- 病毒清除软件:1kb文件夹快捷方式病毒清除专用附件
- 怎么用电炉抓肉鸡?电炉抓肉鸡有哪些步骤?
- 淘宝店铺的名称起过之后可以修改吗?淘宝店铺名称怎么修改?
- 微信朋友圈转发怎么操作?微信朋友圈怎么转发?
- 诺基亚920无线充电的充电原理是什么?
- 智能充电器哪家强?关于智能充电器的介绍
- 一招教你设置无线wifi防止别人来蹭网
- 教你在xp系统下如何使用u盘修复工具portfree production program
- usb存储设备怎么被移除?移除u盘的方法是什么?