本书是原《Linux黑客大曝光》的升级版,书中更为详细地阐述了Linux黑客不断演绎的行为以及应对策略。
\r\n 全书分析现今最通晓战术应用的黑客的思路,以循序渐进的方式介绍如何预防最新的特定于Linux系统的攻击。书中详细介绍了攻击者如何收集信息、确定目标、搜寻漏洞和获得控制的方法,囊括了一些众所周知或迄今仍鲜为人知的入侵案例,通过对这些案例的分析,讲解了具体攻击的过程,以及提供这些攻击的详细对策。
\r\n 本书是预防Linux安全漏洞的工具书,也是负责Linux安全保障工作的系统管理员必读之书,同时可供信息管理员以及对计算机和网络安全感兴趣的人员参考。
第1部分 锁定Linux目标\r\n 第1章 Linux安全问题概述 \r\n 1.1 黑客为什么想成为root用户\r\n 1.2 开放源代码运动 \r\n 1.3 Linux用户 \r\n 1.4 其他安全性控制 \r\n 1.5 错误代码 \r\n 1.6 小结 \r\n 第2章 预防措施 \r\n 2.1 弱点扫描程序\r\n 2.2 扫描检测器 \r\n 2.3 加固系统 \r\n 2.4 日志文件分析 \r\n 2.5 文件系统完整性检查 \r\n 2.6 小结\r\n 第3章 对机器和网络踩点 \r\n 3.1 在线搜索 \r\n 3.2 whois数据库 \r\n 3.3 ping扫射 \r\n 3.4 DNS问题 \r\n 3.5 traceroutes \r\n 3.6 端口扫描 \r\n 3.7 操作系统检测 \r\n 3.8 枚举RPC服务 \r\n 3.9 通过NFS的文件共享 \r\n 3.10 简单网络管理协议(SNMP) \r\n 3.11 网络漏洞扫描程序 \r\n 3.12 小结 \r\n第2部分 由 外 入 内\r\n 第4章 社交工程、特洛伊木马和其他黑客伎俩\r\n 4.1 社交工程(Social Engineering) \r\n 4.2 特洛伊木马 \r\n 4.3 病毒和蠕虫 \r\n 4.4 小结 \r\n 第5章 物理攻击 \r\n 5.1 攻击办公室 \r\n 5.2 启动权限是root权限 \r\n 5.3 加密文件系统 \r\n 5.4 小结 \r\n 第6章 网络攻击 \r\n 6.1 使用网络 \r\n 6.2 可经由网络攻击的漏洞 \r\n 6.3 攻击网络客户端 \r\n 6.4 默认口令 \r\n 6.5 嗅探网络信息 \r\n 6.6 口令猜测 \r\n 6.7 小结 \r\n 第7章 高级网络攻击 \r\n 7.1 DNS攻击 \r\n 7.2 路由问题\r\n 7.3 高级嗅探和会话劫持 \r\n 7.4 滥用信任关系 \r\n 7.5 攻击无线网络 \r\n 7.6 实施出口过滤 \r\n 7.7 小结 \r\n第3部分 本地用户攻击\r\n 第8章 提升用户权限 \r\n 8.1 用户和权限 \r\n 8.2 系统勘察 \r\n 8.3 可信路径和特洛伊木马 \r\n 8.4 SUDO \r\n 8.5 可从本地攻击的程序 \r\n 8.6 基于内核的攻击 \r\n 8.7 小结 \r\n 第9章 Linux的用户认证机制 \r\n 9.1 Linux上口令的工作方式 \r\n 9.2 口令破解程序 \r\n 9.3 PAM \r\n 9.4 蛮力口令猜测攻击 \r\n 9.5 口令保护 \r\n 9.6 Linux中非shell程序的用户认证机制 \r\n 9.7 小结 \r\n第4部分 服务器的安全问题\r\n 第10章 邮件安全性 \r\n 10.1 Mail Transfer Agent \r\n 10.2 邮件服务器漏洞 \r\n 10.3 小结 \r\n 第11章 文件传输协议(FTP)安全性\r\n 11.1 FTP软件历史 \r\n 11.2 FTP协议 \r\n 11.3 小结 \r\n 第12章 Web服务器和动态页面 \r\n 12.1 生成HTTP请求\r\n 12.2 Apache Web服务器\r\n 12.3 CGI程序问题\r\n 12.4 PHP \r\n 12.5 其他Linux Web服务器 \r\n 12.6 小结 \r\n第13章 访问控制和防火墙 \r\n 13.1 inetd和xinetd概述 \r\n 13.2 防火墙:内核级访问控制 \r\n 13.3 小结 \r\n 第14章 拒绝服务攻击 \r\n 14.1 内核DoS攻击 \r\n 14.2 网络潮涌 \r\n 14.3 分布式拒绝服务攻击 \r\n 14.4 本地资源耗尽攻击\r\n 14.5 小结 \r\n第5部分 侵 入 之 后\r\n 第15章 隐藏通道 \r\n 15.1 踪迹隐藏 \r\n 15.2 木马化的系统程序 \r\n 15.3 小结 \r\n 第16章 后门 \r\n 16.1 基于主机的认证和用户访问 \r\n 16.2 创建和修改账号 \r\n 16.3 使用SSH的无口令登录 \r\n 16.4 可从网络访问的root shell \r\n 16.5 木马后门 \r\n 16.6 小结 \r\n 第17章 攻击系统的高级方法 \r\n 17.1 入侵内核 \r\n 17.2 rootkit \r\n 17.3 小结 \r\n第6部分 附 录\r\n 附录A 发现攻击并从中恢复\r\n 附录B 保持程序的最新版本 \r\n 附录C 关闭不需要的服务 \r\n 附录D 案例研究
Brian Hatch是一位UNIX/Linux安全顾问、系统管理员和资深黑客,就职于Onsight公司。他在美国西北大学开设了多门课程,同时也是Stunnel(一种广为使用的SSL安全软件包)的维护者之一。
James Lee是一位Perl黑客、Linux系统管理员和安全顾问,同时也是开源软件的鼓吹者。James是Onsight公司的创建者和CEO,该公司致力于专业化的Perl培训和Web开发。
本书更为详细地阐述了Linux上的黑客行为,向大家展示了Linux与其他类UNIX系统的不同之处,并给出了特定于Linux系统,同时也能立即实施的黑客对策。与《黑客大曝光》的重击风格一致,本书也专注于攻击方所使用的实际攻击手段。这些信息应该在有责任心的读者中共享,因为那些不怀好意的人早已了解了这些技术,事实也确实如此。只有这样,现有的这些用以秘密侵入Linux系统的攻击技术才不会造成进一步的损害。本书使Linux黑客走下神坛,也使攻击者试图获得系统root权限的各种诡计大白于天下。
自从将内核代码张贴到USENET以来,Linux已经走过了很长的路,它不再是当初的业余系统。它的用户遍及全球众多大学到财富500强企业。数以百万计的人每天依赖于基于Linux的数据库、电子商务和关键系统;这样,一本完整的致力于保护Linux安全的手册的出现恰逢其时。
本书涵盖了恶意黑客攻击Linux系统的众多方法,以及这些方法的基本原理。针对那些坏家伙精通于这些技术的情况,本书旨在以培养系统管理员的方式培养家庭用户。这些系统管理员不仅负责关键任务的Linux服务器的日常操作和安全保护,而且还得为生计而努力(他们的所得远低于他们的付出)。如果此书在你手边,说明你已经意识到安全的重要性。那么,不要放下这本书。继续学习这些网络攻击者用来攻击你的Linux系统的工具和技术,以及那些能够保障系统安全性的对策。
本书的组织结构
第1部分 锁定Linux目标
Linux日益流行。那些只使用过黑盒操作系统的可怜人们,在腾出硬盘空间并第一次安装Linux之后,就会发现开源运动的乐趣所在。
第1章 以对Linux的简要概述开始,接着介绍内建于Linux操作系统的安全措施。经验丰富的Linux系统管理员会发现其中的大部分都已经耳熟能详了:这些材料所针对的是那些Linux系统管理员新手,以使他们尽快入行。这里也涉及了Linux和其他类Unix系统的差异,并讨论了那些仅在真正的多用户操作系统上才出现的问题。此外还分类讨论了那些贯穿于本书的常见安全漏洞和概念。
第2章 整章详述各种黑客对策,例如日志文件分析。在本书随后的章节中都将引用到这些手段和策略。本章的目的在于使读者尽早熟悉它们,以便在讨论攻击方法时,能随时想到这些对策。这样,当随后看到书中所涉及的攻击手段时,甚至能够预言可使用哪些对策。
第3章 进入正题:攻击者如何发现并检查你的系统。读者将会了解到攻击者如何在Internet上数以百万计的计算机中选中你的机器,确定你所运行的系统,并在试图侵入之前进行研究。
第2部分 由外入内
在攻击者搞乱你的系统之前,他必须从外部进入。有很多种方法可以进入你的系统。
第4章 首先给出黑客直接或间接使用的某些诡计。这里讨论社交工程(social engineering),即黑客取信于人们并使之放松警惕的过程。我们将向读者展示黑客如何通过欺骗,使人们运行他所提供的特洛伊木马,从而侵入相关系统。此外,还介绍了给人们日常工作带来烦恼的病毒和蠕虫。
第5章 黑客也可以直接从控制台破坏系统。不论如何保护系统使之免受来自网络的攻击,对计算机有物理访问权的黑客可以使用很多方法,包括通过软盘启动他自己的操作系统,直到从机器里拔出你的硬盘等。
第6章 当前大多数对系统的攻击来自于网络上的黑客。本章包括多种直接针对系统以获得非授权访问的攻击方法,例如,针对网络守护进程的缓冲区溢出和格式化漏洞攻击、轰炸拨入以查找未受保护的调制解调器、在网络上运行口令猜测程序,以及嗅探网络连接以获取有用的数据等。
第7章 介绍一些基于恶意使用网络和网络协议的黑客手段。包括DNS和ARP高速缓存破坏、篡改网络路由、滥用IP相关信任、中间人攻击以及针对日益流行的无线局域网的攻击。
第3部分本地用户攻击
如果黑客拥有系统的本地用户权限,其攻击手段要远多于源于外部的攻击。一旦登录到系统,黑客通常会试图巩固其桥头堡。
第8章 黑客找到登录系统的方法并不意味着他可以马上获得超级用户权限。但是,一旦他获得用户级账号,就能够看到系统中存在的可经由网络利用的其他不安全因素。攻击者期望能突破root账号,以作为他的战利品,那样整个系统就在他的掌控之下了。
第9章 使用强口令的安全认证并且使用可插入认证模块(PAM,Pluggable Authentication Modules)是计算机访问控制的关键。通过攻击,黑客可以获取系统中的加密口令,并试图破解它。这些口令可以用做攻击新的系统的踏脚石(因为很多人在多台机器上使用同样的口令),也可以帮助他们在被发现和系统重启之后再次进入系统。这其中也可能包括root口令。本章将深入讨论黑客用来攻击系统和预防这些攻击的几种工具。此外也将介绍PAM,它能够以灵活的方式为Linux应用程序添加强认证机制。
第4部分服务器的安全问题
Internet服务对Linux机器的依赖性日益增加。这些服务对于个人和商业公司而言同样重要,因此我们认为有必要在本书中深入介绍一些最常见的服务。
第10章 讨论安全问题的历史以及邮件服务器Sendmail、Postfix、Qmail和Exim的常见配置问题。这四个软件包组成了Internet上几乎所有类Unix主机上的邮件服务器。
第们章 讨论了FTP服务器、客户端和FrP协议本身的问题。尽管使用HTTP进行文件下载日益流行,FTP仍然广泛使用,因为它同时支持下载和上传。这些年来,绝大多数FrP服务器都曾遭遇过大量的安全问题。本章将讨论更好地保护FrP服务器的方法,以及既可满足需要又能减少安全风险的其他替代方案。
第12章 Internet的繁荣在很大程度上源于HTtP和Web服务器的出现。看起来世界上的每个人都拥有自己的主页或域名。很少有公司没有主页,至少已有创建主页的计划。同时多数主页所提供的不仅仅是静态页面,动态页面已经成为Web上进行用户交互的主流。
当前多数常见的安全破坏问题起因于Web服务器的错误配置,或者为了支持用户交互而使用了不安全的程序。错误丛生的CGI程序在Internet上到处可见,而且实际上也被某些Web服务器四处扩散。关闭Web服务器显然不是一个解决办法,因此本章讨论了多种程序缺陷和配置问题,以便读者在提供主页服务时加以注意。
第13章 介绍几个向Internet开放特定服务的方法。首先,讨论基于TCP封装器、inetd和Xinetd的访问控制方法。然后介绍了防火墙和如何使用Netfilter(iptables)实施内核级访问控制。通过限制哪些机器可以连接到所提供的网络服务,可以大幅减少服务器受到Internet攻击的机会。
第14章 随着时间的推移,Internet上放置了越来越多的Linux服务器,它们作为n基础设施的重要性也日益增加。那些不能侵入目标系统的破坏者可能会转而谋求通过拒绝服务或分布式拒绝服务攻击将该系统从网络上断开。这类攻击并不总以获得系统的访问权限为目的,但能够对系统所提供的服务和数据的安全性及可靠性产生巨大影响。
第5部分侵入之后
恶意黑客侵入系统之后,会采取步骤以防止入侵被发现,并确保自己将来对系统的访问权。
第15章 入侵者有很多种方法将自己隐藏在系统管理员的眼皮底下。他可以将本地的二进制系统程序替换为不显示其活动的版本,从隐藏目录运行其软件,以及删除可能指明其踪迹的日志记录。他还可以加密自己的通信连接,甚至使用防火墙,从而使入侵检测系统难以监视和发现他对系统的秘密访问。
第16章 入侵者将在系统中设置多个后门,以确保即便最初侵入点被清除之后也能够保留访问权。这包括正常的更改系统配置以允许他无口令访问甚至是root账号,或者植入特洛伊软件以便通过非常规方式获得系统访问权。
第17章 介绍入侵者隐藏踪迹和保持root权限的高级方法。首先介绍可加载内核模块(Loadable Kernel Module)和其他内核修改方法,从而使管理员即便使用干净的工具也不能发现系统的运行真相。随后,以对rootkit的介绍结束本章,这一工具能够快速地在系统中设置后门。
第6部分附录
在附录中,给出了简单的step-by-step指令,以帮助读者保护系统安全。
附录A 系统迟早会被侵入。这里介绍了侵入后恢复或重装系统并抵御再次入侵的方法。
附录B 给出了升级系统所安装的软件的详细方法,针对Red Hat,Debian和Slackware等不同操作系统的软件包管理器分别给出了相应的信息。
附录C 给出了关闭服务的方法,从而减少攻击者可以利用的途径。首先讨论了启动进程init,然后针对不同的Linux发布分别给出了相应的命令集。
附录D 本书涵盖了可能导致不同程度损害的各种攻击方法。在现实世界中结合使用这些方法很重要。因此在这个附录中,我们自始至终逐命令逐步骤地介绍在Internet中曾经出现过的实际攻击。这个扩充型实例使用到的方法遍及本书,诸多细节将有助于读者融会贯通本书的安全概念。