周海汉/文 2009.7.27
以前一起创业的同事,突然给我打电话,说运行的一台tribox机器被攻击了。考虑到我linux比较熟,特来求助。
我通过远程桌面连接那台linux,发现ssh 2根本连不上。ssh v1还幸好连上了。进去查看ssh配置,无异常,重启sshd发现端口占用。netstat看不到有程序占用sshd的端口。
cd操作,root的shell主目录被切换到/usr/lib/libsh
但 ls -l /usr/lib >tmp
grep libsh tmp
为空,说明根本看不见libsh
以root权限执行删除,移动,改名均提示无权限。
rm -rf /usr/lib/libsh
提示没有操作权限。
ps -ef 看到有可疑的进程如下:
ls -c < x.x.x.x:yyyy >/dev/null 2>&1
其中x.x.x.x 是IP,用ip138一查,是波兰的一个IP地址。显然这个IP是黑客的跳板。
黑客很可能通过修改过的ls来远程发信息。
ls /usr/bin
发现 ls,top,ps,netstat等关键进程都被替换了。其用户不是root,而是112,用户组是114. 这些二进制文件也都不可删改。
下面是部分操作:
find / -nouser
/etc/shell/stealth
/etc/shell/bash
/etc/shell/randfiles
/etc/shell/randfiles/randnicks.e
/etc/shell/randfiles/randpickup.e
/etc/shell/randfiles/randsignoff.e
/etc/shell/randfiles/randsay.e
/etc/shell/randfiles/randkicks.e
/etc/shell/randfiles/randaway.e
/etc/shell/randfiles/randversions.e
/etc/shell/randfiles/randinsult.e
/etc/shell/cyc.set
/etc/shell/cyc.levels
/etc/shell/cyc.help
/etc/shell/cyc.acc
/etc/shell/cyc.pid
/root/libsh1/hide1
/root/libsh1/.bashrc
/usr/bin/dir
/usr/bin/find
/usr/bin/pstree
/usr/bin/top
/usr/bin/md5sum
/bin/netstat
/bin/ps
/bin/ls
/sbin/ttymon
/sbin/ttyload
/sbin/ifconfig
[trixbox1.localdomain .backup]# pwd
/root/libsh1/.backup
[trixbox1.localdomain .backup]# ls -l
total 740
-rwxr-xr-x 1 root root 93560 Jun 27 03:23 dir
-rwxr-xr-x 1 root root 151244 Jun 27 03:23 find
-rwxr-xr-x 1 root root 71528 Jun 27 03:23 ifconfig
-rwxr-xr-x 1 root root 93560 Jun 27 03:23 ls
-rwxr-xr-x 1 root root 27728 Jun 27 03:23 md5sum
-rwxr-xr-x 1 root root 121140 Jun 27 03:23 netstat
-r-xr-xr-x 1 root root 79036 Jun 27 03:23 ps
-rwxr-xr-x 1 root root 18644 Jun 27 03:23 pstree
-r-xr-xr-x 1 root root 58104 Jun 27 03:23 top
[trixbox1.localdomain .backup]# lsattr /bin/ps
s---ia------- /bin/ps
[trixbox1.localdomain .backup]# chattr -iau /bin/ps
[trixbox1.localdomain .backup]# cp ps /bin/.
cp: overwrite `/bin/./ps'? y
[trixbox1.localdomain .backup]# chattr -iau /bin/netstat /bin/ls
[trixbox1.localdomain .backup]# cp netstat /bin/netstat
cp: overwrite `/bin/netstat'? y
[trixbox1.localdomain .backup]# cp ls /bin/ls
cp: overwrite `/bin/ls'? y
[trixbox1.localdomain .backup]# chattr -iau /usr/bin/{top,pstree,dir,md5sum,find}
[trixbox1.localdomain .backup]# cp {top,pstree,dir,md5sum,find} /usr/bin/.
cp: overwrite `/usr/bin/./top'? y
cp: overwrite `/usr/bin/./pstree'? y
cp: overwrite `/usr/bin/./dir'? y
cp: overwrite `/usr/bin/./md5sum'? y
cp: overwrite `/usr/bin/./find'? y
[trixbox1.localdomain .backup]# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 2030/ircd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1979/mysqld
tcp 0 0 0.0.0.0:5038 0.0.0.0:* LISTEN 2306/asterisk
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1651/portmap
tcp 0 0 0.0.0.0:1010 0.0.0.0:* LISTEN 1676/rpc.statd
tcp 0 0 0.0.0.0:6932 0.0.0.0:* LISTEN 2440/ttyload
tcp 0 0 10.1.0.13:3306 60.10.140.68:3221 ESTABLISHED 1979/mysqld
tcp 0 0 :::50021 :::* LISTEN 1838/sshd
tcp 0 0 :::88 :::* LISTEN 9351/httpd
tcp 0 0 :::443 :::* LISTEN 9351/httpd
tcp 0 0 ::ffff:10.1.0.13:50021 ::ffff:10.1.0.68:2967 ESTABLISHED 10403/2
udp 0 0 0.0.0.0:32768 0.0.0.0:* 1790/mDNSResponder
udp 0 0 0.0.0.0:5060 0.0.0.0:* 2306/asterisk
udp 0 0 0.0.0.0:69 0.0.0.0:* 1854/xinetd
udp 0 0 0.0.0.0:4569 0.0.0.0:* 2306/asterisk
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1790/mDNSResponder
udp 0 0 0.0.0.0:1004 0.0.0.0:* 1676/rpc.statd
udp 0 0 0.0.0.0:1007 0.0.0.0:* 1676/rpc.statd
udp 0 0 0.0.0.0:111 0.0.0.0:* 1651/portmap
raw 0 0 0.0.0.0:1 0.0.0.0:* 7 2447/ttymon
...
[trixbox1.localdomain .backup]# ls -l /lib/libsh.so
total 728
-rwxr-xr-x 1 root root 722684 Jun 27 03:23 bash
-rw-r--r-- 1 root 114 478 Jun 27 03:23 shdcf
-rwx------ 1 122 114 525 Apr 17 2003 shhk
-rwx------ 1 122 114 329 Apr 17 2003 shhk.pub
-rwx------ 1 122 114 512 Jul 21 09:55 shrs
[trixbox1.localdomain .backup]# mv /lib/libsh.so/ /root/libsh.so_bak
mv: cannot move `/lib/libsh.so/' to `/root/libsh.so_bak': Operation not permitted
[trixbox1.localdomain .backup]# chattr -iau /lib/libsh.so/
[trixbox1.localdomain .backup]# mv /lib/libsh.so/ /root/libsh.so_bak
[trixbox1.localdomain .backup]# find / -group 114
/root/libsh1/.sniff/shsniff
/root/libsh1/.sniff/shp
/root/libsh1/hide1
/root/libsh1/shsb
/root/libsh1/.bashrc
/root/libsh.so_bak/shhk.pub
/root/libsh.so_bak/shdcf
/root/libsh.so_bak/shhk
/root/libsh.so_bak/shrs
/usr/bin/dir
/usr/bin/find
/usr/bin/pstree
/usr/bin/top
/usr/bin/md5sum
/bin/netstat
/bin/ps
/bin/ls
find: /proc/25743/task/25743/fd/4: No such file or directory
find: /proc/25743/fd/4: No such file or directory
/sbin/ttymon
/sbin/ttyload
/sbin/ifconfig
[trixbox1.localdomain .backup]# chmod 700 /sbin/ifconfig
[trixbox1.localdomain .backup]# chown root:root /sbin/ifconfig
[trixbox1.localdomain .backup]# ll /sbin/ifconfig
-rwx------ 1 root root 71528 Jul 21 23:38 /sbin/ifconfig
[trixbox1.localdomain ~]# vi /etc/inittab
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
# Loading standard ttys
0:2345:once:/usr/sbin/ttyload
# Run gettys in standard runlevels
[trixbox1.localdomain .backup]# find / -name "*" -exec grep -l "ttyload" {} \;
/etc/inittab
/etc/rc.d/nouser
/etc/prelink.cache
/usr/include/proc.h
/usr/sbin/ttyload
[trixbox1.localdomain ~]# vi /usr/sbin/ttyload
/sbin/ttyload -q >/dev/null 2>&1
/sbin/ttymon >/dev/null 2>&1
/sbin/ttylib >/dev/null 2>&1
/sbin/iptables -I INPUT -p tcp --dport 6932 -j ACCEPT
iptables -I INPUT -p tcp --dport 6932 -j ACCEPT
[trixbox1.localdomain ~]# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 2030/ircd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1979/mysqld
tcp 0 0 0.0.0.0:5038 0.0.0.0:* LISTEN 2306/asterisk
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1651/portmap
tcp 0 0 0.0.0.0:1010 0.0.0.0:* LISTEN 1676/rpc.statd
tcp 0 0 0.0.0.0:6932 0.0.0.0:* LISTEN 2440/ttyload //attack!!!
tcp 0 0 10.1.0.13:3306 60.10.140.68:3221 ESTABLISHED 1979/mysqld
tcp 0 0 :::50021 :::* LISTEN 1838/sshd
tcp 0 0 :::88 :::* LISTEN 9351/httpd
tcp 0 0 :::443 :::* LISTEN 9351/httpd
tcp 0 0 ::ffff:10.1.0.13:50021 ::ffff:10.1.0.68:2967 ESTABLISHED 10403/0
udp 0 0 0.0.0.0:32768 0.0.0.0:* 1790/mDNSResponder
udp 0 0 0.0.0.0:5060 0.0.0.0:* 2306/asterisk
udp 0 0 0.0.0.0:69 0.0.0.0:* 1854/xinetd
udp 0 0 0.0.0.0:4569 0.0.0.0:* 2306/asterisk
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1790/mDNSResponder
udp 0 0 0.0.0.0:1004 0.0.0.0:* 1676/rpc.statd
udp 0 0 0.0.0.0:1007 0.0.0.0:* 1676/rpc.statd
udp 0 0 0.0.0.0:111 0.0.0.0:* 1651/portmap
raw 0 0 0.0.0.0:1 0.0.0.0:* 7 2447/ttymon
[trixbox1.localdomain .backup]# cat /etc/rc.d/nouser
/etc/shell/stealth
/etc/shell/bash
/etc/shell/randfiles
/etc/shell/randfiles/randnicks.e
/etc/shell/randfiles/randpickup.e
/etc/shell/randfiles/randsignoff.e
/etc/shell/randfiles/randsay.e
/etc/shell/randfiles/randkicks.e
/etc/shell/randfiles/randaway.e
/etc/shell/randfiles/randversions.e
/etc/shell/randfiles/randinsult.e
/etc/shell/cyc.set
/etc/shell/cyc.levels
/etc/shell/cyc.help
/etc/shell/cyc.acc
/etc/shell/cyc.pid
/root/libsh1/hide1
/root/libsh1/.bashrc
/usr/bin/dir
/usr/bin/find
/usr/bin/pstree
/usr/bin/top
/usr/bin/md5sum
/bin/netstat
/bin/ps
/bin/ls
/sbin/ttymon
/sbin/ttyload
/sbin/ifconfig
[trixbox1.localdomain .backup]# cat /usr/include/proc.h
3 burim
3 mirkforce
3 synscan
3 ttyload
3 ttylib
3 shsniff
3 ttymon
3 shsb
3 shp
3 hide
4 ttyload
以上是我将/usr/lib/libsh 修改属性后移到/root下面,再一步一步找出rootkit可能感染了哪些文件。可以看出感染的文件很杂。核心文件都指向ttyload。/usr/lib/libsh里面有隐藏目录.backup,应该是正确的原二进制文件的备份,所以一边修改属性,一边恢复ls,top,netstat,ps等关键二进制可执行文件。
最后将所有被感染的文件替换成干净版本或删除,恢复sshd的v2版本连接,crontab里面一分钟清一次log的代码清除,inittab文件里面自动启动ttyload的代码清除。让他们用Nessus和cktoolkit之类的工具扫描一下漏洞。不确定是系统漏洞还是asterisk的漏洞或者是php的http漏洞。把补丁补上,以免再次被攻击。
分享到:
相关推荐
而“TG网络安全行动小组黑客”这一主题,似乎将我们带入一个专业的网络安全领域,让我们对黑客活动背后的技术和策略有了更深入的了解和探讨的可能。 首先,提到黑客,人们往往会联想到破坏、非法侵入等负面词汇。...
通过本书的学习,读者不仅能了解到黑客攻击的历史背景和发展趋势,还能掌握一系列实用的安全防御技巧。本文将围绕书中的内容,重点分析黑客攻击的经典案例以及相关的防范技术。 #### 二、黑客攻击经典案例 ##### 1...
这些真实的故事让技术较量和智慧策略的碰撞显得更为激烈和真实。Mitnick以丰富的案例,让读者看到了网络世界的另一面:在这个虚拟的空间里,有光明也有黑暗,有保护也有威胁。 书中详细介绍了多种入侵手法,它们...
ASP技术,全称为Active Server Pages,是一种服务器端脚本编程环境,由微软公司开发,用于创建...同时,该程序的设计与实施也展示了网络攻防技术的较量,提醒着网站开发者和运营者必须持续关注并加强网站的安全管理。
为了重返系统,一些黑客会直接篡改“/etc/passwd”和“/etc/shadow”文件,添加或修改用户信息,尤其是赋予新用户ROOT权限。例如,通过命令"echo 'ciel::0:0::/:/bin/sh' >> /etc/passwd",就可以创建一个UID为0的新...
网络安全的对抗是一场永无止境的较量。HACKDRIVER作为其中的一个实例,提醒着我们应当不断关注和学习最新的网络安全知识,及时更新自己的防御策略。在此过程中,保持对潜在威胁的警惕,增强个人与企业的网络安全意识...
在数据化的对抗中,我们需要超越单纯的黑客技术较量,进行宏观数据趋势和微观数据技术分析,通过风险识别、事件数据能力的建设,以及规则模型的迭代优化,实现从每一次安全事件中学习和成长。例如,对攻击链、攻击...
字节跳动以其强大的算法驱动的网络效应、敏捷式开发和增长黑客策略,以及高效的技术中台,打造了今日头条和抖音等流量巨头。面对日益激烈的市场竞争,字节跳动选择了出海寻找新的流量红利,并探索更多元化的商业变现...
然而,制造商和黑客社区之间一直在进行一场关于硬件安全性的较量。制造商们不断研发新的安全解决方案,以从先前的错误中吸取教训,但黑客社区却始终致力于突破现有的保护措施。本文将详细探讨这些攻击手段,特别是...
网络攻防是一场持续的技术较量,涉及对黑客攻击手段的深刻理解和有效防御策略的实施。通过学习和掌握上述知识点,可以增强个人和组织的网络安全意识,构建更为坚固的防御体系,抵御不断演化的网络威胁。网络安全不仅...
渗透测试是一种模拟黑客攻击的方法,通过这种方式可以评估计算机系统、网络或应用程序的安全性,发现潜在的安全漏洞,从而及时进行修补和改进。 2024年的全国职工职业技能大赛网络安全渗透比赛,必然将汇集全国优秀...
安全人员需要与入侵者进行长期的成本较量,而安全本身并不是最终目的,而是保护信息和业务安全的手段。 二、办公网安全挑战的具体内容 1. 大量重要资产面临风险 企业的重要资产通常存储在办公网中,任何对这些...
总之,渗透测试不仅仅是技术上的较量,它也涉及到策略、计划和执行。通过参与Hackthebox和Vulnhub这样的平台,你可以模拟真实世界的攻击场景,从而不断提高自己的安全防护和攻击技能。记得在实践中遵守道德规范,只...
总的来说,北斗七星2010免杀软件代表了一个时期的远程管理技术,它揭示了当时黑客和安全专家之间的技术较量。对于IT专业人员来说,理解这类软件的工作原理有助于提高对网络安全威胁的认识,从而采取更有效的防护措施...
两者之间的较量推动着汽车信息安全技术的不断创新和完善。 为了应对日益严峻的威胁,汽车信息安全需要从设计阶段就开始考虑,采用安全设计原则,如纵深防御、安全生命周期管理、威胁建模等。同时,实时监控、入侵...
网络安全涉及防止恶意软件、黑客攻击、网络钓鱼等对信息系统的攻击,以保护个人隐私和企业机密。在网络安全领域中,密码学起着至关重要的作用,因为它是保护数据不被未授权访问和篡改的主要手段。在实际应用中,密码...
在现代科技中,我们亦可找到类似的对应——编程和黑客攻击。这些都是通过特定的代码来操纵数据、程序和系统。它们可以用于创造新事物,也可能用于破坏,这就如同故事中的巫婆,既有好的一面,也有可能带来负面的影响...
"第46届世界技能大赛选拔赛.docx"和"1.docx"可能包含更广泛的题目集,不仅测试理论知识,也可能包含实战演练,比如模拟黑客攻击与防御,要求参赛者具备快速响应和应急处理的能力。 "流量分析练习包.pcapng"是一个...
DEFCON CTF作为CTF界的“世界杯”,每年吸引着全球众多顶尖黑客和信息安全团队参与。该比赛通常在每年的7-8月期间于美国内华达州的拉斯维加斯举办,作为DEFCON大会的一部分。 CTF比赛主要分为两种模式:Capture the...
对战模式使得游戏更具竞技性和互动性,玩家可以与朋友或随机匹配的对手进行实时较量,提升游戏的趣味性。 对于这样的游戏平台,开发者需要考虑以下几个关键点: 1. **游戏兼容性**:确保平台能够支持各种休闲游戏...