从零学习BlackHatPython之——VMware Workstation安装Kali Linux并进行配置

使用VMware WorkStation 安装 Kali Linux 并进行初始化配置

环境准备及参考书目:

  • Windows 10 专业版 Build15063
  • VMware WorkStation 12 Pro 12.5.6
  • kali-linux-2017.2-amd64.iso
  • 《Black Hat Python》(Justin Seitz 2015.8 1stEdition)
  • 《Web Penetration Testing with Kali Linux》(Joseph Muniz, Aamir Lakhani 2014.8 1stEdition)
  • 《Mastering Kali Linux for Advanced Penetration Testing》(Robert W.Beggs 2016.5 1stEdition)
  • Kali Linux官方文档

参考用时:2h


前言

Kali Linux 概述

  • Kali Linux 是由 Offensive Security 团队设计的一款渗透测试操作系统
  • 它继承自BackTrack Linux 发行版
  • 它基于Debian GNU/Linux 操作系统
  • 其文件系统遵循FHS标准,不需要浏览/渗透测试树导航,可以从文件系统的任意位置调用一个工具
  • 兼容Debian的工具一天至少和Debian资源库同步四次

算上最后成功安装Kali Linux的这次,我一共安装了三次Kali,其中失败一次,成功两次,总用时大约六小时。第一次综合参考了前面列出的三本书里的讲解成功安装了Kali Linux 2017.1 并且使用了大约有十天左右,在Kali Linux 2017.2 出来后使用自带“软件”进行了系统内更新,然而在更新过程中出现了阻塞更新停滞不前,重启后系统使用没有发现什么异常,迫使我卸载系统并且重装的原因在于我参照《Python黑帽子》这本书编写的仿netcat工具调试过程中报出我到目前仍然无法解决的错误,在被困扰两天之后我决定重装Kali Linux。
于是我在昨天晚上从官网上下载了Kali Linux 2017.2为今天的第二次安装做准备。第二次安装过程中我按照第一次成功验证过的步骤进行选择,一步步的往下走,中间在“Configure network mirrors”的时候出现卡壳,因为连续的重试以及更换镜像都无效,最终只能选择忽略。忽略不影响其他部分的安装,仍然是可以完成安装进入系统的。这一次失败的原因在于我进入系统变更语言为中文重启之后使用root用户的密码多次尝试无法进入系统,在recovery mode没有找到重置的代码段(可能是我没操心),故重装。
在这次的安装中虽然最终失败了但是通过这次的安装我认识到这一版本的KaliLinux的集中式软件仓库(源)以我现在用的网络是无法直接进行连接(需要Http代理),这促使我在第三次安装进入系统后做的第一件事就是更换国内源。
具体的安装步骤我不在这里细讲,需要的推荐直接看官网的文档,有很详细的图示和必要的文字叙述。这里也有文档的中文版。

  • 如果是往虚拟机里安装的Kali Linux,Offensive-security提供了专门的image,其中的vm版本内置好了VMware tools,同时有一个root用户,默认密码是toor。有的书上推荐了安装这个版本,但是我还是用的原生的kali-linux-2017.2-amd64。
  • 如果要测试大型网络及将使用多线程工具,建议把内存增加到至少3GB。
  • 我使用了全盘加密(use entire disk and set up encrypted LVM(Logical Volume Manager,逻辑卷管理器))
  • 如果你和我一样安装了2017.2 x64版本的Kali Linux,并且同样在确认网络软件库的时候失败,请选择忽略,完成安装并且进入系统后进行更换源。

更换国内源

Kali 必须定时打补丁,确保基本的操作系统和应用是最新的,同时更新安全补丁。默认情况下 Kali 只使用官方的Kali 资源库,我使用新版本默认的Kali资源库进行apt-get update 及apt-get upgrade 操作时都会出现网络连接超时的情况,故选择更换国内源。默认程序包资源库在目录/etc/apt/sources.list中;
这个过程我参考了这篇文章。

  1. 切换root用户su
  2. 使用vim打开存储资源库的文件vi /etc/apt/sources.list
  3. 从下面的更新源中选择一个复制进文件并保存

中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
浙大
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
东软大学
deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
重庆大学
deb http://http.kali.org/kali kali-rolling main non-free contrib >deb-src http://http.kali.org/kali kali-rolling main non-free contrib
作者:极客圈
链接:http://www.jianshu.com/p/7ac106afb8fd
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

4.更新

apt-get clean
apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

其中 -y 的效果是在update,upgrade过程中出现选择[Y/n]的时候默认选择Y,即实现了自动化执行,可以创建一个脚本update.sh包含上述命令行。至此更新国内源完成。


添加普通用户

可以简单地在终端使用adduser命令,如:

root@kali:~#adduser noroot

接下来系统执行添加用户和组,新建用户目录和拷贝文件,然后会让你输入密码并再次输入进行确认。最后在确认一些不太重要的用户信息(如姓名,房间号,工作电话,宅电, etc.)之后输入Y即完成普通用户的创建。

  • 这里需要注意,在使用图形化界面创建用户的时候会出现失败可能是因为用户名需要符合一般的命名规范,如果是纯数字的就不行,会提示有一个force-name什么的文件里面列举了这些规则。
  • 同时密码的设置也需要注意,要有大写,小写,加数字,过于简单或者含有你在前面填过的用户名则不予通过。

安装VMwareTools(OVT)并设置共享文件夹

