Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016

Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016
0.1 本系列教程说明
本系列教程,采用的大纲母本为《Understanding Network Hacks Attack and Defense with Python》一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题而作。由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人偏好。教程同时提供图文和视频教程两种方式,供不同喜好的同学选择。由于教程仍在创作过程中,在整套教程完结前,感兴趣的同学请关注我的微信订阅号(xuanhun521,下方二维码),我会第一时间在订阅号推送图文教程和视频教程。问题讨论请加qq群:Hacking (1群):303242737 Hacking (2群):147098303。

图1 xuanhun521 微信订阅号
0.2 前言
关于虚拟机安装Kali Linux已经是老生常谈了,我之前的博文(Kali Linux渗透测试实战 1.2 环境安装及初始化)和视频教程(Kali Linux web渗透测试--初级教程1)都详细的介绍过。相对之前的文章和教程,本次采用的系统是最新的Kali Linux 2016.1,在安装上没什么区别,配置上需要注意的是采用新的更新源。即便如此,为照顾没有接触过Kali Linux的同学,本篇文章还是会尽可能详尽的描述每一个步骤和细节。
至于为什么要使用Kali Linux来作为开发环境,简单的讲,Kali Linux为我们提供了Python黑帽编程所需要的所有测试工具,可以更加方便的搭建目标环境。
当然你可以选择你喜欢的系统,windows或者Mac OS,Ubuntu都可以,毕竟使用Kali Linux在更新源方面有一点点障碍,但是为了学习安全,客服这点障碍还是值得的。
1.1 映像文件下载
下载地址:https://www.kali.org/downloads/。

图2 Kali Linux 镜像列表
根据自己的环境选择对应的操作系统镜像,如果是64位系统请尽量下载64位文件。
1.2 系统安装
镜像下载成功之后,就该开始我们漫长的安装过程了。
首先打开VMWare,新建虚拟机。

图3 新建虚拟机
选择Custom,单击下一步,如图4。

图4
选择最新软件版本,下一步,如图5。

图5
选择从ISO文件安装系统,单击浏览安装,从文件选择框选择你的映像文件,如图6。

图6 选择映像文件
单击“下一步”。操作系统类型选择“Linux”和“Debian7-64bit”(32位系统选择Debian7)。

图7 选择操作系统类型
单击“下一步”。填写虚拟机名称,打开文件浏览对话框,选择文件存储位置。

图8 配置虚拟机文件存储
单击“下一步”。配置CPU和内核。如图9。

图9 配置CPU
这里需要根据你电脑的实际配置去衡量虚拟机的配置,否则会影响电脑的性能,接下来的内存配置也一样。
单击“下一步”。配置内存。

图10 配置内存
单击“下一步”,配置网络类型。如果你的网络支持DHCP,可以选择桥接方式,否则选择NAT方式。

图11 选择网络类型
单击“下一步”,选择IO类型。

图12 选择IO类型
单击“下一步”,选择磁盘类型。

图13 选择磁盘类型
单击“下一步”,选择新建虚拟磁盘,如图14。

图14
单击“下一步”,设置磁盘大小和存储方式。这里一定要注意,磁盘大小一定要大于20G,否则会出现无法启动的问题。我在之前的博文里也提到过这个问题,不过还是被很多同学忽略。如图15。

图15 设置虚拟磁盘大小
单击“下一步”,设置虚拟磁盘文件存储位置。如图16。

图16 设置虚拟磁盘存储位置
单击“下一步”,如图17。

图17 确认信息
单击“完成”,如图18,启动虚拟机。

图 18
选择 Graphical install,如图19。

图19
回车。选择语言,如图19。

图20 选择语言
单击“Continue”。选择“是”,如图21。

图21
单击“继续”。选择国家和地区,如图22。

图22
单击“继续”。配置键盘类型,如图23。

图23
单击“继续”。安装程序开始加载组件,如图24。

图24
组件加载完成后开始配置主机名,按个人喜好随便填写就好了,如图25。

