BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃

978-7-115-34867-8
作者: 【美】Pritchett Willie 【墨】David De Smet
译者: Archer
编辑: 傅道坤

图书目录:

详情

BackTrack是一个基于Linux的渗透测试和安全审计平台。本书讲解了一些用来进行基础渗透测试的常见工具的实用技巧,这些工具可以收集信息、识别并利用系统漏洞、提升权限,以及掩饰对系统的跟踪。本书还讲解了BackTrack 5的安装方法,以及如何设置一个用于执行测试的虚拟的环境。

图书摘要

版权信息

书名:BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃

ISBN:978-7-115-34867-8

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

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

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

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

•  著    [美]Willie Pritchett [墨]David De Smet

  译    Archer

  责任编辑 傅道坤

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

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

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

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

  反盗版热线:(010)81055315


Copyright @ Packt Publishing 2012. First Published in the English language under the title PhoneGap Beginner’s Guide.

All Rights Reserved.

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

版权所有,侵权必究。


BackTrack是一个基于Linux的渗透测试和安全审计平台,旨在帮助网络安全人员对网络黑客行为进行评估,如今被世界各地的安全社区和安全人员所使用。

本书分为10章,以示例方式讲解了BackTack中很多流行工具的使用方法,其内容涵盖了BackTrack的安装和配置、BackTrack的调整、信息采集、漏洞识别、漏洞利用、提权、无线网络分析、VoIP、密码破解、电子取证等内容。

本书讲解详细,示例丰富,无论你是经验丰富的渗透测试老手,还是打算紧跟时代潮流,希望掌握BackTack 5中常用软件使用方法的新手,都会从本书中获益匪浅。


与人民邮电出版社合作翻译本书是我的荣幸,但是翻译这样一本安全题材的图书,也是我的隐忧。同是一种载体和同一种技术,铀可以成为洁净能源的来源,也可以变成毁灭文化的武器。计算机信息安全技术也面临同样的问题。距20世纪PC病毒问世尚不足30年,当下各国在探讨计算机信息安全事件时已经是谈虎色变。

请问尊敬的读者:您是否为保护绝大多数人的福祉而学习计算机安全技术呢?每一个“是”的回答,都会令我感到这近百小时的翻译和排版工作是值得的!

如果您有机会看到英文原书,将会发现作者就有这样的忧虑。例如原文有“URL伪造和渗透”的标题,而正文却是现在看到的简单得多的“掌握Arpspoof”——这一部分并不是我们刻意做了修改,而是作者因为害怕被滥用而进行了删减,只是标题没有更正过来。现在高校间计算机安全技术竞赛经常会涉及无线网络部分,我仅仅针对无线网络部分的“彩蛋”进行了标注。其实其他地方也偶尔能见到这种人为的纰漏,不过并不影响阅读;尤其是在互联网的帮助下,在略微理解作者意图后,“彩蛋”都不影响您进行相应的练习和使用。

君子有所为有所不为,知其可为而为之,知其不可为而不为。与作者一样,希望您能将相应的技术用于正确的行为上。同时,希望您有意愿加入我们的非商业活动中来,在学术研究、促进行业进步的公益舞台上展示您独到的风采!

Archer

idf.cn与cisrg.org联合创始人


Willie Pritchett,MBA,一名在IT领域有20余年的行业经验、热衷于信息安全的编程老手。他目前是Mega Input Data Services 公司的总经理。Mega Input Data Services 公司不仅专注于安全和数据驱动的应用程序的开发,并且提供人力资源服务;是一家提供全方位服务的数据库管理公司。Willie本人与国家和地方政府机构都有着融洽的合作关系,他为很多发展中的小型企业提供过技术服务。

Willie持有众多行业认证,同时也在诸多领域进行培训,其中耳熟能详的培训项目有道德骇客与渗透测试(ethical hacking and penetration testing)。

我要感谢我的太太Shavon,她在我著书的时候一直陪在我身边,支持我继续努力下去。感谢我的孩子Sierra和Josiah, 他们使我懂得珍惜宝贵的时间。感谢我的父母Willie和Sarah,谢谢你们教给我职业的道德和人生核心的价值观,这些知识带领我挺过人生最难熬的日子。同时特别感谢我现在所有的同事、业内同仁和商业伙伴。他们在我选择了IT职业生涯时给予了我相应的机会,所以我的成绩就是你们的成绩。保护了众多的企业、并且帮助了他们发展——所有我所作的事情,也可归功于你们当初给我的机会和赏识。最后感谢所有的评审和技术顾问。他在整个创作期间毫无保留地将独到见解与我分享。

David De Smet自2007年起在软件行业工作。他是iSoftDev公司的CEO和创始人,担负着公司的很多事务。咨询、顾客需求分析、软件设计、软件编程、软件测试、软件维护、数据库开发、网页设计,这些工作仅是他职责中的一部分。

他在软件研发方面注入了无数的时间与热情,同时他也对黑客技术与网络安全持有浓厚的兴趣,并且为不少公司提供了网络安全评估的服务。

