信息安全是一个有意思的方向,也是自己的爱好,从零开始,想在工作之余把这个爱好培养为自己的技术能力,而 web 安全相对来说容易入门些,于是选择 web 渗透测试作为学习的起点,并选择同样是容易入门的 Python 作为编程工具,潜心学习,持续学习,做一个 Pythonic 的信安工匠。

借 “Python之禅读书群” 发起的读书活动,选了《Python 黑帽子 黑客与渗透测试编程之道》开始学习和记录,看看自己能怎样刻意训练。

由于自己对 Linux,Python,以及渗透测试都是初学者,工作之余也没有太多的整块时间来学习,所以会把学习过程中的知识点和操作尽量记录详细些,主要是做好记录,方便回顾和复盘。

系统准备

在 Windows 主操作系统上运行 Kali 虚拟机环境,虚拟化工具是 VMware Player,Kali 镜像为 kali-linux-2018.1-vm-amd64.ova。

Python 运行环境的准备

由于书中的代码都是基于 Python2 , 而 Python3 已结成为主流,所以我打算准备两套独立的运行环境,venv-p2(Python2) 和 venv-p3(Python3),在 venv-p2 中学习理解和测试书中的代码,在 venv-p3 中把原书代码转换为 Python3 ,代码要全部码一遍,这样能更好的掌握 Python 基础。

关于 Python 运行环境的准备,包括:

  • 创建 Black-Hat-Python 目录
  • 在该目录下创建 venv-p2 和 venv-p3
  • 原书代码目录 ori,自己的代码目录 codes。

目录结构如下:

root@kali:~/Black-Hat-Python# tree -d -L 2
.
├── codes
├── ori
├── venv-p2
│   ├── bin
│   ├── include
│   ├── lib
│   └── local
└── venv-p3├── bin├── include└── lib

命令如下:

root@kali:~# mkdir Black-Hat-Python
root@kali:~# cd Black-Hat-Python/
root@kali:~/Black-Hat-Python# mkdir ori
root@kali:~/Black-Hat-Python# mkdir codesroot@kali:~/Black-Hat-Python# virtualenv venv-p2
New python executable in /root/Black-Hat-Python/venv-p2/bin/python
Installing setuptools, pip, wheel...done.root@kali:~/Black-Hat-Python# virtualenv venv-p3 -p python3
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /root/Black-Hat-Python/venv-p3/bin/python3
Also creating executable in /root/Black-Hat-Python/venv-p3/bin/python
Installing setuptools, pip, wheel...done.root@kali:~/Black-Hat-Python# ls
codes  ori  venv-p2  venv-p3root@kali:~/Black-Hat-Python# source venv-p2/bin/activate
(venv-p2) root@kali:~/Black-Hat-Python# python
Python 2.7.14+ (default, Dec  5 2017, 15:17:02)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(venv-p2) root@kali:~/Black-Hat-Python# deactivateroot@kali:~/Black-Hat-Python# source venv-p3/bin/activate
(venv-p3) root@kali:~/Black-Hat-Python# python
Python 3.6.4 (default, Jan  5 2018, 02:13:53)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(venv-p3) root@kali:~/Black-Hat-Python# deactivate
root@kali:~/Black-Hat-Python#

跟书中保持一致,选择 WingIDE 作为 IDE 环境,主要是方便调试,而主要码代码的工具选择 Sublime Text 3, 简单,美观,熟悉。

WingIDE 安装

Wing is a Python IDE with powerful debugger and intelligent editor that make interactive Python development fast, accurate, and fun.

官网 http://wingware.com/ 下载软件的 deb 包 (wingide-personal6_6.0.10-1_amd64.deb),Kali 终端下用 dpkg -i packagename 命令进行安装。安装时可能会遇到包依赖的错误,需要紧接着运行 apt-get -f install -f 即尝试修正系统依赖损坏处,然后再次运行 dpkg -i wingide-personal6_6.0.10-1_amd64.deb 完成安装。