图25
单击继续。配置域名,随便填写就可以了,这些之后需要的时候都可以改,如图26.

图26 配置域名
单击“继续”。为root账号设置密码,如图27。

图27 设置root密码
单击继续。系统会设置时间,完毕之后,选择磁盘分区方法。这里根据个人能力来选择,可以默认整个磁盘,也可以自定义分区。如图28.

图28
单击继续,选择分区。这里我选择的是整个磁盘安装,所以只有一个选项,如图29。

图29
单击继续。选择默认项就可以了。如图30.

图30
单击“继续”,选择写入磁盘,如图31。

图31
单击“继续”,选择“是”,如图32。

图32
单击“继续”。开始安装系统,如图33。

图33
安装过程中,会出现是否选择网络镜像的选项,记得一定要选“否”,如图34。

图34
单击“继续”。选择是,将grub安装在MBR记录上。如图35。

图35
单击“继续”。选择唯一的设备。如图36.

图36
单击“继续”。MBR写完之后,出现安装过程完成的界面。如图37.

图37
单击“继续”。结束安装进程。系统重启,如图38.

图38
安装过程正式结束,我们输入账户root和安装过程中设置的密码进入系统,开始配置阶段。

图39

图40
1.3 系统配置
由于我们当前的需求是开发Python程序,所以系统配置相对渗透测试会简单很多,只需要配置更新源,更新系统,安装VMWare增强工具,配置共享目录。
1.3.1 更新系统
打开终端,输入如下命令:
vim /etc/apt/sources.list
清空sources.list文件内容,输入如下内容:
#kali官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
#中科大的源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
保存并退出,先如下命令:
apt-get update & apt-get upgrade
结果如图41所示。

图41
见到图42的画面中的“完成”两个字的时候,证明这一轮更新数据的获取完成了。

图42
这个时候画面会静止在这,不要等,直接回车即可,如图43.

图43
现在真正到了更新系统的核心阶段了,执行以下命令:
apt-get dist-upgrade
在确认界面输入“Y”,如图44。

图44 确认更新
接下来是下载阶段,直到下载完成,如图45。

图45 更新包下载完成
紧接着会出现更新声明的内容,一路回车到100%,然后输入“:q”,进入软件包更新环节,如图46,47所示。

图46

图47
部分软件包可能会有提醒,手动选择下就ok了。
由于网络原因,很可能会更新失败,这个时候通过VPN或者Socks代理进行FQ就很有必要了。如果你觉得在Kali里完成FQ有困难的话,请参考我之前的文章《kali linux 2.0 虚拟机通过宿主机代理实现科学上网-第二弹》,可以保证你能顺利更新。整个更新是一个漫长的过程,要做好充分的心理准备。
所有软件包更新成功后,输入如下命令,重启系统。
reboot

图48
1.3.2 安装vm-tools
重新进入系统后,我们会发现,现在系统桌面环境的分辨率无法调整,只有一个小窗口,虚拟机和外部系统无法共享剪贴板,无法设置共享目录。我们需要安装open-vm-tools来解决这些问题。
启动终端,输入如下命令:
apt-get install open-vm-tools-desktop fuse

图49
安装成功之后,重启系统,就能看到效果了。
1.4 小结
本文作为Python黑帽编程的第一节,好像做了很多与编程本身无关的事情,但是通过Kali系统的安装和更新,我们已经安装了Python以及常用的Python模块,一大批使用Python开发的安全工具。
下一节,我们在Kali上安装Vs Code,用VS Code构建Python开发环境。
1.5 篇文章对应视频教程获取方法
在微信订阅号中,查看文章历史,找到对应的本篇文章,文章结尾有获取视频教程的方法。
由于教程仍在创作过程中,在整套教程完结前,感兴趣的同学请关注我的微信订阅号(xuanhun521,下方二维码),我会第一时间在订阅号推送图文教程和视频教程。问题讨论请加qq群:Hacking (1群):303242737 Hacking (2群):147098303。

