《Python 黑帽子》学习笔记 - 准备 - Day 1

信息安全是一个有意思的方向,也是自己的爱好,从零开始,想在工作之余把这个爱好培养为自己的技术能力,而 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 codes

root@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-p3

root@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# deactivate

root@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-personal6

root@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_int

    return result

def convert_integer(number_string):
    converted_integer = int(number_string)
    return converted_integer

answer = sum("1", "2")

WingIDE Debug 的各窗口图:

《Python 黑帽子》学习笔记 - 准备 - Day 1_第1张图片

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.bz2

root@kali:~/Downloads# tar xvf sublime_text_3_build_3143_x64.tar.bz2

root@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 的使用。

你可能感兴趣的:(学习笔记)