root@kali:~/Black-Hat-Python# cd ~/Downloads/
root@kali:~/Downloads# ls
wingide-personal6_6.0.10-1_amd64.deb
root@kali:~/Downloads# dpkg -i wingide-personal6_6.0.10-1_amd64.deb
Selecting previously unselected package wingide-personal6.
(Reading database ... 322810 files and directories currently installed.)
Preparing to unpack wingide-personal6_6.0.10-1_amd64.deb ...
Unpacking wingide-personal6 (6.0.10-1) ...
dpkg: dependency problems prevent configuration of wingide-personal6:wingide-personal6 depends on libpango1.0-0 (>= 1.18.0); however:Package libpango1.0-0 is not installed.dpkg: error processing package wingide-personal6 (--install):dependency problems - leaving unconfigured
Processing triggers for menu (2.1.47+b1) ...
Errors were encountered while processing:wingide-personal6root@kali:~/Downloads# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:libpango1.0-0 libpangox-1.0-0
The following NEW packages will be installed:libpango1.0-0 libpangox-1.0-0...root@kali:~/Downloads# dpkg -i wingide-personal6_6.0.10-1_amd64.deb
(Reading database ... 329462 files and directories currently installed.)
Preparing to unpack wingide-personal6_6.0.10-1_amd64.deb ...
Unpacking wingide-personal6 (6.0.10-1) over (6.0.10-1) ...
Setting up wingide-personal6 (6.0.10-1) ...
Processing triggers for menu (2.1.47+b1) ...
root@kali:~/Downloads#

按书中的示例,简单熟悉了下 wingIDE 的代码编辑和调试功能。由于我装的是免费的 Wing Personal 版本,调试功能只是 Simplified Debugger,相比 Wing Pro 版本的 Powerful Debugger 功能,应该有很大差异,最明显的就是没有 Debug probe 功能(当程序暂停运行的时候,我们可以使用Debug Probe来对程序进行一些操作。而且,它包含了程序执行到现在的stack的信息*)。对 wingIDE 的使用应该还要一段时间来熟悉,随着看书的进度边用边熟悉,如果有些功能 Personal 版本实现不了的话,再考虑用其他的调试工具。

关于调试的几个命令包括:

  • F9 设置断点
  • F5 开始调试,到下一个断点
  • ctrl+F5 终止调试
  • F7 step into 函数,单步执行
  • F6 跳过当前语句
  • F8 step out 函数

示例代码如下:

def sum(number_one, number_two):number_one_int = convert_integer(number_one)number_two_int = convert_integer(number_two)result = number_one_int + number_two_intreturn resultdef convert_integer(number_string):converted_integer = int(number_string)return converted_integeranswer = sum("1", "2")

WingIDE Debug 的各窗口图:

Sublime Text 3 安装

A sophisticated text editor for code, markup and prose

官网下载 Sublime Text 3 的 tar 包。解压,进入目录运行 ./sublime_text

root@kali:~/Downloads# wget https://download.sublimetext.com/sublime_text_3_build_3143_x64.tar.bz2root@kali:~/Downloads# tar xvf sublime_text_3_build_3143_x64.tar.bz2root@kali:~/Downloads/sublime_text_3# ./sublime_text

其他准备

另外,还有 Web 站点和环境的准备,比如 Apache, Mysql, PHP, Flask,以及各类 CMS,Blog 等 Web应用的搭建,以便维护一些渗透测试环境供分析和试验。考虑将来再专门进行记录和总结。

总结

用了较多的时间把几项准备工作说了下,都是最基本的操作,包括 VMware,Kali 镜像,Python 运行环境,virtualenv,WingIDE,Sublime Text等内容。下步开始具体知识点的学习,将把主要精力放在信息安全和 Python 上。

参考资料

  • apt-get -f install 修复依赖损坏。http://blog.csdn.net/tterminator/article/details/41009225
  • WingIDE 的使用。

