服務(wù)熱線
13795308374
E-mail: 2852785358@qq.com
2012-06-09
一次被黑經(jīng)歷與一些反思
2012年5月22日17時(shí)許,發(fā)現(xiàn)公司一臺(tái)非正式生產(chǎn)服務(wù)器(有公網(wǎng)IP)的root密碼被修改,導(dǎo)致無法登陸服務(wù)器,排查處理過程如下:
1、通過vmware vcenter管理端進(jìn)入單用戶模式修改root密碼
2、查看zui近登陸信息,如下:
[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)
發(fā)現(xiàn)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
可以確定此機(jī)已經(jīng)被黑,首先將此IP 188.173.171.146加入hosts.deny防止在處理過程中再次破壞,通過日志可以看出,被建立了一個(gè)組screen gid為84,在/etc/group中找到刪除,繼續(xù)排查。
由于此機(jī)器非正式環(huán)境使用,安全方面無過多策略,只開啟http下載服務(wù),掃描端口如下:
[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查看進(jìn)程如下
[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
從進(jìn)程并未看出有什么異常進(jìn)程,繼續(xù)排查
查看日志目錄,發(fā)現(xiàn)maillog日志異常大,內(nèi)容如下:
)
May 22 16:53:48 localhost sendmail[3647]: q4M8rjFf003627: to=<bloodvio>, 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, 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>, 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, 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>, 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發(fā)郵件,本以為此人只為盜發(fā)郵件才入侵我的機(jī)器,但是仔細(xì)一看,以前被盜發(fā)郵件都發(fā)送給不同賬號(hào),但這個(gè)是同一賬號(hào),應(yīng)該是黑客接收郵件的客戶端。
繼續(xù)排查。
查看定時(shí)任務(wù):
[root@localhost mabil]# ls /var/spool/crron
root
[root@localhost mail]# crontab -l
0 6 * * * /usr/sbin/ntpdate asia.pool.ntp.org >>/var/log/ntpdaog
沒有異常的定時(shí)任務(wù)
查看用戶
[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
異常:仔細(xì)看一下bin用戶的登陸shell,默認(rèn)應(yīng)該為/sbin/nologin,它為/bin/bash,也就是意味著它可以通過密碼登陸系統(tǒng),改之。
查看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:
除了zui后一行screen(已經(jīng)在日志中提示)異常,其他無異常,刪之
到了此時(shí),不知道如何排查了,感覺被黑以后并沒有對(duì)服務(wù)器做過多操作,top盯著看看吧,有什么特殊進(jìn)程:啊哈,看到了,不是進(jìn)程,是顯示,
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
先進(jìn)行:前面有個(gè)空格
第三行:cpu顯示
第五行:swap顯示
還有字體,上面部分與下面進(jìn)程 顯示部分*不是一個(gè)字體
立刻想到的就是系統(tǒng)命令被人替換了
查看top命令的信息
-rr-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命令查找下zui近被修改過的文件:
find / -user 122 | xargs ls -l
輸出如下:
-rr-xr-x 1 122 114 39696 Mar 1 2010 /bin/ls
-rr-xr-x 1 122 114 54152 Jan 27 2010 /bin/netstat
-rr-xr-x 1 122 114 62920 Mar 31 2010 /bin/ps
-rr-xr-x 1 122 114 31504 Jan 27 2010 /sbin/ifconfig
-rr-xr-x 1 122 114 212747 Mar 1 2010 /sbin/ttyload
-rrr-x 1 122 114 93476 Mar 1 2010 /sbin/ttymon
-rr-xr-x 1 122 114 39696 Mar 1 2010 /usr/bin/dir
-rr-xr-x 1 122 114 59536 Sep 4 2009 /usr/bin/find
-rr-xr-x 1 122 114 31452 Mar 1 2010 /usr/bin/md5sum
-rr-xr-x 1 122 114 12340 Sep 27 2009 /usr/bin/pstree
-rr-xr-x 1 122 114 33992 Mar 31 2010 /usr/bin/top
-rr-xr-x 1 122 114 82628 Jan 10 2007 /usr/sbin/lsof
這些系統(tǒng)命令已經(jīng)被更換過了
如何解決呢?直接從相同系統(tǒng)拷貝一份過來就可以了
那么,先備份這些命令吧
[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
沒有問題啊,文件普通權(quán)限也沒問題,讓我想起來chattr +i 去鎖定文件修改權(quán)限
隨即
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
看一下這些隱含權(quán)限的意思
a:Append Only,系統(tǒng)只允許在這個(gè)文件之后追加數(shù)據(jù),不允許任何進(jìn)程覆蓋
或 截?cái)噙@個(gè)文件。如果目錄具有這個(gè)屬性,系統(tǒng)將只允許在這個(gè)目錄下建立和修改
文件,而不允許刪除任何文件。
s:Secure Delete,讓系統(tǒng)在刪除這個(gè)文件時(shí),使用0 填充文件所在的區(qū)域。
i:Immutable,系統(tǒng)不允許對(duì)這個(gè)文件進(jìn)行任何的修改。如果目錄具有這個(gè)屬性,
改掉:find / -user 122 | xargs chattr -a -i -s
改完以后,就可以備份刪除了,從其他機(jī)器將相同文件拷貝過來,完成。
拷貝過程中發(fā)現(xiàn)兩個(gè)問題:
1:/sbin/ttyload 正常系統(tǒng)中沒有這個(gè)可執(zhí)行文件
2:/sbin/ttymon 這個(gè)也是沒有的
將這兩個(gè)命令備份,然后重新使用正常的ps命令查看進(jìn)程
這時(shí)候顯示出了兩個(gè)異常進(jìn)程
ttyload && ttymon -q 兩個(gè)進(jìn)程(當(dāng)時(shí)沒記錄下來就直接重啟了)
這個(gè)進(jìn)程我分析是個(gè)后門進(jìn)程,重啟后由于改了命令名字 就不在存在了。
然后就是去找,這兩個(gè)進(jìn)程是如何開機(jī)啟動(dòng)的以及調(diào)用什么文件:
ll /etc/init.d
-r-xr-xr-x 1 root sys 3414 Mar 7 2011 sshd
發(fā)現(xiàn)sshd的開機(jī)啟動(dòng)服務(wù)權(quán)限不對(duì),改掉,在核對(duì)文件大小無誤后繼續(xù)后面的排查
查找其他文件并無異常后,只能從兩個(gè)異常文件繼續(xù)下手了/sbin/ttyload /sbin/ttymont
利用top命令再次查看,負(fù)載達(dá)到了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
發(fā)現(xiàn)這兩個(gè)進(jìn)程占用系統(tǒng)資源比較高(我這臺(tái)機(jī)器正常應(yīng)該是無負(fù)載的)
查看: lsof -p 5172
perl 5172 root 3u IPv4 22292 TCP 120.72.48.51:51501-
>Tampa.FL.US.Undernet.org:ircd (ESTABLISHED)
發(fā)現(xiàn)正在連接美國的一個(gè)域名(ip138),tcp信息包狀態(tài)為established
查看ircd服務(wù)是什么:
[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)
經(jīng)過google,找到這樣一篇文章
http://netsecurity.51cto.com/art/200702/40163.htm ,
認(rèn)為此程序是個(gè)木馬程序
查看此進(jìn)程的command
[root@localhost ~]# ps aux | grep 5172
root 5172 48.1 0.1 88552 4028 ? R May23 627:05 /usr/sbin/sshd
立刻就明白了,正對(duì)應(yīng)了/etc/init.d/sshd的權(quán)限有問題
老套路,替換、刪除(包括/etc/init.d/sshd),然后重啟系統(tǒng)
重啟后,再次使用top命令查看,系統(tǒng)負(fù)載正常,進(jìn)程也正常了,到此問題解決
觀察了兩天,發(fā)現(xiàn)并無異常了,但是由于是非正式生產(chǎn)機(jī)器,還是準(zhǔn)備從做下系統(tǒng)以患
一些安全方面的反思:
1、iptables是個(gè)好東西,提供四層的包過濾防護(hù)功能,運(yùn)用得當(dāng)可以防止很多安全隱患。
2、hosts.deny/allow ,存在于Iptables之下的硬性防護(hù)措施,雖然不怎么靈活但是安全性更高
3、Selinux,這個(gè)內(nèi)核級(jí)的防護(hù)墻被很多人所放棄,主要是由于它很不靈活,如果運(yùn)用不得當(dāng)會(huì)更自己添加很多麻煩,但是它對(duì)于保護(hù)系統(tǒng)安全非常重要
4、sshd的策略,禁止root以及修改端口是個(gè)不錯(cuò)的辦法
5、密碼復(fù)雜性以及定期更換密碼、檢查系統(tǒng)賬號(hào)是系統(tǒng)管理員的日常工作
6、第三方監(jiān)控以及監(jiān)控腳本是個(gè)不錯(cuò)的策略,zabbix和cacti都支持監(jiān)控系統(tǒng)登錄用戶
7、系統(tǒng)漏洞:盡量使用較新版本的二進(jìn)制包部署服務(wù)器的應(yīng)用程序
8、第三方軟件:fail2ban和denyhost這兩款防護(hù)軟件個(gè)人認(rèn)為還不錯(cuò)
9、合理運(yùn)用權(quán)限位控制系統(tǒng)文件被修改
上海維特銳實(shí)業(yè)發(fā)展有限公司主要供應(yīng):VSE流量計(jì),KRACHT齒輪泵及流量計(jì),HYDAC傳感器,ATOS閥,ASCO電磁閥,REXROTH泵,PARKER液壓閥,
掃一掃
歡迎關(guān)注我們網(wǎng)站平臺(tái)