基于VMware的kali→Metasploitable虚拟机的 配置、部署与使用

摘要:

虚拟机是计算机大世界中的一片美好的小天地,不仅可以用来多开软件、测试病毒样本、配置纯净的独立编程环境,还可以双机驱动调试、在同一台计算机上模拟网络攻防等试验。因此,虚拟机的配置显得尤为重要。本文将以kali和Metasploitable为例,介绍如何在Windows上配置和部署VMware,并初步演示如何使用kali自带的黑客工具。

准备:

安装VMware

VMware(下面简称“VM”)是虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、Linux系统。
双击运行0x1中下载好的VM安装包,选择自己需要的功能,如果需要修改路径,点击“更改…”按钮即可(本人的习惯是将VMware产品安装在“D:\Program Files\VMware”下,将虚拟机保存在“D:\Program Files\VMware\VMware Workstation”中),然后点击“下一步”,若提示输入许可证,我们只需输入“ZF3R0-FHED2-M80TY-8QYGC-NPKYF”即可(我才不会告诉你许可证是哪偷来的)。当然,如果没有许可证也可以在安装完成后,上网搜索一个对应版本的许可证完成认证。
在这里插入图片描述
在这里插入图片描述

创建和使用虚拟机

VMware支持新建虚拟机、导入虚拟机、打开虚拟机等功能。
首先来谈谈如何创建虚拟机。
新建虚拟机有多种方法,这里给出三种:
一、打开VMware主界面(如图五),点击“菜单栏”的“文件(F)”,选择“新建虚拟机(N)…”;
二、直接使用快捷组合键“Ctrl+N”;
三、点击“主页”选项卡中的“新建虚拟机”。
在弹出的界面(新建虚拟机向导)中,默认选择典型,点击“下一步”;
接下来如图七到图九所示,使用安装程序光盘映像文件,点击“浏览”,选择已下载好的kali的ios镜像,点击“下一步”;
选择客户机操作系统为linux,由于没有提供kali的选择支,我们默认使用Debian 7.x 64位(或以上)(32位系统请使用相应的32位版本)。
强迫症(或强迫癌)患者可以将虚拟机名称修改为“kali”或其它有意义的名称,并同步修改虚拟机的目录路径(较新版本的VMware好像会自动同步修改)。
接下来,一直点击“下一步”,使用默认设置即可,直到“完成”。
(具体在CSDN随便搜安装一大堆)
现在我们来开启虚拟机,选中Debian 7.x 64位虚拟机选项卡,点击“开启虚拟机”或点击绿色的“播放”按钮,开机后,选择“Install”进行安装,接着选择语言、区域、键盘布局,键入主机名(自定),配置网络(自己随便输入域名就可以辣)。
在这里插入图片描述
运行虚拟机
在这里插入图片描述

密码的设置,密码十分重要,大家一定要记得自己设置的用户名和密码(以及待会会提及的root用户密码),否则会带来极大的不便。如果没有重要资料的话或只是安装虚拟机来“玩玩”,弱密码或许能成为您的root用户密码。
最后是硬盘分区,默认选择“向导—使用整个磁盘”,点击“继续”,一切使用默认值,最后询问是否结束分区设定并将修改写入磁盘时,用“Tab”键移动到“<是>”上,按回车选择“<是>”即可。至此,硬盘分区完成,后续不使用网络镜像、将GRUB启动引导器安装在MBR上、自动选择默认硬件设备、等待重启。
一句话,遇到不会时,选择默认就好!!下一步下一步 永远不变的真理

部署kali

