对网络安全技术及其方案对策的分析
[ 2007-03-25 03:32:03 | 作者: sun ]
内部网
目前的局域网基本上都采用以广播为技术基础的以太网,任何两个节点之间的通信数据包,不仅为这两个节点的网卡所接收,也同时为处在同一以太网上的任何一个节点的网卡所截取。因此,黑客只要接入以太网上的任一节点进行侦听,就可以捕获发生在这个以太网上的所有数据包,对其进行解包分析,从而窃取关键信息,这就是以太网所固有的安全隐患。
A.局域网安全
事实上,Internet上许多免费的黑客工具,如SATAN、ISS、NETCAT等等,都把以太网侦听作为其最基本的手段。
当前,局域网安全的解决办法有以下几种:
1.网络分段
网络分段通常被认为是控制网络广播风暴的一种基本手段,但其实也是保证网络安全的一项重要措施。其目的就是将非法用户与敏感的网络资源相互隔离,从而防止可能的非法侦听,网络分段可分为物理分段和逻辑分段两种方式。
目前,海关的局域网大多采用以交换机为中心、路由器为边界的网络格局,应重点挖掘中心交换机的访问控制功能和三层交换功能,综合应用物理分段与逻辑分段两种方法,来实现对局域网的安全控制。例如:在海关系统中普遍使用的DEC MultiSwitch 900的入侵检测功能,其实就是一种基于MAC地址的访问控制,也就是上述的基于数据链路层的物理分段。
2.以交换式集线器代替共享式集线器
对局域网的中心交换机进行网络分段后,以太网侦听的危险仍然存在。这是因为网络最终用户的接入往往是通过分支集线器而不是中心交换机,而使用最广泛的分支集线器通常是共享式集线器。这样,当用户与主机进行数据通信时,两台机器之间的数据包(称为单播包Unicast Packet)还是会被同一台集线器上的其他用户所侦听。一种很危险的情况是:用户TELNET到一台主机上,由于TELNET程序本身缺乏加密功能,用户所键入的每一个字符(包括用户名、密码等重要信息),都将被明文发送,这就给黑客提供了机会。
因此,应该以交换式集线器代替共享式集线器,使单播包仅在两个节点之间传送,从而防止非法侦听。当然,交换式集线器只能控制单播包而无法控制广播包(Broadcast Packet)和多播包(Multicast Packet)。所幸的是,广播包和多播包内的关键信息,要远远少于单播包。
3.VLAN的划分
为了克服以太网的广播问题,除了上述方法外,还可以运用VLAN(虚拟局域网)技术,将以太网通信变为点到点通信,防止大部分基于网络侦听的入侵。
目前的VLAN技术主要有三种:基于交换机端口的VLAN、基于节点MAC地址的VLAN和基于应用协议的VLAN。基于端口的VLAN虽然稍欠灵活,但却比较成熟,在实际应用中效果显著,广受欢迎。基于MAC地址的VLAN为移动计算提供了可能性,但同时也潜藏着遭受MAC欺诈攻击的隐患。而基于协议的VLAN,理论上非常理想,但实际应用却尚不成熟。
在集中式网络环境下,我们通常将中心的所有主机系统集中到一个VLAN里,在这个VLAN里不允许有任何用户节点,从而较好地保护敏感的主机资源。在分布式网络环境下,我们可以按机构或部门的设置来划分VLAN。各部门内部的所有服务器和用户节点都在各自的VLAN内,互不侵扰。
VLAN内部的连接采用交换实现,而VLAN与VLAN之间的连接则采用路由实现。目前,大多数的交换机(包括海关内部普遍采用的DEC MultiSwitch 900)都支持RIP和OSPF这两种国际标准的路由协议。如果有特殊需要,必须使用其他路由协议(如CISCO公司的EIGRP或支持DECnet的IS-IS),也可以用外接的多以太网口路由器来代替交换机,实现VLAN之间的路由功能。当然,这种情况下,路由转发的效率会有所下降。
无论是交换式集线器还是VLAN交换机,都是以交换技术为核心,它们在控制广播、防止黑客上相当有效,但同时也给一些基于广播原理的入侵监控技术和协议分析技术带来了麻烦。因此,如果局域网内存在这样的入侵监控设备或协议分析设备,就必须选用特殊的带有SPAN(Switch Port Analyzer)功能的交换机。这种交换机允许系统管理员将全部或某些交换端口的数据包映射到指定的端口上,提供给接在这一端口上的入侵监控设备或协议分析设备。笔者在厦门海关外部网设计中,就选用了Cisco公司的具备SPAN功能的Catalyst系列交换机,既得到了交换技术的好处,又使原有的Sniffer协议分析仪“英雄有用武之地”。
广域网
B.广域网安全
由于广域网大多采用公网来进行数据传输,信息在广域网上传输时被截取和利用的可能性就比局域网要大得多。如果没有专用的软件对数据进行控制,只要使用Internet上免费下载的“包检测”工具软件,就可以很容易地对通信数据进行截取和破译。
因此,必须采取手段,使得在广域网上发送和接收信息时能够保证:
①除了发送方和接收方外,其他人是无法知悉的(隐私性);
②传输过程中不被篡改(真实性);
③发送方能确知接收方不是假冒的(非伪装性);
④发送方不能否认自己的发送行为(不可抵赖性)。
为了达到以上安全目的,广域网通常采用以下安全解决办法:
1.加密技术
加密型网络安全技术的基本思想是不依赖于网络中数据通道的安全性来实现网络系统的安全,而是通过对网络数据的加密来保障网络的安全可靠性。数据加密技术可以分为三类,即对称型加密、不对称型加密和不可逆加密。
其中不可逆加密算法不存在密钥保管和分发问题,适用于分布式网络系统,但是其加密计算量相当可观,所以通常用于数据量有限的情形下使用。计算机系统中的口令就是利用不可逆加密算法加密的。近年来,随着计算机系统性能的不断提高,不可逆加密算法的应用逐渐增加,常用的如RSA公司的MD5和美国国家标准局的SHS。在海关系统中广泛使用的Cisco路由器,有两种口令加密方式:Enable Secret和Enable Password。其中,Enable Secret就采用了MD5不可逆加密算法,因而目前尚未发现破解方法(除非使用字典攻击法)。而Enable Password则采用了非常脆弱的加密算法(即简单地将口令与一个常数进行XOR与或运算),目前至少已有两种破解软件。因此,最好不用Enable Password。
2.VPN技术
VPN(虚拟专网)技术的核心是采用隧道技术,将企业专网的数据加密封装后,透过虚拟的公网隧道进行传输,从而防止敏感数据的被窃。VPN可以在Internet、服务提供商的IP、帧中继或ATM网上建立。企业通过公网建立VPN,就如同通过自己的专用网建立内部网一样,享有较高的安全性、优先性、可靠性和可管理性,而其建立周期、投入资金和维护费用却大大降低,同时还为移动计算提供了可能。因此,VPN技术一经推出,便红遍全球。
但应该指出的是,目前VPN技术的许多核心协议,如L2TP、IPSec等,都还未形成通用标准。这就使得不同的VPN服务提供商之间、VPN设备之间的互操作性成为问题。因此,企业在VPN建网选型时,一定要慎重选择VPN服务提供商和VPN设备。
3.身份认证技术
对于从外部拨号访问总部内部网的用户,由于使用公共电话网进行数据传输所带来的风险,必须更加严格控制其安全性。一种常见的做法是采用身份认证技术,对拨号用户的身份进行验证并记录完备的登录日志。较常用的身份认证技术,有Cisco公司提出的TACACS+以及业界标准的RADIUS。笔者在厦门海关外部网设计中,就选用了Cisco公司的CiscoSecure ACS V2.3软件进行RADIUS身份认证。
外部网
C.外部网安全
海关的外部网建设,通常指与Internet的互联及与外部企业用户的互联两种。无论哪一种外部网,都普遍采用基于TCP/IP的Internet协议族。Internet协议族自身的开放性极大地方便了各种计算机的组网和互联,并直接推动了网络技术的迅猛发展。但是,由于在早期网络协议设计上对安全问题的忽视,以及Internet在使用和管理上的无政府状态,逐渐使Internet自身的安全受到威胁,黑客事件频频发生。
对外部网安全的威胁主要表现在:非授权访问、冒充合法用户、破坏数据完整性、干扰系统正常运行、利用网络传播病毒、线路窃听等。
外部网安全解决办法主要依靠防火墙技术、入侵检测技术和网络防病毒技术。在实际的外部网安全设计中,往往采取上述三种技术(即防火墙、入侵检测、网络防病毒)相结合的方法。笔者在厦门海关外部网设计中,就选用了NAI公司最新版本的三宿主自适应动态防火墙Gauntlet Active Firewall。该防火墙产品集成了Gauntlet Firewall、CyberCop Scanner、CyberCop Monitor、WebShield for Firewall等套件,将防火墙技术、入侵检测技术与网络防病毒技术融为一体,紧密结合,相得益彰,性价比比较高。
目前的局域网基本上都采用以广播为技术基础的以太网,任何两个节点之间的通信数据包,不仅为这两个节点的网卡所接收,也同时为处在同一以太网上的任何一个节点的网卡所截取。因此,黑客只要接入以太网上的任一节点进行侦听,就可以捕获发生在这个以太网上的所有数据包,对其进行解包分析,从而窃取关键信息,这就是以太网所固有的安全隐患。
A.局域网安全
事实上,Internet上许多免费的黑客工具,如SATAN、ISS、NETCAT等等,都把以太网侦听作为其最基本的手段。
当前,局域网安全的解决办法有以下几种:
1.网络分段
网络分段通常被认为是控制网络广播风暴的一种基本手段,但其实也是保证网络安全的一项重要措施。其目的就是将非法用户与敏感的网络资源相互隔离,从而防止可能的非法侦听,网络分段可分为物理分段和逻辑分段两种方式。
目前,海关的局域网大多采用以交换机为中心、路由器为边界的网络格局,应重点挖掘中心交换机的访问控制功能和三层交换功能,综合应用物理分段与逻辑分段两种方法,来实现对局域网的安全控制。例如:在海关系统中普遍使用的DEC MultiSwitch 900的入侵检测功能,其实就是一种基于MAC地址的访问控制,也就是上述的基于数据链路层的物理分段。
2.以交换式集线器代替共享式集线器
对局域网的中心交换机进行网络分段后,以太网侦听的危险仍然存在。这是因为网络最终用户的接入往往是通过分支集线器而不是中心交换机,而使用最广泛的分支集线器通常是共享式集线器。这样,当用户与主机进行数据通信时,两台机器之间的数据包(称为单播包Unicast Packet)还是会被同一台集线器上的其他用户所侦听。一种很危险的情况是:用户TELNET到一台主机上,由于TELNET程序本身缺乏加密功能,用户所键入的每一个字符(包括用户名、密码等重要信息),都将被明文发送,这就给黑客提供了机会。
因此,应该以交换式集线器代替共享式集线器,使单播包仅在两个节点之间传送,从而防止非法侦听。当然,交换式集线器只能控制单播包而无法控制广播包(Broadcast Packet)和多播包(Multicast Packet)。所幸的是,广播包和多播包内的关键信息,要远远少于单播包。
3.VLAN的划分
为了克服以太网的广播问题,除了上述方法外,还可以运用VLAN(虚拟局域网)技术,将以太网通信变为点到点通信,防止大部分基于网络侦听的入侵。
目前的VLAN技术主要有三种:基于交换机端口的VLAN、基于节点MAC地址的VLAN和基于应用协议的VLAN。基于端口的VLAN虽然稍欠灵活,但却比较成熟,在实际应用中效果显著,广受欢迎。基于MAC地址的VLAN为移动计算提供了可能性,但同时也潜藏着遭受MAC欺诈攻击的隐患。而基于协议的VLAN,理论上非常理想,但实际应用却尚不成熟。
在集中式网络环境下,我们通常将中心的所有主机系统集中到一个VLAN里,在这个VLAN里不允许有任何用户节点,从而较好地保护敏感的主机资源。在分布式网络环境下,我们可以按机构或部门的设置来划分VLAN。各部门内部的所有服务器和用户节点都在各自的VLAN内,互不侵扰。
VLAN内部的连接采用交换实现,而VLAN与VLAN之间的连接则采用路由实现。目前,大多数的交换机(包括海关内部普遍采用的DEC MultiSwitch 900)都支持RIP和OSPF这两种国际标准的路由协议。如果有特殊需要,必须使用其他路由协议(如CISCO公司的EIGRP或支持DECnet的IS-IS),也可以用外接的多以太网口路由器来代替交换机,实现VLAN之间的路由功能。当然,这种情况下,路由转发的效率会有所下降。
无论是交换式集线器还是VLAN交换机,都是以交换技术为核心,它们在控制广播、防止黑客上相当有效,但同时也给一些基于广播原理的入侵监控技术和协议分析技术带来了麻烦。因此,如果局域网内存在这样的入侵监控设备或协议分析设备,就必须选用特殊的带有SPAN(Switch Port Analyzer)功能的交换机。这种交换机允许系统管理员将全部或某些交换端口的数据包映射到指定的端口上,提供给接在这一端口上的入侵监控设备或协议分析设备。笔者在厦门海关外部网设计中,就选用了Cisco公司的具备SPAN功能的Catalyst系列交换机,既得到了交换技术的好处,又使原有的Sniffer协议分析仪“英雄有用武之地”。
广域网
B.广域网安全
由于广域网大多采用公网来进行数据传输,信息在广域网上传输时被截取和利用的可能性就比局域网要大得多。如果没有专用的软件对数据进行控制,只要使用Internet上免费下载的“包检测”工具软件,就可以很容易地对通信数据进行截取和破译。
因此,必须采取手段,使得在广域网上发送和接收信息时能够保证:
①除了发送方和接收方外,其他人是无法知悉的(隐私性);
②传输过程中不被篡改(真实性);
③发送方能确知接收方不是假冒的(非伪装性);
④发送方不能否认自己的发送行为(不可抵赖性)。
为了达到以上安全目的,广域网通常采用以下安全解决办法:
1.加密技术
加密型网络安全技术的基本思想是不依赖于网络中数据通道的安全性来实现网络系统的安全,而是通过对网络数据的加密来保障网络的安全可靠性。数据加密技术可以分为三类,即对称型加密、不对称型加密和不可逆加密。
其中不可逆加密算法不存在密钥保管和分发问题,适用于分布式网络系统,但是其加密计算量相当可观,所以通常用于数据量有限的情形下使用。计算机系统中的口令就是利用不可逆加密算法加密的。近年来,随着计算机系统性能的不断提高,不可逆加密算法的应用逐渐增加,常用的如RSA公司的MD5和美国国家标准局的SHS。在海关系统中广泛使用的Cisco路由器,有两种口令加密方式:Enable Secret和Enable Password。其中,Enable Secret就采用了MD5不可逆加密算法,因而目前尚未发现破解方法(除非使用字典攻击法)。而Enable Password则采用了非常脆弱的加密算法(即简单地将口令与一个常数进行XOR与或运算),目前至少已有两种破解软件。因此,最好不用Enable Password。
2.VPN技术
VPN(虚拟专网)技术的核心是采用隧道技术,将企业专网的数据加密封装后,透过虚拟的公网隧道进行传输,从而防止敏感数据的被窃。VPN可以在Internet、服务提供商的IP、帧中继或ATM网上建立。企业通过公网建立VPN,就如同通过自己的专用网建立内部网一样,享有较高的安全性、优先性、可靠性和可管理性,而其建立周期、投入资金和维护费用却大大降低,同时还为移动计算提供了可能。因此,VPN技术一经推出,便红遍全球。
但应该指出的是,目前VPN技术的许多核心协议,如L2TP、IPSec等,都还未形成通用标准。这就使得不同的VPN服务提供商之间、VPN设备之间的互操作性成为问题。因此,企业在VPN建网选型时,一定要慎重选择VPN服务提供商和VPN设备。
3.身份认证技术
对于从外部拨号访问总部内部网的用户,由于使用公共电话网进行数据传输所带来的风险,必须更加严格控制其安全性。一种常见的做法是采用身份认证技术,对拨号用户的身份进行验证并记录完备的登录日志。较常用的身份认证技术,有Cisco公司提出的TACACS+以及业界标准的RADIUS。笔者在厦门海关外部网设计中,就选用了Cisco公司的CiscoSecure ACS V2.3软件进行RADIUS身份认证。
外部网
C.外部网安全
海关的外部网建设,通常指与Internet的互联及与外部企业用户的互联两种。无论哪一种外部网,都普遍采用基于TCP/IP的Internet协议族。Internet协议族自身的开放性极大地方便了各种计算机的组网和互联,并直接推动了网络技术的迅猛发展。但是,由于在早期网络协议设计上对安全问题的忽视,以及Internet在使用和管理上的无政府状态,逐渐使Internet自身的安全受到威胁,黑客事件频频发生。
对外部网安全的威胁主要表现在:非授权访问、冒充合法用户、破坏数据完整性、干扰系统正常运行、利用网络传播病毒、线路窃听等。
外部网安全解决办法主要依靠防火墙技术、入侵检测技术和网络防病毒技术。在实际的外部网安全设计中,往往采取上述三种技术(即防火墙、入侵检测、网络防病毒)相结合的方法。笔者在厦门海关外部网设计中,就选用了NAI公司最新版本的三宿主自适应动态防火墙Gauntlet Active Firewall。该防火墙产品集成了Gauntlet Firewall、CyberCop Scanner、CyberCop Monitor、WebShield for Firewall等套件,将防火墙技术、入侵检测技术与网络防病毒技术融为一体,紧密结合,相得益彰,性价比比较高。
普通用户选用防火墙面面通
[ 2007-03-25 03:31:50 | 作者: sun ]
什么是防火墙?通常应用防火墙的目的有以下几方面:限制他人进入内部网络;过滤掉不安全的服务和非法用户;防止入侵者接近你的防御设施;限定人们访问特殊站点;为监视局域网安全提供方便。
个人防火墙一般具有以下功能:
1、数据包过滤
过滤技术(Ip Filtering or packet filtering) 的原理在于监视并过滤网络上流入流出的Ip包,拒绝发送可疑的包。
在互联网这样的信息包交换网络上,所有往来的信息都被分割成许许多多一定长度的信息包,包头信息中包括IP源地址、IP目标地址、内装协议(ICP、UDP、ICMP、或IP Tunnel)、TCP/UDP目标端口、ICMP消息类型、包的进入接口和出接口。当这些包被送上互联网时,防火墙会读取接收者的IP并选择一条物理上的线路发送出去,信息包可能以不同的路线抵达目的地,当所有的包抵达后会在目的地重新组装还原。包过滤式的防火墙会检查所有通过信息包里的IP地址,并按照系统管理员所给定的过滤规则过滤信息包。如果防火墙设定某一IP为危险的话,从这个地址而来的所有信息都会被防火墙屏蔽掉。
2、防火墙的安全规则
安全规则就是对你计算机所使用局域网、互联网的内制协议设置,从而达到系统的最佳安全状态。
个人防火墙软件中的安全规则方式可分为两种:
一种是定义好的安全规则
就是把安全规则定义成几种方案,一般分为低、中、高三种。这样不懂网络协议的用户,就可以根据自己的需要灵活的设置不同的安全方案。例如:ZoneAlarm防火墙.
还有一种用户可以自定义安全规则
也就是说,在你非常了解网络协议的情况下,你就可以根据自已所需的安全状态,单独设置某个协议。
3、事件日记
这是每个防火墙软件所不能少的主要的功能。记录着防火墙软件监听到发生的一切事件,比如入侵者的来源、协议、端口、时间等等。记录的事件是由防火墙的功能来决定的。
那么那一种防火墙最好呢?这是网友经常询问的问题。
我个人认为选用防火墙,不一定非要用最好的,因为个人防火墙主要是针对个人用户的实用性来制作的,除了以上几种功能外,还集成一些工具,比如说追踪主机名或IP地址、检测特洛伊木马、伪装等等。根据自己不同的需要来选用,在不断地学习中淘汰一些简单的防火墙。本人把用户大概分成五种:
1、不了解网络协议的用户,只是为了游览网页。你可以使用傻瓜式防火墙。例如:Intrusion Detector、Intruder Alert' 99
2、如果你上网是为了聊天或者经常受到攻击的用户,那么你就可以选用:ProtectX、LockDown2000两个防火墙,它们都有追踪IP的功能。如果你受到攻击,立即可以追踪。
3、经常遭遇到扫描的用户,使用Internet Firewall 2000、AnalogX、NetAlert。这两个防火墙可以封锁或监视你的对外开放端口。
4、在局域网环境中上网的用户,那么防火墙必须支持NETBIOS设置功能。例如:AtGuard、Zone Alarm、conseal pc firewall、天网防火墙、BlackICE。
5、自己对网络协议运用自如的用户。Norton Internet Security 2000 V2.0 Personal Firewall与AtGuard防火墙都有非常详细的自定义网络协议。
这里说明一下,上面所说的五种用户分类,不是必须按照这样的分类使用的,只不过它们有那种分类的功能特点。比如说,Zone Alarm、天网防火墙,这两个防火墙也对普通用户提供了安全规则方案,不了解网络协议的用户也可以运用自如。
个人防火墙一般具有以下功能:
1、数据包过滤
过滤技术(Ip Filtering or packet filtering) 的原理在于监视并过滤网络上流入流出的Ip包,拒绝发送可疑的包。
在互联网这样的信息包交换网络上,所有往来的信息都被分割成许许多多一定长度的信息包,包头信息中包括IP源地址、IP目标地址、内装协议(ICP、UDP、ICMP、或IP Tunnel)、TCP/UDP目标端口、ICMP消息类型、包的进入接口和出接口。当这些包被送上互联网时,防火墙会读取接收者的IP并选择一条物理上的线路发送出去,信息包可能以不同的路线抵达目的地,当所有的包抵达后会在目的地重新组装还原。包过滤式的防火墙会检查所有通过信息包里的IP地址,并按照系统管理员所给定的过滤规则过滤信息包。如果防火墙设定某一IP为危险的话,从这个地址而来的所有信息都会被防火墙屏蔽掉。
2、防火墙的安全规则
安全规则就是对你计算机所使用局域网、互联网的内制协议设置,从而达到系统的最佳安全状态。
个人防火墙软件中的安全规则方式可分为两种:
一种是定义好的安全规则
就是把安全规则定义成几种方案,一般分为低、中、高三种。这样不懂网络协议的用户,就可以根据自己的需要灵活的设置不同的安全方案。例如:ZoneAlarm防火墙.
还有一种用户可以自定义安全规则
也就是说,在你非常了解网络协议的情况下,你就可以根据自已所需的安全状态,单独设置某个协议。
3、事件日记
这是每个防火墙软件所不能少的主要的功能。记录着防火墙软件监听到发生的一切事件,比如入侵者的来源、协议、端口、时间等等。记录的事件是由防火墙的功能来决定的。
那么那一种防火墙最好呢?这是网友经常询问的问题。
我个人认为选用防火墙,不一定非要用最好的,因为个人防火墙主要是针对个人用户的实用性来制作的,除了以上几种功能外,还集成一些工具,比如说追踪主机名或IP地址、检测特洛伊木马、伪装等等。根据自己不同的需要来选用,在不断地学习中淘汰一些简单的防火墙。本人把用户大概分成五种:
1、不了解网络协议的用户,只是为了游览网页。你可以使用傻瓜式防火墙。例如:Intrusion Detector、Intruder Alert' 99
2、如果你上网是为了聊天或者经常受到攻击的用户,那么你就可以选用:ProtectX、LockDown2000两个防火墙,它们都有追踪IP的功能。如果你受到攻击,立即可以追踪。
3、经常遭遇到扫描的用户,使用Internet Firewall 2000、AnalogX、NetAlert。这两个防火墙可以封锁或监视你的对外开放端口。
4、在局域网环境中上网的用户,那么防火墙必须支持NETBIOS设置功能。例如:AtGuard、Zone Alarm、conseal pc firewall、天网防火墙、BlackICE。
5、自己对网络协议运用自如的用户。Norton Internet Security 2000 V2.0 Personal Firewall与AtGuard防火墙都有非常详细的自定义网络协议。
这里说明一下,上面所说的五种用户分类,不是必须按照这样的分类使用的,只不过它们有那种分类的功能特点。比如说,Zone Alarm、天网防火墙,这两个防火墙也对普通用户提供了安全规则方案,不了解网络协议的用户也可以运用自如。
隐藏入侵踪迹技术讲座
[ 2007-03-25 03:31:33 | 作者: sun ]
第一章 理论篇
I. 概述
II. 思想认识(MENTAL)
III. 基础知识
IV. 高级技巧
V. 当你受到怀疑时...
VI. 被捕
VII. 有用的程序
VIII. 最后的话
I. 概述
----------------------------------------------------------------------
>> 译者注:本文是德国著名hacker组织"The Hacker's Choice"的96年写的一篇文章但今天读来仍颇有收获,就象他自己说的:"即使是一个很有经验的hacker也能从这里学到一些东西".在翻译的过程中对原文做了一些改动,也加入了一些自己的理解,
>> 不当之处,还请赐教.
warning3@hotmail.com
注意 : 本文分为两部分.
第一部分讲述了一些背景和理论知识.第二部分通过具体的实例教你一步一步了解该做什么和不该做什么.
如果你懒得看完全部文章,那就只读第二部分吧.它主要是写给那些Unix hack新手看的.
如果你把尽快得到最新的exploits当成最重要的事的话,那我要说-你错了.
>> 译者注:exploits可以理解为"漏洞",不过我并不想这么翻,翻过来总感觉怪怪的,所以我还是保留了原文.文中还有一些地方也是如此处理,不再一一注明
一旦警察没收了你的计算机、你的所有帐户都被取消、你的一切活动都被监视的时候,即便是最好的exploit对你又有什么用呢?我不想听那些辩解的话.不,最重要的事应该是不要被捕!这是每个hacker都应该明白的第一件事.因为在很多情况下,特别是当你首次hack一个由于饱受入侵之苦而开始对系统安全敏感的站点时,你的第一次hack也许就将成为你最后一次hack.
所以请仔细阅读所有章节!
即使是一个很有经验的hacker也能从中学到一些东西.
下面是各节的简介:
节 I - 你现在正在读的
节 II - 思想认识
1. 动机
2. 为什么你必须要谨慎(paranoid)
3. 怎样才能谨慎
4. 保持谨慎
节 III - 在你开始hack前应当知道的基本知识
1. 前言
2. 自身安全
3. 自己的帐户
4. log文件
5. 不要留下痕迹
6. 你应当避免的事
节 IV - 你该了解的高级技巧
1. 前言
2. 阻止任何跟踪
3. 找到并处理所有的log文件
4. 检查syslog设置和log文件
5. 检查安装的安全程序
6. 检查系统管理员
7. 怎样修正checksum检查软件
8. 注意某些用户的安全陷阱(诡计?)
9. 其他
节 V - 一旦你受到怀疑你该怎么做
节 VI - 当你被捕时该做的与不该做的
节 VII - 一些用于隐藏痕迹的程序的列表
节 VIII- 最后的话,作者想说的一些废话
请仔细阅读,开动脑筋.
II. 思想认识(MENTAL)
>> 译者注:这一节的目的主要是提醒你树立正确的"hack"观 ;)
----------------------------------------------------------------------
内容: 1. 动机
2. 为什么你必须要谨慎(paranoid)
3. 怎样才能谨慎
4. 保持谨慎
>> 译者注:paranoid的意思是"患偏执狂的",在这里可能是当
>> "小心谨慎"来讲吧.
* 1. 动机 *
不管做什么事,信念总是取得成功的一个关键.它是你的动力源泉,它激发你去奋斗,自我约束,小心谨慎而又面对现实,准确的估计风险,它也能让你去做你不喜欢做但又非常重要的事情(即使你现在就想去游泳).如果你不激励自己去编制重要工具,等候恰当的时机去攻击目标,那你永
远不能成为真正的hacker.
一个成功而又优秀的hacker必须满足这些要求.它就象健身和节食---如果你真正努力去做,你就能成功.
* 2. 为什么你必须要谨慎 *
当然,小心谨慎并不会让你的生活变得更幸福.然而如果你从不做最坏的打算,任何事情都能击倒你,让你失去平衡.你正在做的事会让你冒很大风险.而在你正常的生活中你并不需要担心警察,小偷什么的.但如果你从另一方面考虑,你要知道你正在给别人的生活带来麻烦和恶梦--他们很
想阻止你.尽管你不认为这是犯罪.但当警察迅速逮捕每个可能被牵扯的人时,你会发现一件很悲惨的事:你是有罪的除非你能证明你无罪!一旦你得到了一个hacker的"污名",你就永远不能将其去除.一旦你有了犯罪纪录,你将很难找到一份工作.特别是没有软件公司甚至没有与计算机有关的公司会聘用你,他们会害怕你的技术.你也许不得不移民...一旦跌倒了,能再爬起来的只是少数人.
要小心谨慎!要保护好你自己!记住你得到的一切都可能失去!绝不为做额外的反跟踪工作而感到愚蠢!绝不为如果别人嘲笑你太谨慎而烦心!决不要因为太懒或者厌倦而放弃修改log文件!一名hacker必须%100的完成他的"工作"!
* 3. 怎样才能小心谨慎 *
如果你读了上面的话并且你认为那是对的,那就容易了---你已经变得小心谨慎了但这必须要变成你生活中的一部分才行,当你总是考虑究竟是谁告诉你了那些事,考虑你的电话和email可能已被监视的时候,那它已经变成你生活的一部分了.
如果上面这些还不能帮你,那么考虑一下如果你被捕会发生什么.你的女友还会站在你这边吗?你想看到你父母为你流泪吗?你想丢掉饭碗或学业吗?
不要给这一切以发生的机会!
如果这还不能警醒你:离HACKING远点儿!!!对整个hacker社会和你的朋友来说,你都是个危险人物!
* 4. 保持谨慎 *
我希望现在你明白为什么小心谨慎的重要性了.
所以保持谨慎.一个错误或者一次偷懒都可能彻底毁掉你的生活和事业.在做一件事时应时刻记着你的动机是什么.
>> 译者注:这部分是让你知道你正在干什么及你的处境.如果你不想让你成为无聊记者津津乐道的话题---"某地破获重大黑客案...",那就多看看,多想想.要知道,自己是这种新闻的主角和看别人的新闻可完全不是一个感觉.所以要:谦虚谨慎,戒骄戒躁 :-)
III. 基础知识
----------------------------------------------------------------------
内容 :
1. 前言
2. 自身安全
3. 自己的帐户
4. log文件
5. 不要留下痕迹
6. 你应当避免的事
* 1. 前言 *
在你开始你的初次hack之前,你应当知道这些并且进行些练习.这些都是非常基本的,不知道这些你很快就会有麻烦了.即便是一名很有经验的hacker也能从中得到一些新的提示.
* 2. 自身安全 *
系统管理员读了你的email吗?你的电话被警察监听了吗?警察没收了你存有所有hacking数据的计算机吗?
如果你不接收可疑的email,不在电话里谈论hacking/phreaking的话题,在你的硬盘上也没有敏感和私人数据的话,那你不必担心上面那些情景.但那样你就并不是一个hacker.每个hacker和phreaker都与其他人保持联系并把他的数据保存在某个地方.
加密所有敏感数据!!!
在线硬盘加密程序是非常重要和有用的:
在internet上游很多好的免费硬盘加密程序,它们对你的操作系统来说是完全透明的.下面所列的几个软件都是经过测试的,是hacker's的首选工具:
- 如果你用MsDos,你可以使用SFS v1.17或者SecureDrive 1.4b
- 如果你用Amiga,你可以使用EnigmaII v1.5
- 如果你用Unix,你可以使用CFS v1.33
>> 译者注:在win9x下可以考虑emf,iprotect...
文件加密软件: 你可以使用任何一种加密软件,但它应该是使用一种众所周知的安全加密机制.绝对不要用那些被出口的加密程序,它们的有效密钥长度被缩短了!
- Triple DES
- IDEA
- Blowfish (32 rounds)
加密你的Email!
- PGP v2.6.x 是个不错的工具.
如果你想讨论重要的事情的话,加密你的电话.
- Nautilus v1.5a 是迄今最好的
当你连到一个unix系统时加密你的终端.
一些人可能正在sniffing或者监视你的电话线:
- SSH 是最安全的
- DES-Login 也不错
>> 译者注:- SSL 基于SSL的一些软件也可以一试
用强壮的不可猜测的,不在任何字典中的密码.它应当看起来象随机的但又容易记忆.如果密码长度可以比10个字符更长,那就用更长的.可以从书中抽取一句话,并略作修改.请将你的hacker朋友的电话号码加密两遍.如果你不加密,你应当从公用电话给他打电话.
>> 译者注:其实有个好记又难猜的密码并不难,例如考虑句子"I'm a haxor!"可以从中抽>> 取几个单词组成I'mhaxor,好象没有数字,呵呵,用"eleet"的hacker语言,haxor=h4x0r所以我们的口令可以是:I'mh4x0r(我是hacker).这样的密码恐怕只能用暴力破解了.
如果你对hacking有了深入了解,你应当加密所有的东西!
为你的数据做个备份,当然要先加密,把它放在一个隐秘的地方,最好不要在家里.所以即使你因为失误,火灾或警察搜捕等原因丢失了数据,你还可以得到备份数据.
只有当你真的需要它们时才写出来,否则将它们放在一个机密文件或加密分区里更安全.一旦你不需要它们了,烧掉那些纸.你也可以用只有你自己知道的加密机制将它们写下来,但不要告诉任何人,也别太经常的使用它.也许它很容易被分析和破解。真正沉稳和谨慎的hackers应该考虑实施干扰方案.警察,间谍,其他hacker能监视你的举动.一个拥有先进设备的人可以获得他想要的任何东西:
计算机发射的电子脉冲可以从100米以外的距离被截获,可以显示你的监视器屏幕,监听你的私人谈话,确认键盘敲击时的高频信号等等...所以各种可能性总是存在的.成本低廉的应付方法就是采用电子脉冲干扰发射机,商店里就有卖的.如果你不想让任何人监视你,我认为这些还不够...
>> 译者注:不知道我们的商店里有没有卖的.;-)
* 3. 你自己的帐户 *
下面让我们谈谈你自己的帐户.它就是你在学校/公司/ISP那里得到的帐户,它总是与你的真实姓名联系在一起,所以在使用它时绝对不要违背下面的原则:
永远不要用你的真实帐户做任何非法或者惹人怀疑的事!永远不要试图从你的真实帐户telnet到任何被hacked主机去!当然可以用这个帐号订阅安全mailing lists.但任何与hacking有关的东西都必须加密或者立刻销毁.决不要在你帐号下保存hacking或security工具.尽量用POP3连到你的mailserver下载或者删除你的邮件(如果你对unix比较熟悉,还可以直接telnet到POP3端口执行下载或者删除命令).决不要泄漏你的真实email给你不信任的人,只把它给你信任的人,他们也
应当是比较注意安全问题的人,否则如果他们被捕,下一个就是你了(或许他们根本就是警察,而不是hacker.).与其他的hacker用email交流时必须要用PGP加密,因为系统管理员经常偷看用户目录,甚至读区别人的email!!其他的hacker也可能hack你们的站点并试图得到你的数据.
绝不要用你的帐号表明你对hacking感兴趣!对安全感兴趣可以,但不要再进一步了.
>> 译者注:与别人交流时可以申请免费信箱,最好是国外的,比如hotmail之类,登陆时注意最好
通过proxy.自己的真实信箱应当只用来进行一般的正常通信,与朋友/老师/同事...
* 4. LOG文件 *
有三个重要的log文件:
WTMP - 记录每次登录的信息,包括登陆/退出的时间,终端,登录主机ip
UTMP - 在线用户记录
LASTLOG - 记录用户上次是从哪里登录的
当然还有其他的log,它们将在"高级技巧"一节种讨论.每次通过telnet,ftp,rlogin,rsh
的登录都会被记录到这些文件中.如果你正在hacking,把自己从这些记录中删除就是很重要的了.否则他们会:
a) 准确的发现你什么时候在搞hacking活动
b) 发现你从那个站点过来
c) 知道你在线的时间有多长,以便计算你给他们造成的损失
绝对不要删除这些log文件!!!那等于通知管理员:"嗨,你的机器上有个hacker!".找一个好程序来修改这些log.ZAP(或ZAP2)经常被认为是最好的但事实上它并不是.它只是简单的用0来填充用户上次登陆的数据段.CERT已经发布了一个简单的程序用来检查这些全零数据项.所以这样也会很容易就让人知道现在有个hacker在活动,这样你所有的工作就没有意义了.ZAP的另外一个缺陷是当它找不到那些log文件时,它并不报告.所以在编译之前必须先检查一下路径!你应该使用能改变记录内容的程序(象cloark2.c)或者能真正删掉记录的程序(象clear)
>> 译者注: THC提供的cleara.c ,clearb.c是非常好用的清除工具.可以清除utmp/utmpx,wtmp/wtmpx,修复lastlog让其仍然显示该用户的上次登录信息(而不是你登录的信息).如果你发现你登录后没有显示上次登录信息,那很可能你的机器,可能已经被人hack了,当然,即使显示正确的信息也未必就没有被hack.;-)
一般来说要修改log你必须是root(有些老版本系统例外,它们将utmp/wtmp设成允许所有人可写)但如果你不能得到root权限---你该怎么做呢?你应该rlogin到你现在所处的主机,以便在lastlog种增加一个不是那么惹人怀疑的数据项,它将在该用户下次登录时被显示,如果他看到"上次从localhost登录"的信息时也许不会怀疑.
>> 译者注:这也是没有办法的办法,换了我,我就会怀疑.;)
很多unix系统的login命令有一个bug.当你登录以后再执行一遍login命令时,它将用你当前的终端重写UTMP中的login from段(它显示你是从哪里来的!)那么这些log文件缺省在什么地方呢?
这依赖于不同的Unix版本.
UTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
WTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
LASTLOG : /usr/var/adm 或 /usr/adm 或 /var/adm 或 /var/log
在一些旧unix版本中lastlog数据被写到$HOME/.lastlog
* 5. 不要留下痕迹 *
我曾经碰到很多hacker,他们把自己从log里删除了.但他们忘记删掉他们在机器中留下的其他一些东西:在/tmp和$HOME中的文件Shell 记录一些shell会保留一个history文件(依赖于环境设置)记录你执行的命令.这对hacker来说确实是件很糟糕的事.最好的选择就是当你登录以后先启动一个新shell,然后在你的$HOME中查找历史纪录.
历史记录文件:
sh : .sh_history
csh : .history
ksh : .sh_history
bash: .bash_history
zsh : .history
>> 译者注:.*history是我最喜欢看的文件之一,通过它你可以了解root或用户常干些什么, 从而得知他们的水平如何,如果他们只会执行"ls","pwd","cp"...那说明水平不过尔尔,无须太担心.不过如果你发现root喜欢"find / -type f -perm -04000 -exec ls -a
l {} \;"," "vim /var/adm/messages","ps -aux( -elf) ","netstat -an"....那你就要小心一点了。
备份文件 :
dead.letter, *.bak, *
在你离开前执行一下"ls -altr"看看你有没有留下什么不该留下的东西.你可以敲4个csh命令,它能让你离开时删掉这些历史文件,不留下任何痕迹.
mv .logout save.1
echo rm .history>.logout
echo rm .logout>>.logout
echo mv save.1 .logout>>.logout
>> 译者注:对于bash,有一个简单的办法就是执行一下"HISTFILE=",就是不设置bash的历史文件,这样就不会有讨厌的.bash_history了.(准确地说,是不会往$HOME/.bash_history里写了)
>> 或者退出的时候简单的敲kill -9 0 ,它会杀掉这次登录后产生的所有进程,bash也不会往.bash_history里写
* 6. 你应当避免的事 *
不要在不属于你的机器上crack口令.如果你在别人(比如说一所大学)的机器上破解口令,一旦root发现了你的进程,并且检查它.那么不仅你hacking的帐号保不住了,可能连你得到的那passwd文件也没了.那学校将会密切注视你的一举一动...所以得到口令文件后应该在自己的机器上破解.你并不需要破解太多的帐号,能破出几个就够了.如果你运行攻击/检测程序象ypx,iss,satan或其他的exploiting程序,应当先改名再执行它们.或者你可以修改源码改变它们在进程列表中显示的名字...
>> 译者注:这并不难,你只要在main()中将argv[]用你喜欢显示的名字替代就可以了比如argv[0] ="in.telnetd",argv
=""...(当然必须在程序已经从argv中读取了所需的参数之后).
如果某个细心的用户/root发现5个ypx程序在后台运行,他马上就会明白发生了什么.当然如果可能的话不要在命令行中输入参数.如果程序支持交互方式,象telnet.应当先敲"telnet",然后"o target.host.com"...这就不会在进程表中显示目标主机名.
>> 译者注:如果你用ftp,最好这样做:
>> $ ftp -n
>> $ ftp>o target.host
>> blahblah...(一些连接信息)
>> blahblah...(ftp server版本)
>> ftp>user xxx
>> ....
如果你hack了一个系统---不要在任何地方放suid shell!最好装一些后门象(ping,quota或者login),用fix来更正文件的atime和mtime.
>> 译者注: 放suid shell是很蠢的,非常容易被root发现.
IV. 高级技巧
----------------------------------------------------------------------
内容 : 1. 前言
2. 阻止任何跟踪
3. 找到并处理所有的log文件
4. 检查syslog设置和log文件
5. 检查安装的安全程序
6. 检查系统管理员
7. 怎样修正checksum检查软件
8. 注意某些用户的安全陷阱(诡计?)
9. 其他
* 1. 前言 *
一旦你装了第一个sniffer开始你的hack生涯,你就应该知道并使用这些技巧!请运用这些技巧---否则你的hack之旅就行将结束.
* 2. 阻止任何跟踪 *
有时候你的hacking活动会被人发现.那并不是什么大问题 - 你hacked一些站点可能会被关掉,但谁管它呢,赶紧离开就是了.但如果他们试图跟踪你的来路(通常是为了抓住你)的话那就很危险了!
这一节将告诉你他们跟踪你的各种可能的方法以及你该如何应对.
* 通常对系统管理员来说发现一个hacker是从哪里来的并不是什么问题:检查log记录(如果那个hacker真的那么蠢的话);看看hacker安装的sniffer的输出记录(也许里面也记下了他的连接)或者其他系统记帐软件(象loginlog等等);甚至可以用netstat,显示所有已经建立的网络连接--如果那个hacker正在线的话,那他就被发现了.这就是为什么你需要一个gateway server(网关).
* 什么是gateway server?
它是你所"拥有"的很多服务器中的一个,你已经得到了它的root权限.你需要root权限去清除wtmp/lastlog/utmp等系统记录或者其他一些记帐软件的log文件.除此之外你不在这台机器上做任何其他的事(它只是个中转站).你应当定期更换gateway server,可以每隔1,2个星期更换一次,然后至少一个月内不再使用原来的gateway server.这样他们就很难跟踪到你的hacking server.
* hackin server - 所有活动的出发点你从这些机器开始hacking.Telnet(或者更好的:remsh/rsh)到一个gateway server,
然后再到一个目标机器.你需要有root权限以修改log.你必须每隔2-4个星期就更换hacking server..
* 你的堡垒/拨号主机.
这是个临界点.一但他们能跟踪回你拨号进入的机器,你就有麻烦了.只要打个电话给警察,再进行一次通信线路跟踪,你的hack活动就会成为历史了,也许是你的未来.在堡垒主机上你不需要得到root权限.既然你只是通过modem拨入,那里没有什么必须修改的记录.你应该每天用一个不同的帐号拨号进入,尽量用那些很少使用的.你应该找到至少2个你能拨号进去堡垒主机,每隔1-2个
月更换一次.
>> 译者注:我对phreak不熟.我猜大部分的国内hacker还没什么本事能躲过电信局的跟踪.所以最好不要用别人的帐号上网,特别是那些很少上网的帐号,一旦他发现上网费用剧增,肯定会让电信局追查的,到时候你就大难临头了.如果你用那些上网频繁的人的帐号,他反倒不会注意,只会以为这个月上的太厉害了.:-)(这绝对没有鼓励你盗用别人帐号的意思,这等于盗窃,凭什么你
上网要别人交钱?就凭你会用john破几个口令吗?hacker的名声就是让这些打着hacker旗号的无耻之徒败坏的.对这种人就得抓!所以我对这样的phreaker没有什么好感,你要真有本事,就别嫁祸别人,而且还要让电信局查不出来.) 说多了,咱们言归正传.
注意: 如果你能每天拨入不同的系统(比如通过"蓝盒子"),那你就不需要那些hacking server了.
* 使用蓝盒子,这样即使他们跟踪到你的堡垒主机,也不能(至少是不能很容易地)追踪到你的电话...使用蓝盒子必须小心,德国和美国的电话公司有专门的监视系统来追踪使用蓝盒子的人...
使用一个中间系统来传送你的电话将会使跟踪更加困难, 但是同样由于你使用一个pbx或其他的什么东西, 仍使你处于被抓的危险中. 这取决于你.
注意在丹麦所有的电话数据均被记录!即使在你打完电话10年后,他们仍然能证明你曾登录过他们的拨号系统从事hack活动...
- 其他的
如果你想运行satan,iss,ypx,nfs文件句柄猜测程序..你应当使用一个专门的服务器来完成.不要用这个服务器telnet/rlogin到目标服务器,只是用它来进行检测.
有些程序可以bind到一个特殊端口,当一个指定到该端口的连接建立的时候,它自动打开一个连接连到另外一个服务器的某个端口(有些就模拟一个shell,你可以从这个socket daemon中"telnet"到其他机器).使用这种程序你不会被记录(防火墙log除外).有很多程序可以帮你完
成上述功能.
>> 译者注:这种程序我常用的有datapipe.c,telbounc.c,还是很好用的.它就象是个代理服务器,但是不会有记录.:)
如果可能的话,hacking server或者gateway server应该在国外!因为如果你的入侵被发现,当发现你来自国外的主机时,大多数网管都会放弃追查.即使是警察要通过不同的国家追踪你,这也至少可以拖延2-10个星期的时间...
#下面是hack过程的简图,也许对你有些帮助;-)
+-------+ ~---------------> +-------------+ +-----------+
|+-----+| > > | | | |
||本机 || --> > 安全拨号线路 > --> | 堡垒主机 | --> | hacki
ng |
|+-----+| > > | (至少有3个) | | server |
+-------+ ~---------------> +-------------+ +-----------+
|
|
v
+-----------------+ +--------+ +-----------+
| | | | | |
| 内部网络中的主机| ... <-- ... |目标主机| <-- | gateway | | | | | | server | +-----------------+ +--------+ +-----------+ * 3. 找到并处理所有的LOG文件 * 找到所有的logfiles是很重要的---即使他们被隐藏.要找到它们有两种可 能的方法: 1)找到所有打开的文件. 既然所有的log必须写到某个地方去,所以用可以用LSOF(LiSt Open Files)程序 去检查所有打开的文件,必要的话就得修改它们.>> 译者注:lsof由Vic Abell 编写,用来提供被进程打开的文件的信息,
>> 它的最新版本可以在ftp://vic.cc.purdue.edu/pub/tools/unix/lsof下找到.有趣的是,不久前有人发现lsof4.40以前的版本中存在buffer overflow问题,可以取得root权限.:-)
2) 搜索所有在你登录后有变化的文件在你登录后,执行"touch /tmp/check",然后可以干你的活.最后只要执行"find / -newer /tmp/check -print",并检查找到的文件,如果其中有记帐文件,就应该修改它.注意不是所有版本的find都支持 -newer 参数.你也可以用"find / -ctime 0
-print" 或者 "find / -cmin 0 -print"来查找它们.
>> 译者注:我更喜欢用-exec ls -l {} \;来代替-print,因为这可以列出比较详细的信息. 注意上述方法主要是针对系统记帐软件的,它可能会记录你执行的命令.对于只记录login信息的软件,它在你看到shell提示符以前就已经完成记录了.所以用这种检查是查不出来的.
检查你找到的所有的logfiles.它们一般在/usr/adm,/var/adm或者/var/log,/var/run
.
如果它们被记录到@loghost,那你可能就有点麻烦了.你需要hack那台loghost主机去修改log...
>> 译者注:一般单纯用作loghost的机器比较难hack,因为它往往关掉了几乎所有端口,并且只
允许从控制台登录.对于这样的机器,可以用DoS攻击使之瘫痪,从而失去log功能.(要hack往往比较难,要crash it则相对容易一些.;-)当然,本次登陆的记录仍然会被保存下来.
为了处理logs,你可以用"grep -v"或者用wc统计行数后,再用"tail -10 log"察看最后10行
,或者用编辑器vi,emcas.
>> 译者注:如果你从a.b.c来,你可以用grep -v "a.b.c" logfile>logtemp;mv logtemp logfile;来清除所有含有a.b.c的行.如果log文件比较大,你也可以用vim来编辑.注意这只能用来修改文本文件!!!对二进制文件的修改可能导致文件格式被破坏!!!
如果数据文件是二进制格式的,你应当首先查明它是由什么软件产生的,然后设法找到该软件的源码,分析记录项的结构,自己编程修改记录.(可以利用现成的程序加以修改,比如Zap,clear
cloak...).
如果系统安装了accounting软件.你可以用zhart写的acct-clener---它非常有效!
如果你必须修改wtmp,但系统又不能编译源程序也没有perl....你可以这样做,先uuencode
wtmp,然后运行vi,移动到最后一行,删除最后以"M"开头的4行...然后保存退出.uudecode
.然后最后5个wtmp记录项就被删除了.;-) 注意这只在SCO unix下有效,linux下是不行的.
>> 译者注:我没有验证这个,因为没有SCO服务器.如果你要这么做,记得要先做个wtmp的备份.
如果系统用wtmpx和utmpx,那你又有麻烦了..迄今我还不知道有哪个cleaner程序可以处理它们.你不得不自己编一个程序来完成工作.
>> 译者注:wtmpx和utmpx结构与wtmp和utmp类似,只要将清除utmp和wtmp的软件略加修改就可
>> 以了.而且现在已经不少现成的程序可以修改utmpx/wtmpx了.
* 4. 检查SYSLOG配置和记录 *
大部分程序都用syslog函数来记录它们需要的所有东西.因而检查syslogd的配置文件是很重要的.这个配置文件是/etc/syslog.conf - 我不会告诉你它的格式是什么/每一项是什么意思
,
自己去读它的man页.
对你来说重要的syslog类型是kern.*,auth.*和authpriv.*.看看它们被写到哪里了,如果写到文件里还可以修改.如果被转发到其他主机,你必须也要hack它们.如果消息被发给某个用户,tty或者控制台.你能耍点小花招发很多个假消息象"echo 17:04 12-05-85 kernelsendmail[243]: can't resolve bla.bla.com > /dev/console"(或其他你想flood的的设备),让它卷屏,以隐藏你引发的信息.这些log文件是非常非常重要的!检查它们!
* 5. 检查已经安装的安全程序 *
很多注重安全的站点都通过cron运行安全检查程序.crontabs通常在/var/spool/cron/crontabs.检查里面所有的文件,特别是"root"文件,检查它里面都运行了什么程序.用"crontab -l root"可以快速的检查root crontab的内容.
这些安全工具往往装在管理员的目录下比如~/bin.
这些检查软件可能是 tiger, cops, spi, tripwire, l5,binaudit, hobgoblin, s3 等等...
你必须检查它们都报告了些什么东西,看它们是否报告了一些显示出你入侵迹象的东西.如果是的话,你可以 - 更新软件的数据文件,是它们不再报告这种类型的消息.
- 可以重新编程或修改该软件使它们不再产生报告.
- 如果可能的话,删除你安装的后门或其他程序,并试着用其他的方法来完成。
* 6. 检查系统管理员 *
对你来说了解系统管理员采取了那些安全措施是非常重要的.因此你需要知道他们经常使用哪些
普通用户帐号.你可以检查root的.forward文件和alias内容.看看sulog文件,注意那些成功su成root的用户.检查group文件中的wheel和admin组(或者其他任何与管理员相关的组).你也可以
在passwd文件中查找admin,也许你又能找到一个管理员帐号.现在你应该已经知道这台机器上谁是管理员了.进入他们的目录(如果系统不允许root读所有的文件,用chid.c或者changeid.c将自己的uid变成该用户的),检查他们的.history/.sh_history/.bash_history文件看看他们经常执行什么命令.也应当检查他们的.profile/.login/.bash_profile文件看看里面都设置了什么alias,是否执行了什么自动安全检查或logging程序.也检查他们的~/bin目录!大多数情况下被编译的安全程序被放到那里面!当然也要看一下他们的每一个目录(ls -alR ~/).如果你找到任何与安全有关的东西,请读5小节以设法绕过它们的安全保护.
* 7. 怎样修正checksum检查软件 *
一些管理员真得很怕hacker所以装了一些软件来检查二进制文件.如果一个二进制文件被改动了,下次管理员做二进制检查的时候,它将被检测到.那么你怎么找到是否系统安装了这样的程序,又怎样修改它们以便你能植入你的木马程序呢?
注意有很多的二进制检查程序,而且要写一个也真是非常容易(15分钟就够了),你可以用一个
小的script完成这个工作.所以如果这样的软件被安装的话要找到它们是比较困难的.注意
有些常用安全检查程序也提供这样的检查.下面是一些应用得很广泛的软件:
软件名 标准路径 二进制文件名
tripwire : /usr/adm/tcheck, /usr/local/adm/tcheck : databases, tri
pwir
e
binaudit : /usr/local/adm/audit : auditscan
hobgoblin : ~user/bin : hobgoblin
raudit : ~user/bin : raudit.pl
l5 : 编译所在目录 : l5
你要明白有很多种可能!这软件或数据库甚至可能放在一个正常情况下不被mount的盘上或者在其他主机export的NFS分区上.也可能checksum数据库是储存在一个写保护的介质上的.各种可能性都有!但一般情况下你只要检查上述软件是否被安装就可以了,如果没有的话,你就可以改变某些二进制文件.如果你没有找到那些软件,但你又知道这是一个进行了完善安全保护的站点的话,你就不应该改变二进制文件!它们(二进制检查软件)肯定被藏在什么地方了.
如果你发现了这种软件被安装并且你可以修改它们(比如不是放在只读介质上,或者可以通过一些办法绕过限制 - 比如umount该盘然后重新mount成可写的)的话,你该怎么做呢?你有两种选择:首先你可以只检查软件的参数,然后对已经修改过的二进制文件执行一次"update"检查.比如用tripwire的话你可以执行" tripwire -update /bin/target ".第二种办法是你可以编辑要被检查的二进制文件名单 - 从中删除你改动过的二进制文件名.注意你也应当看看是不是连数据库文件自身也会被检查!如果是的话 - 先update再删除数据库文件名.
* 8. 注意某些用户的安全陷阱(诡计?) *
这种情况较少发生,这里提出来主要是为了讨论的更完全.一些用户(可能是管理员或者hacker)通常不象他自己的帐户被别人使用.所以他们有时候会在他们的启动文件里采取一点安全措施.
所以要检查所有的以"."开头的文件(.profile,.cshrc,.login,.logout 等等),看看他们执行了什么命令,记录了些什么东西,以及他们的搜索路径是怎么摄制的.如果某个目录(比如HOME/bin)出现在/bin的前面,你就应该检查一下那个目录的内容了...也许里面装了个程序"ls"或者"w",它会先记录被执行的时间然后再执行真正的程序也许还有些程序用来自动检查wtmp和lastlog文件是否被zap处理过,检查.rhosts,.Xauthority文件,或是否有sniffer正在运行...千万不要使用一个unix高手的帐号!
* 9. 其他 *
最后,在讨论受怀疑或被捕的话题之前,还有一些其他的事情值得引起注意.老的telnet client会export USER变量.一个了解这一点的系统管理员可以编辑telnetd,从而得到所有(通过telnet登录进来的)用户名.一旦他注意到你,他就可以很容易的得知你是从(远方主机的)哪个帐号hack进来的.新的client(客户端程序)已经解决了了这一问题 -但是一个聪明的管理员仍然可以得到其他的信息以鉴别用户:UID,MAIL,HOME变量,这些变量仍然被export,这就可以很容易得鉴别 hacker使用的是哪个帐户.因此在你进行telnet前,记得要改变USER,UID,MAIL和HOME变量,如果你正处在home目录下的话也许甚至要改变PWD变量.
在HP Unix(版本低于v10)中你可以建立隐藏目录.我不是说那些以"."开头的目录而是一些有特殊标志的目录.HP在v9版推出了它,但从v10版本以后就去除了(因为只有hacker才是用它 ;-).
如果你执行"chmod +H directory",则directory目录就不能用"ls -al"列出.为了看这个隐藏目录,你需要为ls增加 -H 参数,例如:"ls -alH".
无论什么时候,当你需要改变文件的日期时,记住你能用"touch"命令设置atime和mtime.你只能通过直接的硬盘读写来设置ctime.
如果你在一个重要系统中安装了sniffer,一定要加密sniffer的输出或者让sniffer通过icmp或者udp将所有被截获的数据发送到一个由你控制的外部主机.为什么要这样做?因为这样即使管理员发现了sniffer(通过cpm或其他检查sniffer存在的程序),他们也不能从sniffer log中得知哪些东西被sniff了,所以他也不能即使提醒正被你sniff的主机.
V. 当你被怀疑时...
----------------------------------------------------------------------
一旦你受到怀疑(被警察或是系统管理员)你应该采取些特别的行动是他们不能得到不利你的
证据.
注意 : 如果系统管理员认为你是个hacker,你就是有罪的直到你被证明是无辜的!这些管理员根本不理会什么法律(有时候我认为hacker与管理员的不同仅仅在于那台计算机属于管理员而已).当他们认为你是个hacker的时候,你就是有罪的,没有律师为你辩护.他们会监视你,你的邮件,文件,甚至记录你的键盘(如果他们够利害的话).当警察被牵扯进来的时候,你的电话线也可能被监听,搜捕行动也许跟着就来了.
如果你注意到你正受到怀疑,一定要保持低调!不要采取任何攻击性行动!最好是等上至少1到2个月,什么都不做.警告你的朋友不要给你发任何邮件,或者只发一些正常的/无害的邮件.如果你突然采用PGP加密邮件,这会提醒正在监视的警察和管理员---你发现他们的监视了.切断与
hacking有关的联系,写点儿文章或者编编程序,一直等到一切都过去.及主要加密你的敏感数
据,销毁所有记有帐号数据,电话号码等等的纸张.当警察搜捕你的时候,那些东西是他们要找的
最重要的东西.
VI. 被捕
----------------------------------------------------------------------
Note that this small chapter covers only the ethics and basics and
hasn't got any references to current laws - because they are different
for every country.
Now we talking about the stuff you should/shouldn't do once the feds
visited you. There are two *very* important things you have to do :
1) GET A LAWYER IMMEDEANTELY !
The lawyer should phone the judge and appeal against the search
warrant. This doesn't help much but may hinder them in their work.
The lawyer should tell you everything you need to know what the
feds are allowed to do and what not.
The lawyer should write a letter to the district attorney and/or
police to request the computers back as fast as possible because
they are urgently needed to do business etc.
As you can see it is very useful to have got a lawyer already
by hand instead of searching for one after the raid.
2) NEVER TALK TO THE COPS !
The feds can't promise you anything. If they tell you, you'll get
away if you talk, don't trust them! Only the district attorney
has got the power to do this. The cops just want to get all
information possible. So if you tell them anything they'll have
got more information from and against you.
You should *always* refuse to give evidence - tell them that you
will only talk with them via your lawyer.
Then you should make a plan with your lawyer how to get you out of this
shit and reduce the damage.
But please keep in mind : don't betray your friends. Don't tell them
any secrets. Don't blow up the scene.
If you do, that's a boomerang : the guys & scene will be very angry
and do revenge, and those guys who'll be caught because of your
evidence will also talk ... and give the cops more information about
*your* crimes!
Note also that once you are caught you get blamed for everything which
happened on that site. If you (or your lawyer) can show them that they
don't have got evidences against you for all those cases they might
have trouble to keep the picture of that "evil hacker" they'll try to
paint about you at the court. If you can even prove that you couldn't
do some of the crimes they accuse you for then your chances are even
better. When the judge sees that false accuses are made he'll suspect
that there could be more false ones and will become distrusted against
the bad prepared charges against you.
I get often asked if the feds/judge can force you to give up your
passwords for PGP, encrypted files and/or harddisks.
That's different for every country. Check out if they could force you
to open your locked safe.
If that's the case you should hide the fact that you are crypting your
data! Talk with your lawyer if it's better for you to stand against
the direction to give out the password - maybe they'd get evidences
which could you get into jail for many years.
(For german guys : THC-MAG #4 will have got an article about the german
law, as far as it concerns hacking and phreaking - that article will
be of course checked by a lawyer to be correct. Note that #4 will only
discuss germany and hence will be in the german language.
But non-germans, keep ya head up, this will be the first and last german
only magazine release ;-)
>>译者注:这一节是讲述了如果被捕,应当做些什么.由于我们的法律和西方不同,所以我就不翻了.有兴趣的可以自己看一看.主要的两点就是:1.马上找到一个律师为你处理这一切.2.不要告诉警察任何东西,也不要出卖其他人.
VII. 有用的程序
----------------------------------------------------------------------
这里有一个你应该找到并使用的程序列表.不要给我发email问我在哪里找到它们 - 自己到
hacker世界中去找!我只列出了最好的log编辑程序(见III-4和IV-3).其他有趣的程序还有telnet重定向程序(见IV-2),但这种程序有很多,大部分只能在1-3种unix类型下编译,所以列表没什么用.
先节是以下几个术语:
改变 - 将logfile中的域改成你喜欢的任意内容
删除 - 删除你要求的记录项
编辑 - 真正的logfile编辑器.
重写 - 只用0字节来重写记录.
不要用这样的软件(e.g. zap) - 它能被检测到!
LOG 修改器
ah-1_0b.tar 改变记帐信息的记录
clear.c 删除utmp,wtmp,lastlog和wtmpx中的记录
cloak2.c 改变utmp,wtmp和lastlog中的记录.
invisible.c 用预设值重写utmp,wtmp和lastlog
所以它比zap更好.注意看,有好多inv*.c!
marryv11.c 编辑utmp, wtmp, lastlog 和 accounting 数据 - 最好的!
wzap.c 删除wtmp中的记录
wtmped.c 删除wtmp中的记录
zap.c 重写utmp, wtmp, lastlog - 不要用它!它会被检测到!
I. 概述
II. 思想认识(MENTAL)
III. 基础知识
IV. 高级技巧
V. 当你受到怀疑时...
VI. 被捕
VII. 有用的程序
VIII. 最后的话
I. 概述
----------------------------------------------------------------------
>> 译者注:本文是德国著名hacker组织"The Hacker's Choice"的96年写的一篇文章但今天读来仍颇有收获,就象他自己说的:"即使是一个很有经验的hacker也能从这里学到一些东西".在翻译的过程中对原文做了一些改动,也加入了一些自己的理解,
>> 不当之处,还请赐教.
warning3@hotmail.com
注意 : 本文分为两部分.
第一部分讲述了一些背景和理论知识.第二部分通过具体的实例教你一步一步了解该做什么和不该做什么.
如果你懒得看完全部文章,那就只读第二部分吧.它主要是写给那些Unix hack新手看的.
如果你把尽快得到最新的exploits当成最重要的事的话,那我要说-你错了.
>> 译者注:exploits可以理解为"漏洞",不过我并不想这么翻,翻过来总感觉怪怪的,所以我还是保留了原文.文中还有一些地方也是如此处理,不再一一注明
一旦警察没收了你的计算机、你的所有帐户都被取消、你的一切活动都被监视的时候,即便是最好的exploit对你又有什么用呢?我不想听那些辩解的话.不,最重要的事应该是不要被捕!这是每个hacker都应该明白的第一件事.因为在很多情况下,特别是当你首次hack一个由于饱受入侵之苦而开始对系统安全敏感的站点时,你的第一次hack也许就将成为你最后一次hack.
所以请仔细阅读所有章节!
即使是一个很有经验的hacker也能从中学到一些东西.
下面是各节的简介:
节 I - 你现在正在读的
节 II - 思想认识
1. 动机
2. 为什么你必须要谨慎(paranoid)
3. 怎样才能谨慎
4. 保持谨慎
节 III - 在你开始hack前应当知道的基本知识
1. 前言
2. 自身安全
3. 自己的帐户
4. log文件
5. 不要留下痕迹
6. 你应当避免的事
节 IV - 你该了解的高级技巧
1. 前言
2. 阻止任何跟踪
3. 找到并处理所有的log文件
4. 检查syslog设置和log文件
5. 检查安装的安全程序
6. 检查系统管理员
7. 怎样修正checksum检查软件
8. 注意某些用户的安全陷阱(诡计?)
9. 其他
节 V - 一旦你受到怀疑你该怎么做
节 VI - 当你被捕时该做的与不该做的
节 VII - 一些用于隐藏痕迹的程序的列表
节 VIII- 最后的话,作者想说的一些废话
请仔细阅读,开动脑筋.
II. 思想认识(MENTAL)
>> 译者注:这一节的目的主要是提醒你树立正确的"hack"观 ;)
----------------------------------------------------------------------
内容: 1. 动机
2. 为什么你必须要谨慎(paranoid)
3. 怎样才能谨慎
4. 保持谨慎
>> 译者注:paranoid的意思是"患偏执狂的",在这里可能是当
>> "小心谨慎"来讲吧.
* 1. 动机 *
不管做什么事,信念总是取得成功的一个关键.它是你的动力源泉,它激发你去奋斗,自我约束,小心谨慎而又面对现实,准确的估计风险,它也能让你去做你不喜欢做但又非常重要的事情(即使你现在就想去游泳).如果你不激励自己去编制重要工具,等候恰当的时机去攻击目标,那你永
远不能成为真正的hacker.
一个成功而又优秀的hacker必须满足这些要求.它就象健身和节食---如果你真正努力去做,你就能成功.
* 2. 为什么你必须要谨慎 *
当然,小心谨慎并不会让你的生活变得更幸福.然而如果你从不做最坏的打算,任何事情都能击倒你,让你失去平衡.你正在做的事会让你冒很大风险.而在你正常的生活中你并不需要担心警察,小偷什么的.但如果你从另一方面考虑,你要知道你正在给别人的生活带来麻烦和恶梦--他们很
想阻止你.尽管你不认为这是犯罪.但当警察迅速逮捕每个可能被牵扯的人时,你会发现一件很悲惨的事:你是有罪的除非你能证明你无罪!一旦你得到了一个hacker的"污名",你就永远不能将其去除.一旦你有了犯罪纪录,你将很难找到一份工作.特别是没有软件公司甚至没有与计算机有关的公司会聘用你,他们会害怕你的技术.你也许不得不移民...一旦跌倒了,能再爬起来的只是少数人.
要小心谨慎!要保护好你自己!记住你得到的一切都可能失去!绝不为做额外的反跟踪工作而感到愚蠢!绝不为如果别人嘲笑你太谨慎而烦心!决不要因为太懒或者厌倦而放弃修改log文件!一名hacker必须%100的完成他的"工作"!
* 3. 怎样才能小心谨慎 *
如果你读了上面的话并且你认为那是对的,那就容易了---你已经变得小心谨慎了但这必须要变成你生活中的一部分才行,当你总是考虑究竟是谁告诉你了那些事,考虑你的电话和email可能已被监视的时候,那它已经变成你生活的一部分了.
如果上面这些还不能帮你,那么考虑一下如果你被捕会发生什么.你的女友还会站在你这边吗?你想看到你父母为你流泪吗?你想丢掉饭碗或学业吗?
不要给这一切以发生的机会!
如果这还不能警醒你:离HACKING远点儿!!!对整个hacker社会和你的朋友来说,你都是个危险人物!
* 4. 保持谨慎 *
我希望现在你明白为什么小心谨慎的重要性了.
所以保持谨慎.一个错误或者一次偷懒都可能彻底毁掉你的生活和事业.在做一件事时应时刻记着你的动机是什么.
>> 译者注:这部分是让你知道你正在干什么及你的处境.如果你不想让你成为无聊记者津津乐道的话题---"某地破获重大黑客案...",那就多看看,多想想.要知道,自己是这种新闻的主角和看别人的新闻可完全不是一个感觉.所以要:谦虚谨慎,戒骄戒躁 :-)
III. 基础知识
----------------------------------------------------------------------
内容 :
1. 前言
2. 自身安全
3. 自己的帐户
4. log文件
5. 不要留下痕迹
6. 你应当避免的事
* 1. 前言 *
在你开始你的初次hack之前,你应当知道这些并且进行些练习.这些都是非常基本的,不知道这些你很快就会有麻烦了.即便是一名很有经验的hacker也能从中得到一些新的提示.
* 2. 自身安全 *
系统管理员读了你的email吗?你的电话被警察监听了吗?警察没收了你存有所有hacking数据的计算机吗?
如果你不接收可疑的email,不在电话里谈论hacking/phreaking的话题,在你的硬盘上也没有敏感和私人数据的话,那你不必担心上面那些情景.但那样你就并不是一个hacker.每个hacker和phreaker都与其他人保持联系并把他的数据保存在某个地方.
加密所有敏感数据!!!
在线硬盘加密程序是非常重要和有用的:
在internet上游很多好的免费硬盘加密程序,它们对你的操作系统来说是完全透明的.下面所列的几个软件都是经过测试的,是hacker's的首选工具:
- 如果你用MsDos,你可以使用SFS v1.17或者SecureDrive 1.4b
- 如果你用Amiga,你可以使用EnigmaII v1.5
- 如果你用Unix,你可以使用CFS v1.33
>> 译者注:在win9x下可以考虑emf,iprotect...
文件加密软件: 你可以使用任何一种加密软件,但它应该是使用一种众所周知的安全加密机制.绝对不要用那些被出口的加密程序,它们的有效密钥长度被缩短了!
- Triple DES
- IDEA
- Blowfish (32 rounds)
加密你的Email!
- PGP v2.6.x 是个不错的工具.
如果你想讨论重要的事情的话,加密你的电话.
- Nautilus v1.5a 是迄今最好的
当你连到一个unix系统时加密你的终端.
一些人可能正在sniffing或者监视你的电话线:
- SSH 是最安全的
- DES-Login 也不错
>> 译者注:- SSL 基于SSL的一些软件也可以一试
用强壮的不可猜测的,不在任何字典中的密码.它应当看起来象随机的但又容易记忆.如果密码长度可以比10个字符更长,那就用更长的.可以从书中抽取一句话,并略作修改.请将你的hacker朋友的电话号码加密两遍.如果你不加密,你应当从公用电话给他打电话.
>> 译者注:其实有个好记又难猜的密码并不难,例如考虑句子"I'm a haxor!"可以从中抽>> 取几个单词组成I'mhaxor,好象没有数字,呵呵,用"eleet"的hacker语言,haxor=h4x0r所以我们的口令可以是:I'mh4x0r(我是hacker).这样的密码恐怕只能用暴力破解了.
如果你对hacking有了深入了解,你应当加密所有的东西!
为你的数据做个备份,当然要先加密,把它放在一个隐秘的地方,最好不要在家里.所以即使你因为失误,火灾或警察搜捕等原因丢失了数据,你还可以得到备份数据.
只有当你真的需要它们时才写出来,否则将它们放在一个机密文件或加密分区里更安全.一旦你不需要它们了,烧掉那些纸.你也可以用只有你自己知道的加密机制将它们写下来,但不要告诉任何人,也别太经常的使用它.也许它很容易被分析和破解。真正沉稳和谨慎的hackers应该考虑实施干扰方案.警察,间谍,其他hacker能监视你的举动.一个拥有先进设备的人可以获得他想要的任何东西:
计算机发射的电子脉冲可以从100米以外的距离被截获,可以显示你的监视器屏幕,监听你的私人谈话,确认键盘敲击时的高频信号等等...所以各种可能性总是存在的.成本低廉的应付方法就是采用电子脉冲干扰发射机,商店里就有卖的.如果你不想让任何人监视你,我认为这些还不够...
>> 译者注:不知道我们的商店里有没有卖的.;-)
* 3. 你自己的帐户 *
下面让我们谈谈你自己的帐户.它就是你在学校/公司/ISP那里得到的帐户,它总是与你的真实姓名联系在一起,所以在使用它时绝对不要违背下面的原则:
永远不要用你的真实帐户做任何非法或者惹人怀疑的事!永远不要试图从你的真实帐户telnet到任何被hacked主机去!当然可以用这个帐号订阅安全mailing lists.但任何与hacking有关的东西都必须加密或者立刻销毁.决不要在你帐号下保存hacking或security工具.尽量用POP3连到你的mailserver下载或者删除你的邮件(如果你对unix比较熟悉,还可以直接telnet到POP3端口执行下载或者删除命令).决不要泄漏你的真实email给你不信任的人,只把它给你信任的人,他们也
应当是比较注意安全问题的人,否则如果他们被捕,下一个就是你了(或许他们根本就是警察,而不是hacker.).与其他的hacker用email交流时必须要用PGP加密,因为系统管理员经常偷看用户目录,甚至读区别人的email!!其他的hacker也可能hack你们的站点并试图得到你的数据.
绝不要用你的帐号表明你对hacking感兴趣!对安全感兴趣可以,但不要再进一步了.
>> 译者注:与别人交流时可以申请免费信箱,最好是国外的,比如hotmail之类,登陆时注意最好
通过proxy.自己的真实信箱应当只用来进行一般的正常通信,与朋友/老师/同事...
* 4. LOG文件 *
有三个重要的log文件:
WTMP - 记录每次登录的信息,包括登陆/退出的时间,终端,登录主机ip
UTMP - 在线用户记录
LASTLOG - 记录用户上次是从哪里登录的
当然还有其他的log,它们将在"高级技巧"一节种讨论.每次通过telnet,ftp,rlogin,rsh
的登录都会被记录到这些文件中.如果你正在hacking,把自己从这些记录中删除就是很重要的了.否则他们会:
a) 准确的发现你什么时候在搞hacking活动
b) 发现你从那个站点过来
c) 知道你在线的时间有多长,以便计算你给他们造成的损失
绝对不要删除这些log文件!!!那等于通知管理员:"嗨,你的机器上有个hacker!".找一个好程序来修改这些log.ZAP(或ZAP2)经常被认为是最好的但事实上它并不是.它只是简单的用0来填充用户上次登陆的数据段.CERT已经发布了一个简单的程序用来检查这些全零数据项.所以这样也会很容易就让人知道现在有个hacker在活动,这样你所有的工作就没有意义了.ZAP的另外一个缺陷是当它找不到那些log文件时,它并不报告.所以在编译之前必须先检查一下路径!你应该使用能改变记录内容的程序(象cloark2.c)或者能真正删掉记录的程序(象clear)
>> 译者注: THC提供的cleara.c ,clearb.c是非常好用的清除工具.可以清除utmp/utmpx,wtmp/wtmpx,修复lastlog让其仍然显示该用户的上次登录信息(而不是你登录的信息).如果你发现你登录后没有显示上次登录信息,那很可能你的机器,可能已经被人hack了,当然,即使显示正确的信息也未必就没有被hack.;-)
一般来说要修改log你必须是root(有些老版本系统例外,它们将utmp/wtmp设成允许所有人可写)但如果你不能得到root权限---你该怎么做呢?你应该rlogin到你现在所处的主机,以便在lastlog种增加一个不是那么惹人怀疑的数据项,它将在该用户下次登录时被显示,如果他看到"上次从localhost登录"的信息时也许不会怀疑.
>> 译者注:这也是没有办法的办法,换了我,我就会怀疑.;)
很多unix系统的login命令有一个bug.当你登录以后再执行一遍login命令时,它将用你当前的终端重写UTMP中的login from段(它显示你是从哪里来的!)那么这些log文件缺省在什么地方呢?
这依赖于不同的Unix版本.
UTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
WTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
LASTLOG : /usr/var/adm 或 /usr/adm 或 /var/adm 或 /var/log
在一些旧unix版本中lastlog数据被写到$HOME/.lastlog
* 5. 不要留下痕迹 *
我曾经碰到很多hacker,他们把自己从log里删除了.但他们忘记删掉他们在机器中留下的其他一些东西:在/tmp和$HOME中的文件Shell 记录一些shell会保留一个history文件(依赖于环境设置)记录你执行的命令.这对hacker来说确实是件很糟糕的事.最好的选择就是当你登录以后先启动一个新shell,然后在你的$HOME中查找历史纪录.
历史记录文件:
sh : .sh_history
csh : .history
ksh : .sh_history
bash: .bash_history
zsh : .history
>> 译者注:.*history是我最喜欢看的文件之一,通过它你可以了解root或用户常干些什么, 从而得知他们的水平如何,如果他们只会执行"ls","pwd","cp"...那说明水平不过尔尔,无须太担心.不过如果你发现root喜欢"find / -type f -perm -04000 -exec ls -a
l {} \;"," "vim /var/adm/messages","ps -aux( -elf) ","netstat -an"....那你就要小心一点了。
备份文件 :
dead.letter, *.bak, *
在你离开前执行一下"ls -altr"看看你有没有留下什么不该留下的东西.你可以敲4个csh命令,它能让你离开时删掉这些历史文件,不留下任何痕迹.
mv .logout save.1
echo rm .history>.logout
echo rm .logout>>.logout
echo mv save.1 .logout>>.logout
>> 译者注:对于bash,有一个简单的办法就是执行一下"HISTFILE=",就是不设置bash的历史文件,这样就不会有讨厌的.bash_history了.(准确地说,是不会往$HOME/.bash_history里写了)
>> 或者退出的时候简单的敲kill -9 0 ,它会杀掉这次登录后产生的所有进程,bash也不会往.bash_history里写
* 6. 你应当避免的事 *
不要在不属于你的机器上crack口令.如果你在别人(比如说一所大学)的机器上破解口令,一旦root发现了你的进程,并且检查它.那么不仅你hacking的帐号保不住了,可能连你得到的那passwd文件也没了.那学校将会密切注视你的一举一动...所以得到口令文件后应该在自己的机器上破解.你并不需要破解太多的帐号,能破出几个就够了.如果你运行攻击/检测程序象ypx,iss,satan或其他的exploiting程序,应当先改名再执行它们.或者你可以修改源码改变它们在进程列表中显示的名字...
>> 译者注:这并不难,你只要在main()中将argv[]用你喜欢显示的名字替代就可以了比如argv[0] ="in.telnetd",argv
![[1]](styles/default/images/smilies/1.gif)
如果某个细心的用户/root发现5个ypx程序在后台运行,他马上就会明白发生了什么.当然如果可能的话不要在命令行中输入参数.如果程序支持交互方式,象telnet.应当先敲"telnet",然后"o target.host.com"...这就不会在进程表中显示目标主机名.
>> 译者注:如果你用ftp,最好这样做:
>> $ ftp -n
>> $ ftp>o target.host
>> blahblah...(一些连接信息)
>> blahblah...(ftp server版本)
>> ftp>user xxx
>> ....
如果你hack了一个系统---不要在任何地方放suid shell!最好装一些后门象(ping,quota或者login),用fix来更正文件的atime和mtime.
>> 译者注: 放suid shell是很蠢的,非常容易被root发现.
IV. 高级技巧
----------------------------------------------------------------------
内容 : 1. 前言
2. 阻止任何跟踪
3. 找到并处理所有的log文件
4. 检查syslog设置和log文件
5. 检查安装的安全程序
6. 检查系统管理员
7. 怎样修正checksum检查软件
8. 注意某些用户的安全陷阱(诡计?)
9. 其他
* 1. 前言 *
一旦你装了第一个sniffer开始你的hack生涯,你就应该知道并使用这些技巧!请运用这些技巧---否则你的hack之旅就行将结束.
* 2. 阻止任何跟踪 *
有时候你的hacking活动会被人发现.那并不是什么大问题 - 你hacked一些站点可能会被关掉,但谁管它呢,赶紧离开就是了.但如果他们试图跟踪你的来路(通常是为了抓住你)的话那就很危险了!
这一节将告诉你他们跟踪你的各种可能的方法以及你该如何应对.
* 通常对系统管理员来说发现一个hacker是从哪里来的并不是什么问题:检查log记录(如果那个hacker真的那么蠢的话);看看hacker安装的sniffer的输出记录(也许里面也记下了他的连接)或者其他系统记帐软件(象loginlog等等);甚至可以用netstat,显示所有已经建立的网络连接--如果那个hacker正在线的话,那他就被发现了.这就是为什么你需要一个gateway server(网关).
* 什么是gateway server?
它是你所"拥有"的很多服务器中的一个,你已经得到了它的root权限.你需要root权限去清除wtmp/lastlog/utmp等系统记录或者其他一些记帐软件的log文件.除此之外你不在这台机器上做任何其他的事(它只是个中转站).你应当定期更换gateway server,可以每隔1,2个星期更换一次,然后至少一个月内不再使用原来的gateway server.这样他们就很难跟踪到你的hacking server.
* hackin server - 所有活动的出发点你从这些机器开始hacking.Telnet(或者更好的:remsh/rsh)到一个gateway server,
然后再到一个目标机器.你需要有root权限以修改log.你必须每隔2-4个星期就更换hacking server..
* 你的堡垒/拨号主机.
这是个临界点.一但他们能跟踪回你拨号进入的机器,你就有麻烦了.只要打个电话给警察,再进行一次通信线路跟踪,你的hack活动就会成为历史了,也许是你的未来.在堡垒主机上你不需要得到root权限.既然你只是通过modem拨入,那里没有什么必须修改的记录.你应该每天用一个不同的帐号拨号进入,尽量用那些很少使用的.你应该找到至少2个你能拨号进去堡垒主机,每隔1-2个
月更换一次.
>> 译者注:我对phreak不熟.我猜大部分的国内hacker还没什么本事能躲过电信局的跟踪.所以最好不要用别人的帐号上网,特别是那些很少上网的帐号,一旦他发现上网费用剧增,肯定会让电信局追查的,到时候你就大难临头了.如果你用那些上网频繁的人的帐号,他反倒不会注意,只会以为这个月上的太厉害了.:-)(这绝对没有鼓励你盗用别人帐号的意思,这等于盗窃,凭什么你
上网要别人交钱?就凭你会用john破几个口令吗?hacker的名声就是让这些打着hacker旗号的无耻之徒败坏的.对这种人就得抓!所以我对这样的phreaker没有什么好感,你要真有本事,就别嫁祸别人,而且还要让电信局查不出来.) 说多了,咱们言归正传.
注意: 如果你能每天拨入不同的系统(比如通过"蓝盒子"),那你就不需要那些hacking server了.
* 使用蓝盒子,这样即使他们跟踪到你的堡垒主机,也不能(至少是不能很容易地)追踪到你的电话...使用蓝盒子必须小心,德国和美国的电话公司有专门的监视系统来追踪使用蓝盒子的人...
使用一个中间系统来传送你的电话将会使跟踪更加困难, 但是同样由于你使用一个pbx或其他的什么东西, 仍使你处于被抓的危险中. 这取决于你.
注意在丹麦所有的电话数据均被记录!即使在你打完电话10年后,他们仍然能证明你曾登录过他们的拨号系统从事hack活动...
- 其他的
如果你想运行satan,iss,ypx,nfs文件句柄猜测程序..你应当使用一个专门的服务器来完成.不要用这个服务器telnet/rlogin到目标服务器,只是用它来进行检测.
有些程序可以bind到一个特殊端口,当一个指定到该端口的连接建立的时候,它自动打开一个连接连到另外一个服务器的某个端口(有些就模拟一个shell,你可以从这个socket daemon中"telnet"到其他机器).使用这种程序你不会被记录(防火墙log除外).有很多程序可以帮你完
成上述功能.
>> 译者注:这种程序我常用的有datapipe.c,telbounc.c,还是很好用的.它就象是个代理服务器,但是不会有记录.:)
如果可能的话,hacking server或者gateway server应该在国外!因为如果你的入侵被发现,当发现你来自国外的主机时,大多数网管都会放弃追查.即使是警察要通过不同的国家追踪你,这也至少可以拖延2-10个星期的时间...
#下面是hack过程的简图,也许对你有些帮助;-)
+-------+ ~---------------> +-------------+ +-----------+
|+-----+| > > | | | |
||本机 || --> > 安全拨号线路 > --> | 堡垒主机 | --> | hacki
ng |
|+-----+| > > | (至少有3个) | | server |
+-------+ ~---------------> +-------------+ +-----------+
|
|
v
+-----------------+ +--------+ +-----------+
| | | | | |
| 内部网络中的主机| ... <-- ... |目标主机| <-- | gateway | | | | | | server | +-----------------+ +--------+ +-----------+ * 3. 找到并处理所有的LOG文件 * 找到所有的logfiles是很重要的---即使他们被隐藏.要找到它们有两种可 能的方法: 1)找到所有打开的文件. 既然所有的log必须写到某个地方去,所以用可以用LSOF(LiSt Open Files)程序 去检查所有打开的文件,必要的话就得修改它们.>> 译者注:lsof由Vic Abell 编写,用来提供被进程打开的文件的信息,
>> 它的最新版本可以在ftp://vic.cc.purdue.edu/pub/tools/unix/lsof下找到.有趣的是,不久前有人发现lsof4.40以前的版本中存在buffer overflow问题,可以取得root权限.:-)
2) 搜索所有在你登录后有变化的文件在你登录后,执行"touch /tmp/check",然后可以干你的活.最后只要执行"find / -newer /tmp/check -print",并检查找到的文件,如果其中有记帐文件,就应该修改它.注意不是所有版本的find都支持 -newer 参数.你也可以用"find / -ctime 0
-print" 或者 "find / -cmin 0 -print"来查找它们.
>> 译者注:我更喜欢用-exec ls -l {} \;来代替-print,因为这可以列出比较详细的信息. 注意上述方法主要是针对系统记帐软件的,它可能会记录你执行的命令.对于只记录login信息的软件,它在你看到shell提示符以前就已经完成记录了.所以用这种检查是查不出来的.
检查你找到的所有的logfiles.它们一般在/usr/adm,/var/adm或者/var/log,/var/run
.
如果它们被记录到@loghost,那你可能就有点麻烦了.你需要hack那台loghost主机去修改log...
>> 译者注:一般单纯用作loghost的机器比较难hack,因为它往往关掉了几乎所有端口,并且只
允许从控制台登录.对于这样的机器,可以用DoS攻击使之瘫痪,从而失去log功能.(要hack往往比较难,要crash it则相对容易一些.;-)当然,本次登陆的记录仍然会被保存下来.
为了处理logs,你可以用"grep -v"或者用wc统计行数后,再用"tail -10 log"察看最后10行
,或者用编辑器vi,emcas.
>> 译者注:如果你从a.b.c来,你可以用grep -v "a.b.c" logfile>logtemp;mv logtemp logfile;来清除所有含有a.b.c的行.如果log文件比较大,你也可以用vim来编辑.注意这只能用来修改文本文件!!!对二进制文件的修改可能导致文件格式被破坏!!!
如果数据文件是二进制格式的,你应当首先查明它是由什么软件产生的,然后设法找到该软件的源码,分析记录项的结构,自己编程修改记录.(可以利用现成的程序加以修改,比如Zap,clear
cloak...).
如果系统安装了accounting软件.你可以用zhart写的acct-clener---它非常有效!
如果你必须修改wtmp,但系统又不能编译源程序也没有perl....你可以这样做,先uuencode
wtmp,然后运行vi,移动到最后一行,删除最后以"M"开头的4行...然后保存退出.uudecode
.然后最后5个wtmp记录项就被删除了.;-) 注意这只在SCO unix下有效,linux下是不行的.
>> 译者注:我没有验证这个,因为没有SCO服务器.如果你要这么做,记得要先做个wtmp的备份.
如果系统用wtmpx和utmpx,那你又有麻烦了..迄今我还不知道有哪个cleaner程序可以处理它们.你不得不自己编一个程序来完成工作.
>> 译者注:wtmpx和utmpx结构与wtmp和utmp类似,只要将清除utmp和wtmp的软件略加修改就可
>> 以了.而且现在已经不少现成的程序可以修改utmpx/wtmpx了.
* 4. 检查SYSLOG配置和记录 *
大部分程序都用syslog函数来记录它们需要的所有东西.因而检查syslogd的配置文件是很重要的.这个配置文件是/etc/syslog.conf - 我不会告诉你它的格式是什么/每一项是什么意思
,
自己去读它的man页.
对你来说重要的syslog类型是kern.*,auth.*和authpriv.*.看看它们被写到哪里了,如果写到文件里还可以修改.如果被转发到其他主机,你必须也要hack它们.如果消息被发给某个用户,tty或者控制台.你能耍点小花招发很多个假消息象"echo 17:04 12-05-85 kernelsendmail[243]: can't resolve bla.bla.com > /dev/console"(或其他你想flood的的设备),让它卷屏,以隐藏你引发的信息.这些log文件是非常非常重要的!检查它们!
* 5. 检查已经安装的安全程序 *
很多注重安全的站点都通过cron运行安全检查程序.crontabs通常在/var/spool/cron/crontabs.检查里面所有的文件,特别是"root"文件,检查它里面都运行了什么程序.用"crontab -l root"可以快速的检查root crontab的内容.
这些安全工具往往装在管理员的目录下比如~/bin.
这些检查软件可能是 tiger, cops, spi, tripwire, l5,binaudit, hobgoblin, s3 等等...
你必须检查它们都报告了些什么东西,看它们是否报告了一些显示出你入侵迹象的东西.如果是的话,你可以 - 更新软件的数据文件,是它们不再报告这种类型的消息.
- 可以重新编程或修改该软件使它们不再产生报告.
- 如果可能的话,删除你安装的后门或其他程序,并试着用其他的方法来完成。
* 6. 检查系统管理员 *
对你来说了解系统管理员采取了那些安全措施是非常重要的.因此你需要知道他们经常使用哪些
普通用户帐号.你可以检查root的.forward文件和alias内容.看看sulog文件,注意那些成功su成root的用户.检查group文件中的wheel和admin组(或者其他任何与管理员相关的组).你也可以
在passwd文件中查找admin,也许你又能找到一个管理员帐号.现在你应该已经知道这台机器上谁是管理员了.进入他们的目录(如果系统不允许root读所有的文件,用chid.c或者changeid.c将自己的uid变成该用户的),检查他们的.history/.sh_history/.bash_history文件看看他们经常执行什么命令.也应当检查他们的.profile/.login/.bash_profile文件看看里面都设置了什么alias,是否执行了什么自动安全检查或logging程序.也检查他们的~/bin目录!大多数情况下被编译的安全程序被放到那里面!当然也要看一下他们的每一个目录(ls -alR ~/).如果你找到任何与安全有关的东西,请读5小节以设法绕过它们的安全保护.
* 7. 怎样修正checksum检查软件 *
一些管理员真得很怕hacker所以装了一些软件来检查二进制文件.如果一个二进制文件被改动了,下次管理员做二进制检查的时候,它将被检测到.那么你怎么找到是否系统安装了这样的程序,又怎样修改它们以便你能植入你的木马程序呢?
注意有很多的二进制检查程序,而且要写一个也真是非常容易(15分钟就够了),你可以用一个
小的script完成这个工作.所以如果这样的软件被安装的话要找到它们是比较困难的.注意
有些常用安全检查程序也提供这样的检查.下面是一些应用得很广泛的软件:
软件名 标准路径 二进制文件名
tripwire : /usr/adm/tcheck, /usr/local/adm/tcheck : databases, tri
pwir
e
binaudit : /usr/local/adm/audit : auditscan
hobgoblin : ~user/bin : hobgoblin
raudit : ~user/bin : raudit.pl
l5 : 编译所在目录 : l5
你要明白有很多种可能!这软件或数据库甚至可能放在一个正常情况下不被mount的盘上或者在其他主机export的NFS分区上.也可能checksum数据库是储存在一个写保护的介质上的.各种可能性都有!但一般情况下你只要检查上述软件是否被安装就可以了,如果没有的话,你就可以改变某些二进制文件.如果你没有找到那些软件,但你又知道这是一个进行了完善安全保护的站点的话,你就不应该改变二进制文件!它们(二进制检查软件)肯定被藏在什么地方了.
如果你发现了这种软件被安装并且你可以修改它们(比如不是放在只读介质上,或者可以通过一些办法绕过限制 - 比如umount该盘然后重新mount成可写的)的话,你该怎么做呢?你有两种选择:首先你可以只检查软件的参数,然后对已经修改过的二进制文件执行一次"update"检查.比如用tripwire的话你可以执行" tripwire -update /bin/target ".第二种办法是你可以编辑要被检查的二进制文件名单 - 从中删除你改动过的二进制文件名.注意你也应当看看是不是连数据库文件自身也会被检查!如果是的话 - 先update再删除数据库文件名.
* 8. 注意某些用户的安全陷阱(诡计?) *
这种情况较少发生,这里提出来主要是为了讨论的更完全.一些用户(可能是管理员或者hacker)通常不象他自己的帐户被别人使用.所以他们有时候会在他们的启动文件里采取一点安全措施.
所以要检查所有的以"."开头的文件(.profile,.cshrc,.login,.logout 等等),看看他们执行了什么命令,记录了些什么东西,以及他们的搜索路径是怎么摄制的.如果某个目录(比如HOME/bin)出现在/bin的前面,你就应该检查一下那个目录的内容了...也许里面装了个程序"ls"或者"w",它会先记录被执行的时间然后再执行真正的程序也许还有些程序用来自动检查wtmp和lastlog文件是否被zap处理过,检查.rhosts,.Xauthority文件,或是否有sniffer正在运行...千万不要使用一个unix高手的帐号!
* 9. 其他 *
最后,在讨论受怀疑或被捕的话题之前,还有一些其他的事情值得引起注意.老的telnet client会export USER变量.一个了解这一点的系统管理员可以编辑telnetd,从而得到所有(通过telnet登录进来的)用户名.一旦他注意到你,他就可以很容易的得知你是从(远方主机的)哪个帐号hack进来的.新的client(客户端程序)已经解决了了这一问题 -但是一个聪明的管理员仍然可以得到其他的信息以鉴别用户:UID,MAIL,HOME变量,这些变量仍然被export,这就可以很容易得鉴别 hacker使用的是哪个帐户.因此在你进行telnet前,记得要改变USER,UID,MAIL和HOME变量,如果你正处在home目录下的话也许甚至要改变PWD变量.
在HP Unix(版本低于v10)中你可以建立隐藏目录.我不是说那些以"."开头的目录而是一些有特殊标志的目录.HP在v9版推出了它,但从v10版本以后就去除了(因为只有hacker才是用它 ;-).
如果你执行"chmod +H directory",则directory目录就不能用"ls -al"列出.为了看这个隐藏目录,你需要为ls增加 -H 参数,例如:"ls -alH".
无论什么时候,当你需要改变文件的日期时,记住你能用"touch"命令设置atime和mtime.你只能通过直接的硬盘读写来设置ctime.
如果你在一个重要系统中安装了sniffer,一定要加密sniffer的输出或者让sniffer通过icmp或者udp将所有被截获的数据发送到一个由你控制的外部主机.为什么要这样做?因为这样即使管理员发现了sniffer(通过cpm或其他检查sniffer存在的程序),他们也不能从sniffer log中得知哪些东西被sniff了,所以他也不能即使提醒正被你sniff的主机.
V. 当你被怀疑时...
----------------------------------------------------------------------
一旦你受到怀疑(被警察或是系统管理员)你应该采取些特别的行动是他们不能得到不利你的
证据.
注意 : 如果系统管理员认为你是个hacker,你就是有罪的直到你被证明是无辜的!这些管理员根本不理会什么法律(有时候我认为hacker与管理员的不同仅仅在于那台计算机属于管理员而已).当他们认为你是个hacker的时候,你就是有罪的,没有律师为你辩护.他们会监视你,你的邮件,文件,甚至记录你的键盘(如果他们够利害的话).当警察被牵扯进来的时候,你的电话线也可能被监听,搜捕行动也许跟着就来了.
如果你注意到你正受到怀疑,一定要保持低调!不要采取任何攻击性行动!最好是等上至少1到2个月,什么都不做.警告你的朋友不要给你发任何邮件,或者只发一些正常的/无害的邮件.如果你突然采用PGP加密邮件,这会提醒正在监视的警察和管理员---你发现他们的监视了.切断与
hacking有关的联系,写点儿文章或者编编程序,一直等到一切都过去.及主要加密你的敏感数
据,销毁所有记有帐号数据,电话号码等等的纸张.当警察搜捕你的时候,那些东西是他们要找的
最重要的东西.
VI. 被捕
----------------------------------------------------------------------
Note that this small chapter covers only the ethics and basics and
hasn't got any references to current laws - because they are different
for every country.
Now we talking about the stuff you should/shouldn't do once the feds
visited you. There are two *very* important things you have to do :
1) GET A LAWYER IMMEDEANTELY !
The lawyer should phone the judge and appeal against the search
warrant. This doesn't help much but may hinder them in their work.
The lawyer should tell you everything you need to know what the
feds are allowed to do and what not.
The lawyer should write a letter to the district attorney and/or
police to request the computers back as fast as possible because
they are urgently needed to do business etc.
As you can see it is very useful to have got a lawyer already
by hand instead of searching for one after the raid.
2) NEVER TALK TO THE COPS !
The feds can't promise you anything. If they tell you, you'll get
away if you talk, don't trust them! Only the district attorney
has got the power to do this. The cops just want to get all
information possible. So if you tell them anything they'll have
got more information from and against you.
You should *always* refuse to give evidence - tell them that you
will only talk with them via your lawyer.
Then you should make a plan with your lawyer how to get you out of this
shit and reduce the damage.
But please keep in mind : don't betray your friends. Don't tell them
any secrets. Don't blow up the scene.
If you do, that's a boomerang : the guys & scene will be very angry
and do revenge, and those guys who'll be caught because of your
evidence will also talk ... and give the cops more information about
*your* crimes!
Note also that once you are caught you get blamed for everything which
happened on that site. If you (or your lawyer) can show them that they
don't have got evidences against you for all those cases they might
have trouble to keep the picture of that "evil hacker" they'll try to
paint about you at the court. If you can even prove that you couldn't
do some of the crimes they accuse you for then your chances are even
better. When the judge sees that false accuses are made he'll suspect
that there could be more false ones and will become distrusted against
the bad prepared charges against you.
I get often asked if the feds/judge can force you to give up your
passwords for PGP, encrypted files and/or harddisks.
That's different for every country. Check out if they could force you
to open your locked safe.
If that's the case you should hide the fact that you are crypting your
data! Talk with your lawyer if it's better for you to stand against
the direction to give out the password - maybe they'd get evidences
which could you get into jail for many years.
(For german guys : THC-MAG #4 will have got an article about the german
law, as far as it concerns hacking and phreaking - that article will
be of course checked by a lawyer to be correct. Note that #4 will only
discuss germany and hence will be in the german language.
But non-germans, keep ya head up, this will be the first and last german
only magazine release ;-)
>>译者注:这一节是讲述了如果被捕,应当做些什么.由于我们的法律和西方不同,所以我就不翻了.有兴趣的可以自己看一看.主要的两点就是:1.马上找到一个律师为你处理这一切.2.不要告诉警察任何东西,也不要出卖其他人.
VII. 有用的程序
----------------------------------------------------------------------
这里有一个你应该找到并使用的程序列表.不要给我发email问我在哪里找到它们 - 自己到
hacker世界中去找!我只列出了最好的log编辑程序(见III-4和IV-3).其他有趣的程序还有telnet重定向程序(见IV-2),但这种程序有很多,大部分只能在1-3种unix类型下编译,所以列表没什么用.
先节是以下几个术语:
改变 - 将logfile中的域改成你喜欢的任意内容
删除 - 删除你要求的记录项
编辑 - 真正的logfile编辑器.
重写 - 只用0字节来重写记录.
不要用这样的软件(e.g. zap) - 它能被检测到!
LOG 修改器
ah-1_0b.tar 改变记帐信息的记录
clear.c 删除utmp,wtmp,lastlog和wtmpx中的记录
cloak2.c 改变utmp,wtmp和lastlog中的记录.
invisible.c 用预设值重写utmp,wtmp和lastlog
所以它比zap更好.注意看,有好多inv*.c!
marryv11.c 编辑utmp, wtmp, lastlog 和 accounting 数据 - 最好的!
wzap.c 删除wtmp中的记录
wtmped.c 删除wtmp中的记录
zap.c 重写utmp, wtmp, lastlog - 不要用它!它会被检测到!
防止ASP木马在服务器上运行
[ 2007-03-25 03:31:11 | 作者: sun ]
如果您的服务器正在受ASP木马的困扰,那么希望这篇文章能帮您解决您所面临的问题。
目前比较流行的ASP木马主要通过三种技术来进行对服务器的相关操作。
一、使用FileSystemObject组件
FileSystemObject可以对文件进行常规操作
可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT/Scripting.FileSystemObject/改名为其它的名字,如:改为FileSystemObject_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT/Scripting.FileSystemObject/CLSID/项目的值
也可以将其删除,来防止此类木马的危害。
注销此组件命令:RegSvr32 /u C:/WINNT/SYSTEM32/scrrun.dll
禁止Guest用户使用scrrun.dll来防止调用此组件。
使用命令:cacls C:/WINNT/system32/scrrun.dll /e /d guests
二、使用WScript.Shell组件
WScript.Shell可以调用系统内核运行DOS基本命令
可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT/WScript.Shell/及HKEY_CLASSES_ROOT/WScript.Shell.1/改名为其它的名字,如:改为WScript.Shell_ChangeName或WScript.Shell.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT/WScript.Shell/CLSID/项目的值
HKEY_CLASSES_ROOT/WScript.Shell.1/CLSID/项目的值
也可以将其删除,来防止此类木马的危害。
三、使用Shell.Application组件
Shell.Application可以调用系统内核运行DOS基本命令
可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT/Shell.Application/
及HKEY_CLASSES_ROOT/Shell.Application.1/
改名为其它的名字,如:改为Shell.Application_ChangeName或Shell.Application.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT/Shell.Application/CLSID/项目的值
HKEY_CLASSES_ROOT/Shell.Application/CLSID/项目的值
也可以将其删除,来防止此类木马的危害。
禁止Guest用户使用shell32.dll来防止调用此组件。
使用命令:cacls C:/WINNT/system32/shell32.dll /e /d guests
注:操作均需要重新启动WEB服务后才会生效。
四、调用Cmd.exe
禁用Guests组用户调用cmd.exe
cacls C:/WINNT/system32/Cmd.exe /e /d guests
通过以上四步的设置基本可以防范目前比较流行的几种木马,但最有效的办法还是通过综合安全设置,将服务器、程序安全都达到一定标准,才可能将安全等级设置较高,防范更多非法入侵。
目前比较流行的ASP木马主要通过三种技术来进行对服务器的相关操作。
一、使用FileSystemObject组件
FileSystemObject可以对文件进行常规操作
可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT/Scripting.FileSystemObject/改名为其它的名字,如:改为FileSystemObject_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT/Scripting.FileSystemObject/CLSID/项目的值
也可以将其删除,来防止此类木马的危害。
注销此组件命令:RegSvr32 /u C:/WINNT/SYSTEM32/scrrun.dll
禁止Guest用户使用scrrun.dll来防止调用此组件。
使用命令:cacls C:/WINNT/system32/scrrun.dll /e /d guests
二、使用WScript.Shell组件
WScript.Shell可以调用系统内核运行DOS基本命令
可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT/WScript.Shell/及HKEY_CLASSES_ROOT/WScript.Shell.1/改名为其它的名字,如:改为WScript.Shell_ChangeName或WScript.Shell.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT/WScript.Shell/CLSID/项目的值
HKEY_CLASSES_ROOT/WScript.Shell.1/CLSID/项目的值
也可以将其删除,来防止此类木马的危害。
三、使用Shell.Application组件
Shell.Application可以调用系统内核运行DOS基本命令
可以通过修改注册表,将此组件改名,来防止此类木马的危害。
HKEY_CLASSES_ROOT/Shell.Application/
及HKEY_CLASSES_ROOT/Shell.Application.1/
改名为其它的名字,如:改为Shell.Application_ChangeName或Shell.Application.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT/Shell.Application/CLSID/项目的值
HKEY_CLASSES_ROOT/Shell.Application/CLSID/项目的值
也可以将其删除,来防止此类木马的危害。
禁止Guest用户使用shell32.dll来防止调用此组件。
使用命令:cacls C:/WINNT/system32/shell32.dll /e /d guests
注:操作均需要重新启动WEB服务后才会生效。
四、调用Cmd.exe
禁用Guests组用户调用cmd.exe
cacls C:/WINNT/system32/Cmd.exe /e /d guests
通过以上四步的设置基本可以防范目前比较流行的几种木马,但最有效的办法还是通过综合安全设置,将服务器、程序安全都达到一定标准,才可能将安全等级设置较高,防范更多非法入侵。
十分钟看懂360系统诊断日志
[ 2007-03-25 03:30:59 | 作者: sun ]
写在前面
当确定一个系统可能存在问题的时候,首先要做的,就是找出系统的问题所在,这个时候我们就需要来“看懂”系统诊断日志,找出原因所在,然后再来做相应清除。虽然现在有很多的流氓清除软件,但跟杀毒软件一样,他们永远是跟着流氓软件后面在奔跑,当这个流氓是一个新出来的时候,必须要经过以下步骤:
厂商拿到样本——>分析——>加入特征码/病毒行为——>更新病毒特征库——用户下载——>查杀成功
所以有时不得以,我们需要自己来诊断一下,当然,这个诊断远没有想象的那么难。目前比较常用的诊断工具有Hijackthis,360safe,SRENG等几个软件。360safe经过几次升级,借鉴了Hijackthis的日志项,目前已经做得很完善了。本篇文章最早2006/10/10发于360官方的紧急救援区并长期置顶,今天把它拿过来,作为对我的BLOG的一个补充。
很多网络新手对于360的扫描日志看不懂,或者看了之后不知道怎么处理,请花5分钟来了解一下,比你发了日志等待别人来解答强,要他救,更要自救。其实很多作很简单的:
使用方法:
确定可疑项——文件粉碎器删除相应文件——重启——用360修复注册表残留值
以下面这篇贴子为例:
http://bbs.360safe.com/viewthread.php?tid=11221&extra=page%3D1
这个日志其实最主要看6项:
02,浏览器辅助对象★★★★★
这个是最需要关注的重点之一。浏览器辅助对象(BHO),本来是IE提供其它程序扩展浏览器的功能所开放的接口,在浏览器启动的时候,自动加载。这个是几乎所有流氓广告软件的“兵家必争之地”。一般情况下,它可能有很多个,如:
O2-BHNTIECatcherClass-{C56CB6B0-0D96-11D6-8C65-B2868B609932}-C:\ProgramFiles\Xi\NetTransport2\NTIEHelper.dll
在这一项中,我们一般看最后面一行,那个.dll文件的位置,这里是C:\ProgramFiles\Xi\NetTransport2\NTIEHelper.dll就是这个ie模块对应的文件,从对应文件目录或者文件名上我们可以分辨这个模块到底是干什么用的—NetTransport是下载工具影音传送带,那么这一项就应该没问题。
如果你看到这个目录不认识,那就需要注意了。尤其注意这个.dll是位于temp目录或者windows/system32目录下,那就基本可以肯定是有问题的了,如示例文章的日志中,这两个都有肯定有问题的:
O2-未知-BH(ShowBarExClass)-[cn5940barModule]-{15953528-6C01-481A-8DB4-01888FB85B7D}-C:\WINDOWS\system32\CN5940~1.DLL
O2-未知-BH(IPCUSmartLinkClass)-[MicrosoftInternetExplorerExtension]-{A5352191-32C0-4EDB-B265-382F576C32FF}-C:\WINDOWS\system32\IPCUHelper2.dll
处理建议:
方法一:在360里——修复——全面诊断——浏览器辅助对象,选中之后进行修复。可以多试几次。
方法二:用Autoruns或者hijackthis这两个工具(www.nslog.cn)
04,自启动项★★★★★
历来自启动项是所有木马/病毒/流氓软件的“兵家必争之地”。当一个流氓软件入侵和被安装到用户机器之后,必然要想办法让用户下次启动计算机的时候,自身还可以运行。方法有多种,放到自启动是最常用最根本的一招。Windows的自启动有十多个地方,常用的如注册表、INI文件,启动组等。Hijackthis会把所有的自启动列出来。包括名称和运行的文件名。
如示例文章中的这个,一共有六项都有问题:
O4-高危险-HKLM\..\Run:[SoundMam][怀疑为恶意程序或病毒,请使用杀毒软件进行查杀。]C:\WINDOWS\system32\SVOHOST.exe
O4-未知-HKLM\..\Run:[IEUpdates][]C:\WINDOWS\system32\Updates.exe
O4-未知-HKCU\..\Run:[updatereal][]C:\WINDOWS\realupdate.exeother
O4-未知-HKCU\..\Run:[daemon][Microsoft基础类应用程序]C:\WINDOWS\daemon.exe
O4-未知-HKCU\..\Run:[wow][]C:\WINDOWS\system32\Launcher.exe
O4-未知-HKCU\..\Run:[zz][]C:\WINDOWS\system32\intenet.exe
O4-高危险-HKCU\..\Run:[rx][疑为恶意程序或病毒。]C:\WINDOWS\system32\explore.exe
处理建议:
对于一般用户,我给出的建议是除了C:\windows\system32\ctfmon.exe这个输入法指示器,其它的除非你知道是自己安装的程序如(C:\programfiles\tencent\qq\qq.exe),其它的一律删除。
如果修复了,它又偷偷出现,那么基本就肯定有问题(一般流氓软件都会有这种自我修复、保护的功能)。对应怀疑是流氓软件的,相应的.exe也要先删除了。
360里——修复——启动项,选中后进行修复,可以多做几次。
023,系统服务★★★★
系统服务是另外一个流氓软件越来越重视的地方。一般Windows系统的服务在这里不会显示出来。只有第三方安装的服务才会显示出来。所有显示的,都需要留心。
如示例文章中的三项都有问题:
O23-未知-Service:NetSys[管理系统网络连接,您可以查看系统网络连接。]-C:\WINDOWS\system32\NetSys.exe
O23-未知-Service:NetWorkLogon[支持网络上计算机远程登陆事件。如果此服务被停用,网络登陆将不可用。如果此服务被禁用,任何依赖它的服务将无法启动。]-rundll32.exe
O23-未知-Service:NetWorkLogons[支持网络上计算机远程登陆事件。如果此服务被停用,网络登陆将不可用。如果此服务被禁用,任何依赖它的服务将无法启动。]-rundll32.exe
处理建议:
如果知道是自己安装的如MySQL,Apahce这类可以不管,其它的服务一般会冒充,起一个类似于很象正常的名字,如Windowsupdatas,NTServices,等。我的建议是所有你不清楚的,全部删掉。尤其.exe的可执行路径位于windows,System32目录下的。(system32目录下的rundll32.exe除外,这个.exe文件不要删除,直接把服务删除便可)
360里——修复——系统服务,选中后进行修复,可以多做几次。
也可以在CMD窗口(开始——运行——cmd.exe)下输入:
scdelete"服务名"来删除一个服务。
[b]——如果360修复之后它又出现了,那么便先用顽固文件删除工具把相应的.exe给删除掉(见置底的),重启一下,然后再修复。
010,WinsockLSP“浏览器绑架”
这个是近来新出现的“相当”有恶意的流氓软件形径,如果用户把相关的文件删掉,会造成用户计算机无法访问网络!
LSP全称为“WindowsSocketLayeredServiceProvider”(分层服务提供商),这是Winsock2.0才有的功能。通俗一点来说,它是Windows所有底层网络Socket通信需要经过的一个大门。而流氓软件在这个地方把自己的软件加进去了,这样就可以截取所有用户访问网络的数据包,可以针对性地投放广告,获取用户访问习惯——想一想,当你访问一个网络的时候,所有数据都被一只大眼睛盯着看,是什么感觉?而当用户如果不清楚删除这个.dll文件,那么就会造成用户不能访问网络。
如示例中有问题的:
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
(正确的应该是system32\mswsock.dll和rsvpsp.dll这两个。)
处理建议:
方法一:先删除对应的.dll文件,然后在360里——修复——修复LSP连接。
方法二:先删除对应的.dll文件,然后下载Lsp-fix( http://www.cexx.org/lspfix.htm )这个工具
方法三:先删除对应的.dll文件,然后重装TCP/IP协议:
http://hi.baidu.com/nslog/blog/item/c478d5f942b94359242df26f.html
*****************************************************************************************
以下为360卫士2.0以后版本新增加的,对系统诊断也很有帮助,只建议高级用户诊断使用:
2006年12月20更新
*****************************************************************************************
040,系统进程加载项
现在有一些流氓软件升级之后,不是通过BHO或者Services来加载,没有一个独立的可执行程序,那样很容易被发觉。它们就通过注入到系统进程空间(如exploer.exe资源管理器),把自己变为正常系统的一部分,这样只要你开了资源管理器,它就在后台运行着了。如下面的:
O40-Explorer.EXE--C:\WINDOWS\system32\dllwm.dll--55125f396efcc0ce7e3f4522669d8cdb
O40-Explorer.EXE--C:\WINDOWS\system32\dms.dll--d2b55c379eeabef0b8925dc8e9a1a58e
360会显示所有没有经常Windows签名的.dll文件,即非微软官方的,这些都是可疑的以及重点查处的对象(当然,不是说100%有问题)
处理建议:
必须要
删除对应的.dll文件,删除办法有几种:
1、用文件粉碎器
2、用unlocker
3、试着到安全模式下删除
041,系统驱动
系统驱动是Windows系统最底层的,它没有进程,没有可执行文件,是通过在drivers目录下的.sys文件来体现。也是所有流氓软件用得最高的一招,象前段时间流行的MY123,飘雪以及几个大流氓:CNNIC,MyIEHelper等,因为采取种种保护策略,所以一般用户很难处理,如下面这个:
O41-csysiymq-csysiymq-C:\WINDOWS\system32\drivers\csysiymq.sys-(running)---
.O41-dtscsi-dtscsi-C:\WINDOWS\system32\drivers\dtscsi.sys-(running)---
O41-IBMPMDRV-IBMPMDRV-C:\WINDOWS\system32\drivers\ibmpmdrv.sys-(running)---7514f26bd730a23b4dcd0f51cd007add
360会显示所有没有经过Windows签名的驱动文件作为分析参考的依据,同样的道理,这里面也有非常多的其它正常软件,如瑞星,卡巴等,这里的处理要求高一点,需要有一定的经验。如果上面几项都处理完了,还有主页被改,弹窗口等现象,就需要考察这里了。
处理建议:
必须要
删除对应的.sys文件,删除办法有几种:
1、用文件粉碎器
2、用unlocker
3、试着到安全模式下删除
以上所有修复不成功的,一般都流氓软件有自我保护功能,可以用下面的办法:
1、用顽固文件删除工具,请参考:
http://bbs.360safe.com/viewthread.php?tid=9432&extra=page%3D1
2、找出流氓软件的驱动保护:
http://hi.baidu.com/nslog/blog/item/c08cbefb2c6b5c224f4aea91.html
其它参考:
360safe安全卫士下载
http://www.360safe.com
Hijackthis浏览器劫持日志精解
http://hi.baidu.com/nslog/blog/item/b208922f52cb04381e30895f.html
清除流氓软件的第一利器(IceSword)
http://hi.baidu.com/nslog/blog/item/14bc35dbac337866d1164e21.html
WinXP/2000/2003下如何重装TCP/IP协议
http://hi.baidu.com/nslog/blog/item/c478d5f942b94359242df26f.html [/b]
当确定一个系统可能存在问题的时候,首先要做的,就是找出系统的问题所在,这个时候我们就需要来“看懂”系统诊断日志,找出原因所在,然后再来做相应清除。虽然现在有很多的流氓清除软件,但跟杀毒软件一样,他们永远是跟着流氓软件后面在奔跑,当这个流氓是一个新出来的时候,必须要经过以下步骤:
厂商拿到样本——>分析——>加入特征码/病毒行为——>更新病毒特征库——用户下载——>查杀成功
所以有时不得以,我们需要自己来诊断一下,当然,这个诊断远没有想象的那么难。目前比较常用的诊断工具有Hijackthis,360safe,SRENG等几个软件。360safe经过几次升级,借鉴了Hijackthis的日志项,目前已经做得很完善了。本篇文章最早2006/10/10发于360官方的紧急救援区并长期置顶,今天把它拿过来,作为对我的BLOG的一个补充。
很多网络新手对于360的扫描日志看不懂,或者看了之后不知道怎么处理,请花5分钟来了解一下,比你发了日志等待别人来解答强,要他救,更要自救。其实很多作很简单的:
使用方法:
确定可疑项——文件粉碎器删除相应文件——重启——用360修复注册表残留值
以下面这篇贴子为例:
http://bbs.360safe.com/viewthread.php?tid=11221&extra=page%3D1
这个日志其实最主要看6项:
02,浏览器辅助对象★★★★★
这个是最需要关注的重点之一。浏览器辅助对象(BHO),本来是IE提供其它程序扩展浏览器的功能所开放的接口,在浏览器启动的时候,自动加载。这个是几乎所有流氓广告软件的“兵家必争之地”。一般情况下,它可能有很多个,如:
O2-BHNTIECatcherClass-{C56CB6B0-0D96-11D6-8C65-B2868B609932}-C:\ProgramFiles\Xi\NetTransport2\NTIEHelper.dll
在这一项中,我们一般看最后面一行,那个.dll文件的位置,这里是C:\ProgramFiles\Xi\NetTransport2\NTIEHelper.dll就是这个ie模块对应的文件,从对应文件目录或者文件名上我们可以分辨这个模块到底是干什么用的—NetTransport是下载工具影音传送带,那么这一项就应该没问题。
如果你看到这个目录不认识,那就需要注意了。尤其注意这个.dll是位于temp目录或者windows/system32目录下,那就基本可以肯定是有问题的了,如示例文章的日志中,这两个都有肯定有问题的:
O2-未知-BH(ShowBarExClass)-[cn5940barModule]-{15953528-6C01-481A-8DB4-01888FB85B7D}-C:\WINDOWS\system32\CN5940~1.DLL
O2-未知-BH(IPCUSmartLinkClass)-[MicrosoftInternetExplorerExtension]-{A5352191-32C0-4EDB-B265-382F576C32FF}-C:\WINDOWS\system32\IPCUHelper2.dll
处理建议:
方法一:在360里——修复——全面诊断——浏览器辅助对象,选中之后进行修复。可以多试几次。
方法二:用Autoruns或者hijackthis这两个工具(www.nslog.cn)
04,自启动项★★★★★
历来自启动项是所有木马/病毒/流氓软件的“兵家必争之地”。当一个流氓软件入侵和被安装到用户机器之后,必然要想办法让用户下次启动计算机的时候,自身还可以运行。方法有多种,放到自启动是最常用最根本的一招。Windows的自启动有十多个地方,常用的如注册表、INI文件,启动组等。Hijackthis会把所有的自启动列出来。包括名称和运行的文件名。
如示例文章中的这个,一共有六项都有问题:
O4-高危险-HKLM\..\Run:[SoundMam][怀疑为恶意程序或病毒,请使用杀毒软件进行查杀。]C:\WINDOWS\system32\SVOHOST.exe
O4-未知-HKLM\..\Run:[IEUpdates][]C:\WINDOWS\system32\Updates.exe
O4-未知-HKCU\..\Run:[updatereal][]C:\WINDOWS\realupdate.exeother
O4-未知-HKCU\..\Run:[daemon][Microsoft基础类应用程序]C:\WINDOWS\daemon.exe
O4-未知-HKCU\..\Run:[wow][]C:\WINDOWS\system32\Launcher.exe
O4-未知-HKCU\..\Run:[zz][]C:\WINDOWS\system32\intenet.exe
O4-高危险-HKCU\..\Run:[rx][疑为恶意程序或病毒。]C:\WINDOWS\system32\explore.exe
处理建议:
对于一般用户,我给出的建议是除了C:\windows\system32\ctfmon.exe这个输入法指示器,其它的除非你知道是自己安装的程序如(C:\programfiles\tencent\qq\qq.exe),其它的一律删除。
如果修复了,它又偷偷出现,那么基本就肯定有问题(一般流氓软件都会有这种自我修复、保护的功能)。对应怀疑是流氓软件的,相应的.exe也要先删除了。
360里——修复——启动项,选中后进行修复,可以多做几次。
023,系统服务★★★★
系统服务是另外一个流氓软件越来越重视的地方。一般Windows系统的服务在这里不会显示出来。只有第三方安装的服务才会显示出来。所有显示的,都需要留心。
如示例文章中的三项都有问题:
O23-未知-Service:NetSys[管理系统网络连接,您可以查看系统网络连接。]-C:\WINDOWS\system32\NetSys.exe
O23-未知-Service:NetWorkLogon[支持网络上计算机远程登陆事件。如果此服务被停用,网络登陆将不可用。如果此服务被禁用,任何依赖它的服务将无法启动。]-rundll32.exe
O23-未知-Service:NetWorkLogons[支持网络上计算机远程登陆事件。如果此服务被停用,网络登陆将不可用。如果此服务被禁用,任何依赖它的服务将无法启动。]-rundll32.exe
处理建议:
如果知道是自己安装的如MySQL,Apahce这类可以不管,其它的服务一般会冒充,起一个类似于很象正常的名字,如Windowsupdatas,NTServices,等。我的建议是所有你不清楚的,全部删掉。尤其.exe的可执行路径位于windows,System32目录下的。(system32目录下的rundll32.exe除外,这个.exe文件不要删除,直接把服务删除便可)
360里——修复——系统服务,选中后进行修复,可以多做几次。
也可以在CMD窗口(开始——运行——cmd.exe)下输入:
scdelete"服务名"来删除一个服务。
[b]——如果360修复之后它又出现了,那么便先用顽固文件删除工具把相应的.exe给删除掉(见置底的),重启一下,然后再修复。
010,WinsockLSP“浏览器绑架”
这个是近来新出现的“相当”有恶意的流氓软件形径,如果用户把相关的文件删掉,会造成用户计算机无法访问网络!
LSP全称为“WindowsSocketLayeredServiceProvider”(分层服务提供商),这是Winsock2.0才有的功能。通俗一点来说,它是Windows所有底层网络Socket通信需要经过的一个大门。而流氓软件在这个地方把自己的软件加进去了,这样就可以截取所有用户访问网络的数据包,可以针对性地投放广告,获取用户访问习惯——想一想,当你访问一个网络的时候,所有数据都被一只大眼睛盯着看,是什么感觉?而当用户如果不清楚删除这个.dll文件,那么就会造成用户不能访问网络。
如示例中有问题的:
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
(正确的应该是system32\mswsock.dll和rsvpsp.dll这两个。)
处理建议:
方法一:先删除对应的.dll文件,然后在360里——修复——修复LSP连接。
方法二:先删除对应的.dll文件,然后下载Lsp-fix( http://www.cexx.org/lspfix.htm )这个工具
方法三:先删除对应的.dll文件,然后重装TCP/IP协议:
http://hi.baidu.com/nslog/blog/item/c478d5f942b94359242df26f.html
*****************************************************************************************
以下为360卫士2.0以后版本新增加的,对系统诊断也很有帮助,只建议高级用户诊断使用:
2006年12月20更新
*****************************************************************************************
040,系统进程加载项
现在有一些流氓软件升级之后,不是通过BHO或者Services来加载,没有一个独立的可执行程序,那样很容易被发觉。它们就通过注入到系统进程空间(如exploer.exe资源管理器),把自己变为正常系统的一部分,这样只要你开了资源管理器,它就在后台运行着了。如下面的:
O40-Explorer.EXE--C:\WINDOWS\system32\dllwm.dll--55125f396efcc0ce7e3f4522669d8cdb
O40-Explorer.EXE--C:\WINDOWS\system32\dms.dll--d2b55c379eeabef0b8925dc8e9a1a58e
360会显示所有没有经常Windows签名的.dll文件,即非微软官方的,这些都是可疑的以及重点查处的对象(当然,不是说100%有问题)
处理建议:
必须要
删除对应的.dll文件,删除办法有几种:
1、用文件粉碎器
2、用unlocker
3、试着到安全模式下删除
041,系统驱动
系统驱动是Windows系统最底层的,它没有进程,没有可执行文件,是通过在drivers目录下的.sys文件来体现。也是所有流氓软件用得最高的一招,象前段时间流行的MY123,飘雪以及几个大流氓:CNNIC,MyIEHelper等,因为采取种种保护策略,所以一般用户很难处理,如下面这个:
O41-csysiymq-csysiymq-C:\WINDOWS\system32\drivers\csysiymq.sys-(running)---
.O41-dtscsi-dtscsi-C:\WINDOWS\system32\drivers\dtscsi.sys-(running)---
O41-IBMPMDRV-IBMPMDRV-C:\WINDOWS\system32\drivers\ibmpmdrv.sys-(running)---7514f26bd730a23b4dcd0f51cd007add
360会显示所有没有经过Windows签名的驱动文件作为分析参考的依据,同样的道理,这里面也有非常多的其它正常软件,如瑞星,卡巴等,这里的处理要求高一点,需要有一定的经验。如果上面几项都处理完了,还有主页被改,弹窗口等现象,就需要考察这里了。
处理建议:
必须要
删除对应的.sys文件,删除办法有几种:
1、用文件粉碎器
2、用unlocker
3、试着到安全模式下删除
以上所有修复不成功的,一般都流氓软件有自我保护功能,可以用下面的办法:
1、用顽固文件删除工具,请参考:
http://bbs.360safe.com/viewthread.php?tid=9432&extra=page%3D1
2、找出流氓软件的驱动保护:
http://hi.baidu.com/nslog/blog/item/c08cbefb2c6b5c224f4aea91.html
其它参考:
360safe安全卫士下载
http://www.360safe.com
Hijackthis浏览器劫持日志精解
http://hi.baidu.com/nslog/blog/item/b208922f52cb04381e30895f.html
清除流氓软件的第一利器(IceSword)
http://hi.baidu.com/nslog/blog/item/14bc35dbac337866d1164e21.html
WinXP/2000/2003下如何重装TCP/IP协议
http://hi.baidu.com/nslog/blog/item/c478d5f942b94359242df26f.html [/b]
漏洞分类及进一步发掘
[ 2007-03-25 03:30:46 | 作者: sun ]
漏洞是一个永远的童话。实现劫富济贫的英雄梦想,实现打破技术垄断的自由蓝图,发现漏洞的人,利用漏洞的人,修补漏洞的人,喜欢漏洞的人,害怕漏洞的人就象这个多彩的世界一样,他们构成了计算机网络安全世界永远的角色!
现在很多口必称漏洞,把漏洞的利用当自己的绝招和宝贝,其实漏洞是什么,我们或许存在着很多误解。下面结合相关资料和我个人的理解,我们今天就讲讲什么是漏洞,这个十分基本的问题。
1、什么是漏洞
专业上讲漏洞是在硬件、软件、协议的具体实现或系统安全策略上(主要是人为)存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。但是,其实这是一个纲目,很多书上定义都不同,这里算是比较全面的。怎么理解呢,还是有例子来说吧,这几十年来,漏洞太多了,不能一一说。
2、漏洞的狭义范围
漏洞会影响到很大范围的软硬件设备,包括作系统本身及其支撑软件,网络客户和服务器软件,网络路由器和安全防火墙等。怎么理解呢,就是在这些不同的软硬件设备中都可能存在不同的安全漏洞问题。
3、漏洞的广义范围
这里的漏洞是指所有威胁到计算机信息安全的事物。包括人员、硬件、软件、程序、数据。
4、漏洞的长久性
漏洞问题是与时间紧密相关的。一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。漏洞问题也会长期存在。
5、漏洞的隐蔽性
系统安全漏洞是指可以用来对系统安全造成危害,系统本身具有的,或设置上存在的缺陷。总之,漏洞是系统在具体实现中的错误。比如在建立安全机制中规划考虑上的缺陷,作系统和其他软件编程中的错误,以及在使用该系统提供的安全机制时人为的配置错误等。
系统安全漏洞是在系统具体实现和具体使用中产生的错误,但并不是系统中存在的错误都是安全漏洞。只有能威胁到系统安全的错误才是漏洞。许多错误在通常情况下并不会对系统安全造成危害,只有被人在某些条件下故意使用时才会影响系统安全。
6、漏洞的必然被发现性
漏洞虽然可能最初就存在于系统当中,但一个漏洞并不是自己出现的,必须要有人发现。在实际使用中,用户会发现系统中存在错误,而入侵者会有意利用其中的某些错误并使其成为威胁系统安全的工具,这时人们会认识到这个错误是一个系统安全漏洞。系统供应商会尽快发布针对这个漏洞的补丁程序,纠正这个错误。这就是系统安全漏洞从被发现到被纠正的一般过程。
系统攻击者往往是安全漏洞的发现者和使用者,要对于一个系统进行攻击,如果不能发现和使用系统中存在的安全漏洞是不可能成功的。对于安全级别较高的系统尤其如此。
系统安全漏洞与系统攻击活动之间有紧密的关系。因而不该脱离系统攻击活动来谈论安全漏洞问题。广泛的攻击存在,才使漏洞存在必然被发现性。
7、为什么要紧跟最新的计算机系统及其安全问题的最新发展动态
脱离具体的时间和具体的系统环境来讨论漏洞问题是毫无意义的。只能针对目标系统的作系统版本、其上运行的软件版本以及服务运行设置等实际环境来具体谈论其中可能存在的漏洞及其可行的解决办法。
同时应该看到,对漏洞问题的研究必须要跟踪当前最新的计算机系统及其安全问题的最新发展动态。这一点如同对计算机病毒发展问题的研究相似。如果在工作中不能保持对新技术的跟踪,就没有谈论系统安全漏洞问题的发言权,既使是以前所作的工作也会逐渐失去价值。
你喜欢漏洞,你讨厌也好。它永远存在,做到了"不以物喜,不以己悲",实现了"爱她就爱她的灵魂----自由,平等,共享,创新"。 同时它也证明了这个世界没有绝对的安全,如果世界上永远存在计算机存在软件,那么它又将证明什么叫永恒。童话里有永恒的虚假的美, 而漏洞是永恒的真实的童话。
一、不同角度看安全漏洞的分类
对一个特定程序的安全漏洞可以从多方面进行分类。
1、从用户群体分类
●大众类软件的漏洞。如Windows的漏洞、IE的漏洞等等。
●专用软件的漏洞。如Oracle漏洞、Apache漏洞等等。
2、从数据角度看分为
●能读按理不能读的数据,包括内存中的数据、文件中的数据、用户输入的数据、数据库中的数据、网络上传输的数据等等。
●能把指定的内容写入指定的地方(这个地方包括文件、内存、数据库等)
●输入的数据能被执行(包括按机器码执行、按Shell代码执行、按SQL代码执行等等)
3、从作用范围角度看分为
●远程漏洞,攻击者可以利用并直接通过网络发起攻击的漏洞。这类漏洞危害极大,攻击者能随心所欲的通过此漏洞操作他人的电脑。并且此类漏洞很容易导致蠕虫攻击,在Windows。
●本地漏洞,攻击者必须在本机拥有访问权限前提下才能发起攻击的漏洞。比较典型的是本地权限提升漏洞,这类漏洞在Unix系统中广泛存在,能让普通用户获得最高管理员权限。
4、从触发条件上看可以分为
●主动触发漏洞,攻击者可以主动利用该漏洞进行攻击,如直接访问他人计算机。
●被动触发漏洞,必须要计算机的操作人员配合才能进行攻击利用的漏洞。比如攻击者给管理员发一封邮件,带了一个特殊的jpg图片文件,如果管理员打开图片文件就会导致看图软件的某个漏洞被触发,从而系统被攻击,但如果管理员不看这个图片则不会受攻击。
5、从操作角度看可分为
●文件操作类型,主要为操作的目标文件路径可被控制(如通过参数、配置文件、环境变量、符号链接灯),这样就可能导致下面两个问题:
◇写入内容可被控制,从而可伪造文件内容,导致权限提升或直接修改重要数据(如修改存贷数据),这类漏洞有很多,如历史上Oracle TNS LOG文件可指定漏洞,可导致任何人可控制运行Oracle服务的计算机;
◇内容信息可被输出,包含内容被打印到屏幕、记录到可读的日志文件、产生可被用户读的core文件等等,这类漏洞在历史上Unix系统中的crontab子系统中出现过很多次,普通用户能读受保护的shadow文件;
●内存覆盖,主要为内存单元可指定,写入内容可指定,这样就能执行攻击者想执行的代码(缓冲区溢出、格式串漏洞、PTrace漏洞、历史上Windows2000的硬件调试寄存器用户可写漏洞)或直接修改内存中的机密数据。
●逻辑错误,这类漏洞广泛存在,但很少有范式,所以难以查觉,可细分为:
◇条件竞争漏洞(通常为设计问题,典型的有Ptrace漏洞、广泛存在的文件操作时序竞争)
◇策略错误,通常为设计问题,如历史上FreeBSD的Smart IO漏洞。
◇算法问题(通常为设计问题或代码实现问题),如历史上微软的Windows 95/98的共享口令可轻易获取漏洞。
◇设计的不完善,如TCP/IP协议中的3步握手导致了SYN FLOOD拒绝服务攻击。
◇实现中的错误(通常为设计没有问题,但编码人员出现了逻辑错误,如历史上博彩系统的伪随机算法实现问题)
●外部命令执行问题,典型的有外部命令可被控制(通过PATH变量,输入中的SHELL特殊字符等等)和SQL注入问题。
6、从时序上看可分为
●已发现很久的漏洞:厂商已经发布补丁或修补方法,很多人都已经知道。这类漏洞通常很多人已经进行了修补,宏观上看危害比较小。
●刚发现的漏洞:厂商刚发补丁或修补方法,知道的人还不多。相对于上一种漏洞其危害性较大,如果此时出现了蠕虫或傻瓜化的利用程序,那么会导致大批系统受到攻击。
●0day:还没有公开的漏洞,在私下交易中的。这类漏洞通常对大众不会有什么影响,但会导致攻击者瞄准的目标受到精确攻击,危害也是非常之大。
二、不同角度看待漏洞利用
如果一个缺陷不能被利用来干“原本”不能干的事(安全相关的),那么就不能被称为安全漏洞,所以安全漏洞必然和漏洞利用紧密联系在一起。
漏洞利用的视角有:
●数据视角:访问本来不可访问的数据,包括读和写。这一条通常是攻击者的核心目的,而且可造成非常严重的灾难(如银行数据可被人写)。
●权限视角:主要为权限绕过或权限提升。通常权限提升都是为了获得期望的数据操作能力。
●可用性视角:获得对系统某些服务的控制权限,这可能导致某些重要服务被攻击者停止而导致拒绝服务攻击。
●认证绕过:通常利用认证系统的漏洞而不用受权就能进入系统。通常认证绕过都是为权限提升或直接的数据访问服务的。
●代码执行角度:主要是让程序将输入的内容作为代码来执行,从而获得远程系统的访问权限或本地系统的更高权限。这个角度是SQL注入、内存指针游戏类漏洞(缓冲区溢出、格式串、整形溢出等等)等的主要驱动。这个角度通常为绕过系统认证、权限提升、数据读取作准备的。
三、漏洞发掘方法
首先必须清除安全漏洞是软件BUG的一个子集,一切软件测试的手段都对安全漏洞发掘实用。现在”黑客“用的各种漏洞发掘手段里有模式可循的有:
●fuzz测试(黑盒测试),通过构造可能导致程序出现问题的方式构造输入数据进行自动测试。
●源码审计(白盒测试),现在有了一系列的工具都能协助发现程序中的安全BUG,最简单的就是你手上最新版本的C语言编译器。
●IDA反汇编审计(灰盒测试),这和上面的源码审计非常类似,唯一不同的是很多时候你能获得软件,但你无法拿到源码来审计,但IDA是一个非常强大的反汇编平台,能让你基于汇编码(其实也是源码的等价物)进行安全审计。
●动态跟踪分析,就是记录程序在不同条件下执行的全部和安全问题相关的操作(如文件操作),然后分析这些操作序列是否存在问题,这是竞争条件类漏洞发现的主要途径之一,其他的污点传播跟踪也属于这类。
●补丁比较,厂商的软件出了问题通常都会在补丁中解决,通过对比补丁前后文件的源码(或反汇编码)就能了解到漏洞的具体细节。
以上手段中无论是用哪种都涉及到一个关键点:需要通过人工分析来找到全面的流程覆盖路径。分析手法多种多样,有分析设计文档、分析源码、分析反汇编代码、动态调试程序等。
四、漏洞等级评定
考察漏洞的危害性应该紧密的和利用该漏洞带来的危害相关,并不是通常大家认识的所有缓冲区溢出漏洞都是高危漏洞。以远程漏洞为例,比较好的划分方法为:
1 可远程获取OS、应用程序版本信息。
2 开放了不必要或危险得服务,可远程获取系统敏感信息。
3 可远程进行受限的文件、数据读取。
4 可远程进行重要或不受限文件、数据读取。
5 可远程进行受限文件、数据修改。
6 可远程进行受限重要文件、数据修改。
7 可远程进行不受限得重要文件、数据修改,或对普通服务进行拒绝服务攻击。
8 可远程以普通用户身份执行命令或进行系统、网络级的拒绝服务攻击。
9 可远程以管理用户身份执行命令(受限、不太容易利用)。
10 可远程以管理用户身份执行命令(不受限、容易利用)。
本地漏洞几乎都是导致代码执行,归入上面的10分制可以为:
远程主动触发代码执行(如IE的漏洞)。
远程被动触发代码执行(如Word漏洞/看图软件漏洞)。
五、DEMO
一个防火墙隔离(只允许运维部的人访问)的网络里运行一台Unix服务器;操作系统中只有root用户和oracle用户可登陆,操作系统中运行了Apache(nobody权限)、Oracle(oracle用户权限)等服务。
一个攻击者的目的是修改Oracle数据库中的帐单表的数据。
其可能的攻击步骤为:
●1.接入运维部的网络,获得一个运维部的IP地址从而能通过防火墙访问被保护的Unix服务器。
●2.利用Apache服务的某远程缓冲区溢出漏洞直接获得一个nobody权限的shell访问。
●3.利用操作系统某suid程序的漏洞将自己的权限提升到root权限。
●4.用Oracle的sysdba登陆进入数据库(本地登陆不需要密码)。
●5.修改目标表的数据。
以上5个过程分析下来为:
●第1步:认证绕过
●第2步:远程漏洞、代码执行(机器码)、认证绕过
●第3步:权限提升、认证绕过
●第4步:认证绕过
●第5步:数据写
现在很多口必称漏洞,把漏洞的利用当自己的绝招和宝贝,其实漏洞是什么,我们或许存在着很多误解。下面结合相关资料和我个人的理解,我们今天就讲讲什么是漏洞,这个十分基本的问题。
1、什么是漏洞
专业上讲漏洞是在硬件、软件、协议的具体实现或系统安全策略上(主要是人为)存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。但是,其实这是一个纲目,很多书上定义都不同,这里算是比较全面的。怎么理解呢,还是有例子来说吧,这几十年来,漏洞太多了,不能一一说。
2、漏洞的狭义范围
漏洞会影响到很大范围的软硬件设备,包括作系统本身及其支撑软件,网络客户和服务器软件,网络路由器和安全防火墙等。怎么理解呢,就是在这些不同的软硬件设备中都可能存在不同的安全漏洞问题。
3、漏洞的广义范围
这里的漏洞是指所有威胁到计算机信息安全的事物。包括人员、硬件、软件、程序、数据。
4、漏洞的长久性
漏洞问题是与时间紧密相关的。一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商发布的补丁软件修补,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞和错误。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。漏洞问题也会长期存在。
5、漏洞的隐蔽性
系统安全漏洞是指可以用来对系统安全造成危害,系统本身具有的,或设置上存在的缺陷。总之,漏洞是系统在具体实现中的错误。比如在建立安全机制中规划考虑上的缺陷,作系统和其他软件编程中的错误,以及在使用该系统提供的安全机制时人为的配置错误等。
系统安全漏洞是在系统具体实现和具体使用中产生的错误,但并不是系统中存在的错误都是安全漏洞。只有能威胁到系统安全的错误才是漏洞。许多错误在通常情况下并不会对系统安全造成危害,只有被人在某些条件下故意使用时才会影响系统安全。
6、漏洞的必然被发现性
漏洞虽然可能最初就存在于系统当中,但一个漏洞并不是自己出现的,必须要有人发现。在实际使用中,用户会发现系统中存在错误,而入侵者会有意利用其中的某些错误并使其成为威胁系统安全的工具,这时人们会认识到这个错误是一个系统安全漏洞。系统供应商会尽快发布针对这个漏洞的补丁程序,纠正这个错误。这就是系统安全漏洞从被发现到被纠正的一般过程。
系统攻击者往往是安全漏洞的发现者和使用者,要对于一个系统进行攻击,如果不能发现和使用系统中存在的安全漏洞是不可能成功的。对于安全级别较高的系统尤其如此。
系统安全漏洞与系统攻击活动之间有紧密的关系。因而不该脱离系统攻击活动来谈论安全漏洞问题。广泛的攻击存在,才使漏洞存在必然被发现性。
7、为什么要紧跟最新的计算机系统及其安全问题的最新发展动态
脱离具体的时间和具体的系统环境来讨论漏洞问题是毫无意义的。只能针对目标系统的作系统版本、其上运行的软件版本以及服务运行设置等实际环境来具体谈论其中可能存在的漏洞及其可行的解决办法。
同时应该看到,对漏洞问题的研究必须要跟踪当前最新的计算机系统及其安全问题的最新发展动态。这一点如同对计算机病毒发展问题的研究相似。如果在工作中不能保持对新技术的跟踪,就没有谈论系统安全漏洞问题的发言权,既使是以前所作的工作也会逐渐失去价值。
你喜欢漏洞,你讨厌也好。它永远存在,做到了"不以物喜,不以己悲",实现了"爱她就爱她的灵魂----自由,平等,共享,创新"。 同时它也证明了这个世界没有绝对的安全,如果世界上永远存在计算机存在软件,那么它又将证明什么叫永恒。童话里有永恒的虚假的美, 而漏洞是永恒的真实的童话。
一、不同角度看安全漏洞的分类
对一个特定程序的安全漏洞可以从多方面进行分类。
1、从用户群体分类
●大众类软件的漏洞。如Windows的漏洞、IE的漏洞等等。
●专用软件的漏洞。如Oracle漏洞、Apache漏洞等等。
2、从数据角度看分为
●能读按理不能读的数据,包括内存中的数据、文件中的数据、用户输入的数据、数据库中的数据、网络上传输的数据等等。
●能把指定的内容写入指定的地方(这个地方包括文件、内存、数据库等)
●输入的数据能被执行(包括按机器码执行、按Shell代码执行、按SQL代码执行等等)
3、从作用范围角度看分为
●远程漏洞,攻击者可以利用并直接通过网络发起攻击的漏洞。这类漏洞危害极大,攻击者能随心所欲的通过此漏洞操作他人的电脑。并且此类漏洞很容易导致蠕虫攻击,在Windows。
●本地漏洞,攻击者必须在本机拥有访问权限前提下才能发起攻击的漏洞。比较典型的是本地权限提升漏洞,这类漏洞在Unix系统中广泛存在,能让普通用户获得最高管理员权限。
4、从触发条件上看可以分为
●主动触发漏洞,攻击者可以主动利用该漏洞进行攻击,如直接访问他人计算机。
●被动触发漏洞,必须要计算机的操作人员配合才能进行攻击利用的漏洞。比如攻击者给管理员发一封邮件,带了一个特殊的jpg图片文件,如果管理员打开图片文件就会导致看图软件的某个漏洞被触发,从而系统被攻击,但如果管理员不看这个图片则不会受攻击。
5、从操作角度看可分为
●文件操作类型,主要为操作的目标文件路径可被控制(如通过参数、配置文件、环境变量、符号链接灯),这样就可能导致下面两个问题:
◇写入内容可被控制,从而可伪造文件内容,导致权限提升或直接修改重要数据(如修改存贷数据),这类漏洞有很多,如历史上Oracle TNS LOG文件可指定漏洞,可导致任何人可控制运行Oracle服务的计算机;
◇内容信息可被输出,包含内容被打印到屏幕、记录到可读的日志文件、产生可被用户读的core文件等等,这类漏洞在历史上Unix系统中的crontab子系统中出现过很多次,普通用户能读受保护的shadow文件;
●内存覆盖,主要为内存单元可指定,写入内容可指定,这样就能执行攻击者想执行的代码(缓冲区溢出、格式串漏洞、PTrace漏洞、历史上Windows2000的硬件调试寄存器用户可写漏洞)或直接修改内存中的机密数据。
●逻辑错误,这类漏洞广泛存在,但很少有范式,所以难以查觉,可细分为:
◇条件竞争漏洞(通常为设计问题,典型的有Ptrace漏洞、广泛存在的文件操作时序竞争)
◇策略错误,通常为设计问题,如历史上FreeBSD的Smart IO漏洞。
◇算法问题(通常为设计问题或代码实现问题),如历史上微软的Windows 95/98的共享口令可轻易获取漏洞。
◇设计的不完善,如TCP/IP协议中的3步握手导致了SYN FLOOD拒绝服务攻击。
◇实现中的错误(通常为设计没有问题,但编码人员出现了逻辑错误,如历史上博彩系统的伪随机算法实现问题)
●外部命令执行问题,典型的有外部命令可被控制(通过PATH变量,输入中的SHELL特殊字符等等)和SQL注入问题。
6、从时序上看可分为
●已发现很久的漏洞:厂商已经发布补丁或修补方法,很多人都已经知道。这类漏洞通常很多人已经进行了修补,宏观上看危害比较小。
●刚发现的漏洞:厂商刚发补丁或修补方法,知道的人还不多。相对于上一种漏洞其危害性较大,如果此时出现了蠕虫或傻瓜化的利用程序,那么会导致大批系统受到攻击。
●0day:还没有公开的漏洞,在私下交易中的。这类漏洞通常对大众不会有什么影响,但会导致攻击者瞄准的目标受到精确攻击,危害也是非常之大。
二、不同角度看待漏洞利用
如果一个缺陷不能被利用来干“原本”不能干的事(安全相关的),那么就不能被称为安全漏洞,所以安全漏洞必然和漏洞利用紧密联系在一起。
漏洞利用的视角有:
●数据视角:访问本来不可访问的数据,包括读和写。这一条通常是攻击者的核心目的,而且可造成非常严重的灾难(如银行数据可被人写)。
●权限视角:主要为权限绕过或权限提升。通常权限提升都是为了获得期望的数据操作能力。
●可用性视角:获得对系统某些服务的控制权限,这可能导致某些重要服务被攻击者停止而导致拒绝服务攻击。
●认证绕过:通常利用认证系统的漏洞而不用受权就能进入系统。通常认证绕过都是为权限提升或直接的数据访问服务的。
●代码执行角度:主要是让程序将输入的内容作为代码来执行,从而获得远程系统的访问权限或本地系统的更高权限。这个角度是SQL注入、内存指针游戏类漏洞(缓冲区溢出、格式串、整形溢出等等)等的主要驱动。这个角度通常为绕过系统认证、权限提升、数据读取作准备的。
三、漏洞发掘方法
首先必须清除安全漏洞是软件BUG的一个子集,一切软件测试的手段都对安全漏洞发掘实用。现在”黑客“用的各种漏洞发掘手段里有模式可循的有:
●fuzz测试(黑盒测试),通过构造可能导致程序出现问题的方式构造输入数据进行自动测试。
●源码审计(白盒测试),现在有了一系列的工具都能协助发现程序中的安全BUG,最简单的就是你手上最新版本的C语言编译器。
●IDA反汇编审计(灰盒测试),这和上面的源码审计非常类似,唯一不同的是很多时候你能获得软件,但你无法拿到源码来审计,但IDA是一个非常强大的反汇编平台,能让你基于汇编码(其实也是源码的等价物)进行安全审计。
●动态跟踪分析,就是记录程序在不同条件下执行的全部和安全问题相关的操作(如文件操作),然后分析这些操作序列是否存在问题,这是竞争条件类漏洞发现的主要途径之一,其他的污点传播跟踪也属于这类。
●补丁比较,厂商的软件出了问题通常都会在补丁中解决,通过对比补丁前后文件的源码(或反汇编码)就能了解到漏洞的具体细节。
以上手段中无论是用哪种都涉及到一个关键点:需要通过人工分析来找到全面的流程覆盖路径。分析手法多种多样,有分析设计文档、分析源码、分析反汇编代码、动态调试程序等。
四、漏洞等级评定
考察漏洞的危害性应该紧密的和利用该漏洞带来的危害相关,并不是通常大家认识的所有缓冲区溢出漏洞都是高危漏洞。以远程漏洞为例,比较好的划分方法为:
1 可远程获取OS、应用程序版本信息。
2 开放了不必要或危险得服务,可远程获取系统敏感信息。
3 可远程进行受限的文件、数据读取。
4 可远程进行重要或不受限文件、数据读取。
5 可远程进行受限文件、数据修改。
6 可远程进行受限重要文件、数据修改。
7 可远程进行不受限得重要文件、数据修改,或对普通服务进行拒绝服务攻击。
8 可远程以普通用户身份执行命令或进行系统、网络级的拒绝服务攻击。
9 可远程以管理用户身份执行命令(受限、不太容易利用)。
10 可远程以管理用户身份执行命令(不受限、容易利用)。
本地漏洞几乎都是导致代码执行,归入上面的10分制可以为:
远程主动触发代码执行(如IE的漏洞)。
远程被动触发代码执行(如Word漏洞/看图软件漏洞)。
五、DEMO
一个防火墙隔离(只允许运维部的人访问)的网络里运行一台Unix服务器;操作系统中只有root用户和oracle用户可登陆,操作系统中运行了Apache(nobody权限)、Oracle(oracle用户权限)等服务。
一个攻击者的目的是修改Oracle数据库中的帐单表的数据。
其可能的攻击步骤为:
●1.接入运维部的网络,获得一个运维部的IP地址从而能通过防火墙访问被保护的Unix服务器。
●2.利用Apache服务的某远程缓冲区溢出漏洞直接获得一个nobody权限的shell访问。
●3.利用操作系统某suid程序的漏洞将自己的权限提升到root权限。
●4.用Oracle的sysdba登陆进入数据库(本地登陆不需要密码)。
●5.修改目标表的数据。
以上5个过程分析下来为:
●第1步:认证绕过
●第2步:远程漏洞、代码执行(机器码)、认证绕过
●第3步:权限提升、认证绕过
●第4步:认证绕过
●第5步:数据写
三步堵死SQL注入漏洞
[ 2007-03-25 03:30:30 | 作者: sun ]
SQL注入是什么?
许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),根据程序返回的结果,获得某些想得知的数据,这就是所谓的SQL Injection,即SQL注入。
网站的恶梦——SQL注入
SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站和访问该网站的网友都带来巨大危害。
防御SQL注入有妙法
第一步:很多新手从网上下载SQL通用防注入系统的程序,在需要防范注入的页面头部用 来防止别人进行手动注入测试(。
可是如果通过SQL注入分析器就可轻松跳过防注入系统并自动分析其注入点。然后只需要几分钟,你的管理员账号及密码就会被分析出来。
第二步:对于注入分析器的防范,笔者通过实验,发现了一种简单有效的防范方法。首先我们要知道SQL注入分析器是如何工作的。在操作过程中,发现软件并不是冲着“admin”管理员账号去的,而是冲着权限(如flag=1)去的。这样一来,无论你的管理员账号怎么变都无法逃过检测。
第三步:既然无法逃过检测,那我们就做两个账号,一个是普通的管理员账号,一个是防止注入的账号,为什么这么说呢?笔者想,如果找一个权限最大的账号制造假象,吸引软件的检测,而这个账号里的内容是大于千字以上的中文字符,就会迫使软件对这个账号进行分析的时候进入全负荷状态甚至资源耗尽而死机。下面我们就来修改数据库吧。
1.对表结构进行修改。将管理员的账号字段的数据类型进行修改,文本型改成最大字段255(其实也够了,如果还想做得再大点,可以选择备注型),密码的字段也进行相同设置。
2.对表进行修改。设置管理员权限的账号放在ID1,并输入大量中文字符(最好大于100个字)。
3.把真正的管理员密码放在ID2后的任何一个位置(如放在ID549上)。
我们通过上面的三步完成了对数据库的修改。
这时是不是修改结束了呢?其实不然,要明白你做的ID1账号其实也是真正有权限的账号,现在计算机处理速度那么快,要是遇上个一定要将它算出来的软件,这也是不安全的。我想这时大多数人已经想到了办法,对,只要在管理员登录的页面文件中写入字符限制就行了!就算对方使用这个有上千字符的账号密码也会被挡住的,而真正的密码则可以不受限制。
许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),根据程序返回的结果,获得某些想得知的数据,这就是所谓的SQL Injection,即SQL注入。
网站的恶梦——SQL注入
SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站和访问该网站的网友都带来巨大危害。
防御SQL注入有妙法
第一步:很多新手从网上下载SQL通用防注入系统的程序,在需要防范注入的页面头部用 来防止别人进行手动注入测试(。
可是如果通过SQL注入分析器就可轻松跳过防注入系统并自动分析其注入点。然后只需要几分钟,你的管理员账号及密码就会被分析出来。
第二步:对于注入分析器的防范,笔者通过实验,发现了一种简单有效的防范方法。首先我们要知道SQL注入分析器是如何工作的。在操作过程中,发现软件并不是冲着“admin”管理员账号去的,而是冲着权限(如flag=1)去的。这样一来,无论你的管理员账号怎么变都无法逃过检测。
第三步:既然无法逃过检测,那我们就做两个账号,一个是普通的管理员账号,一个是防止注入的账号,为什么这么说呢?笔者想,如果找一个权限最大的账号制造假象,吸引软件的检测,而这个账号里的内容是大于千字以上的中文字符,就会迫使软件对这个账号进行分析的时候进入全负荷状态甚至资源耗尽而死机。下面我们就来修改数据库吧。
1.对表结构进行修改。将管理员的账号字段的数据类型进行修改,文本型改成最大字段255(其实也够了,如果还想做得再大点,可以选择备注型),密码的字段也进行相同设置。
2.对表进行修改。设置管理员权限的账号放在ID1,并输入大量中文字符(最好大于100个字)。
3.把真正的管理员密码放在ID2后的任何一个位置(如放在ID549上)。
我们通过上面的三步完成了对数据库的修改。
这时是不是修改结束了呢?其实不然,要明白你做的ID1账号其实也是真正有权限的账号,现在计算机处理速度那么快,要是遇上个一定要将它算出来的软件,这也是不安全的。我想这时大多数人已经想到了办法,对,只要在管理员登录的页面文件中写入字符限制就行了!就算对方使用这个有上千字符的账号密码也会被挡住的,而真正的密码则可以不受限制。
新手看招:网络服务器安全维护技巧
[ 2007-03-25 03:30:21 | 作者: sun ]
这篇文章是本人对平时对服务器网络安全的一些接触而总结下来的一些心得,是一些基本的常识,适合入门级的服务器管护人员阅读,希望不会在老资历的技术员面前见笑。
首先,我们可以分析一下,对网络服务器的恶意网络行为包括两个方面:一是恶意的攻击行为,如拒绝服务攻击,网络病毒等等,这些行为旨在消耗服务器资源,影响服务器的正常运作,甚至服务器所在网络的瘫痪;另外一个就是恶意的入侵行为,这种行为更是会导致服务器敏感信息泄露,入侵者更是可以为所欲为,肆意破坏服务器。所以我们要保证网络服务器的安全可以说就是尽量减少网络服务器受这两种行为的影响。
基于windows做操作系统的服务器在中国市场的份额以及国人对该操作系统的了解程度,我在这里谈谈个人对维护windows网络服务器安全的一些个人意见。
如何避免网络服务器受网上那些恶意的攻击行为。
(一) 构建好你的硬件安全防御系统
选用一套好的安全系统模型。一套完善的安全模型应该包括以下一些必要的组件:防火墙、入侵检测系统、路由系统等。
防火墙在安全系统中扮演一个保安的角色,可以很大程度上保证来自网络的非法访问以及数据流量攻击,如拒绝服务攻击等;入侵检测系统则是扮演一个监视器的角色,监视你的服务器出入口,非常智能地过滤掉那些带有入侵和攻击性质的访问。
(二) 选用英文的操作系统
要知道,windows毕竟美国微软的东西,而微软的东西一向都是以Bug 和 Patch多而著称,中文版的Bug远远要比英文版多,而中文版的补丁向来是比英文版出的晚,也就是说,如果你的服务器上装的是中文版的windows系统,微软漏洞公布之后你还需要等上一段时间才能打好补丁,也许黑客、病毒就利用这段时间入侵了你的系统。
如何防止网络服务器不被黑客入侵:
首先,作为一个黑客崇拜者,我想说一句,世界上没有绝对安全的系统。我们只可以尽量避免被入侵,最大的程度上减少伤亡。
(一) 采用NTFS文件系统格式
大家都知道,我们通常采用的文件系统是FAT或者FAT32,NTFS是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。NTFS文件系统里你可以为任何一个磁盘分区单独设置访问权限。把你自己的敏感信息和服务信息分别放在不同的磁盘分区。这样即使黑客通过某些方法获得你的服务文件所在磁盘分区的访问权限,还需要想方设法突破系统的安全设置才能进一步访问到保存在其他磁盘上的敏感信息。
(二)做好系统备份
常言道,“有备无患”,虽然谁都不希望系统突然遭到破坏,但是不怕一万,就怕万一,作好服务器系统备份,万一遭破坏的时候也可以及时恢复。
(三)关闭不必要的服务,只开该开的端口
关闭那些不必要开的服务,做好本地管理和组管理。Windows系统有很多默认的服务其实没必要开的,甚至可以说是危险的,比如:默认的共享远程注册表访问(Remote Registry Service),系统很多敏感的信息都是写在注册表里的,如pcanywhere的加密密码等。
关闭那些不必要的端口。一些看似不必要的端口,确可以向黑客透露许多操作系统的敏感信息,如windows 2000 server默认开启的IIS服务就告诉对方你的操作系统是windows 2000。69端口告诉黑客你的操作系统极有可能是linux或者unix系统,因为69是这些操作系统下默认的tftp服务使用的端口。对端口的进一步访问,还可以返回该服务器上软件及其版本的一些信息,这些对黑客的入侵都提供了很大的帮助。此外,开启的端口更有可能成为黑客进入服务器的门户。
总之,做好TCP/IP端口过滤不但有助于防止黑客入侵,而且对防止病毒也有一定的帮助。
(四)软件防火墙、杀毒软件
虽然我们已经有了一套硬件的防御系统,但是“保镖”多几个也不是坏事。
(五)开启你的事件日志
虽然开启日志服务虽然说对阻止黑客的入侵并没有直接的作用,但是通过他记录黑客的行踪,我们可以分析入侵者在我们的系统上到底做过什么手脚,给我们的系统到底造成了哪些破坏及隐患,黑客到底在我们的系统上留了什么样的后门,我们的服务器到底还存在哪些安全漏洞等等。如果你是高手的话,你还可以设置密罐,等待黑客来入侵,在他入侵的时候把他逮个正着。
识别常见Web应用安全漏洞 有效防止入侵
[ 2007-03-25 03:30:08 | 作者: sun ]
在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻。伴随着在线信息和服务的可用性的提升,以及基子Web的攻击和破坏的增长,安全风险达到了前所未有的高度。由于众多安全工作集中在网络本身上面,Web应用程序几乎被遗忘了。也许这是因为应用程序过去常常是在一台计算机上运行的独立程序,如果这台计算机安全的话,那么应用程序就是安全的。如今,情况大不一样了,Web应用程序在多种不同的机器上运行:客户端、Web服务器、数据库服务器和应用服务器。而且,因为他们一般可以让所有的人使用,所以这些应用程序成为了众多攻击活动的后台旁路。
由于Web服务器提供了几种不同的方式将请求转发给应用服务器,并将修改过的或新的网页发回给最终用户,这使得非法闯入网络变得更加容易。
而且,许多程序员不知道如何开发安全的应用程序。他们的经验也许是开发独立应用程序或Intranet Web应用程序,这些应用程序没有考虑到在安全缺陷被利用时可能会出现灾难性后果。
其次,许多Web应用程序容易受到通过服务器、应用程序和内部已开发的代码进行的攻击。这些攻击行动直接通过了周边防火墙安全措施,因为端口80或443(SSL,安全套接字协议层)必须开放,以便让应用程序正常运行。Web应用程序攻击包括对应用程序本身的DoS(拒绝服务)攻击、改变网页内容以及盗走企业的关键信息或用户信息等。
总之,Web应用攻击之所以与其他攻击不同,是因为它们很难被发现,而且可能来自任何在线用户,甚至是经过验证的用户。迄今为止,该方面尚未受到重视,因为企业用户主要使用防火墙和入侵检测解决方案来保护其网络的安全,而防火墙和入侵检测解决方案发现不了Web攻击行动。
常见的Web应用安全漏洞
下面将列出一系列通常会出现的安全漏洞,并且简单解释一下这些漏洞是如何产生的。
已知弱点和错误配置
已知弱点包括Web应用使用的操作系统和第三方应用程序中的所有程序错误或者可以被利用的漏洞。这个问题也涉及到错误配置,包含有不安全的默认设置或管理员没有进行安全配置的应用程序。一个很好的例子就是你的Web服务器被配置成可以让任何用户从系统上的任何目录路径通过,这样可能会导致泄露存储在Web服务器上的一些敏感信息,如口令、源代码或客户信息等。
隐藏字段
在许多应用中,隐藏的HTML格式字段被用来保存系统口令或商品价格。尽管其名称如此,但这些字段并不是很隐蔽的,任何在网页上执行“查看源代码”的人都能看见。许多Web应用允许恶意的用户修改HTML源文件中的这些字段,为他们提供了以极小成本或无需成本购买商品的机会。这些攻击行动之所以成功,是因为大多数应用没有对返回网页进行验证;相反,它们认为输入数据和输出数据是一样的。
后门和调试漏洞
开发人员常常建立一些后门并依靠调试来排除应用程序的故障。在开发过程中这样做可以,但这些安全漏洞经常被留在一些放在Internet上的最终应用中。一些常见的后门使用户不用口令就可以登录或者访问允许直接进行应用配置的特殊URL。
跨站点脚本编写
一般来说,跨站点编写脚本是将代码插入由另一个源发送的网页之中的过程。利用跨站点编写脚本的一种方式是通过HTML格式,将信息帖到公告牌上就是跨站点脚本编写的一个很好范例。恶意的用户会在公告牌上帖上包含有恶意的JavaScript代码的信息。当用户查看这个公告牌时,服务器就会发送HTML与这个恶意的用户代码一起显示。客户端的浏览器会执行该代码,因为它认为这是来自Web服务器的有效代码。
参数篡改
参数篡改包括操纵URL字符串,以检索用户以其他方式得不到的信息。访问Web应用的后端数据库是通过常常包含在URL中的SQL调用来进行的。恶意的用户可以操纵SQL代码,以便将来有可能检索一份包含所有用户、口令、信用卡号的清单或者储存在数据库中的任何其他数据。
由于Web服务器提供了几种不同的方式将请求转发给应用服务器,并将修改过的或新的网页发回给最终用户,这使得非法闯入网络变得更加容易。
而且,许多程序员不知道如何开发安全的应用程序。他们的经验也许是开发独立应用程序或Intranet Web应用程序,这些应用程序没有考虑到在安全缺陷被利用时可能会出现灾难性后果。
其次,许多Web应用程序容易受到通过服务器、应用程序和内部已开发的代码进行的攻击。这些攻击行动直接通过了周边防火墙安全措施,因为端口80或443(SSL,安全套接字协议层)必须开放,以便让应用程序正常运行。Web应用程序攻击包括对应用程序本身的DoS(拒绝服务)攻击、改变网页内容以及盗走企业的关键信息或用户信息等。
总之,Web应用攻击之所以与其他攻击不同,是因为它们很难被发现,而且可能来自任何在线用户,甚至是经过验证的用户。迄今为止,该方面尚未受到重视,因为企业用户主要使用防火墙和入侵检测解决方案来保护其网络的安全,而防火墙和入侵检测解决方案发现不了Web攻击行动。
常见的Web应用安全漏洞
下面将列出一系列通常会出现的安全漏洞,并且简单解释一下这些漏洞是如何产生的。
已知弱点和错误配置
已知弱点包括Web应用使用的操作系统和第三方应用程序中的所有程序错误或者可以被利用的漏洞。这个问题也涉及到错误配置,包含有不安全的默认设置或管理员没有进行安全配置的应用程序。一个很好的例子就是你的Web服务器被配置成可以让任何用户从系统上的任何目录路径通过,这样可能会导致泄露存储在Web服务器上的一些敏感信息,如口令、源代码或客户信息等。
隐藏字段
在许多应用中,隐藏的HTML格式字段被用来保存系统口令或商品价格。尽管其名称如此,但这些字段并不是很隐蔽的,任何在网页上执行“查看源代码”的人都能看见。许多Web应用允许恶意的用户修改HTML源文件中的这些字段,为他们提供了以极小成本或无需成本购买商品的机会。这些攻击行动之所以成功,是因为大多数应用没有对返回网页进行验证;相反,它们认为输入数据和输出数据是一样的。
后门和调试漏洞
开发人员常常建立一些后门并依靠调试来排除应用程序的故障。在开发过程中这样做可以,但这些安全漏洞经常被留在一些放在Internet上的最终应用中。一些常见的后门使用户不用口令就可以登录或者访问允许直接进行应用配置的特殊URL。
跨站点脚本编写
一般来说,跨站点编写脚本是将代码插入由另一个源发送的网页之中的过程。利用跨站点编写脚本的一种方式是通过HTML格式,将信息帖到公告牌上就是跨站点脚本编写的一个很好范例。恶意的用户会在公告牌上帖上包含有恶意的JavaScript代码的信息。当用户查看这个公告牌时,服务器就会发送HTML与这个恶意的用户代码一起显示。客户端的浏览器会执行该代码,因为它认为这是来自Web服务器的有效代码。
参数篡改
参数篡改包括操纵URL字符串,以检索用户以其他方式得不到的信息。访问Web应用的后端数据库是通过常常包含在URL中的SQL调用来进行的。恶意的用户可以操纵SQL代码,以便将来有可能检索一份包含所有用户、口令、信用卡号的清单或者储存在数据库中的任何其他数据。
解决IE被恶意修改方法总结
[ 2007-03-25 03:29:56 | 作者: sun ]
经常听到别人说自己电脑的IE被恶意修改了,我也曾经经常遇到过,做事做的好好,突然蹦出个网页实在是郁闷到极点啊。后来我就在网上乱搜一通,简单总结了下他们的方法特在此版块发给新手门,尤其是玩黑的!
大概有下面几种解决方法吧。
一、修改IE工具栏
在一般情况下,IE首页的修改可以通过IE工具栏里的“工具”-“Internet选项”-“常规”-“主页”功能模块来实现。
在弹出的窗口里,用户只要在“可更改主页”的地址栏中输入自己经常使用的网址然后再点击下面的“使用当前页”按钮就可以将其设为自己的IE首页了;如果是点击了“使用默认页”则一般会使IE首页调整为微软中国公司的主页;至于“使用空白页”选项则是让IE首页显示为“about:blank”字样的空白页,这样便于输入网址。
二、修改注册表
很多情况下,由于受了恶意程序的控制,或中了木马病毒,上面的方法根本不奏效,甚至有时候,“可更改主页”的地址栏都变成了灰色,无法再进行调整;有时候,即使你把网址改回来了,再开启IE浏览器,那个恶意网址又跑回来了。 实在是头大~~如果这样的话,最通常的办法就是修改注册表文件。
我们首先启动Windows的注册表编辑器,具体方法是点击Windows界面左下角的“开始”按钮,再选择“运行”,在弹出的对话框中输入“regedit”就可以进入注册表编辑器了。
IE首页的注册表文件是放在:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page下的,而这个子键的键值就是IE首页的网址。以笔者的电脑为例,键值是http://www.hao123.com,它是可以修改的,用户可以改为自己常用的网址,或是改为“about: blank”,即空白页。这样,你重启IE就可以看到效果了。
如果这种方法也不能奏效,那就是因为一些病毒或是流氓软件在你的电脑里面安装了一个自运行程序,就算你通过修改注册表恢复了IE首页,但是你一重新启动电脑,这个程序就会自动运行再次篡改。
这时候,我们需要对注册表文件进行更多的修改,运行“regedit”,然后依次展开HKEY_LOCAL_
MACHINE\Software\Microsoft\Windows\Current Version\Run主键,然后将其下的不知明的启动子键值删除,然后对应删除其不知明的自运行程序文件,最后从IE选项中重新设置起始页就好了。
除了上面的情况外,有些IE被改了首页后,即使设置了“使用默认页”仍然无效,这是因为IE起始页的默认页也被篡改啦。对于这种情况,我们同样可以通过修改注册表来解决,运行“regedit”展开:HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main\
Default_Page_URL子键,然后将“Default_Page_UR”子键的键值中的那些篡改网站的网址改掉就好了,或者设置为IE的默认值。
三、使用IE修复软件
虽然修改注册表的方法十分有效,但是对于一般的电脑用户来说较为专业,而且编辑过程中也涉及到了比较多的英语。因此,我们在这里介绍大家使用一些专门的修复工具。
一般来说,IE修复工具有两大类。一是商业机构提供的辅助性工具,如瑞星注册表修复工具、3721的上网助手中附带的IE修复专家、超级兔子中的IE修复工具等等,这些软件大多捆绑在商业软件或是工具软件中,有些还需要付费才能够使用。其特点是,功能强大,建议经济实力较强的用户使用。
其中瑞星的注册表修复工具是可以免费单独下载的,具体的使用办法可以参考这些软件的帮助文件。
还有一点就是看系统启动项在运行里输入msconfig 查看启动项,你在这里可以查到每次开机时访问的网站URL地址,还有一种是在启动栏中有一个连接到本机的连接,该连接有可能是连接到一个*.js的文件,查找时要细心,左边的选勾去掉后,再按照路径把*.JS文件删除,然后重新启动系统就可以了。
大概有下面几种解决方法吧。
一、修改IE工具栏
在一般情况下,IE首页的修改可以通过IE工具栏里的“工具”-“Internet选项”-“常规”-“主页”功能模块来实现。
在弹出的窗口里,用户只要在“可更改主页”的地址栏中输入自己经常使用的网址然后再点击下面的“使用当前页”按钮就可以将其设为自己的IE首页了;如果是点击了“使用默认页”则一般会使IE首页调整为微软中国公司的主页;至于“使用空白页”选项则是让IE首页显示为“about:blank”字样的空白页,这样便于输入网址。
二、修改注册表
很多情况下,由于受了恶意程序的控制,或中了木马病毒,上面的方法根本不奏效,甚至有时候,“可更改主页”的地址栏都变成了灰色,无法再进行调整;有时候,即使你把网址改回来了,再开启IE浏览器,那个恶意网址又跑回来了。 实在是头大~~如果这样的话,最通常的办法就是修改注册表文件。
我们首先启动Windows的注册表编辑器,具体方法是点击Windows界面左下角的“开始”按钮,再选择“运行”,在弹出的对话框中输入“regedit”就可以进入注册表编辑器了。
IE首页的注册表文件是放在:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page下的,而这个子键的键值就是IE首页的网址。以笔者的电脑为例,键值是http://www.hao123.com,它是可以修改的,用户可以改为自己常用的网址,或是改为“about: blank”,即空白页。这样,你重启IE就可以看到效果了。
如果这种方法也不能奏效,那就是因为一些病毒或是流氓软件在你的电脑里面安装了一个自运行程序,就算你通过修改注册表恢复了IE首页,但是你一重新启动电脑,这个程序就会自动运行再次篡改。
这时候,我们需要对注册表文件进行更多的修改,运行“regedit”,然后依次展开HKEY_LOCAL_
MACHINE\Software\Microsoft\Windows\Current Version\Run主键,然后将其下的不知明的启动子键值删除,然后对应删除其不知明的自运行程序文件,最后从IE选项中重新设置起始页就好了。
除了上面的情况外,有些IE被改了首页后,即使设置了“使用默认页”仍然无效,这是因为IE起始页的默认页也被篡改啦。对于这种情况,我们同样可以通过修改注册表来解决,运行“regedit”展开:HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main\
Default_Page_URL子键,然后将“Default_Page_UR”子键的键值中的那些篡改网站的网址改掉就好了,或者设置为IE的默认值。
三、使用IE修复软件
虽然修改注册表的方法十分有效,但是对于一般的电脑用户来说较为专业,而且编辑过程中也涉及到了比较多的英语。因此,我们在这里介绍大家使用一些专门的修复工具。
一般来说,IE修复工具有两大类。一是商业机构提供的辅助性工具,如瑞星注册表修复工具、3721的上网助手中附带的IE修复专家、超级兔子中的IE修复工具等等,这些软件大多捆绑在商业软件或是工具软件中,有些还需要付费才能够使用。其特点是,功能强大,建议经济实力较强的用户使用。
其中瑞星的注册表修复工具是可以免费单独下载的,具体的使用办法可以参考这些软件的帮助文件。
还有一点就是看系统启动项在运行里输入msconfig 查看启动项,你在这里可以查到每次开机时访问的网站URL地址,还有一种是在启动栏中有一个连接到本机的连接,该连接有可能是连接到一个*.js的文件,查找时要细心,左边的选勾去掉后,再按照路径把*.JS文件删除,然后重新启动系统就可以了。