Linux上如何阻止系统攻击者

转载 2007年09月25日 02:13:00
原贴:http://www.linuxpk.com/42410.html

在网络攻击环境下,这却是可能发生的。当一个攻击 者利用一个系统漏洞非法入侵进入到你的系统。当你使用ps命令列出系统中的所有的进程时,却看不到什么异常的证据。你查看你的password文件,一切 也是那么的正常。到底发生了什么事情呢?当系统进入到你的系统以后,第一步要做的事情就是取代系统上某些特定的文件:如netstat命令等。当你使用 netstat -a命令时,就不会显示系统攻击者存在的信息。当然攻击者将替代所有的可能泄露其存在的文件。一般来说包括:

  /bin/ps

  /bin/netstat

  /usr/bin/top

  由于这些文件已经被取代。所以简单的利用ls命令查看这些文件是看不出什么破绽的。有若干种方法你可以验证系统文件的完整性。如果你安装的是Red Hat, Caldera, TurboLinux或任何使用RPM的系统。你可以利用RPM来验证系统文件的完整性:

  首先你应该查明你的那些你需要查看的文件来自哪个软件包,使用rpm命令你可以查明某个文件属于某个包:

  # rpm -qf /bin/netstat

  net-tools-1.51-3

  然后,可以扫描整个rpm包来查看那些发生了改变。对没有发生改变的包使用该命令将没有任何输出信息,如下所示:

  # rpm -V net-tools

  #

  将netstat的5.2版本的二进制可执行文件替换为6.0的版本以后再使用该命令的结果为:

  .......T /bin/netstat

  这说明/bin/netstat/文件已经被修改。若我使用rpm -qf测试ps和top命令可以得到其属于包procps,然后在验证包procps的完整性。下面是一个被黑的站点的结果:

  # rpm -qf /bin/ps

  procps.2.0.2-2

  # rpm -V procps

  SM5..UGT /bin/ps

  SM5..UGT /usr/bin/top

  攻击者入侵到系统中,并且用自己的ps及top命令替代了我们系统中的命令。从而使管理员看不到其运行的进程,也许是一个sniffer来监听所有的用户所有进出网络的数据并找寻到密码信息。

  下面是一个小的script来扫描你系统的所有的rpm库,并检查所有的包是否被篡改。但是应该注意的是并不是所有该scripts报告的问题都是说明该系统文件被攻击者破坏。例如你的apssword文件一般肯定和你安装系统时是不同的:

  #!/bin/bash

  #

  # Run through rpm database and report inconsistencies

  #

  for rpmlist in `rpm -qa` # These quotes are back quotes

  do

  echo " ----- $rpmlist -----" ; rpm -V $rpmlist

  done > /tmp/rpmverify.out

   当你运行该scripts时,输出被定向到文件/tmp/rpmverify.out你可以使用less命令查看该文件。但是由于文本文件如: /etc/passwd, /etc/inetd.conf等很可能显示为被修改过。但是你如何知道这些是管理员自己修改的还是入侵者修改的呢方法是在你确保你的系统是干净的,没有 被攻击者入侵时,你为这些系统文件创建指纹信息。在你怀疑你的系统被入侵时使用这些这些指纹信息来判定系统是否被入侵。创建文件的指纹信息是通过命令 md5sum 来实现的:

  # md5sum /etc/passwd

  d8439475fac2ea638cbad4fd6ca4bc22 /etc/passwd

  # md5sum /bin/ps

  6d16efee5baecce7a6db7d1e1a088813 /bin/ps

  # md5sum /bin/netsat

  b7dda3abd9a1429b23fd8687ad3dd551 /bin/netstat

  这些数据是我的系统上的文件的指纹信息。不同的系统上的文件的 指纹信息可能是不同的,你应该是使用md5sum来计算自己系统文件的指纹信息。下面是一些你应该创建指纹信息的文件;

  /usr/bin/passwd

  /sbin/portmap

  /bin/login

  /bin/ls

  /usr/bin/top

  /etc/inetd.conf

  /etc/services

  通过指纹信息你可以决定是否有系统文件被修改。
 

Linux操作系统上如何阻止系统攻击者

在网络攻击环境下,这却是可能发生的。当一个攻击者利用一个系统漏洞非法入侵进入到你的系统。当你使用ps命令列出系统中的所有的进程时,却看不到什么异常的证据。你查看你的password文件,一切也是那么的...
  • guangshi007
  • guangshi007
  • 2008年05月12日 22:12
  • 402

阻止攻击者对Windows注册表的远程访问

  • Benjay77
  • Benjay77
  • 2009年07月18日 20:28
  • 349

防止别人ping通你的linux主机

在/etc/rc.d/rc.local文件里添加一行命令:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 这样每次启动系统后都将自动运行,可以阻止你的...
  • hbuxiaoshe
  • hbuxiaoshe
  • 2009年11月18日 17:08
  • 847

Linux(2):Linux系统关闭与重启

因为Unix/Liunx采用异步写和延迟写机制,大部分数据操作在缓冲区进行,并没有实时的写入设备,如果强行关机会导致数据丢失,严重者可造成系统的瘫痪。因此,在切断电源之前必须先关闭系统,绝不能断电了事...
  • zd2014zd
  • zd2014zd
  • 2016年03月30日 15:15
  • 516

阻止攻击者对系统注册表的远程访问

按照本文中所提及的方式保护Windows注册表,能够防止攻击者远程攻击它。 问题 注册表是Windows操作系统的核心。但是在缺省情况下,所有基于Windows的计算机的注册表在网络上都是可以被访问到...
  • cnwcnw
  • cnwcnw
  • 2007年09月27日 15:44
  • 177

DOM事件绑定与行为阻止

在form表单上绑定onsubmit事件,并在对应的事件函数中return false; 以阻止表单的提交. 0级DOM绑定方式,可以阻止, 但2级DOM绑定方式不能阻止. 0级DOM代码如下, ...
  • hlzzy123456
  • hlzzy123456
  • 2016年07月13日 18:47
  • 633

android wake_lock 在底层实现系统不休眠

说明: 1、三星方案 2、具体实现,添加一下三行代码: 定义: static struct wake_lock wake_lock_always;初始化: wake_lock_init(&w...
  • lindonghai
  • lindonghai
  • 2016年07月06日 16:47
  • 1513

登入系统后加载ActiveX控件已被阻止的解决方法

在登入系统之后,系统会自动加载控件,所以浏览器安全级别太高的话是无法加载的,所以要对浏览器进行设置,下面是在加载控件时经常出现的错误,如图5-1和图5-2。   图5-1 ActiveX控件已被阻止 ...
  • w630636065
  • w630636065
  • 2014年02月12日 08:38
  • 9923

vc 阻止电脑休眠

vc 阻止电脑休眠 主要是使用API SetThreadExecutionState 详情参考 调用过这个API的线程不退出的话,系统就一直不会进入睡眠状态。 De...
  • linlin003
  • linlin003
  • 2017年05月25日 16:58
  • 629

未启动的应用无法监听到系统广播

在 3.1 版本以后,新安装而从未启动过的app不能收到系统的广播(启动完成,网络状态变化之类的); 解决方案: 1. 将app做成系统应用,直接安装在 system/app 目录下 2. 通过第三...
  • hang2
  • hang2
  • 2015年04月27日 17:52
  • 679
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux上如何阻止系统攻击者
举报原因:
原因补充:

(最多只允许输入30个字)