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 從進程并未看出有什么異常進程,繼續排查 查看日志目錄,發現www.jb51.net 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、合理運用權限位控制系統文件被修改 作者:擱淺 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信