信息安全是一个有意思的方向,也是自己的爱好,从零开始,想在工作之余把这个爱好培养为自己的技术能力,而 web 安全相对来说容易入门些,于是选择 web 渗透测试作为学习的起点,并选择同样是容易入门的 Python 作为编程工具,潜心学习,持续学习,做一个 Pythonic 的信安工匠。
借 “Python之禅读书群” 发起的读书活动,选了《Python 黑帽子 黑客与渗透测试编程之道》开始学习和记录,看看自己能怎样刻意训练。
由于自己对 Linux,Python,以及渗透测试都是初学者,工作之余也没有太多的整块时间来学习,所以会把学习过程中的知识点和操作尽量记录详细些,主要是做好记录,方便回顾和复盘。
在 Windows 主操作系统上运行 Kali 虚拟机环境,虚拟化工具是 VMware Player,Kali 镜像为 kali-linux-2018.1-vm-amd64.ova。
由于书中的代码都是基于 Python2 , 而 Python3 已结成为主流,所以我打算准备两套独立的运行环境,venv-p2(Python2) 和 venv-p3(Python3),在 venv-p2 中学习理解和测试书中的代码,在 venv-p3 中把原书代码转换为 Python3 ,代码要全部码一遍,这样能更好的掌握 Python 基础。
关于 Python 运行环境的准备,包括:
目录结构如下:
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, 简单,美观,熟悉。
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 的各窗口图:
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