《Python 黑帽子》学习笔记 - 准备 - Day 1相关推荐

  1. python白帽子学习笔记(整合)

    python白帽子学习笔记(整合) 学习笔记目录 python白帽子学习笔记(整合) 前言 一.基础篇 1.正则表达式 2.列表 3.元组带上了枷锁的列表 4.奇葩的内置方法 5.格式化字符 6.序列 ...

  2. scapy python3_【Python3黑帽子学习笔记 on Mac】第四章 Scapy:网络的掌控者

    Scapy:网络掌控者? 哇咔咔,我喜欢!可是我的问题来了,貌似Scapy只支持Python2,那哥哥这Python3咋办呢? [最新更新:目前scapy目前已经支持Python3了,就不用折腾这个了 ...

  3. 关于《Python黑帽子:黑客与渗透测试编程之道》的学习笔记

    本篇文章是学习<Python黑帽子:黑客与渗透测试编程之道>的笔记,会持续地将书上的代码自己敲一遍,从而让自己对Python的安全编程有更多的了解,同时希望各位可以给给建议,不足之处太多了 ...

  4. 《Python 黑帽子》学习笔记 - 命令行选项和参数处理 - Day 4

    在学习书中 netcat 代码的时候,发现其命令行选项和参数的处理存在一些小问题,由于调用 getopt 模块的 getopt() 函数时参数设置不当,会引起代码执行时获取不到参数值或引发异常.该问题 ...

  5. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(四):web攻击

    目录 前言 1.urllib2 2.开源web应用安装 3.破解目录和文件位置 4.破解HTML表格认证 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源 ...

  6. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(三):scapy——网络的掌控者

    目录 前言 1.窃取email认证 2.ARP缓存投毒 3.PCAP文件处理 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源码,并自己将其中一些改写成P ...

  7. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(九):自动化攻击取证

    目录 前言 1.Volatility配置 2.抓取口令的哈希值 3.直接代码注入 4.插入shellcode 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书 ...

  8. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(二):原始套接字和流量嗅探

    目录 前言 1.Windows和Linux上的包嗅探 2.解码IP层 3.解码ICMP层 4.发现主机 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源码 ...

  9. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(五):扩展burp代理

    目录 前言 1.burp的fuzz脚本 2.burp中利用Bing服务 3.利用网站内容生成密码字典 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书中源码, ...

最新文章

  1. 海康 安全码 修改密码_手机为什么要设置PIN码 手机设置PIN码的原因【介绍】
  2. java中全局变量注解_自定义注解,前端获取token值的时候,全局变量返回后端用注解注入,以便以其他业务层使用...
  3. 统计gitlab代码行脚本_一点也不复杂, GitLab Webhook 自动部署代码
  4. 我们正处在“后开源”时代?
  5. Bootstrap3 轮番插件的使用方法
  6. 苹果春季发布会:库克绝不玩别人玩剩下的!
  7. 麦克纳姆轮全向移动机器人运动学模型应用
  8. HBase权威指南,架构:存储
  9. Axure 元件 模板 MES系统 全套(带下载地址)
  10. linux上进行base64编码解码
  11. shader篇-高光反射模型
  12. mysql audit_关于Mysql Enterprise Audit plugin的使用
  13. 做一个心无杂念的平凡人
  14. QCustomPlot 1.0.1学习(5)-Sinc函数绘制
  15. 计算机装系统教程网,电脑重装系统教程知识
  16. android 信号研究(包括信号图标和信号优化)
  17. 〖Python 数据库开发实战 - MySQL篇㉘〗- MySQL 日期函数
  18. 《神经科学:探索脑》学习笔记(第21章 精神疾病)
  19. 编程培训正取代 CS 学位
  20. 【量化交易】风险预算与资本管理

热门文章

  1. ckeditor粘贴word文档图片的实例解析
  2. 智慧校园系统平台实现校内导航资产管线一体化管理
  3. 互联网行业女孩子做什么比较好?
  4. Openstack:创建实例
  5. vue钩子函数mounted,页面回退时不执行
  6. python数据分析——pyecharts柱状图全解
  7. uni-captcha验证码模块
  8. 重庆大学计算机通讯与网络试卷,重庆大学201803批次网上计算机基础B卷
  9. S5PV210 Study210开发板刷系统
  10. 职场人加班洞察报告:超7成职场人“被迫加班”,你中枪了吗?