《Violent Python》第一章Introduction(2)中文版(乌云python,英文爱好者翻译)

crown丶prince (我用双手成就你的梦想) | 2015-09-25 17:10

介绍信息:http://zone.wooyun.org/content/23138

第一章 介绍

本章内容 :

1.建立Python开发环境

2.Python语言简介

3.变量,字符串,列表,字典介绍

4.使用用网络,迭代器,异常处理,模块等

5.写第一个Python程序,字典密码破解器

6.写第二个Python程序,压缩文件密码暴力破解

对我来说,武术的非凡之处在于它的简单。简单是最美的,而武术也没有什么特别之处;以无法为有法,以有限为无限,是为武术最高境界!

                                                                                    ——截拳道宗师 李小龙

引文:用python 进行的一次渗透测试

最近,我的一个朋友对一家世界财富500强公司的计算机安全系统进行了渗透测试。虽然该公司已建立和保持一个了优秀的安全机制,但他最终还是发现了一个存在漏洞而未打补丁的服务器。几分钟之内,他用开源工具入侵了这个系统并获得管理权。然后,他扫描了剩下的服务器以及客户机,并没有发现任何额外的漏洞

从这一点看,他的测试似乎结束了,但是真正的渗透测试才刚刚开始。

他打开了自己常用的文本编辑器,写下了一个Python测试脚本,利用这个脚本发现了其余存在漏洞的服务器,几分钟后,他获得了网络上超过一千台机器的管理权,然而,在这样做时,他随后产生了一个难以管理的问题。 他知道,系统管理员会注意到他的攻击并拒绝再让他访问。所以,他赶紧想办法在自己已经控制的服务器上,安装永久的后门。

检查了一下自己渗透测试用到的文件后,我的朋友意识到他的这台客户机存在着很重要的域控制器。以此得知,管理员使用了一个完全独立的管理账户登陆域控制器,我的朋友写了一个小脚本检查1000台机器上已经登录的用户,过了一会,我的朋友被告知,域管理员登录到了一个机器。他的监测基本完成,我的朋友现在知道在哪里继续他的攻击了。

我朋友的迅速反应和他在压力下能创造性的思考的能力,促使他成为了一个渗透测试者。他为了成功入侵这个世界500强公司,自己写了脚本工具。

一个小的Python脚本帮助他入侵了一千多个工作站。另一个小脚本允许他在管理员发现前成功triage。一个真正的渗透测试者会编写自己的工具来解决所遇到的问题。所以,让我们以安装开发环境为开始,学习如何打造自己的工具吧!



建立开发环境