关注之后,回复请回复“Python”,获取视频教程和其他相关内容。
系列文章目录:
Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016的更多相关文章
- Python 黑帽编程大纲(变化中)
Python 黑帽编程大纲(预览版) 教程说明: 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Pytho ...
- PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获(下)
上一节(<4.1 SNIFFER(嗅探器)之数据捕获(上)>)中, 我们讲解了通过Raw Socket的方式来编写Sniffer的基本方法. 本节我们继续来编写Sniffer,只不过使用现 ...
- Python黑帽编程1.2 基于VS Code构建Python开发环境
Python黑帽编程1.2 基于VS Code构建Python开发环境 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析
Python黑帽编程1.5 使用Wireshark练习网络协议分析 1.5.0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...
- Python黑帽编程 2.0 第二章概述
Python黑帽编程 2.0 第二章概述 于 20世纪80年代末,Guido van Rossum发明了Python,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一 ...
- Python黑帽编程3.0 第三章 网络接口层攻击基础知识
3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止. 本节简单概述下OSI七层模型和TCP/IP ...
- Python黑帽编程 3.1 ARP欺骗
Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...
- Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)
Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上) 网络嗅探,是监听流经本机网卡数据包的一种技术,嗅探器就是利用这种技术进行数据捕获和分析的软件. 编写嗅探器,捕获数据是前置功能, ...
随机推荐
- 爬虫requests模块 1
让我们从一些简单的示例开始吧. 发送请求¶ 使用 Requests 发送网络请求非常简单. 一开始要导入 Requests 模块: >>> import requests 然后,尝试 ...
- python中list作为全局变量无需global声明的原因
发现一个问题. python中list变量作为全局变量时,在函数中可以直接修改. 而普通变量则需要先在函数中global声明,否则会报错. 例如: a = 1 def fun(): global a ...
- Flume(4)实用环境搭建:source(spooldir)+channel(file)+sink(hdfs)方式
一.概述: 在实际的生产环境中,一般都会遇到将web服务器比如tomcat.Apache等中产生的日志倒入到HDFS中供分析使用的需求.这里的配置方式就是实现上述需求. 二.配置文件: #agent1 ...
- Python-socket网络编程
一.计算机网络 多台独立的计算机用网络通信设备连接起来的网络.实现资源共享和数据传递.比如,我们之前的学过的知识可以将D盘的一个文件传到C盘,但如果你想从你的电脑传一个文件到我的电脑上目前是做不到的; ...
- react native 刷新机制----通知
在项目中,不知道大家有没有遇到这样的一个问题,比如说有两个页面A,B.A页面中有某个按钮点击后可以跳转到B页面,现在有一个需求就是,我在B页面中做了某些操作,然后点击回退按钮,回到A页面,A页面中的数 ...
- github push时,要求密码的问题
整几次才搞的有点明白: 1 clone 项目 用 SSH: 在github 上如下图 2 C:\Users\<用户名> 下如果有 "_netrc" 文件: 如果含有 如 ...
- ehcache注解全面解析---打酱油的日子
通过ehcache以编程方式使用缓存: 跟上面的方式相同,但是缓存通过ehcache去管理,当然比使用map有N多种好处,比如缓存太大了快达到上限之后,将哪一部分缓存清除出去.这种方式完全是通过代码的 ...
- SOAPUI使用教程-入门REST测试
首先,通过选择文件菜单中的“新建REST项目”选项创建从文件菜单中一个新的REST项目: 指定服务端点场下谷歌地图API网址: http://maps.googleapis.com/maps/api/ ...
- PHP注册与登录【3】 用户登录与退出
登录页面 login.html 负责收集用户填写的登录信息. <fieldset> <legend>用户登录</legend> <form name=&quo ...
- js/javascript format json(js/javascript 格式化json字符串)
// format json obj string function format_json(txt, compress) { var indentChar = ' '; if (/^\s*$/ ...