暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第二章 KALI LINUX 新手入门

NetHunterPark 2018-11-07
793

# 第二章 KALI LINUX 新手入门


和其他的操作系统不同,由于Kali Linux 的的磁盘镜像是 Live ISO 形式,下载之后不需要安装就能直接启动,这使得其上手相当容易。这意味着你可以用同一个镜像进行渗透测试,在取证过程中作为 U盘或 DVD-ROM 进行启动,也可以直接安装在物理机或虚拟机上。


由于这种便利性,很容让人们放松警惕。Kali 的用户常常是一些有险恶用心人的目标。他们也许是有国家赞助的团体,也许是有组织的犯罪团伙或者独立骇客。Kali Linux 天然的开源特性使得制作和发布一个假的版本非常容易,所以养成一个从官网下载文件的习惯是十分必要的,当然还要对下载的内容进行完整性和真实性校验。这对从事安全职业的人来说尤其重要,因为他们受用户委托可以接触到敏感网络和数据。


章节内容:

  • 下载 Kali Linux

  • 使用 Live 模式启动 Kali

  • 本章总结

  • 本章练习


## 2.1 下载 Kali ISO 镜像


### 2.1.1 去哪儿下载


Kali Linux ISO 镜像的唯一官网下载渠道就是 Kali 官网的“下载”页面。由于 Kali 在渗透测试方面大受欢迎,因此有无数的网站提供镜像下载,但由于其可信情况不明,所以都是不推荐的。实际上,有些网站提供的镜像含有恶意软件,或者在使用过程中会对系统造成无法修复的破坏。


https://www.kali.org/downloads/


官方网站支持 HTTPS 方式,这让其比较难于伪造。而中间人攻击在这种情况下也不具备条件,因为攻击者需要一个 TLS 证书机构颁发的 www.kali.org SSL证书,但是颁发这个证书的机构还得被受害者的浏览器信任才行。这些证书颁发机构正式为解决这种问题而设立的,他们仅会对拥有网站控制权的用户颁发证书。


cdimage.kali.org

---------------------------------------

位于下载页的链接指向了 cdimage.kali.org ,这个链接将会重定向到一个离你最近的下载镜像,这样既可以提升你的下载速度,也可以减轻 Kali 中央服务器的负荷。


可用的镜像列表可以在下面的链接里找到:

http://cdimage.kali.org/README.mirrorlist


### 2.1.2 如何选择下载


关于可下载的 ISO 镜像,官网网站有一个列表,如下:

图 2.1 镜像下载列表


所有的镜像都根据对 CPU 的支持情况进行了标注,一般分为 32-bit 和 64-bit ,这是目前大多数桌面电脑和笔记本电脑的 CPU 架构。如果你的机器是非常新的,那么基本上都是 64-bit 的 CPU 。如果你不确定是 32-bit 还是 64-bit 的 CPU ,那么你可以下载 32-bit 的镜像,因为 64-bit 的 CPU 是可以兼容 32-bit 程序的。但是,反过来是不行的。


如果你计划在嵌入式设备中安装 Kali ,比如:智能手机、Chrome 笔记本、网络设备或者其他使用 ARM 处理的设备,那你必须得用 armel 或 armhf 标签的镜像。


我的 CPU 是 32-bit 还是 64-bit ?

---------------------------------------

在 Windows 系统下,你可以通过运行系统信息应用程序找到关于 CPU 的信息(通常在“开始”>“程序”>“附件” > “系统工具”文件夹)。在系统摘要的部分,可以查看到“系统类型”项:“基于 X64 的 PC ” 即是 64-bit CPU ,“基于 X86 的 PC ” 即是 32-bit CPU 。


在 OS X/macOS 系统下,没有标准的应用程序用于显示 CPU 信息,但是你可以在 terminal(终端)程序中运行 uname -m 命令查看到相关信息。如果返回 x8664 则表明操作系统的内核是 64-bit 的,由于 64-bit 的内核只能运行在 64-bit 的 CPU上,所以可以判定 CPU 也是一定是 64-bit 的。如果返回 i386 或者类似 i486、i586、i686 的信息则表明系统的内核是 32-bit 的。任何 32-bit 的内核都可以运行在 64-bit 的 CPU 上,但是自从 Apple 公司自己控制硬件和软件之后,你可能已经找不到这样的配置了。


