Kali Linux的用户包括全球各地的安全专家、黑客们和研究者,是最受欢迎的渗透测试平台之一,主要用于安全和漏洞评估、攻击研究和风险测试。Kali Linux包含众多流行的开源工具,适用于渗透测试的方方面面。Kali Linux的前身是BackTrack 5 R3,然后逐渐进化到一套完整的Linux桌面系统。
树莓派电脑以超低价著称,它使用HDMI(高清晰度多媒体接口,High Definition Multimedia Interface)线与显示器相连,可以外接USB键盘和鼠标。许多计算机专家都记得以前的电脑并不是打开电源就立刻能用的,那时候的电脑往往还得先在机器上折腾一下才能运作。树莓派可以用于学习计算机体系和编程,而价钱却非常便宜。人们已经利用它的便携性和低价,搭建出各种学习设备、远程摄像头、安全系统、地震监测仪和诸多各类项目。
本章讲解了以下内容:
本书中,选择的是树莓派Model B+型号。其他型号也都大同小异,当然,如果型号不同,可能需要自己微调某些配置。
图1-1中展示的就是树莓派B+产品。
图1-1
树莓派B+型号和前代相比,有以下重要改进:
网上有一些现成的树莓派套装,如树莓派完备版套件(Ultimate Kit),在本书写作时,美国亚马逊网站上的价格为79.99美元。套装里包括一个树莓派B+型号主机、外壳、电源适配器和一个Wi-Fi无线网卡。当然也可以只买一个基本的B+主机而不买电源适配器、SD卡等。如果只买主机本身,在www.amazon.com 上只需要大概40美金。要完成某些任务,如网络监听,就需要用到第2块网卡了。而树莓派默认只有一个有线网卡。要实现这些目标,就要再花11美金买一个USB接口的有线网卡 [1] 。而且,大部分的套装也没有包括适用于电脑上SD卡槽的转接套 [2] 。例如,MacBook Pro电脑上有SD卡接口,但还得配备一个microSD卡的转接套,才能对树莓派的microSD卡进行格式化,这个转接套的价钱大概在10美金左右。对无线渗透测试来说,还需要一个USB无线网卡,大概10美元可以买到。总的来说,大部分树莓派的组件都不算贵,所以整套系统的价格也就在50~100美元。
图1-2显示的是从盒子中取出来的树莓派主板。
图1-2
图1-3所示为在eBay上销售的一款树莓派套装。
图1-3
图1-4所示为一个USB有线网卡。
图1-4
图1-5所示为microSD到SD卡的转接套。
图1-5
图1-6为USB接口的无线网卡。
图1-6
CanaKit Wi-Fi无线网卡体积较小,便携性佳,兼容性强,非常适合树莓派使用。
在本书中,我们会学习将树莓派作为远程渗透测试的探头 [3] 使用,并使用它的无线功能再连回中心管理系统。在逐渐熟悉了树莓派和Kali Linux,以及其他渗透测试应用后,很可能就会用到上面提到的这些组件。以下是构造一套用于渗透测试的树莓派需要的清单列表:
入门级套装总价大概在60~90美元,具体总价取决于包括哪些组件。
![]()
上述清单里没有包括使用HDMI连接的显示器、USB键盘和鼠标,通常在搭建启动映像时会需要用到它们。
树莓派就是一块电路敞开着的芯片板。人们通常都希望能保护这块板子,在放置它的目标位置也最好有个盒子能把它藏起来。树莓派外壳一般是把整个板子放进去,或通过卡楔的方式把板子固定起来。树莓派装好后,板子多半就藏在盒子里了,但输出的接口都会留出来,可以从外部访问到。
下一步是把输入和输出设备如键盘、无线网卡和鼠标等,整合组装在一起。树莓派B+型号有4个USB输出接口。还有一个HDMI输出,可以接到显示器上。在电源方面,树莓派使用的是5V的microUSB电源,可以通过USB Hub、电源适配器或此类设备进行供电。树莓派的核心是装在microSD卡上的软件;所以需要先把Kali Linux的映像文件安装到microSD卡上,再将这块卡插进树莓派里。
![]()
某些树莓派的microSD卡上预装了软件。建议在格式化这张microSD卡前,先克隆一下上面的软件,再安装Kali Linux,这样就可以保存一份出厂预装的软件了。克隆microSD的过程会在本章后面的内容里出现。
现在树莓派组装好了,接着先安装Kali Linux。大部分计算机没有microSD接口,但是许多系统如苹果公司的MacBook有SD卡接口。如果连SD接口也没有,可以外接一个USB SD和microSD读卡器,价格也很便宜。我本人使用的MacBook上面有SD接口,再配一个microSD转接器,就可以格式化树莓派的microSD卡了。
![]()
所使用的树莓派microSD卡容量至少为8GB,才能比较正常地运行Kali Linux。另外还得确保这张microSD卡是高速卡。建议在大部分项目下使用class 10类型的microSD卡。
图1-7就是一块class 10的金士顿8 GB microSD卡。
图1-7
解决了计算机访问microSD卡的问题后,需要先格式化这张卡。可以从SD协会(SD Association)的网站www.sdcard.org 上下载一个免费应用,如图1-8所示。
图1-8
该应用可以格式化microSD卡。下载和使用步骤如下。
1.通过Web浏览器访问https://www.sdcard.org/home/ 。
2.在左边的菜单栏里选择Downloads。
3.然后选择SD Card Formatter 4.0。
4.再根据使用的操作系统选择版本。有Mac和Windows两个版本。
5.最后,选择接受End User License Agreement,下载该软件并安装。
下载完成后,插入SD卡,启动SD Card Formatter应用。确保选择了正确的介质,准备好后,点击Format按钮。程序会擦除SD卡上的所有信息,为安装Kali Linux做好准备。
确保要格式化的是正确的驱动盘,否则可能会误删了其他驱动盘上的内容。
![]()
确保在格式化microSD卡前先备份当前映像内容,以免丢失默认软件和其他数据。如何克隆microSD卡在本章也会提到。
图1-9显示的是启动SDFormatter应用时的场景。
图1-9
如果使用的是苹果电脑,点击Finder,在搜索里输入Disk Utility。若此时microSD卡已经插好了,在Disk Utility里就能看到Drive选项下的microSD磁盘。点击microSD卡再选择右边的第2个Tab页面,这个Tab正好在居中的位置,名叫Erase。建议其中的Format选择MS-DOS(FAT)格式。不用给microSD卡起名,就让Name一栏留空。然后,点击Erase按钮格式化这张卡。
图1-10展示了Disk Utility里的界面。
图1-10
现在准备好可以在树莓派上安装Kali Linux了。默认来说,用于树莓派版本的Kali Linux安装包已经为树莓派设备的内存和ARM处理器做过优化。碰到特定的渗透测试目标,树莓派还是令人满意的。但如果加入过多的工具和功能,树莓派设备的性能可能会跟不上,导致在实验室之外的场景会变得难以使用。要想在树莓派上安装完整版的Kali Linux也是可以的,但需要单独安装各个Kali Metapackages软件包,这个已经超出本书范围了。对需要用到完整版Kali Linux的场景,建议还是换个更强劲的系统。
要在树莓派上安装Kali Linux,需要先到Offensive Security的网站上下载树莓派对应的安装映像文件。地址为http://www.offensive-security.com/kali-linux-vmware-arm-image-download/ 。
图1-11显示了可供下载的Kali Linux Custom ARM Images [4] 。
图1-11
![]()
最好在安装前,计算和对比下载的映像文件的SHA1SUM摘要值,以验证没有被篡改。
映像文件下载好之后,就要将它写入microSD卡上。如果使用的是Linux或Mac操作系统,可以使用内置的dd命令行程序。如果使用的是Windows系统,就要使用Win32 DiskImager程序。
Win32 Disk Imager是一套免费工具,用于将raw映像文件写到SD/microSD卡上。如果microSD卡用了图1-5所示的那种USB转接套,这个工具有时候会出问题,已经有人报告过这个现象了。
Win32 Disk Imager程序的下载地址为http://sourceforge.net/projects/win32diskimager/ 。
下载完成后,只要选择映像文件和可移除介质,然后就可以开始写入的过程。整个过程可能需要一点时间。MacBook的系统上大概花了30分钟。
现在可以准备安装之前下载的Kali Linux映像了。先将压缩文件解压到桌面上。可以用类似7-Zip这样的程序解压下载的文档。
图1-12是Win32 Disk Imager程序的界面。
图1-12
如果用的是Mac平台,第一步是确定操作系统读取SD卡的位置。可以在终端输入diskutil list命令以达到这个目的,执行的结果如图1-13所示。
图1-13
在图1-13中可以看到,SD卡被标记为disk1。也看得出来,这张microSD卡上有分区,说明还没有格式化这张卡。此时应该按照本章开头的描述,先格式化这张卡再做后续步骤。
虽然我更喜欢用前面提到的SD Card Formatter程序,但也可以在直接在Mac里通过命令行直接格式化SD卡,步骤如下所示。
1.首先,需要输入diskutil unmountDisk /dev/disk1这条命令,先卸载已在使用的SD卡。
2.然后再输入sudo newfs_msdos -F 16 /dev/disk1命令格式化SD卡(千万要确保输入正确的磁盘名称。如果搞错了后果非常严重)。
![]()
强烈建议先用分区工具把microSD卡上的分区都先删掉,再进行格式化。
3.此时需要输入Mac操作系统的系统/管理员密码。
![]()
在上述格式化相关命令中,用的是disk1这个名称,因为操作系统自动把SD卡分配为disk1。但操作系统给SD卡分配的可能是另一个编号。确保在执行上述命令时,用的是正确的磁盘编号。
在复制映像文件之前,最好格式化SD卡。但值得说明的是,后面用dd命令时,执行的是从映像文件到SD卡的逐比特复制,所以并非一定要格式化SD卡。但格式化操作可以防止一些其他错误和异常。
现在可以安装之前下载的Kali Linux映像文件了。先将下载的文档解压到桌面。可以使用Mac平台的Unarchiver或Keka来解压文档。
然后确定解压后映像文件名。例如,解压出来的映像文件名为kali-1.0.9- rpi.img。最好再度确认一下系统是否可以访问SD卡。方法是再次输入diskutil list命令。
输入以下命令,把映像文件安装到SD卡上(可能需要再输入一次Mac操作系统/管理员密码):
sudo dd if=~/Desktop/kali-1.0.9-rpi.img of=/dev/disk1
图1-14显示了前面这条写入命令执行后的结果 [5] 。
图1-14
在映像文件写入microSD卡的过程中,命令提示符会处于停顿状态。休息一下就好,因为这个过程是颇需要一点时间的。在我的系统上,花了差不多30分钟才完成。
![]()
可以按下Ctrl + T组合键,向正在运行的程序发送SIGINFO命令,以查看dd命令的运行进度。
图1-15显示了映像文件写到microSD卡的过程,此时命令行提示符处于停顿状态的样子 [6] 。
图1-15
![]()
如果不加上sudo命令,OS X系统下要用dd命令把映像文件写到microSD卡上时,可能会出现权限不够的提示。如果使用的命令行和上面的略有差异,确保sudo对后面的整个命令都有效,所以建议把sudo后面的命令用括号括起来,以免出现这个错误。
完成映像文件的安装后,只要把microSD卡插入树莓派,打开电源,就可以启动系统了。启动系统可能需要花5分钟。然后输入用户名为root,密码toor,登录Kali系统。如果希望启动到图形界面下,只要在终端输入startx。恭喜!这套运行在树莓派上的Kali系统就装好了。
![]()
系统的启动可能需要点时间。树莓派支持图形用户界面(GUI),可以输入startx启动图形界面。但是,建议在树莓派上还是以命令行为主。如果输入了startx命令,可能需要20分钟来加载图形界面,而且用起来非常慢,甚至会没有响应 [7] 。
Kali Linux的树莓派版本映像文件已经为树莓派做过优化。登录时,用户名为root,密码为toor。建议登录后,立刻输入passwd命令修改默认密码。大多数攻击者都知道Kali Linux的默认登录信息,所以最好保护好树莓派免受恶意访问。
图1-16展示了重置默认密码的passwd命令。
图1-16
输入startx命令后,屏幕会短暂地变空白。这是正常的。加载X Windows(GUI)桌面,它会提示是否使用默认工作空间或另开一个空白的工作空间。选择默认工作空间。选择后,桌面会尝试重载或重绘。完全加载可能需要几分钟时间。
图1-17显示的就是输入startx命令时的截图。
图1-17
需要做的首要任务就是升级操作系统和软件包。升级的过程会需要一点时间,在此过程中也会显示当前的进度。然后还需要在X Windows(GUI)环境里再做一次升级。不少用户反映说软件包没有完全升级成功,因为这些用户不是在X Windows环境下执行的升级。在启用apt-get upgrade命令升级前,请先输入startx,登录X Windows环境。
图1-18显示的是输入apt-get update命令的截图。
图1-18
然后输入apt-get upgrade命令,如图1-19所示。
图1-19
在Kali Linux GUI里进行升级的步骤如下。
1.确保先登录X Windows桌面(使用startx命令)。
2.打开终端窗口。
3.输入apt-get update命令。
4.输入apt-get upgrade命令。
5.输入sync命令。
6.输入sync命令。
7.输入reboot命令。
在升级了系统后,要输入sync命令(作为个人习惯,会输入两次)。再输入reboot命令重启系统。在几分钟内,系统重启,再次登录系统。输入startx命令打开Kali Linux GUI。
图1-20为输入sync和reboot命令的情景。
图1-20
需要在X Windows(GUI)环境下执行apt-get update和apt-get upgrade命令来升级系统。如果不这么做,X Windows环境有可能会变得不太稳定。
完成以上步骤后,就可以开始用这套跑在树莓派上的Kali Linux进行渗透练习了。
本书各处也都提到,树莓派是一种低价的运算选择,可以有各种用法。但廉价的系统通常运算能力也有限,所以树莓派在任何类型的渗透测试中,对需要动用大量资源的任务就无能为力了。所以强烈建议只在特定的任务里使用树莓派,而不要把它当成全功能的渗透工具集,因为完整安装的Kali Linux版会比受限的ARM架构的Kali Linux提供多得多的工具。
下面两个截图选择的是同一个类别里的程序做对比,展示了ARM架构版Kali Linux和完整版Kali Linux的程序差异。另外,在Kali Linux ARM里,某些工具在图形界面环境里无法正常工作,或无论是否图形界面环境都不能用。这时候在比树莓派功能更强的系统中安装完整版的Kali Linux工具会更可靠。图1-21展示的是Kali Linux ARM版本中Live Host Identification类别的工具,这类别里只有ncat和nmap。
图1-21
图1-22则是完整安装版本Kali Linux中同样的Live Host Identification类别工具。可以看到图中,这个类别里的工具明显更多。
图1-22
有些使用场景非常适合树莓派的“酷”特征。首先它能在难以亲身前往的位置里提供低成本的远程渗透测试节点。例如,要为远在中国、英国和澳大利亚的分支机构提供渗透测试服务,彼此间带宽也比较受限。使用树莓派就可以不用真的出差到每个地方,只需要向客户收取树莓派的价钱,然后给每个地方寄一个树莓派过去。只要当地有人帮助将树莓派接入网络,就可以执行远程渗透测试了,这样能极大地节省差旅和硬件的开销。大多数情况测试完后,客户只要把树莓派下线,放在一边就行,反正也很便宜。用这个方法,能帮客户节省一大笔钱,而不需要用企业云扫描工具,否则在每个地方都这么做成本可就高多了。
另一个使用场景是偷取普通用户的信任,宣称自己是IT人员或电信公司客户代表来做维护,实体地将树莓派接入目标网络。树莓派主板可以藏在其他正常外观的硬件里,如思科的交换机、Hub等,并把树莓派接到某个网口上去。普通用户不会无端怀疑网络设备,看起来它出现在那里还挺合理的。
在这些使用场景里,主要的卖点都得归功于树莓派的低价,即使丢了一套也不至于破产。另外,在这两个场景里,由于树莓派的体积很小,所以它的便携性极高。因此,树莓派比诸多其他昂贵的远程渗透工具集如PWNIE Express [8] (并不是说PWNIE Express的工具就不好或不值得拥有,但它们确实比树莓派贵多了),就显得更适宜了。说到PWNIE Express这家公司,读者也可以在树莓派上运行该公司的轻量版PWNIE Express软件,这会在本书最后做介绍。
常规考虑使用树莓派的出发点,是因为它设计灵活、软件丰富,以及在线社区的支持。有无数的网站专门讨论树莓派各种花样百出的玩法。所以碰到问题时,通常在Google上一找都能发现答案。操作系统也有很多选择,而且几乎用到的软件都是开源的。这使得各种设计需求都可能实现,如开发一套使用者数量众多但价钱适宜的移动教室。
树莓派能做的事情数不胜数。在渗透测试方面,Kali Linux提供了基本上会用到的所有工具。尽管Kali Linux ARM功能有点受限,但可以通过apt-get命令下载缺失的工具,以符合渗透测试练习的要求,当然这工具最好不需要大量的运算。在本书后续内容里会说到如何下载缺失的工具。所以,花上50~100美元买个树莓派,到在线论坛参考下用树莓派可以干啥,将其作用尽情发挥出来吧。
在要格式化树莓派,准备安装Kali Linux前,强烈建议先备份原版的系统软件。大多数树莓派microSD卡上是以NOOBS的形式(New Out of the Box Software的缩写)来安装各种操作系统,可以从中选择安装一种操作系统。如果microSD卡已经被擦除重写了,也可以从这个地方重新下载NOOB软件:http://www.raspberrypi.org/downloads/ 。
克隆SD卡的过程很简单。很多Windows程序,如早先介绍过的Win32 Disk Imager,都可以精确复制一份SD卡映像文件。在Mac平台上,要确认SD卡的名称,可以打开命令行提示然后输入diskutil list命令,如图1-23所示。
图1-23
在图1-23中,可以看出我的microSD卡为/dev/disk1。而各位读者的系统上microSD卡的编号未必和我一样;所以要先确认microSD卡的磁盘名称。要克隆这张卡,并把磁盘映像文件保存到桌面上,需要输入以下命令:
sudo dd if=/dev/disk1 of=~/Desktop/raspberrypi.dmg
图1-24展示了输入这条命令后,还需要输入密码才能继续运行这条命令。
图1-24
克隆整个SD卡的过程大概要30分钟。创建映像文件的速度取决于卡的大小和microSD卡的速度、卡上的数据量和电脑的运算能力等。总之,耐心点,慢慢复制吧。
![]()
OS X系统下,将映像文件写到microSD卡上时,如果不加sudo命令,可能会无权写入。如果所用的sudo命令有更复杂的形式,可以在后面使用括号,确保sudo包括后续的所有操作,否则可能还是会出现这个问题。
最糟糕的事情莫过于已经按照书上的指引,却还是碰到各种问题。在以往装过的不少树莓派系统中,也碰到一些有趣的问题,当然有时候这些拦路虎还蛮讨厌的。下面这些是碰到过的问题以及建议:希望这些到处碰壁得来经验教训能节省大家宝贵的时间。
![]()
网址http://elinux.org/R-Pi_Troubleshooting 有大量问题解答资源,可帮助解决问题。
在本章中,我们探讨的内容包括如何购买硬件,如何组装一个树莓派。我们建议了各种硬件组件,如microSD卡和无线网卡,以配合本书后面章节的内容。
在买好需要的硬件后,接着介绍了在树莓派上安装Kali Linux的最佳方式。这包括格式化和升级Kali Linux的详细步骤,以及碰到的常见问题和可能的修复方式。在本章节的最后,读者应该就安装好一套能正常工作的Kali Linux了,软件也已经过升级,树莓派上运行的各种程序也适用于入门的基本设置。
在下一章,会讨论树莓派用作渗透测试平台的优势,还会讨论如何优化树莓派上的Kali Linux应用,以及如何远程控制和管理作为Kali Linux攻击平台的树莓派。
[1] 译者注:原文直译是“以太网卡”,但改成有线网卡普通读者应该更容易理解。
[2] 译者注:这里“转接套”对应的英文是adapter,adapter这个单词指代非常含糊。在有把握的地方,酌情改成容易理解的称呼。
[3] 译者注:这里的原文是agent,和前面的adapter一样,较为含糊,酌情叫“探头”。
[4] 译者注:实际上现在Kali Linux树莓派版下载地址为https://www.kali.org/downloads/ ,如为树莓派2 B+或树莓派3,请选择页面上的Kali Linux armhf下载链接。
[5] 译者注:这个截图明显换了在另一位作者的机器上操作,编号和机器名都变了!而且图中SD卡的编号变成了/dev/disk2,正好印证了前述作者们提到的要多注意SD卡编号的问题。
[6] 译者注:这张图原作者也许放错了!因为屏幕上显示的已是树莓派启动时的画面。
[7] 译者注:作者写作本书的时候还是树莓派1,等本书出版的时候,主流型号应该是树莓派3,图形界面已不是问题。
[8] 译者注:PWNIE Express公司推出了若干款基于平板电脑和手机的渗透和安全评估产品。