请允许我感谢Usha Iyer给我机会参加本书的著作。我也要感谢项目协调人Sai Gamare和本书的整个创作团队。感谢我的家人特别是女友Paola Janahaní给予我的支持和鼓励,最重要的是在我通宵达旦撰写本书时给予的耐心。


Daniel W. Dieterle在IT行业有20年以上的经验。他为从小型到大型的各类公司企业均提供过各种各样的技术指导。实际上Daniel非常享受信息安全领域的工作,他在各大期刊上发表过大量关于计算机安全的文章,并维护着一个名为“用数码武装计算机安全”(Cyber Arms Computer Security)的博客,其地址为cyberarms.wordpress.com

Daniel是Packt Publishing出版社的老朋友了,他担任过BackTrack 5 Wireless Penetration Testing Beginner's Guide一书的技术审稿人,同时还是Hakin9 IT Security Magazine、eForensics Magazine、The Exploit Magazine、PenTest MagazineSoftware Developer's Journal等期刊的技术审稿人。

感谢我美丽的夫人和女儿,谢谢她们在我参与本书审阅时给予的支持。

Abhinav Singh来自印度,是一位年轻有为的信息安全专家。他在黑客技术和网络安全方面一直情有独钟,以至于最终选择做这行的全职工作。Packt Publishing出版过的Metasploit Penetration Testing Cookbook(该书中文版《Metasploit渗透测试手册》由人民邮电出版社出版)就出自他的笔下。那本书介绍了渗透测试领域使用得最广泛的框架程序—Metasploit。

读者常常可以在门户网站和技术杂志上见到Abhinav著作的节选。在SecurityXploded(安全大爆炸)社区中他也颇有名气。读者可以通过abhinavbom@gmail.com和Twitter账户@abhinavbom找到他。

感谢我的祖父母和他们的祝福,感谢父母给予的支持和姐姐对我的关照。

Filip Waeytens在安全领域成名已经超过12年之久。从接触这个行业至今,他分别以安全工程师、安全经理、测试工程师的角色,从事各类大中行企业的跨国项目。

Filip安全评估服务的客户群体颇为广泛,他的客户遍布银行、电信、工业生产环境、SCADA和政府各个领域。他也为Linux BackTrack项目编写了许多安全工具,并且擅长渗透方面的培训。

音乐、电影和各种各样的放松活动是他的爱好。目前他与太太、两个女儿还有4只宠物小鸡定居在比利时。他特意向中文读者留言,读者可通过访问他的网站http://www.wsec.be与其进行沟通。

特别向Muts、Max和MjM致敬!他们是BackTrack的先驱。


BackTrack是为渗透测试而研发的Linux平台上的军火库,是辅助安全行业专业人士进行安全评估的一个平台,一种纯粹为渗透而产生的原生环境。BackTrack基于Debian GNU/Linux受权发行,主要应用于信息领域的法证调查和渗透测试。Backtrack这个名字由一种应用于渗透测试的算法backtracking而得来。

本书将介绍很多流行工具的操作方法,相信读者可以从中学会渗透测试的基础知识:信息收集、漏洞的识别与利用、提权,以及隐匿踪迹。

本书将从安装BackTrack 5、设置虚拟测试环境着手介绍相关知识。在此之后,我们逐一涉及渗透测试的基本原则,例如信息收集、漏洞识别和利用。在读者熟悉这些之后,本书将开始讲解提权、无线网络分析、VoIP、破解密码和法证调查。

本书适合信息安全专业人士和希望入门的读者阅读。本书不仅提供了详细的介绍,并且列举了很多具体的操作范例,供您快速掌握BackTrack 5和渗透测试的相关领域知识。

希望您能够喜欢这本书!

第1章,安装、运行BackTrack,描述如何在测试环境中安装BackTrack,以及如何配置BackTrack,使其适用于您的网络。

第2章,调整BackTrack,讲解安装常见的显卡、无线网卡安装和配置驱动程序的方法。

第3章,信息采集,介绍采集信息阶段需要用到的工具,例如Maltego和Nmap。

第4章,漏洞识别,介绍Nessus和OpenVAS漏洞扫描工具的使用方法。

第5章,漏洞利用,通过对常用服务进行攻击来讲解Metasploit的使用方法。

第6章,提权,讲解很多工具(例如Ettercap、SET和Meterpreter)的使用方法。

第7章,无线网络分析,讲解如何使用不同的工具评估无线网络安全。

第8章,VoIP,讲解各种用于攻击无线电话及VoIP系统的工具。

第9章,密码破解,讲解密码哈希和用户账户的破解方法。

第10章,电子取证,介绍用来恢复数据和加密的工具。

如果您需要使用书中的方法进行实践,您需要有一台计算机,而且它具有足够大的内存和硬盘空间,还要具有强大的处理能力,这样才能运行虚拟化的测试环境。本书提到的很多工具都需要同时运行多台虚拟机。第1章介绍的虚拟化工具可以在绝大多数的操作系统上运行。

如果你打算紧跟潮流,希望掌握BackTrack 5中常见软件的使用方法,亦或是渗透测试经验丰富,本书都值得你一读。本书讨论的练习和实践,仅能用于符合道德和法律的用途。针对计算机网络的攻击或信息收集,应当获得相关机构或个人的完全同意。未经许可的操作,将会触犯法律,可能引起诉讼或者带来牢狱之灾。