在 Linux 下,你可以在虚拟文件 /proc/cupinfo 中查看到 CPU 架构标识。比如下面的信息就说明 CPU 是 64-bit 。


address sizes: 46 bits physical, 48 bits virtual


当然,你也可以用 macOS 的查看方法,毕竟他们都是同宗于 Unix 的。



现在你已经知道是需要 32-bit 还是 64-bit 的镜像了,那么就只剩下一步:选择什么类型的镜像。默认的 Kali Linux 镜像和 Light 版镜像都是 Live ISO ,用户可以用镜像直接运行 live 系统或者进行物理安装。这两类镜像的差别仅仅在于预装的应用软件不同而已。默认的镜像自带 GNOME 桌面环境,同时预装了相当多的适合大部分渗透测试人员的工具。而 Light 版本自带 XFCE 桌面环境,它对系统资源的需求更小,同时只预装有限的应用软件,让用户只选择需要的安装。其他的镜像都有自己不同的桌面环境,但是都和主镜像一样有庞大的应用软件集。


一旦你决定了需要哪个镜像,可以直接点击对应行的 “HTTP” 链接。如果你有处理 .torrent 文件的 BitTorrent 客户端,也可以点击 “Torrent” 通过 BitTorrent 的点对点网络下载镜像。


在镜像下载的同时,你需要注意一下后面对应的文件检验值 “sha256sum”。一旦镜像下载完成,就需要通过这个校验值来确认你下载的镜像就是 Kali 开发团队放上去的那个(请看下一节内容)。


### 2.1.3 验证镜像的真实性和完整性


安全专家们一定会验证工具的完整性,不仅仅是为了保护他们自己的数据和网络,同时也是保护客户数据的安全。Kali 的下载页面是经过 TLS 保护的,但实际的下载链接可能指向一个未加密的 URL ,这意味着对于中间人攻击可能没有任何保护。实际上,Kali 依赖一系列外部的镜像源来分发镜像,这也就意味着你不要盲目的信任所下载的文件。你被导向的镜像源可能已经被攻下了,而你自己也可能会成为攻击的受害者。


为了减少这种情况,Kali 项目一直都对分发的镜像提供校验值。但是要做到检查有效,你必须确保你拿到的那个校验值是 Kali Linux 开发者发布的。你有几种方式来确认这个校验值。


#### 2.1.3.1 依靠 TLS 保护的网站


当你从受 TLS 保护的网站上获取校验值的时候,它的真实性是可以被 X.509 安全模型所保证的:即,你从网站所拿到的内容是被申请证书的人所有效控制的,是可信的。


现在你就可以对下载的镜像生成校验码,确保和从 kali 网站拿到的一致:


Black13eard On Mac$ shasum -a 256 kali-linux-2018.2-amd64.iso

56f677e2edfb2efcd0b08662ddde824e254c3d53567ebbbcdbbf5c03efd9bc0f  kali-linux-2018.2-amd64.iso


Black13eard On Linux$ sha256sum kali-linux-2018.2-amd64.iso

56f677e2edfb2efcd0b08662ddde824e254c3d53567ebbbcdbbf5c03efd9bc0f  kali-linux-2018.2-amd64.iso


