绪论
黑客攻击是 21 世纪最重要的技能!我不轻易做出这种说法。近年来似乎每天早上新闻事件的标题重申了这一说法。各国正在互相监视以获取机密,网络犯罪分子正在窃取数十亿美元,要求赎金的数字蠕虫被释放,竞选对手正在影响彼此的选举,战斗人员相互拆台。这些都是黑客的工作,他们对我们日益数字化的世界的影响才刚刚凸显。
我决定在与成千上万有抱负的黑客通过 NullByte( http://www.hackersarise.com )以及美国军事和情报机构(NSA,DIA,CIA 和 FBI)的几乎所有分支机构合作写这本书。这些经历告诉我,许多有抱负的黑客对 Linux 几乎没有任何经验,而这种缺乏经验是他们开始成为职业黑客的主要障碍。几乎所有最好的黑客工具都是用 Linux 编写的,因此一些基本的 Linux 技能是成为专业黑客的先决条件。我写这本书是为了帮助有抱负的黑客克服这个障碍。
黑客是 IT 领域的精英职业。因此,它需要对 IT 概念和技术进行广泛而详细的理解。在最基础的层次上,Linux 是一项需求。如果你想把黑客和信息安全作为你的职业,我强烈建议你投入时间和精力来使用和理解它。
本书不适合经验丰富的黑客或经验丰富的 Linux 管理员。
相反,它适用于那些想要在黑客、网络安全和渗透测试这条激动人心的道路上起步的人而设计的。它也不是一篇关于 Linux 或黑客的完整论文,而是这些世界的起点。它从 Linux 的基本知识开始,并扩展到 bash 和 Python 的一些基本脚本。
在适当的情况下,我尝试使用来自黑客世界的示例来教授 Linux 原理。
在本简介中,我们将介绍信息安全的道德黑客行为的发展,我将带您完成安装虚拟机的过程,以便您可以在系统上安装 Kali Linux,而不会干扰您已经运行的操作系统。
这本书里有什么
在第一章中,您将熟悉 Linux 的基础知识:
第 1 章将让您学习使用文件系统和终端,并为您提供一些基本命令。
第 2 章介绍如何操作文本以查找,检查和更改软件和文件。
在第 3 章中,您将管理网络。您将扫描网络,查找连接信息,并通过屏蔽网络和 DNS 信息来伪装自己。
第 4 章教您添加、删除和更新软件,以及如何简化系统。
在第 5 章中,您将操纵文件和目录权限来控制谁可以访问什么,您还将学习一些权限提升技术。
第 6 章教您如何管理服务,包括启动和停止进程以及分配资源以便更好地控制。
在第 7 章中,您将管理环境变量以获得最佳性能,便利性甚至隐身性。您将找到并过滤变量,更改 PATH 变量以及创建新的环境变量。
第 8 章向您介绍了 bash 脚本,这是任何认真的黑客的主要工具。您将学习 bash 的基础知识并构建一个脚本来扫描您可能稍后渗透的目标端口。
第 9 章和第 10 章为您提供了一些基本的文件系统管理技能,向您展示如何压缩和存档文件以保持系统整洁,复制整个存储设备以及获取有关文件和连接磁盘的信息。
后面的章节深入探讨了黑客主题。在第 11 章中,您将使用和操作日志系统来获取目标活动的信息,并覆盖您自己的轨迹。
第 12 章向您展示了如何使用和滥用三个核心 Linux 服务:Apache Web 服务器、OpenSSH 和 MySQL。您将创建一个 Web 服务器,构建一个远程视频间谍,并了解数据库及其漏洞。
第 13 章将向您展示如何在代理服务器,Tor 网络,VPN 和加密电子邮件中保持安全和匿名。
第 14 章涉及无线网络。您将学习基本的网络命令,然后破解 WiFi 接入点并检测连接蓝牙信号。
第 15 章深入探讨了 Linux 本身,深层次了解内核如何工作以及如何滥用其驱动程序来传递恶意软件。
在第 16 章中,您将学习基本的调度技巧,以便自动化您的黑客脚本。
第 17 章将教你核心的 Python 概念,你将编写两个黑客工具:一个监视 TCP / IP 连接的扫描程序和一个简单的密码破解程序。
什么是道德黑客?
近年来,随着信息安全领域的发展,道德黑客领域也出现了迅猛的发展,也被称为白帽黑客。道德黑客是试图渗透和利用一个系统,以找出其弱点和更好地保护它的实践做法。我将道德黑客分为两个主要部分:为合法信息安全公司进行渗透测试,以及为贵国的军事或情报机构工作。两者都是快速增长的领域,需求强劲。
渗透测试
随着组织越来越注重安全性并且安全漏洞的成本呈指数级增长,许多大型组织开始将安全服务外包出去。其中一项关键安全服务是渗透测试。渗透测试本质上是一个合法的、受委托的黑客行为,以证明公司的网络和系统的脆弱性。
通常,组织首先进行漏洞评估,以发现其网络、操作系统和服务中的潜在漏洞。我强调是潜在的,因为此漏洞扫描包含大量误报(确定为漏洞的事实并非如此)。渗透测试人员的角色是试图破解或渗透这些漏洞。只有这样,组织才能知道漏洞是否真实,并决定投入时间和金钱来弥补漏洞。
军事和间谍活动
现在,世界上几乎每个国家都在进行网络间谍活动和网络战争。人们只需要浏览一下头条新闻,就会发现网络活动是监视和攻击军事和工业系统的选择方法。
黑客在这些军事和情报收集活动中起着至关重要的作用,随着时间的推移,这种情况才会更加真实。想象一下未来的战争,黑客可以获得对手的作战计划,并摧毁他们的电网、炼油厂和供水系统。这些活动现在每天都在进行。因此,黑客成为国家防御的关键组成部分。
为什么黑客使用 LINUX
那么为什么黑客使用 Linux 而不是其他操作系统呢?主要是因为 Linux 通过几种不同的方法提供了更高级别的控制。
Linux 是开源的
与 Windows 不同,Linux 是开源的,这意味着您可以使用操作系统的源代码。因此,您可以随意更改和操作它。如果您试图使系统以它不希望的方式运行,那么能够操作源代码是必不可少的。
Linux 是透明的
要有效地进行黑客攻击,您必须了解并理解您的操作系统,并在很大程度上了解您正在攻击的操作系统。Linux 完全透明,这意味着我们可以查看和操作其所有工作部分。
Windows 则不然。微软努力让它变得越来越难以了解其操作系统的内部工作方式,所以你永远不会真正知道“幕后”会发生什么,而在 Linux 中,你会直接看到操作系统的每一个组件。这使得使用 Linux 更加有效。
Linux 提供粒度控制
Linux 是细粒度的。这意味着您对系统几乎拥有无限的控制权。在 Windows 中,您只能控制 Microsoft 允许您控制的内容。在 Linux 中,一切都可以由终端控制,无论在最微小的级别或最宏观的级别。此外,Linux 使任何脚本语言的脚本编写变得简单有效。
多数黑客工具都是为 Linux 编写的
超过 90%的黑客工具都是为 Linux 编写的。当然也有例外,如 Cain and Abel 以及 Wikto,这些例外证明这一规则。即使在为 Windows 移植诸如 Metasploit 或 nmap 等黑客工具时,并非所有功能都能从 Linux 移植。
未来属于 Linux/Unix
这似乎是一个激进的陈述,但我坚信信息技术的未来属于 Linux 和 Unix 系统。微软在 20 世纪 80 年代和 90 年代曾风光一时,但它的增长正在放缓并停滞。
自互联网诞生以来,由于其稳定性、可靠性和稳健性,Linux / Unix 一直是 Web 服务器的首选操作系统。 即便在今天,Linux / Unix 仍在三分之二的 Web 服务器中使用并占据市场主导地位。路由器,交换机和其他设备中的嵌入式系统几乎总是使用 Linux 内核,而虚拟化世界则由 Linux 主导,VMware 和 Citrix 都基于 Linux 内核构建。
超过 80%的移动设备运行 Unix 或 Linux(iOS 是 Unix,Android 是 Linux),所以如果您认为计算机的未来在于平板电脑和手机等移动设备(否则很难争辩),那么未来就是 Unix / Linux。Microsoft Windows 仅占移动设备市场的 7%①。那是你想要的情形吗?
- 2019 年 1 月 10 日微软通过自己的官方博客宣布放弃 Win10 Mobile,于 2019 年 12 月终止支持。
下载 KALI LINUX
在开始之前,您需要下载并在计算机上安装 Kali Linux。这是我们将在本书中使用的 Linux 发行版。Linux 最初由 Linus Torvalds 于 1991 年开发,作为 Unix 的开源替代品。由于它是开源的,志愿者开发人员对内核、实用程序和应用程序进行提交编码。这意味着没有凌驾于其之上的公司实体来监督发展,因此,通常缺乏公约和标准化。
Kali Linux 由 Offensive Security 开发,是一个基于 Linux 发行版的黑客操作系统。Linux 有很多发行版,而 Debian 是最好的发行版之一。您可能最熟悉 Ubuntu 作为 Linux 的流行桌面发行版。Ubuntu 也是基于 Debian 构建的。其他发行版包括 Red Hat,CentOS,Mint,Arch 和 SUSE。虽然它们都共享相同的 Linux 内核(控制 CPU,RAM 等操作系统的核心),但每个内核都有自己的实用程序、应用程序和用于不同目的的图形界面选择(GNOME,KDE 和其他)。因此,Linux 的这些发行版中的每一个外观和感觉都略有不同。Kali 专为渗透测试人员和黑客而设计,并配有大量黑客工具。
我强烈建议您在本书中使用 Kali。虽然您可以使用其他发行版,但您可能需要下载并安装我们将使用的各种工具,这可能意味着可能需要花费数小时去下载和安装工具。此外,如果该发行版不是基于 Debian 构建的,则可能存在其他细微差别。您可以从 https://www.kali.org/ 下载并安装 Kali。
在主页上,单击页面顶部的“Downloads”链接。在“Kali Linux Downloads”页面上,您将面临多种下载选择。选择正确的下载非常重要。在表的左侧,您将看到镜像名称,该名称是链接下载的版本的名称。例如,我看到的一个镜像名称列表是 Kali Linux 64 Bit,这意味着它是完整的 Kali Linux 并且适用于 64 位系统 - 大多数现代系统使用 64 位 Intel 或 AMD CPU。要确定系统上的 CPU 类型,请转至 控制面板 ▸ 系统和安全性 ▸ 系统,应列出该系统信息。如果您的系统是 64 位,请下载并安装 64 位版本的完整 Kali(不是 Light 或 Lxde,或任何其他替代方案)。
如果您运行的是具有 32 位 CPU 的旧计算机,则需要安装 32 位版本,该版本显示在页面下方。
您可以选择通过 HTTP 或 Torrent 下载。如果您选择 HTTP,Kali 将直接下载到您的系统,就像任何下载一样,它将被放置在您的下载文件夹中。Torrent(bt)下载是许多文件共享站点使用的 P2P 下载。你需要像 BitTorrent 这样的种子应用程序才能做到这一点。然后,Kali 文件将下载到 torrenting 应用程序存储其下载的文件夹中。
还有其他类型的 CPU 的其他版本,例如在许多移动设备中常见的 ARM 体系架构。如果您使用的是树莓派、平板电脑或其他移动设备(手机用户可能更喜欢 Kali NetHunter),请确保下载并安装 ARM 架构版本的 Kali,方法是向下滚动并单击以下载和安装 Kali ARM 映像。
您已经下载了 Kali,但在安装任何软件之前,我想谈谈虚拟机。通常,对于初学者来说,将 Kali 安装到虚拟机中是学习和练习的最佳解决方案。
虚拟机
虚拟机(VM)技术允许您从笔记本电脑或台式机等硬件上运行多个操作系统。这意味着您可以继续运行您熟悉的 Windows 或 MacOS 操作系统,并在该操作系统中运行 Kali Linux 虚拟机。您不需要覆盖现有的操作系统来学习 Linux。
VMware,Oracle,Microsoft 和其他供应商提供了大量虚拟机应用程序。这些都很好用,但在这里我将向您展示如何下载和安装 Oracle 的免费 VirtualBox。
安装 VirtualBox
你可以从https://www.virtualbox.org/下载 VirtualBox,如图 1 所示,单击左侧菜单中的下载链接,并为计算机当前操作系统选择 VirtualBox 安装包,该操作系统将承载 VirtualBox VM。请务必下载最新版本。
图 1:VirtualBox 主页
下载完成后,单击 setup 文件,您将看到一个熟悉的安装向导,如图 2 所示。
图 2:安装向导对话框
单击Next,您应该会看到自定义安装设置屏幕,如图 3 中所示。
图 3:自定义设置对话框
在此屏幕上,只需单击Next。继续单击Next,直到到达网络接口警告屏幕,然后单击Yes。
单击Install开始该过程。在此过程中,可能会多次提示您安装设备软件。这些是虚拟机通信所需的虚拟网络设备。单击Install。
安装完成后,单击Finish。
设置虚拟机
现在让我们开始使用您的虚拟机。VirtualBox 应该在安装后打开 - 如果没有,则手动打开它 - 你应该看到 VirtualBox Manager 的欢迎,如图 4 所示。
图 4: VirtualBox Manager
由于我们将使用 Kali Linux 镜像创建新的虚拟机,因此请单击左上角的“新建”。这将打开图 5 中所示的 Create Virtual Machine 对话框。
图 5: Create Virtual Machine 对话框
给你的机器命名(任何名称都可以,但我只是使用 Kali)然后从“Type”下拉菜单中选择 Linux。 最后,从第三个下拉菜单中选择 Debian(64bit)(除非您使用的是 32 位版本的 Kali,在这种情况下选择 Debian 32bit 版本)。单击“Next”,您将看到如图 6 所示的屏幕。
图 6: 分配内存
在这里,您需要选择要为此新虚拟机分配多少 RAM。
根据经验,我不建议使用超过总系统内存 RAM 的 25%。这意味着如果您在物理系统或主机系统上安装了 4GB,则为虚拟机选择仅 1GB,如果物理系统上只有 16GB,则选择 4GB。您为虚拟机提供的 RAM 越多,运行的速度越快。虽速度越快,但您还必须为主机操作系统和您可能希望同时运行的任何其他虚拟机留下足够的 RAM。当您不使用此虚拟机时,它们将不使用任何 RAM,但它们将使用硬盘空间。
单击Next,您将看到硬盘屏幕。选择“Create Virtual Hard Disk”,单击“Create”。
在下一个屏幕中,您可以决定是要将要创建的硬盘动态分配还是以固定大小分配。如果选择动态分配,系统将不会占用您为虚拟硬盘分配的最大大小,直到需要时,它为主机系统节省更多未使用的硬盘空间。我建议你选择动态分配。
单击Next,您将选择要分配给 VM 的硬盘空间量以及 VM 的位置(请参见图 7)。
图 7: 分配硬盘空间
默认值为 8GB。我通常发现它有点小,建议你至少分配 20-25GB。请记住,如果您选择动态分配硬盘空间,那么直到您需要它时,它才会使用该空间,并且在已经分配好硬盘空间之后再扩展它可能比较棘手,所以最好还是选择偏高的空间。
单击Create,就可以开始了!
在 VM 上安装 Kali
此时,您应该看到如图 8 所示的屏幕。现在您需要安装 Kali。请注意,在 VirtualBox Manager 的左侧,您应该看到 Kali VM 已关闭的指示。单击Start按钮(绿色箭头图标)。
图 8:VirtualBox 欢迎屏幕
然后,VirtualBox Manager 将询问在哪里可以找到启动盘。您已经下载了扩展名为.iso 的磁盘映像,该映像应位于您的 Downloads 文件夹中(如果您使用 torrent 下载 Kali,则.iso 文件将位于您的 Torrenting 应用程序的 Downloads 文件夹中)。单击右侧的文件夹图标,导航到 Downloads 文件夹,然后选择 Kali 映像文件(参见图 9)。
图 9:选择启动盘
然后单击 Start。恭喜,您刚刚在虚拟机上安装了 Kali Linux!
设置 KALI
Kali 现在将打开如图 10 所示的屏幕,为您提供多种启动选择。我建议为初学者使用图形安装(graphical install)。使用键盘键导航菜单。
如果在将 Kali 安装到 VirtualBox 时出现错误,可能是因为您没有在硬件系统的 BIOS 中启用虚拟化。每个系统及其 BIOS 略有不同,因此请与您的制造商联系或在线搜索您的硬件系统和 BIOS 的解决方案。 此外,在 Windows 系统上,您可能需要禁用任何具有竞争的虚拟化软件,如 HyperV。同样,您的系统的互联网搜索引擎应该能够指导您这样做。
图 10:选择 install 方法
接下来会要求您选择语言。确保选择最适合的语言,然后单击Continue。接下来,选择您的位置,单击Continue,然后选择键盘布局。
单击Continue时,VirtualBox 将执行检测硬件和网络适配器的过程。只要耐心等待。最终,您将看到一个要求您配置网络的屏幕,如图 11 所示。
图 11:输入主机名
它要求输入的第一项是您的主机名称。你可以随心所欲地命名,但我用默认的“kali”作为名字。
接下来,系统会要求您输入域名。没有必要在这里输入任何东西。单击Continue。下一个屏幕非常重要,如图 12 所示。在这里,系统会要求您输入要用于 root 用户的密码。
图 12:设置 root 密码
Linux 中的 root 用户是强大的系统管理员。您可以使用任何您认为安全的密码。如果这是我们在互联网上使用的物理系统,我建议您使用非常长且复杂的密码来限制攻击者破解它的能力。由于这是人们在没有首先访问主机操作系统的情况下无法访问的虚拟机,因此在此虚拟机上进行密码验证并不重要,但您仍应明智地选择。
单击Continue继续,系统将要求您设置时区。这样做,然后继续。
下一个屏幕询问关于分区磁盘(分区就是硬盘的一部分)。选择Guided – use entire disk,Kali 将检测您的硬盘并自动设置分区。
然后,Kali 会警告您,您选择的磁盘上的所有数据都将被删除,但别担心!这是一个虚拟磁盘,磁盘是新的并且是空的,所以这实际上不会做任何事情。单击Continue继续。
Kali 现在会询问您是希望将所有文件放在一个分区中,还是想要单独的分区。如果这是一个生产系统,您可能会为/ home,/ var 和/ tmp 选择单独的分区,但考虑到我们将其用作虚拟环境中的学习系统,您可以安全地选择将全部文件放在一个分区中。
现在,将询问您是否将更改写入磁盘。选择Finish partitioning并将更改写入磁盘。Kali 将再次提示您是否要将更改写入磁盘,选择Yes并单击Continue继续(参见图 13)。
图 13:将更改写入磁盘
Kali 现在将开始安装操作系统。这可能需要一段时间,所以请耐心等待。现在是时候休息一下,喝上自己喜欢的饮料吧。
安装完成后,系统将提示您是否要使用网络镜像。这真的没有必要,所以点击No。
然后 Kali 将提示您是否要安装GRUB(Grand Unified Bootloader),如图 14 所示。引导加载程序使您可以选择不同的操作系统启动,这意味着当你启动你的机器,你可以启动 Kali 或其他操作系统。选择Yes并单击Continue继续。
图 14:安装 GRUB
在下一个屏幕上,系统将提示您是自动还是手动安装 GRUB 引导加载程序。由于原因尚不清楚,如果您选择第二个选项,Kali 将倾向于挂起并在安装后显示空白屏幕。选择手动输入设备Enter device manually,如图 15 所示。
图 15:手动输入设备
在下面的屏幕上,选择 GRUB 引导加载程序应安装的驱动器(它可能类似于/dev/sda)。单击进入下一个屏幕,该屏幕应告知您安装已完成。
恭喜!你已经安装了 Kali。单击Continue继续。Kali 将尝试重新启动,在您最终遇到 Kali 2019 的登录屏幕之前,您将看到许多代码行穿过一个空白的黑色屏幕,然后如图 16 所示。
图 16:Kali 登录屏幕
以 root 身份登录,系统将询问您的密码。输入您为 root 用户选择的密码。
以 root 身份登录后,您将看到 Kali Linux 桌面,如图 17 中所示。
图 17:Kali 主屏幕
您现在已准备好开始进入令人兴奋的黑客攻击领域!欢迎!