分享
 
 
 

Linux如何阻止系统攻击者(三)

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

上一节中说过,当netstat,ls等命令被修改,从而发现系统已经被入侵,下面该怎么办?根据你系统的重要性的不同,你有很多种选择。但是我推荐对用户目录,password及其他关键的系统文件进行备份。然后重新安装系统。但是不要随便就将备份的文件拷贝到新系统,因为攻击者可能在这些文件中隐藏一些非法的东西。

也可以不重新安装系统,而是通过TCP wrapper来限制对主机的访问,并且关闭非关键的网络服务。然后更新被影响的包。重新干净的启动系统是很重要的,但是要实现这点并不容易。若你发现procps或net-tools包已经被攻击者修改,第一件事情是重新安装干净的包来替换被攻击者做了手脚留下后门的包。一般最好从你的系统发布者处得到最新的包来重新安装一旦攻击者进入到系统其就将在系统上存放一些工具并且将之隐藏起来,使你不容易发现。下面是一个事实在在的被攻击者入侵的系统的实例。当系统被攻击者入侵,服务器被限制网络访问,并且替代所有的受影响的包。然后就需要通过仔细查看log文件来发现重复的企图进入系统。查看/etc/passwd文件,发现一个不属于合法的用户。进入到该用户的目录下:/home/jon,运行 "ls -l"得到如下的内容:

. .. .. .bashrc .bash_history .screenrc emech.tar.gz

除了一个名字为emech.tar.gz的文件以外,看不出什么异常现象。但是仔细观察,你就会发现系统有两个 ".."目录。(指该子目录的上一级目录)是的确很奇怪,我使用命令"cd .."我就会进入到/home目录。原来其中子目录名字是在两个点后面有一个空格。(".. ")你可以通过如下命令发现:

# cd /home/jon

# echo .* | cat -v

. .. .. .bashrc .bash_history .screenrc emech.tar.gz

仔细观察可以发现每个子目录都是被一个空格隔开,而在第二个“..”和.bashrc之间有两个空格。这就意味着第二个".."子目录其实为点-点-空格。下面进入到该目录:

# cd ".. "

然后列出该目录下的内容:

#ls

randfiles mech.set mech.pid checkmech cpu.memory

mech.help mech.usage mech mech.levels emech.users

psdevtab

下一步我们再查看是否其还在其他地方隐藏了文件:

# find / -user jon -print

除了/home/jon目录以外,还发现如下的内容;

/usr/local/bin/.httpd

/tmp/cl

/tmp/.l/bcast

/tmp/.l/.l

/tmp/.l/imapd

/tmp/.l/log

/tmp/.l/pscan

/tmp/.l/pscan.c

/tmp/.l/rpc

/tmp/.l/slice2

/tmp/.l/sniffer

/tmp/.l/sxploit

/tmp/.l/thc

/tmp/.l/ufs.c

这个入侵者已经在系统上安装了Sniffers、端口扫描器,他给自己营造了一个很好的"窝" 。在查看中,还在合法的用户的目录下发现了一个可怕的名为"tcp.log"的文件。文件该文件有几百行长,包括每一次telnet 及 ftp 出入该系统的连接!除了通告在该文件中出现的可能已经被入侵的机器管理员应该重新安装系统以外,我同样告诉他们需要重新系统的所有的用户的口令。

下面有一些例子来帮助你搜索隐藏的危险。首先查看位于用户目录的具有"suid"或"guid"的文件。这些文件的可执行属性位为s而不是x。如:

#ls -s /usr/bni/passwd

-r-s--x--x 1 root root 10704 Apr 14 1999 /usr/bin/passwd

属性第四位的 "s" 表示该命令被执行时,该进程的实际有效用户ID就变为root用户。为了允许普通用户修改自己的密码,这是必须的。第七位的x若为s则表示别的组的用户若运行该程序则该程序则具有用户所有组的有效组ID。使程序能冒充特定的用户或者组并不是一件有害的事情。但是一般来说非管理用户在其目录下不应该具root-suid 程序。我们可以使用下面的命令来查寻这样的文件:

# find /home -perm -4000 -o -perm -2000 -print