免责声明:对于滥用本书知识而进行不道德实践的个人及行为,以及可能产生的法律后果,我们不负任何责任。因为同样的法律问题,我们强烈建议您参考本书设置测试环境的章节,建立自己的测试环境。

警告或重要的提示会使用这种格式。


本章将讲解下述内容:

本章从插入BackTrack Linux DVD到配置网络各个环节,介绍在不同的运行环境中安装和初始化设置BackTrack。

本书介绍的所有操作,均以使用BackTrack 5 R2的GNOME 64-bit为前提。请按照您CPU的硬件架构,选择安装对应的32位或64位BackTrack(http://www.backtrack-linux.org/downloads/)。常见的Linux的桌面环境(WM)有GNOME与KDE两种,本书讲解GNOME环境的Backtrack。因为两者在界面和具体指令上存在细微区别,所以本书不完全适用于KDE版本的BackTrack。不过即使您使用的是KDE版本,也应能够通过本书详细的介绍毫无障碍地掌握相应要点。

将BackTrack安装到磁盘上是安装过程里基础中的基础。硬盘安装带来的最直接的好处就是可以脱离DVD光驱,在硬盘上高速运行BackTrack。


这里介绍的安装方法,将会清空您电脑的硬盘,并且将BackTrack设置为您的首选操作系统。

在开始操作之前,请确保您的电脑满足下列要求:

那么让我们开始安装吧。首先在光驱里放好BackTrack Live DVD,然后从光驱启动电脑。

现在开始安装BackTrack到电脑硬盘。

1.在桌面系统成功载入之后,双击选择Install BackTrack,启动安装向导程序(见图1-1)。

图1.1

2.选择语言,然后单击Forward按钮。

3.选择您的地理信息和时区,然后单击Forward按钮(见图1.2)。

图1.2

4.选好键盘布局后单击Forward按钮进入到下一步(见图1.3)。

图1.3

5.使用默认的磁盘分区选项,就是使用整个磁盘安装BackTrack。再次单击Forward按钮(见图1.4)。

图1.4

6.将会出现安装选项的摘要。请核对设置是否正确,然后单击Install按钮开始安装(见图1.5)。

图1.5

7.安装程序将会在几分钟的时间内完成安装过程(见图1.6)。

图1.6

8.安装结束之后,您就可以在脱离DVD的情况下使用BackTrack。单击Restart Now重启计算机(见图1.7)。在启动后需要使用系统的账号登录,初始化后的用户名是root,密码为toor

图1.7

在USB上使用BackTrack比在DVD上使用BackTrack有很多优点。在USB上使用BackTrack可以保留我们对系统的调整,保留各类文件;因此也可以将系统更新和安装的新软件永久地保留在USB驱动器上。与硬盘安装相比,USB安装可以让我们随时、随身携带BackTrack。

多亏了UNetbootin这样的开放源代码软件的问世,现在我们可以制作可启动的USB驱动器,并且可以在上面安装各式各样的Linux操作系统——这当然也包括了BackTrack。

需要做好下列准备工作才能继续安装BackTrack:

现在可以开始安装BackTrack 5到USB驱动器。

1.插入先前格式化好的USB驱动器(见图1.8)。

图1.8

2.以管理员身份运行UNetbootin

3.选用Diskimage选项,浏览并选好下载的BackTrack DVD ISO镜像文件(见图1.9)。

图1.9

4.设置保留分区的空间大小。本文设置保留分区为最大值,即4096 MB(见图1.10)。从USB启动后,默认情况下USB是只读磁盘,所有文件操作都是在保留分区上进行。UNetbootin会把保留分区以squafs镜像格式存储为磁盘镜像。受FAT系统的限制,这个分区的镜像文件最大是4GB,也就是说4GB是这个分区容量的理论上限。

图1.10

5.选好USB驱动器并且单击OK按钮,开始制作可启动USB。

6.制作过程可能比较慢,它将把相当数量的文件从镜像文件(.iso)中解压缩、复制到USB的分区,还要安装启动引导程序(见图1.11)。

图1.11

7.安装过程结束之后,BackTrack就完整地安装到了USB驱动器上。此时便可以按照提示重新启动计算机,从USB启动BackTrack(见图1.12)。

图1.12


如果您在意USB上存储文件的保密性,可以将USB分区加密。详情请在网上查阅BackTrack5的官方教程:Backtrack 5-Bootable USB Thumb Drive With“Full”Disk Encryption。具体网址是http://www.infosecramblings.com/backtrack/backtrack-5-bootable-usb-thumb-drive -with-full-disk-encryption/

本节将介绍在虚拟机的操作系统(guest operating system)上安装BackTrack,这将使用著名的开源虚拟化软件VirtualBox。

所需要的先决条件如下:

现在可以安装BackTrack到Virtualbox虚拟机了。

1.启动VirtualBox并且单击New按钮,启动Virtual Machine Wizard。

2.单击Next按钮,输入虚拟机的名字,设定操作系统类型以及版本信息。本书介绍的64位BackTrack系统基于64位Gnome Ubuntu开发。因此,选择操作系统为Linux,并且设置版本为Ubuntu(64 bit)。单击Next按钮继续(见图1.13)。

图1.13

3.选择可以分配给虚拟机的内存(RAM)。可以选择默认值。单击Next继续。

4.为虚拟机创建虚拟硬盘。单击Next按钮(见图1.14)。

图1.14

5.将会打开一个新的向导窗口。此处我们选用默认的VDI文件类型。其他的文件类型可以兼容其他类型的虚拟机平台,没有这种考虑时可直接选用VDI类型。

6.本例可以使用VirtualBox推荐的默认设置。单击Next继续。

7.设置虚拟硬盘驱动器的存储位置,以及它容量的上限(见图1.15)。

图1.15

8.检查设置是否正确,确定后单击Create按钮。程序将开始创建新的虚拟硬盘文件。

9.程序会返回先前的向导界面,罗列将要创建的虚拟机的各个设置。确认无误后单击Create结束这个向导程序(见图1.16)。

10.在虚拟机建好后,我们就可以准备安装BackTrack。

图1.16

11.在VirtualBox主程序窗口,首先选中BackTrack 5 R2 Gnome 64-bit,然后单击Settings按钮进行设置(见图1.17)。

图1.17

12.只要刚才的那些操作无误,接下来就可以用下载好的ISO镜像安装BackTrack。将ISO镜像当作虚拟光驱使用,就省去了大家刻录DVD到物理光盘盘片那漫长的等待时间。在Settings界面,单击Storage菜单按钮进行存储介质设置(见图1.18)。

图1.18

13.接下来,在Storage Tree下面,选中Empty光盘图标,这个图标在IDE Controller的下方。在选中虚拟的CD/DVD ROM驱动器后,在屏幕右侧,在Attributes属性下单击那个小小的光盘图标。程序会弹出下拉菜单,从列表中选择BackTrack的ISO镜像文件。如果列表里没有BackTrack的ISO镜像文件,就需要选择Choose a virtual CD/DVD disc file...选项,找到先前下载好的ISO镜像。这些步骤完成之后,单击OK按钮(见图1.19)。

14.现在已经回到主程序窗口。单击Start按钮,然后单击新创建窗口的内部,继续安装过程。之后按照1.2一节所描述的方法安装BackTrack。

图1.19


安装VirtualBox Extension Pack(即扩展包)可以很大幅度地扩展虚拟化软件的功能,获得更为友好的操作体验。扩展包也增加了USB 2.0(EHCI) 设备支持、VirtualBox RDP/远程桌面、Intel PXE boot ROM网络启动的功能。

在这个例子中,我们将演示在VMware虚拟机里的BackTrack 5系统安装虚拟机增强工具。即在Guest OS中安装VMware Tools。

在开始操作之前,确保下列需求得到满足:

现在开始在VMware上安装BackTrack 5。

1.首先设置好安装过Bactrack的虚拟机连接到Internet。在虚拟的BackTrack系统里,打开Terminal窗口,输入下列命令进行系统内核相关的准备工作。

   prepare-kernel-sources1


当虚拟机使用的是Linux或者Mac OS操作系统时,安装虚拟化增强工具(VMware Tools)都要这样准备内核文件。如果虚拟机使用的是Windows系列操作系统,则不必进行这些操作。不过BackTrack都是Ubuntu Linux,所以这一步也是必须的。

2.在VMware Workstation菜单栏中单击VM | Install VMware Tools... (见图1.20)。

图1.20

3.将VMware Tools installer复制到一个临时目录,并且进入该临时目录中。

 cp /media/VMware\ Tools/VMwareTools-8.8.2-590212.tar.gz /tmp/ cd /tmp/ 


您的VMware Tools的版本可能与本文例子中的不一致,具体文件名的规则是VMwareTools-<version>-<build>.tar.gz。

4.通过下述命令解压缩这个安装包。

 tar zxpf VMwareTools-8.8.2-590212.tar.gz 

5.进入VMware Tools的目录进行安装。

 cd vmware-tools-distrib/ ./vmware-install.pl ./vmware-config-tools.pl 

6.上述两个程序会提示很多的选项。您都可以按回车键接受所有的默认设置。

7.最后,重启计算机。虚拟化增强工具(VMware Tools)的安装工作大功告成!

在第一步,我们准备了kernel source。接下来,我们将VMware Tools CD虚拟插入到操作系统。然后,创建挂载点,并挂载虚拟CD驱动器。最后,我们将安装程序复制到一个临时文件夹中,并解压缩。然后运行安装程序,并保留默认设置。

当我们第一次进入全新安装的BackTrack系统时,会注意到启动画面消失了。要想人工修复这个问题,就要先解压缩启动引导程序Initrd,对其进行修改,然后再次压缩。好在有bash脚本可以自动完成这么麻烦的事。这个脚本的作者是Mati Aharoni(有人也称他为Muts,他是BackTrack的创始人)。

仅需要输入如下命令,就可以修复启动画面:

 fix-splash 

这个程序的运行过程如图1.21所示。

图1.21

出于安全的考虑,本书建议用户在安装好BackTrack之后立刻修改root的默认密码。当然这无法完全阻止那些恶意入侵系统的不良分子,但这毫无疑问会加大他们的难度。

要修改默认的root密码,需要输入下面的命令 :

 passwd 

输入新的密码后按回车键,系统会要求您再次输入密码(见图1.22)。

图1.22

BackTrack上安装有很多网络服务,它们在各种环境中都可以发挥作用;但是在默认情况下,它们处于禁用状态。在这个示例中,我们将讲解使用不同方法来设置和启动每个服务的步骤。

为了后续工作,我们需要将虚拟机接入网络,并且配好有效的IP地址。

现在开始配置默认服务。

1.启动Apache Web服务器。

 service apache2 start 

通过浏览本地主机(localhost)地址,可以验证服务器是否成功启动。

2.启动SSH服务之前,第一次时要生成SSH秘钥。

 sshd-generate 

3.启动Secure Shell服务器。

 service ssh start 

4.要验证服务器是否已经启动而且处于监听状态,可以使用netstat命令。

 netstat -tpan | grep 22 

5.启动FTP服务器。

 service pure-ftpd start 

6.要验证FTP服务器是否启动,可以使用如下命令。

 netstat -ant | grep 21 


也可以使用ps-ef grep 21命令。

7.停止某个服务的命令如下。

 service <servicename> stop 

此处,<servicename>代表了要停止的服务的名称。

例如:

 service apache2 stop 

8.要将某项服务配置为在系统启动时自动启动,可使用如下命令。

 update-rc.d–f <servicename> defaults 

此处,<servicename>就是在系统启动时启用的服务的名称。

例如:

 update-rc.d–f ssh defaults


也可以通过选择Start菜单中的Backtrack | Services,从BackTrack的开始菜单中启动和停止服务。

在本章的最后一个示例中,我们介绍如何使BackTrack系统接入带有密码保护的无线网络。这就要用到Wicd Network Manager和无线网络的认证信息。无线网络有很多优点,在使用BackTrack的时候,WiFi至少可以免去布线的辛劳。

开始设置无线网络。

1.通过桌面启动网络管理程序:单击Applications菜单,找到Internet | Wicd Network Manager,或者直接在Terminal窗口中输入下列命令。

 wicd-gtk --no-tray 

2.屏幕上将会弹出Wicd Network Manager的窗口,里面会显示出周围可用无线网络(见图1.23)。

图1.23

3.选择某个网络,单击Properties按钮,输入网络的具体参数。设置好之后单击OK(见图1.24)。

图1.24

4.最后单击Connect按钮进行连接。无线网络已经接通!

在这个示例中,我们设置好了无线网络。实际上我们通过网络管理器(network manager)将电脑连接到无线路由器组建的无线网络里。

1 译者注:Ubuntu系统需要略微多作些工作。在多数系统中需要执行命令:cp -rf /usr/src/ linux/include/generated/* /usr/src/linux/include/linux/。


本章将讲解下述内容:

信息收集是网络攻击最重要的阶段之一。要想发起攻击,我们就需要收集目标的各类信息。所获得的信息越多,攻击成功的概率也就越大。

我也想强调这一阶段重要的一方面工作,即文档管理。在撰写本书时,BackTrack的最新版本已经包含了一些这方面用途的工具,它们用以帮助用户整理、组织从目标那里获得的数据。这些工具也有助于我们更好地理解、使用所获信息。在这方面,Maltego CaseFile与KeepNote就十分出色。

在这个示例中,我们将演示一些服务遍历的技巧。遍历(Enumeration)泛指获取网络信息的操作。我们将讲解DNS遍历和SNMP遍历技术。DNS遍历过程用来寻找一个机构的所有DNS服务器和DNS记录。DNS遍历可以收集一些目标的关键信息,例如用户名、计算机名、IP地址等。DNSenmu可以很好地胜任DNS遍历任务。要开展SNMP遍历,就需要用到SnmpEnum这类的SNMP遍历工具。SnmpEnum功能强大,可以用来分析网络中的SNMP通信。

现在开始进行DNS遍历。

1.我们将使用DNSenum进行DNS遍历。要进行DNS遍历就需要在Gnome里打开终端窗口,然后输入下述命令。

  cd /pentest/enumeration/dns/dnsenum/   ./dnsenum.pl --enum adomainnameontheinternet.com 


请不要对公网服务器或者他人的网络运行该工具,本例中使用adomainnameontheinternet.com进行举例,您应该进行相应替换。一定要当心!

2.此时我们至少能够获取主机、域名服务器和邮件服务器在内的信息。如果我们足够幸运,没准会可以进行域信息的完整传输(zone transfer)(见图3.1)。

图3.1

3.我们还可以结合其他选项使用DNSenum,常用的选项如下所示。

4.要使用SNMPenum进行SNMP遍历,需要在终端窗口中输入下述命令。

  cd /pentest/enumeration/snmp/snmpenum/   perl snmpenum.pl 192.168.10.200 public windows.txt

5.在本节的示例中,我们攻击主机192.168.10.200。如果这个IP的设备开启了SNMP服务并连入网络,您可以得到相当多的信息,如下所示。

SNMP遍历的默认语法如下。

  perl snmpenum.pl [ip address to attack] [community]    [config file] 

6.除此以外,我们还可以使用snmpwalk遍历Windows主机的SNMP服务。snmpwalk是一个SNMP应用程序,它使用SNMP协议的GETNEXT命令查询网络实体,并生成树状信息。在命令行中输入下述命令:

  snmpwalk -c public 192.168.10.200 -v 2c 

7.我们也可以遍历主机上已经安装好的软件。

  snmpwalk -c public 192.168.10.200 -v 1 | grep   hrSWInstalledName   HOST-RESOURCES-MIB::hrSWInstalledName.1 = STRING: “Vmware   Tools”   HOST-RESOURCES-MIB::hrSWInstalledName.2 = STRING: “WebFldrs” 

8.我们可以用同一工具来遍历主机开放的所有TCP端口。

  snmpwalk -c public 192.168.10.200 -v 1 | grep tcpConnState |   cut -d”.” -f6 | sort–nu   21   25   80   443 

9.除了snmpwalk和SNMPenum,snmpcheck也能用来进行SNMP遍历。

  cd /pentest/enumeration/snmp/snmpcheck/   perl snmpcheck.pl -t 192.168.10.200

10.要使用fierce(一个尝使用多种技术来查找目标使用的所有IP地址和主机名的工具)执行域扫描,我们可以输入下述命令。

   cd /pentest/enumeration/dns/fierce/    perl fierce.pl -dns adomainnameontheinternet.com


请不要对公网服务器或他人的网络运行该工具,本例中使用adomainnameontheinternet.com进行举例,您应该进行相应的替换。一定要当心!

11.在使用fierce执行域扫描时,也可以指定使用字典文件。命令如下所示。

   perl fierce.pl -dns adomainnameontheinternet.com -wordlist    hosts.txt -file /tmp/output.txt 

12.要在一台SMTP服务器上遍历STMP的账号信息、验证用户名是否存在,可以输入下述命令:

   smtp-user-enum.pl -M VRFY -U /tmp/users.txt -t 192.168.10.200 

13.在获取结果之后,我们可以对其进行记录。

在上一个示例中,我们收集了很多信息,现在我们来确定目标网络的IP地址范围。在本示例中,我们将利用相关工具来完成这个任务。

现在开始进行确定网络范围的具体操作,首先还是打开一个终端窗口。

1.打开一个终端窗口,并输入下述命令。

  dmitry -wnspb targethost.com -o /root/Desktop/dmitry-result 

2.完成之后,桌面上会有一个文件名为dmitry-result.txt的文本文件,里面记载了从目标收集的信息(见图3.2)。

图3.2

3.如果要使用ICMP协议的相关指令,查询目标主机的网络掩码,可以输入下述命令。

  netmask -s targethost.com 

4.可以使用scapy进行traceroute多路并发操作。输入下述命令来启动scapy。

  scapy 

5.启动scapy之后,可以输入下面的函数。

  ans,unans=sr(IP(dst=”www.targethost.com/30”, ttl=(1,6))/TCP()) 

6.要在表格中显示结果,可以运行下述函数。

  ans.make_table(lambda(s,r):(s.dst,s.ttl,r.src)) 

其输出如下所示。

 216.27.130.162  216.27.130.163  216.27.130.164  216.27.130.165 1 192.168.10.1  192.168.10.1   192.168.10.1   192.168.10.1 2 51.37.219.254  51.37.219.254   51.37.219.254   51.37.219.254 3 223.243.4.254  223.243.4.254   223.243.4.254   223.243.4.254 4 223.243.2.6   223.243.2.6    223.243.2.6    223.243.2.6 5 192.251.254.1  192.251.251.80   192.251.254.1  192.251.251.80 

7.要使用scapy执行TCP tracerout操作,可以输入下述函数。

  res,unans=traceroute([“www.google.com”,”www.backtrack-   linux.org”,”www.targethost.com”],dport=[80,443],maxttl=20,   retry=-2) 

8.要显示结果的图形化表示,可以输入下述函数(见图3.3)。

  res.graph() 

图3.3

9.要保存图形输出,只需输入下述函数。

  res.graph(target=”> /tmp/graph.svg”) 

最后面引号部分的是文件名,请自行设置。

10.我们也可以生成3D图像。这可通过下述函数实现。

   res.trace3D() 

11.运行下述函数,即可退出scapy。

   exit() 

12.在保存生成的文件之后,日后可进行文档管理。

在第1步,我们使用dmitry工具获取目标的信息,使用-wnspb选项对域名进行WHOIS查询、获取Netcraft.com的信息、搜索可能的子域名,并进行TCP端口扫描。结合-o选项把结果存储到文本文档,供后续操作使用。在第3步,我们执行了一次简单的ICMP网络掩码查询,使用选项-s输出了IP地址和网络掩码。接下来,我们使用scapy工具针对目标主机发起多路并发traceroute的操作,将结果以表格格式显示出来。在第7步,我们在端口80443上执行了一次TCP traceroute操作,将TTL的上限设置为20。完成这些操作之后,我们获得了一个结果,并以图形化方式来表示该结果,然后将其存储在一个临时目录中,我们还以3D图形方式来表示了该结果。最后,我们退出scapy。

在执行渗透测试之前,首先要确定目标网络范围中哪些设备在线。

广为人知的简单的方法是ping目标网络。当然,这会被对方主机发现,它们也可能拒绝响应ping命令,这不是我们希望的结果。

现在开始搜索连入网络的设备。首先打开一个终端窗口。

1.借助Nmap,我们可以确定一台主机是否开机,如下所示。

 nmap -sP 216.27.130.162

   Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-04-27
   23:30 CDT
   Nmap scan report for test-target.net (216.27.130.162)
   Host is up (0.00058s latency).
   Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

2.我们也可以使用Nping(Nmap软件包中有这个程序),它的输出更为详尽(见图3.4)。

 nping --echo-client“public”echo.nmap.org 

3.我们还可以向一台指定主机发送十六进制的数据。

 nping -tcp -p 445–data AF56A43D 216.27.130.162 

图3.4

在获知目标的网络的网段信息、了解哪些主机在线之后,我们就可以执行端口扫描过程,以获取打开的TCP和UDP端口,以及接入点。

为了完成该示例,必须开启Apache Web服务器。

现在开始端口扫描过程,首先打开一个终端窗口(见图3.5)。

图3.5

1.打开一个终端窗口,输入下述命令。

  nmap 192.168.56.102 

2.我们可以显式指定要扫描的端口范围(在本例中,我们仅扫描1000个端口)(见图3.6)。

  nmap -p 1-1000 192.168.56.102 

图3.6

3.也可以让Nmap扫描整个网络的TCP 22端口(见图3.7)。

  nmap -p 22 192.168.56.* 

图3.7

4.此外,我们可以将结果以指定格式输出。

  nmap -p 22 192.168.10.* -oG /tmp/nmap-targethost-tcp22.txt 

在这个示例中,我们使用Namp来扫描网络中的目标主机,以确定哪些端口是开放的。

Nmap一个名为Zenmap的GUI版本,通过在终端窗口输入命令zenmap可以启动。也可以单击Applications|BackTrack|Information Gathering|NetworkAnalysis|NetworkScanners|zenmap来启动(见图3.8)。

图3.8

信息收集过程进行到这一步时,我们应该从目标网络中获取了很多IP地址、在线设备以及开放的端口等信息。在下一步,我们需要了解在线主机所运行的操作系统,以知道我们将针对哪种操作系统进行渗透测试。

为了完成本示例的第2步,我们需要使用Wireshark程序捕获网络通信、生成相应文件。

现在,通过一个终端窗口进行操作系统识别过程。

1.在Nmap中,我们执行下述命令,以启用操作系统检测功能(见图3.9)(此处省略Wireshark的使用说明,读者需要使用Wireshark捕获这个过程的数据包,并且生成/tmp/targethost.pcap)。

  nmap -O 192.168.56.102 

图3.9

2.使用p0f来分析Wireshark捕获的文件。

  P0f -s /tmp/targethost.pcap -o p0f-result.log -l   p0f - passive os fingerprinting utility, version 2.0.8   ©M.Zalewski , W.Stearns   < wstearns@pobox.com>   p0f: listening (SYN) on‘targethost.pcap’, 230 sigs (16   generic), rule: ‘all’.    [+] End of input file. 

识别特定端口上运行哪些服务,这一步是渗透测试成败的关键。如果在操作系统识别过程中有不确定因素,则系统服务识别可将这些不确定因素逐一排除。

现在开始系统服务的识别过程,还是需要启动一个终端窗口。

1.打开一个终端窗口并输入下述命令。

 nmap -sV 192.168.10.200 Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-03-28 05:10 CDT Interesting ports on 192.168.10.200: Not shown: 1665 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp Microsoft ftpd 5.0 25/tcp open smtp Microsoft ESMTP 5.0.2195.6713 80/tcp open http Microsoft IIS webserver 5.0 119/tcp open nntp Microsoft NNTP Service 5.0.2195.6702 (posting ok) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 443/tcp open https? 445/tcp open microsoft-ds Microsoft Windows 2000 microsoft-ds 1025/tcp open mstask Microsoft mstask 1026/tcp open msrpc Microsoft Windows RPC 1027/tcp open msrpc Microsoft Windows RPC 1755/tcp open wms? 3372/tcp open msdtc? 6666/tcp open nsunicast Microsoft Windows Media Unicast Service (nsum.exe) MAC Address: 00:50:56:C6:00:01 (VMware) Service Info: Host: DC; OS: Windows Nmap finished: 1 IP address (1 host up) scanned in 63.311 seconds 

2.使用Amap命令,我们可以识别特定端口或一系列端口上运行的应用程序,如下所示。

 amap -bq 192.168.10.200 200-300

   amap v5.4 (www.thc.org/thc-amap) started at 2012-03-28
   06:05:30 - MAPPING mode
   Protocol on 127.0.0.1:212/tcp matches ssh - banner: SSH-2.0-
   OpenSSH_3.9p1\n
   Protocol on 127.0.0.1:212/tcp matches ssh-openssh - banner:
   SSH-2.0-OpenSSH_3.9p1\n
   amap v5.0 finished at 2005-07-14 23:02:11

在这个示例中,我们将使用Maltego为BrackTrack定制的特殊版本,它可以帮助我们在信息收集阶段,将所收集的信息以一种易于理解的格式表示出来。Maltego是一款开源的威胁评估工具,其设计宗旨是为了演示网络中单点故障(single point of failure)的复杂程度和严重程度。它能汇聚来自网络内部和网络外部的信息,并提供一个简洁的威胁图像。

在使用Maltego之前需要有一个账户。登录https://www.paterva.com/web6/community/可以注册一个账户。

现在开始启动Maltego。

1.单击Applications|BackTrack|Information Gathering| Web Application Analysis|Open Source Analysis|maltego,启动Maltego(见图3.10)。

图3.10

2.在启动向导中单击Next,输入登录详情(见图3.11)。

图3.11

3.单击Next,验证注册信息。验证通过后,单击Next按钮继续。

4.选择transform seed settings,然后单击Next(见图3.12)。

图3.12

5.在进入下一个窗口之前,向导会执行一系列操作。执行完毕后,选择Open a blank graph and let me play around,然后单击Finish(见图3.13)。

图3.13

6.从Palette组件中,将Domain实体拖放到新建的图像文件中(见图3.14)。

图3.14

7.单击刚才创建的Domain实体,在右侧的Property View中编辑Domain Name属性(见图3.15)。

图3.15

8.在设置完目标之后,就可以进行信息收集。首先右键单击刚才创建的Domain实体,选择Run Transform,显示可用的选项(见图3.16)。

图3.16

9.可以选择查找DNS名、执行WHOIS查询、获取邮件地址等,我们也可以选择运行所有的转换,如图3.17所示。

图3.17

10.在执行上述操作时,如果带有一个链接的子节点,可以获得更多的信息,直到我们满意为止。

在这个示例中,我们使用Maltego挖掘网络信息。Maltego是一个开源的信息收集、法证调查工具,它是由Paterva创建的。我们首先完成安装向导,然后将Domain实体拖动到图形文件中,最后通过不同的信息源完成信息收集操作。Maltego使用起来相当顺手,可以使用Maltego的自动化功能来快速收集目标的信息(比如邮件地址、查找服务器、执行WHOIS查询等)。


在收集信息时,Maltego的社区版本(Community Edition)只允许用户执行75次转换操作。在2012年年底,Maltego的完全版本售价650美元。

激活和启用转换是通过Manage功能区选项卡下的Transform Manager窗口来实现的(见图3.18)。

图3.18

要想使用多个转换,必须首先接受一个免责声明。

通过前面示例中获得的信息,接下来就可以使用这些信息来绘制相关的网络拓扑。在本章最后这个示例中,我们将看到如何使用Maltgo CaseFile来进行可视化的编译,以及组织整理这些信息。

在CaseFile开发人员的官网网站上声明到,它与Maltego相似,虽然没有转换功能,但是却多了更多的特性。在下面的“操作步骤”一节将演示这些特性。

现在启动CaseFile。

1.单击Applications|BackTrack|Reporting Tools| Evidence Management|casefile,启动CaseFile。

2.要创建一个新的图形,只需要在CaseFile的应用窗口中单击New(见图3.19)。

图3.19

3.与Maltego的操作相似,首先从Palette组件中拖曳每一个实体到图形文档。我们先拖动Domain实体,然后更改Domain Name的属性(见图3.20)。

4.要添加注释,只需将鼠标指针悬停到实体上方,然后双击注释图标(见图3.21)。

图3.20

图3.21

5.然后拖动另一个实体,即可输入目标的DNS信息(见图3.22)。

图3.22

6.要链接实体,只需要在两个实体之间拖画一条线即可(见图3.23)。

图3.23

7.根据需要自定义链接的属性(见图3.24)。

8.重复步骤5、6、7,添加目标网络相关的更多信息到图形中(见图3.25)。

图3.24

图3.25

9.最后,保存信息图形。之后,我们可以根据需要打开和编辑该图形文档。比如,我们掌握了目标网络的更多信息时,就需要编辑该文档。

在这个示例中,我们演示了Maltego CaseFile绘制网络结构的方法。CaseFile是一个可视化的情报管理程序,我们可以用它来记录数百种类型的信息,整理它们之间的关系和关联。它主要用于离线的情报整理,所以需要人工输入相关信息、关系和关联。在这个示例中,我们首先启动了CaseFire,然后创建了一个新的图形。接下来,我们使用了收集到的或者已知的目标网络信息,然后将组件添加到图形中,并展示其设置。最后,我们将所整理出的图像保存为文件。

为了防止图形文档被他人偷窥,我们将可对其加密。要加密图形,只需在保存时,选中Encrypt(AES-128)复选框,然后输入密码即可。


相关图书

CTF快速上手:PicoCTF真题解析(Web篇)
CTF快速上手:PicoCTF真题解析(Web篇)
数字银行安全体系构建
数字银行安全体系构建
软件开发安全之道概念、设计与实施
软件开发安全之道概念、设计与实施
企业信息安全体系建设之道
企业信息安全体系建设之道
内网渗透技术
内网渗透技术
深入浅出密码学
深入浅出密码学

相关文章

相关课程