书名:BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃
ISBN:978-7-115-34867-8
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
• 著 [美]Willie Pritchett [墨]David De Smet
译 Archer
责任编辑 傅道坤
• 人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@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 Magazine和Software 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:
unetbootin.sourceforge.net/unetbootin-windows-latest.exe
);http://www.backtrack-linux.org/downloads/
下载BackTrack 5。现在可以开始安装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。
所需要的先决条件如下:
https://www.virtualbox.org/wiki/Downloads
);http://www.backtrack-linux.org/downloads/
下载。现在可以安装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,常用的选项如下所示。
--threads [number]:
设置同时运行的进程数量。-r
:启用递归查询。-d
:设置WHOIS查询操作之间的时间延迟(单位为秒)。-o
:指定输出位置。-w
:启用WHOIS查询。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步,我们在端口80
和443
上执行了一次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)复选框,然后输入密码即可。