下一步我们继续寻找入侵者留下的程序和文件,所以需要一个快速的寻找隐藏目录的方法。下面的方法就是寻找如".kde"的隐藏目录。你也可以找到如".. "或“..."等目录:cracker.

# find / -type d -name ".*" -print

"-type d"选项指仅仅列出目录。这个命令不会不会将"."或".."列出。

作为一个好的系统管理者,为了击败攻击者的攻击行动,最好的方法是了解攻击者的工作原理和机制。它们使用了那些工具,它们如何操作入侵等等。所以深入理解掌握我这里讲解的各种网络工具是很有必要的。

上个星期,我用实例的方式说到了了一个攻击者使用sniffer监听网络流来搜集用户名和密码。下面我们就详细说明sniffer是如何工作的。简单的说,sniffer是一个使你能检测你的网络接口接收到所有的数据报。一般情况下,计算机仅仅接受目的地址是自身的数据报,而sniffer使网络接口进入杂错模式,从而可以接受网卡收到的所有的数据报。

若你运行ifconfig eth0命令,会得到下面的结果:

eth0 Link encap:Ethernet HWaddr 00:C0:4F:E3:C1:8F

inet addr:192.168.22.2 Bcast:192.168.22.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:49448 errors:0 dropped:0 overruns:0 frame:0

TX packets:33859 errors:0 dropped:0 overruns:0 carrier:0

collisions:6 txqueuelen:100

Interrupt:10 Base address:0x300

打开两个终端,一个终端里运行sniffer器-sniffit;

# sniffit -i

另外一个虚拟终端里你可以再次运行ifconfig eth0。你将会发现输出中有下面的内容:

UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

注意和上面相比较,增加了一个单词"PROMISC" 这是杂错模式(promiscuous mode)的缩写,

sniffit是一个轻量级的,基于终端的sniffer器。你可以从http://reptile.rug.ac.be/~coder/sniffit/sniffit.html得到它。

另外一个类似的sniffer是netwatch,你可以从http://www.slctech.org/~mackay/netwatch.html得到它。

如果你不希望在系统中安装另外的sniffer,你可以使用系统中带有的一个工具:tcpdump 这个工具虽然不如前面两个工具那么华丽,但是她可以完成所有同样的功能。

# tcpdump host www.linuxjournal.com -l | tee /tmp/tcpdump.out

其中-l指示tcpdump将输出数据存进入一个文件中。下面是输出的内容:

16:41:49.101002 www2.linuxjournal.com.www > marcel.somedomain.com.1432: F

2303148464:2303148464(0) ack 1998428290 win 16352

16:41:49.101206 marcel.somedomain.com.1432 > www2.linuxjournal.com.www: . ack

1 win 32120 (DF)

16:41:50.001024 www2.linuxjournal.com.www > marcel.somedomain.com.1429: F

1805282316:1805282316(0) ack 1988937134 win 16352

16:41:50.001215 marcel.somedomain.com.1429 > www2.linuxjournal.com.www: . ack

1 win 32120 (DF)

16:41:50.840998 www2.linuxjournal.com.www > marcel.somedomain.com.1431: F

1539885010:1539885010(0) ack 1997163524 win 16352

16:41:50.841198 marcel.somedomain.com.1431 > www2.linuxjournal.com.www: . ack

1 win 32120 (DF)

16:41:51.494356 marcel.somedomain.com.1429 > www2.linuxjournal.com.www: P

1:335(334) ack 1 win 32120 (DF)

16:41:51.497003 marcel.somedomain.com.1433 > www2.linuxjournal.com.www: S

2019129753:2019129753(0) win 32120

(DF)

16:41:51.671023 www2.linuxjournal.com.www > marcel.somedomain.com.1429:

R

Linux系统中可以得到有很多种的sniffer。攻击者在入侵系统以后,也许会使用修改的ps命令来隐藏其运行的sniffer器。或者将其改为一个看上去很正常的进程的名字。

在Linux环境下,比较著名的后门程序名字是rootkit,在各个搜索引擎都可以找到相关资料。你可以尝试使用这些工具来促进你对攻击者使用工具的了解

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有