Python的下载网站(http://www.python.org/download/)提供了Python在Windows,Mac OS X和Linux上的安装包。如果您运行的是Mac OS X或Linux,Python的解释器已经预先安装在了系统上。安装包为程序开发者提供了Python解释器,标准库和几个内置模块。 Python标准库和内置模块提供的功能范围广泛,包括内建的数据类型,异常处理,数字和数学模块,文件处理功能,如加密服务,与操作系统互操作性,网络数据处理,并与IP协议交互,还包括许多其他有用模块。同时,程序开发者可以很容易地安装任何第三方软件包。

第三方软件包的完整列表可在(http://pypi.python.org/pypi/) 上看到

安装第三方库

在第二章中,我们将利用python的python-nmap包来处理的NMAP的结果。下面的例子描述了如何下载和安装python-nmap包(或其他任何包,真的)。一旦我们已经保存了包到本地,我们解压这个包,并进入压缩后的目录中。在工录中,我们执行python setup.py命令来安装python-nmap包。安装大多数第三方包将遵循下载,解压,执行python setup.py命令进行安装的相同的步骤。

programmer:∼# wget http://xael.org/norman/python/python-nmap/python-

nmap-0.2.4.tar.gz-On map.tar.gz

--2012-04-24 15:51:51--http://xael.org/norman/python/python-nmap/

python-nmap-0.2.4.tar.gz

Resolving xael.org... 194.36.166.10

Connecting to xael.org|194.36.166.10|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 29620 (29K) [application/x-gzip]

Saving to: 'nmap.tar.gz'

100%[==================================================

===================================================

=============>] 29,620 60.8K/s in 0.5s

2012-04-24 15:51:52 (60.8 KB/s) - 'nmap.tar.gz' saved [29620/29620]

programmer:∼# tar -xzf nmap.tar.gz

programmer:∼# cd python-nmap-0.2.4/

programmer:∼/python-nmap-0.2.4# python setup.py install

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.6

creating build/lib.linux-x86_64-2.6/nmap

copying nmap/__init__.py -> build/lib.linux-x86_64-2.6/nmap

copying nmap/example.py -> build/lib.linux-x86_64-2.6/nmap

copying nmap/nmap.py -> build/lib.linux-x86_64-2.6/nmap

running install_lib

creating /usr/local/lib/python2.6/dist-packages/nmap

copying build/lib.linux-x86_64-2.6/nmap/__init__.py -> /usr/local/lib/

python2.6/dist-packages/nmap

copying build/lib.linux-x86_64-2.6/nmap/example.py -> /usr/local/lib/

python2.6/dist-packages/nmap

copying build/lib.linux-x86_64-2.6/nmap/nmap.py -> /usr/local/lib/

python2.6/dist-packages/nmap

byte-compiling /usr/local/lib/python2.6/dist-packages/nmap/__init__.py

to __init__.pyc

byte-compiling /usr/local/lib/python2.6/dist-packages/nmap/example.py

to example.pyc

byte-compiling /usr/local/lib/python2.6/dist-packages/nmap/nmap.py to

nmap.pyc

running install_egg_info

Writing /usr/local/lib/python2.6/dist-packages/python_nmap-0.2.4.egg-

info

为了能够更简单的安装python的包,python提供了easy_install模块。运行这个简单的安装程序,程序将会在python库中寻找这个包,如果发现则下载它并自动安装

programmer:∼ # easy_install python-nmap

Searching for python-nmap

Readinghttp://pypi.python.org/simple/python-nmap/

Readinghttp://xael.org/norman/python/python-nmap/

Best match: python-nmap 0.2.4

Downloadinghttp://xael.org/norman/python/python-nmap/python-nmap-

0.2.4.tar.gz

Processing python-nmap-0.2.4.tar.gz

Running python-nmap-0.2.4/setup.py -q bdist_egg --dist-dir /tmp/easy_

install-rtyUSS/python-nmap-0.2.4/egg-dist-tmp-EOPENs

zip_safe flag not set; analyzing archive contents...

Adding python-nmap 0.2.4 to easy-install.pth file

Installed /usr/local/lib/python2.6/dist-packages/python_nmap-0.2.4-

py2.6.egg

Processing dependencies for python-nmap

Finished processing dependencies for python-nmap

为了快速建立一个开发环境,我们建议您从http://www.backtrack-linux.org/downloads/下载最新的BackTrack Linux的渗透测试专版的复制版。他提供了丰富的渗透测试工具,例如forensic,Web,网络分析和无线攻击。之后的几个例子中。可能会用到一些早已内置在BackTrack的工具或库。当在本书的例子中,需要用到标准库和内置模块之外的第三方包的时候,文章将会提供包的下载网站。

设置一个开发环境时,提前下载好所有的这些第三方模块会是有用的。在BackTrack上,您可以通过执行

easy_install命令来安装额外需要的库,这将会在Linux下,下载大多数例子中用到的库。

programmer:∼ # easy_install pyPdf python-nmap pygeoip mechanize

BeautifulSoup4

第五章用到了一些明确的不能从easy_install下载的的蓝牙库。您可以使用包管理器下载并安装这些库。

attacker# apt-get install python-bluez bluetooth python-obexftp

Reading package lists... Done

Building dependency tree

Reading state information... Done

<..SNIPPED..>

Unpacking bluetooth (from .../bluetooth_4.60-0ubuntu8_all.deb)

Selecting previously deselected package python-bluez.

Unpacking python-bluez (from .../python-bluez_0.18-1_amd64.deb)

Setting up bluetooth (4.60-0ubuntu8) ...

Setting up python-bluez (0.18-1) ...

Processing triggers for python-central

此外,第五章和第七章中的几个例子需要一个Windows版的Python下载器。最新的Windows版的Python下载器,请访问http://www.python.org/getit/

最近几年python源代码已经延伸成了2.x和3.x两个分支。Python的原作者Guido van Rossum试图清理代码使语言变得更一致,这个行为打破了python 2.x版本与之后版本的兼容性,例如作者对prin语句的更改。在本书出版时,BackTrack 5 R2把Python 2.6.5作为稳定的python版本。

programmer# python -V

Python 2.6.5