Linux虚拟机在最初安装上VMwareWorkStation的时候屏幕显示会让人感觉特别别扭,没有办法按照窗口的大小进行适当的调整,全屏也无法很好的实现,安装VMwareTools可以很好的解决这个问题。同时安装VMwareTools也是为接下来创建共享文件夹做准备。
这里的操作具体的内容可以查看官网链接
简单来说就是在2015年9月之后VMware官方建议使用OVT(open-vm-tools)来替代VMware Tools,但是这个新的OVT目前还不支持共享文件夹,所以在建立共享文件夹的过程中会比较麻烦。
我在上一个版本的Kali 2017.1中按老办法安装了VMwareTools并且能够正常使用,可以建立共享文件夹,这一版本没有测试。下面我们来看使用OVT的操作方法。
首先安装OVT并重启

apt -y install open-vm-tools-desktop fuse
reboot

接下来在命令行中键入以下代码

cat < /usr/local/sbin/mount-shared-folders
#!/bin/bash
vmware-hgfsclient | while read folder; do
  vmwpath="/mnt/hgfs/\${folder}"
  echo "[i] Mounting \${folder}   (\${vmwpath})"
  mkdir -p "\${vmwpath}"
  umount -f "\${vmwpath}" 2>/dev/null
  vmhgfs-fuse -o allow_other -o auto_unmount ".host:/\${folder}" "\${vmwpath}"
done
sleep 2s
EOF
chmod +x /usr/local/sbin/mount-shared-folders

最后一句是给mount-shared-folders这个文件的执行加上了权限,不然会提示权限不够。
执行结果是会输出下面这句(…….的内容忘记了)

[i] Mounting ……

然后在VMware的操作界面中右键单击你刚刚操作的这台虚拟机—>设置—>选项—>共享文件夹—>总是启用—>添加,选择你的主机和这台虚拟机需要共享的文件夹路径并添加进去即可。

进入你的虚拟机,在/mnt/hgfs路径下就可以找到你选择的共享文件夹。


安装搜狗拼音输入法

  1. 在搜狗输入法官网下载对应版本的.deb文件(上面写的是适用Ubuntu,同样适用于Kali,已测试)
  2. 安装依赖包
    apt-get install fcitx
    apt-get install fcitx-libs-qt
  3. 转到下载目录下安装搜狗输入法

    dpkj -i filename.deb

    (filename替换为为下载好的安装文件名)
    如果还存在未知软件依赖问题,运行:

    apt-get -f install
    即可完成安装
    
  4. 添加输入法
    在应用程序中打开fcitx,此应用程序开启时出现在屏幕左下角,点击键盘图标进入设置界面把搜狗输入法选择添加进去。

完成上述步骤后重启电脑就可以使用搜狗输入法了。


SSH的使用

我这里使用SSH目前主要涉及到两方面——Github仓库代码管理和Windows主机远程操控KaliLinux。
Kali已经使用默认的SSH秘钥进行了预配置,你可以使用这个现成的秘钥,或者像我下面这样使用自己的秘钥。

  1. 将默认的SSH秘钥移到备份文件夹

    cd /etc/ssh/
    mkdir keys_default
    mv ssh_host_ * keys_default
  2. 生成新的SSH秘钥集并验证其md5sum与原始秘钥进行比较

        dkpg-reconfigure openssh-server
        md5sum ssh_host_*
        cd keys_default/
        md5sum *
  3. 修改/etc/init.d/sshd执行文件使远程通过ssh可以实现root权限和口令

    su
    vi /etc/ssh/sshd_config

    调整下面两个参数的值

    PermitRootLogin yes
    PasswordAuthentication yes
    :wq保存并退出

  4. 启动SSH服务

    /etc/init.d/ssh start
  5. 验证SSH服务状态

    /etc/init.d/ssh status
  6. Windows远程连接
    我使用的客户端是Putty,打开软件将Kali的ip地址(Kali终端输入ipconfig回车查看),端口号(默认22号端口)输入,点击open,即出现窗口填写用户名和密码,成功连接。

  7. 添加Github SSH密钥对
    具体步骤可以在Github的文档查看
    通过上面的步骤我们拥有了自己的SSH密钥,还需要把这个密钥添加到ssh-agent 中去

    eval "$(ssh-agent -s)" # 启动ssh-agent
    ssh-add ~/.ssh/id_rsa #添加ssh秘钥到ssh-agent

    • 需要注意的是我们生成的ssh private key 名称和Github示例中的不一样,分别是ssh_host_rsa_key 和ssh_host_rsa_key.pub。需要将后者的内容拷贝到Github账户上才能完成最后一步(一个空格都不能多)。
  8. 测试Github SSH

     ssh -T git@github.com

    有可能会出现下面的提示

The authenticity of host ‘github.com (192.30.252.1)’ can’t be >established.RSA key fingerprint is >16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

这个应该是正常的,输入yes你就可以看到诸如下面这样的告诉你你的SSH已经成功添加的信号。

“Hi LicheeGit!You’ve successfully authenticated, but GitHub does not
provide shell access.”


写在最后

这些都只是一个开始,虽然这两天我在学习上碰到了很多问题,并且在前人那里找不到好的解决方案,但正是这样促使我更加深入的了解问题,去深究,然后把我觉得有用的汇总在这一篇之中,让之后拥有同样问题的人可以花很少的时间就能解决他们的问题,也让自己通过总结回顾加深对之前不会的这些知识的记忆。
感谢。

你可能感兴趣的:(学习总结)