首先不严谨地声明一下,运行VMware的计算机称为实体机,被VMware运行的计算机称为客户机,即虚拟机。
在配置完成后,我们进入kali系统,在实体机网络接通后,检查虚拟机是否有网(默认使用的桥接模式一般是可以正常使用网络的)。另外,如果系统提示更新,请点击更新并等待更新完成,然后重启客户机。
现在,我们在虚拟机打开终端(一般会出现在任务栏上),输入“su root”回车,然后输入root用户密码(记得回车),挂载为root用户。输入密码的过程中,密码不会显示出来,看似没有输入成功,实际上应该已经是在输入了。如果遇到提示鉴定故障,运行“sudo passwd root”为root用户指派一个新的密码。随后,输入“apt-get update”并回车,可能要等待,命令运行完成后(控制台显示$或者#),输入“apt-get upgrade”并回车,又是一段漫长的等待(大概三十分钟)……操作完成后,输入“sync”回车清理下内存,然后输入“echo 3 > /proc/sys/vm/drop_caches”并回车以清理缓存,再然后输入“reboot”并回车
在这里插入图片描述

  • 另外,在更新软件包过程中,如果询问是否执行某操作而自己不能决定是否需要执行时,可以直接按下回车使用默认值,默认值一般会以大写显示,如[Y/n]表示默认Y。
  • 在apt-get执行操作的过程中,如果出现无法解析主机的字样,或是发现虚拟机内网络连接故障而实体机可以正常上网的现象,请使用NAT模式,并在实体机中运行services.msc(直接运行会自动提权至管理员权限),然后将VM开头的五个服务设置启动类型为自动并启动。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 若网络依旧有问题
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

部署XShell和Xftp

接下来,为了更方便地在实体机和虚拟机之间传送文件,我们采用XShell和Xftp来进行连接(SSH)和文件传输。当然,如果喜欢用其它方式也可以,命名管道也是一种不错的选择(多用于Visual Studio编译内核驱动后使用windbg的双机调试)。
开启kali虚拟机(如果没开启),启动终端,输入“su root”(注意“su”和“root”之间有空格)回车并输入root用户密码(记得回车)。输入密码的过程中,密码不会显示出来,看似没有输入成功,实际上应该已经是在输入了。如果提示鉴定故障,请运行“sudo passwd root”为root用户指派一个新的密码。
挂载root用户后,在终端运行“cd /etc”(注意“cd”和“/etc”之间有空格)命令并运行“ls”命令来查看/etc目录下的文件和文件夹,如果找到ssh文件夹,请“cd ssh”,否则如果找到“init.d”文件夹,请“cd init.d”,否则请运行“apt-get install ssh”和“apt-get install openssh-server”,重复此操作。
进入ssh或init.d文件夹后,运行“vim sshd_config”(注意是“sshd_config”而非“sshd-config”,大多数电脑上的“-”和“_”是同一个按键,只是后者需要配合“Shift”键打出),按下“i”键进入插入模式(编辑模式)如图四十二所示。将图中两行的注释符号“#”去掉,并将PermitRootLogin设定为yes以允许root用户直接登入。
在这里插入图片描述

关于vim的一些常用指令如下表所示:
在这里插入图片描述
在虚拟机终端输入“ip addr”并回车,在某个位置找到ip地址,拿个小本本记下来。随后,运行“service ssh start”或“service ssh restart”启动ssh服务。
下面,我们在实体机安装XShell和Xftp,直接运行两个安装包即可,有更新也可以不必更新(因为愚蠢的第一作者认为更新程序有bug而且他本人不知道怎么更新),安装成功后,打开XShell,在菜单栏选择“文件(F)”,然后选择“新建(N)…”。填入主机名和ip(你用小本本记录的那个),端口号默认为22,用户名为root,密码即为root用户密码。点击“连接”,此时可以运行一些命令如“ps”以确认连接成功。
在XShell的菜单栏找到“窗口(W)”,在子菜单中单击“传输新建文件(F)”(其实直接快捷组合键“Ctrl+Alt+F”即可),此时会打开Xftp,并且会自动连接上虚拟机。利用Xftp,我们可以在实体机和虚拟机之间轻而易举地相互传输文件。
在这里插入图片描述
在这里插入图片描述

部署Metasploitable

在实体机上,从服务器地址下载Metasploitable并使用解压软件解压,建议解压位置与kali虚拟机所在目录相同解压完成后,扫描虚拟机并键入解压后的路径,导入虚拟机。
随后,开启虚拟机,选择“我已复制该虚拟机”并继续。
在这里插入图片描述
Metasploitable默认的登录账号是“msfadmin”,密码也是“msfadmin”,登录后,可以像部署kali虚拟机那样进行XShell连接或更新软件包。
在这里插入图片描述
部署完ssh/sshd环境后的Metasploitable界面

使用kali的msfconsole在Metasploitable上get shell

首先,什么是get shell呢?其实,通俗而言,get shell就是获得一个可以执行远程代码的shell,这个shell长得和XShell很像,两者是否有联系呢?是的,XShell其实也属于远程执行代码,只是它是通过ssh协议,是通过验证password或验证公私钥完成远程连接的。
在开始之前,先说明一下,A攻击B,A被称为黑客,B被称为(目标)靶机。

下面开始快乐的黑客攻击之旅。

首先,在Metasploitable运行“ip addr”获取到ip地址192.168.134.128, 并在kali虚拟机运行“msfconsole”,等待一段时间。启动后,运行“nmap -sV 192.168.134.128”扫描靶机所有打开的端口。

  • 获取靶机ip

在这里插入图片描述

  • 运行msfconsole界面
    在这里插入图片描述
  • 扫描靶机端口
    在这里插入图片描述
    此时我们发现靶机共打开了23个端口(1000-997 = 23),其中21端口打开了ftp服务,我们以此为目标进行入侵实验。
    直接“search vsftpd”,发现了一个后门,于是“use 0”,并“show payloads”。找到一个载荷,直接“set payload 0”利用该载荷。随后,使用“show options”查看可执行的所有操作,根据返回信息,我们执行“set rhost 192.168.134.128”,最后运行“run”成功get shell。
  • 利用21端口
    List item
  • 载荷
    在这里插入图片描述
  • Get Shell
    在这里插入图片描述
    这里给一个小小的操作技巧,按下“↑”“↓”键可以切换输入的前后命令,按下“Home”键可以将光标定位到最前面,“End”键定位到最后面,“Delete”键向后删除字符,“Backspace”键(其实就是退格键)可以向前删除字符。
    在拿到一个shell后,我们就可以在远程主机上“为所欲为”“为非作歹”了(当然是在法律范围内或专用的攻防演练场所里),不妨执行“ps”命令查看远程主机正在运行的进程。
    甚至,如果获取到了root用户密码或者处于root用户组的当前用户密码,我们可以在获得根目录权限后,运行“reboot”让远程主机立即重启,运行“rm -rf /”尝试删除所有文件,或“shutdown 1”执行1分钟后关机。

最后说几句

本文开源,所有人皆可免费食用和白嫖,如有疑问[email protected]
请尊重他人劳动成果,不得倒卖!本文是捐赠文献,只能免费使用,任何渠道售卖本文均为非法贩卖,请勿上当受骗!!
如发现倒卖现象,请及时联系我们,欢迎举报!!!
感谢拜读检阅,感谢您为净化网络空间做出一份贡献!

猜你喜欢

转载自blog.csdn.net/weixin_51485807/article/details/115208628