建立渗透测试实验环境

建立用来实验渗透测试技术的实验环境并测试。

用虚拟机建立Host-only靶机内网

警告:这是一篇备忘性质的渣指南,不是详尽地教授如何做1+1的用户友好文档。请勿抱太高期望。

大体上原因是忽然觉得metasploit很好玩,可是没有用来实验的机器。在互联网上四处破坏的行为又不可取,我又不想花费什么(也买不起……)买一大堆机器在家中连内网玩(好吧也放不下这么多机器).由于现在虚拟技术很成熟,因此想用虚拟机搭建个渗透测试环境(好吧,说这么高端洋气其实就是个playground)。

对所有新手来说,一个简单的渗透目标对入门并保持兴趣非常重要,幸运的是,总有人已经做过这些事,你可以搜寻到rapid7团队配置好的充满漏洞的metasploitable系列目标机器镜像,还有UltimateLamp。但总有些事在法律上有些人不能做,你需要自己付费购买一个合法的License来安装Windows XP。如果你在下载和搜集资料上遇到问题,可以参见本文的最后部分,如果还有问题,别忘了google是个好东西。

另外,大致哪国法律都不会容忍人在未经许可的情况下对他人正在运营的机器和网络环境实行破坏性的渗透测试,所以,别犯傻。想试试具有破坏性的技术,自己搭建个内网玩。

配置要求

有些地方写的要求很高,其实用不着太高,但起码得有个支持虚拟技术的cpu。我的是i3,用着就不错.

内存要求至少两G,你得经得起同时运行两三个虚拟机吧。如果宿主机内存太小,即使一个虚拟机只分配256M内存两三个虚拟机最后也能把内存撑到全满,拖得硬盘灯狂亮,图形界面狂卡。好吧,2G其实就是这种情况。但凑合能用,你无需虚拟机运行良好,只需要它在安全上脆弱不堪。

还有就是硬盘空间,你要放置虚拟机镜像文件,可能要放置很多资料和论文,可能会准备一大套工具集并在日后不断扩展。所以,想想硬盘还有多大,当然可以不够用了在想办法,这也不是什么必须的。

综上,感谢万恶的虚拟化技术,即使一个i3 cpu 2G渣内存 30G硬盘空间你也足够建立一个两三个虚拟机器的渗透测试实验室了,而不用花费不菲准备一大堆机器和网线。

metasploitable

metasploitable系列第一个镜像大概10年发布,在我的vbox下毫无问题。他的镜像是vmware制成,但vbox可以直接使用vmware的镜像,不要去转换了!

很幸运这个别人帮你配置好了,满是漏洞,能让你玩到无聊。不过却很方便熟悉下metasploit的使用过程。

metasploitable 2 大概2012年释出,悲剧的是,我的vbox无法启动,可是又懒得在渣gentoo上装vmware。无所谓了。

Windows XP + mssql + av + office + …

metasploit中的有些模块,不,是很多模块是有关windows的,甚至是win上的特定软件的。如果你想试试,最好在你的实验室中安装一个xp的虚拟机。另外,个人觉得meterpreter在win下表现得比linux下厉害。

获取正版XP,下载安装mssql,并按照邪恶的魔法禁书《metasploit:渗透测试魔法师指南》P269配置。

当然,有些东西如果想试试还得有其它软件。请自行search并use然后info查看那些exploit的信息。

网络配置

渗透测试实验室的核心在于几个虚拟机的网络配置。

首先,要保证这些漏洞百出的靶机们与互联网隔绝,省得一不小心成功把互联网上什么政府网站搞挂,然后警察叔叔就找上门了。

vbox可以建立host-only的内网很好的实现宿主机和虚拟机共享的局域网。

首先选中File-Preference-Network添加一个host-only network。默认是vboxnet0,并且dhcp是自动开启的,如果不是,请打开它(当然你也可以对每台机器设置静态地址,我觉得这挺费事,通常我只对宿主机设置静态地址)。

然后在我的渣gentoo中是这样,其它linux发行版大致差不多或类似,unix大致类似,windows自己想办法我不知道:

sudo ifconfig vboxnet0 inet 192.168.56.102 netmask 255.255.255.0 up

注意,以上地址自己看怎么写,这都可以在设置dhcp同样的地方设置。

配置metasploit

然后就是在宿主机上设置metasploit,准备好你的枪。建议直接从github上git clone。

metasploit项目在github上的wiki有一个很完整的参考Setting Up a Metasploit Development Environment

我就说说在gentoo上的问题和为什么不选择gentoo官方源里的稳定版本。

首先,我好像什么依赖问题也没碰到。自己对照ubuntu的看看少什么,你需要libpcap来处理网络流量、一个完整的编译工具链,nasm,curl,wget,还有postgresql作为数据库。总之,我什么问题也没碰到。

然后跟着把rvm装上,完全照着wiki来就是了。

将metasploit项目git clone到本地(别给我说不知道怎么做),进入到其目录。

./msfconsole

如果提示:

[*] Metasploit requires the Bundler gem to be installed
$ gem install bundler

照它说得就是。

还有最后一个问题,对metasploit,有一个数据库来跟踪渗透测试过程非常有用。你需要自己配置数据库,默认数据库是postgre,当然你也可以选其它的。

参考这里,虽然是fedora的,基本原理对所有linux发行版都适用:

Metasploit Postgres Setup

很多不想看拉倒。关键在于创建数据库和用户,然后能在msfconsole里连上就行。

为了方便,你可能想让postgre开机启动。每个发行版可能都不一样吧,gentoo上这样:

sudo rc-update set postgresql-9.2 default

至此,你的靶子和枪都准备好了。

使用metasploit

metasploit提供的工具可以分为几类: - auxiliary - exploit - tools 其它如msfencode,msfpayload

不在本文讨论范围内,参考这里Metasploit Unleashed

Social Engineer Toolkits

部分基于msf的项目,同样是git clone过来,手动配置下运行就是。依赖很简单,都是python的依赖。

可以来玩玩传说中的社交工程,exploit人类比exploit机器省心省力多了= =

更多参见Social Engineering Framework

墙内tips

  • git clone很慢还不能断点,可以先git init然后fetch,最后checkout =FETCHHEAD=。。。
  • 找不到的东西就试试海盗湾(自寻)
  • 微软的东西可以从这里找:MSDN, I tell you

参考资料

好吧,扯淡扯完了,Happy hacking