如果你生成的校验值与 Kali Linux 下载页上的匹配,那么你的文件就没有问题。如果校验值不同,那就说明有问题。尽管不能由此推测是镜像被修改过或受到了攻击,但也可能是文件在网络上传输的时候出现偶尔损坏,这也是存在的。如果可能,选择另一个 Kali 的官方镜像源在下载一次。(更多可用的镜像源参见 https://cdimage.kali.org)


#### 2.1.3.2 依靠 PGP 的信任机制


如果你不信任 HTTPS 认证,那你还是有点个性的,不过也是合情合理的。有大量的例子证明,管理不善的证书机构随意颁发证书,从而导致证书滥用。你可能也是在大型网络上实施的一种“友善”中间人攻击的受害者,他们使用定制的、浏览器内置的可信商店,提供假的证书给 SSL 加密的网站,以便让“审计员”们监听加密的数据。


对于这种情况,我们提供了一个 GnuPG Key 来对镜像的校验值进行签名。这个 Key 的 ID 和指纹如下所示:


Black13eard$ gpg --fingerprint 7D8D0BF6

pub   rsa4096 2012-03-05 [SC] [expires: 2021-02-03]

Key fingerprint = 44C6 513A 8E4F B3D3 0875  F758 ED44 4FF0 7D8D 0BF6

uid          Kali Linux Repository

sub   rsa4096 2012-03-05 [E] [expires: 2021-02-03]


备注:过期时间(expires)可能根据实际情况有变化,但是 Key fingerprint 和 uid 不会变。


这个 Key 是全球可信网络中的一部分,因为它至少是被我(Raphaël Hertzog)签过名了。而我作为 Debian 开发者,对 GnuPG 的重度使用已经使我成为了这个可信网络的一部分。


PGP/GPG 安全模型是非常独特的。任何人都可用任何 ID 生成任何 key ,但是,你只会信任用被你已经信任的 key 签过名的 key 。当你给一个 key 签名的时候,你需要证明你满足既是 key 的主人又知道正确的关联关系。你可以定义包括你的 key 在内的可信 key 的初始集合。


这个模型也有自己的限制,所以你可以选择通过 HTTPS 从 Keyserver 下载 Kali 的公共秘钥(key),并且信任它,因为它的指纹和我们在多个地方声明的一样,包括本书上面提到的部分。


## 官网的公共密钥导入

Black13eard$gpg --keyserver hkp://keys.gnupg.net --recv-key 7D8D0BF6

或者

Black13eard$ wget -q -O - https://www.kali.org/archive-key.asc | gpg --import

gpg: directory '/Users/Black13eard/.gnupg' created

gpg: keybox '/Users/Black13eard/.gnupg/pubring.kbx' created

gpg: /Users/Black13eard/.gnupg/trustdb.gpg: trustdb created

gpg: key ED444FF07D8D0BF6: public key "Kali Linux Repository " imported

gpg: Total number processed: 1

gpg:               imported: 1


## 校验密钥指纹

Black13eard$ gpg --fingerprint ED444FF07D8D0BF6

[...]

44C6 513A 8E4F B3D3 0875  F758 ED44 4FF0 7D8D 0BF6

[...]


现在你已经获得了 key ,你可以用它来验证下载文件的校验值了。我们从 http://cdimage.kali.org/ 上下载对应镜像的校验值文件(SHA256SUMS)和关联的签名文件(SHA256SUMS.gpg),校验签名文件如下:


Black13eard$ wget http://cdimage.kali.org/current/SHA256SUMS

[...]

Black13eard$ wget http://cdimage.kali.org/current/SHA256SUMS.gpg

[...]

Black13eard$ gpg --verify SHA256SUMS.gpg SHA256SUMS

gpg: Signature made Mon Apr 30 16:01:21 2018 CST

gpg:                using RSA key 44C6513A8E4FB3D30875F758ED444FF07D8D0BF6

gpg: Good signature from "Kali Linux Repository " [unknown]

Primary key fingerprint: 44C6 513A 8E4F B3D3 0875  F758 ED44 4FF0 7D8D 0BF6


如果你看到 “Good signature” 信息,那么你可以信任这个 SHA256SUMS 文件的内容,可以用它来进行镜像文件的验证。否则,那就有问题,你需要查看一下是否是从合法的 Kali 镜像源下载的文件了。


你可以用下面的命令来验证下载文件的校验值是否和 SHA256SUMS 里的一致。补充说明,下载的 ISO 文件需要和 SHA256SUMS 在一个目录(或手动更改命令的文件路径)


Black13eard$ grep kali-linux-2018.2-amd64.iso SHA256SUMS | shasum -a 256 -c

kali-linux-2018.2-amd64.iso: OK


如果你运行的结果没有显示 “OK” ,那么这个 ISO 文件和 Kali 团队发布的那个就不是同一个。它不可信,也不要用。


### 2.1.4 将镜像写入 DVD-ROM 或 U 盘


除非你想要在虚拟机中使用 Kali Linux ,而这样使用的有一定限制的,否则你应该把它写入到一张 DVD-ROM 或 U 盘,以便能够直接启动物理机。


我们不会讲述如何将 ISO 镜像写入 DVE-ROM,因为不同平台和系统环境会有很大的差异。但是在大多数时候,右键 .iso 文件会有一个快捷菜单,里面会包含一个 DVD-ROM 写入程序的入口,试一下吧。


警告

---------------------------------------

在本节中,你将会学习如何将 Kali Linux ISO 镜像写入到磁盘里。在操作之前一定要再次检查目标磁盘,因为,后续的任何一个小的操作失误都可能会导致数据丢失或造成不可修复的损坏。


#### 2.1.4.1 在 Windows 上创建一个可启动的 Kali U 盘


首先,你需要下载并安装一个 Win32 Disk Imager 。


https://sourceforge.net/projects/win32diskimager/


将 U 盘插入到 Windows PC 上,记录下分配的对应盘符(比如:”E:”)。


打开 Win32 Disk Imager 选择 Kali Linux ISO 镜像,确认磁盘盘符和 U 盘的一致。然后点击“写入(Write)”按钮。



在弹出的确认框中点击“是”。



Win32 Disk Imager 就开始进行文件写入了。



一旦写入完成,将 U 盘从系统中安全的弹出,然后就可以用这个 U 盘启动 Kali Linux 了。


#### 2.1.4.2 在 Linux 上创建一个可启动的 Kali U 盘


在 Linux 环境下创建可启动的 Kali Linux U 盘很容易。在很多 Linux 发行版中默认自带GNOME 桌面环境,而 GNOME 中就包含了 Disks utility( Kali Linux 的镜像中也包含了 gnome-disk-utility 软件包)。这个应用程序可以动态的显示当前的磁盘列表,当你在左侧选择某个具体的磁盘的时候,右侧会显示响应的磁盘信息,这可以帮助你确认找到正确的磁盘。说明一下,你可以在程序的标题栏找到当前选择磁盘的设备名称(Device Name)。


图 2.3 GNOME Disks


点击“菜单(Menu)”按钮,在下拉列表中选择“恢复磁盘镜像(Restore Disk Image)…”。在弹出的对话框中选择你之前下载的 Kali Linux ISO 镜像,点击“开始恢复(Start Restoring…)”。


图 2.4 恢复磁盘镜像


在恢复镜像的时候,去喝一杯咖啡吧。


图 2.5 镜像恢复进度


用命令行来创建一个可启动的 Kali U 盘

---------------------------------------

尽管图形化的操作相当简单,但是对于善于使用命令行的用户来说,用命令行来做这件事情也是易如反掌。


当你插入 U 盘的时候,Linux 内核会检测到它,并给它分配一个名字,这个名字在内核日志中可以查看到。内核日志可以通过 dmesg 查看。


$ dmesg

[...]

[234743.896134] usb 1-1.2: new high-speed USB device number 6 using ehci-pci

[234743.990764] usb 1-1.2: New USB device found, idVendor=08ec, idProduct=0020

[234743.990771] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[234743.990774] usb 1-1.2: Product: Store'n'go

[234743.990777] usb 1-1.2: Manufacturer: Verbatim

[234743.990780] usb 1-1.2: SerialNumber: 0390627052A2F897

[234743.991845] usb-storage 1-1.2:1.0: USB Mass Storage device detected

[234743.992017] scsi host7: usb-storage 1-1.2:1.0

[234744.993818] scsi 7:0:0:0: Direct-Access     VBTM     Store'n'go       6.51 PQ: 0 ANSI: 0 CCS

[234744.994425] sd 7:0:0:0: Attached scsi generic sg1 type 0

[234744.995753] sd 7:0:0:0: [sdb] 3903487 512-byte logical blocks: (2.00 GB/1.86 GiB)

[234744.996663] sd 7:0:0:0: [sdb] Write Protect is off

[234744.996669] sd 7:0:0:0: [sdb] Mode Sense: 45 00 00 08

[234744.997518] sd 7:0:0:0: [sdb] No Caching mode page found

[234744.997524] sd 7:0:0:0: [sdb] Assuming drive cache: write through

[234745.009375]  sdb: sdb1

[234745.015113] sd 7:0:0:0: [sdb] Attached SCSI removable disk



你现在知道 U 盘的名字是 /dev/sdb ,你可以用 dd 命令来进行镜像拷贝和写入:


# dd if=kali-linux-light-2016.2-amd64.iso of=/dev/sdb

2070784+0 records in

2070784+0 records out

1060241408 bytes (1.1 GB, 1011 MiB) copied, 334.175 s, 3.2 MB/s


注意,你必须要有 root 权限来执行此操作,同时也要保证 U 盘是没有被其他程序占用的,也就是 U 盘的任何一个分区都没有被挂载。这个命令也假设 ISO 镜像在当前目录,如果不在,则需要提供镜像的完整路径(比如:if=/Home/Black13eard/kali-linux-2018.2-amd64.iso)。


说明:if 代表 “input file” ,of 代表 “output file” 。dd 命令从 if 文件读取数据写入到 of 指定的文件里。这个过程中不会有进度的显示,所以你要有点耐心,这个过程通常需要半小时以上。如果你想确认一下命令还在执行,可以检查一下 U 盘上的写入状态 LED 灯是否持续闪烁。上面示例内容里的统计数据只有在命令执行完成以后才会显示。在 OS X/macOS 中,你可以使用 CTRL + T 组合键来查看执行过程的统计信息,包括已经拷贝了多少数据等。



#### 2.1.4.3 在 OS X/macOS 上创建一个可启动的 Kali U 盘


OS X/macOS 也是基于 UNIX 的,所以创建启动 U 盘的过程和 Linux 的差不多。一旦你下载了并验证了 ISO 文件,直接使用 dd 命令将其写入到 U 盘即可。


为了确认 U 盘的设备名称,可以通过 diskutil list 命令列出系统所有可用的磁盘。然后插入 U 盘,再次运行 diskutil list 。这次命令的输出应该包含了一个新加的磁盘。你可以通过两次的命令输出对比找出 U 盘的设备名称。注意查看新增的 /dev/diskx 内容,其中 x 代表磁盘 ID 。


你还要保证 U 盘没有被挂载,如果挂载了,可以使用 umount 命令进行卸载(假设 /dev/disk6):


Black13eard$ diskutil unmount /dev/disk6


之后就可以执行 dd 命令了。这次我们添加一个 bs 参数用于指定单个块的大小。它定义了从 if 读取的块大小,同时也是写入 of 文件的块大小。


Black13eard$ sudo dd if=kali-linux-2018.2-amd64.iso of=/dev/disk6 bs=1024k

2800+1 records in

2800+1 records out

2936733696 bytes transferred in 1340.598910 secs (2190613 bytes/sec)


这就可以了,你的 Kali U 盘已经制作好了。现在可以拿它启动或者安装 Kali Linux 了。


在 OS X/macOS 上使用不同的磁盘启动

---------------------------------------

按下 OS/macOS 的电源键后,立即长按 Option 键直到启动菜单出现。然后选择你需要的磁盘进行启动。

更多信息,参见 Apple 知识库。



为了能够让大家边学习边实践,达到一起读书的目的,公众号将尽量保持一周两到三篇的速度更新,欢迎大家持续关注。


另外,部分图片来自网络,如有侵权请联系作者删除。



破阵子

醉里挑灯看剑

梦回吹角连营

八百里分麾下炙

五十弦翻塞外声











猎客

·

公元




公众号:NetHunterPark

关注移动安全及渗透测试

文章转载自NetHunterPark,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论