本系列教程,採用的大綱母本爲《Understanding Network Hacks Attack and Defense with Python》一書,爲了解決不少同窗對英文書的恐懼,解決看書以後實戰過程當中遇到的問題而做。因爲原書不少地方過於簡略,筆者根據實際測試狀況和最新的技術發展對內容作了大量的變動,固然最重要的是我的偏好。教程同時提供圖文和視頻教程兩種方式,供不一樣喜愛的同窗選擇。javascript
前兩節裏,咱們完成了操做系統和工具的安裝。事實上能夠進入到正式開發階段了,Kali Linux系統自帶了Python運行時及easy_install 和pip等基礎組件,包括咱們以後的課程裏要用到的pypcap等網絡包也都一併存在了。php
這是Kali帶來的好處,可是對初學Python的同窗來講,我想有必要把Python運行時和模塊安裝的基礎知識講解清楚。html
首先到Python官方網站www.python.org/下載python的安裝…java
轉到下載頁面。python
下載頁面會自動識別咱們使用的操做系統,上面的下載按鈕下載下來的就是識別以後的對應系統的軟件包,在下面有其餘系統的連接。這裏須要注意的是python的兩個主要 版本分支,一個是2.7.一個是3..*版本。咱們的系列課程推薦使用2.7,全部代碼在3.0以上版本的環境中運行結果未知。你也能夠選擇使用最新的Python版原本編寫程序,可是也必定要單獨安裝2.7版本,保證學習進度。linux
下載並保存文件。下面咱們說說在不一樣系統下如何安裝python,固然安裝Python的方法也不少,恕我不能一一道來。git
Kali Linux系統自帶,無需安裝,略。github
瀏覽器打開www.python.org/downloads/w…redis
找到咱們要下載的2.7.12下載安裝包。shell
下載以後,點擊安裝。安裝過程當中,能夠選擇講Python寫到系統Path變量裏,方便在任何地方訪問Python。
安裝完成後,測試。
Mac下安裝和Windows上差很少,先到Mac安裝包的下載頁,找到安裝包,下載。
下載以後進行安裝。
安裝成功以後,啓動終端進行校驗。
我使用的Linux爲CentOS,安裝方法爲源碼安裝(任何系統都能採用源碼安裝的方式,Linux上這種方式更常見,不過在windows上源碼安裝要更麻煩一些),其餘Linux操做系統方法相似。
在CentOS下安裝Python,根據你所使用的系統的環境不一樣,須要安裝的內容也許會不同,主要的區別在須要的依賴項。不過解決方法也很簡單,就是缺什麼裝什麼了。下面的過程是在個人測試機上完成的。
首先確認是否安裝了GCC,若是沒有的話,使用yum進行安裝。
# yum install gcc複製代碼
# mkdir src
# cd src
# wgethttps://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz複製代碼
下載完成以後,解壓,依次執行configure、make和install進行安裝。
# tar xzf Python-2.7.10.tgz
# cd Python-2.7.10
# ./configure
# make install複製代碼
安裝完成以後,啓動終端輸入下面的命令,看是否安裝成功
# python –version複製代碼
Python的模塊(module)在概念層面和其餘語言並沒有太大的區別,都是爲了邏輯上劃分代碼功能,將概念上高內聚的代碼放在一塊兒組成一個模塊。在表現形式上,python的模塊是以文件做爲分割的,簡單講,模塊是包括 Python 定義和聲明的文件。文件名就是模塊名加上 .py 後綴。模塊的模塊名(作爲一個字符串)能夠由全局變量 name 獲得。
關於模塊的編寫、導入、加載機制等內容,在後面的課程會詳細介紹。
使用Python編程來解決實際問題的便利性,很大程度上得益於衆多的Python模塊,這些模塊由官方、社區或者其餘第三方開發者提供。我在以前的非本系列的一篇博文中(《kali linux Python 黑客編程1 開發環境初始化》)介紹過Python裏安裝模塊的三種方法,這裏再拿出來從新講解下。
第一種方法是手動下載軟件包,運行安裝程序來安裝。
好比咱們想要使用Python-nmap組件去解析nmap的掃描結果,咱們先手動下載安裝包。
wget http://xael.org/pages/python-nmap-0.6.0.tar.gz複製代碼
解壓:
root@kali:~# tar xzf python-nmap-0.6.0.tar.gz
root@kali:~# ls
paros python-nmap-0.6.0 公共 視頻 文檔 音樂
phpmyadmin.sh python-nmap-0.6.0.tar.gz 模板 圖片 下載 桌面
root@kali:~# cd python-nmap-0.6.0/
root@kali:~/python-nmap-0.6.0# ls
CHANGELOG gpl-3.0.txt MANIFEST.in nmap.html README.txt setup.py
example.py Makefile nmap PKG-INFO requirements.txt
root@kali:~/python-nmap-0.6.0#
`複製代碼
運行setup.py,執行安裝。
python setup.py install
root@kali:~/python-nmap-0.6.0# python setup.py install
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/nmap
copying nmap/__init__.py -> build/lib.linux-x86_64-2.7/nmap
copying nmap/test_nmap.py -> build/lib.linux-x86_64-2.7/nmap
copying nmap/nmap.py -> build/lib.linux-x86_64-2.7/nmap
running install_lib
creating /usr/local/lib/python2.7/dist-packages/nmap
copying build/lib.linux-x86_64-2.7/nmap/__init__.py -> /usr/local/lib/python2.7/dist-packages/nmap
copying build/lib.linux-x86_64-2.7/nmap/test_nmap.py -> /usr/local/lib/python2.7/dist-packages/nmap
copying build/lib.linux-x86_64-2.7/nmap/nmap.py -> /usr/local/lib/python2.7/dist-packages/nmap
byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/__init__.py to __init__.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/test_nmap.py to test_nmap.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/nmap/nmap.py to nmap.pyc
running install_egg_info
Writing /usr/local/lib/python2.7/dist-packages/python_nmap-0.6.0.egg-info複製代碼
easy_install 是Python setuptools系列工具的中的一個工具,能夠用來自動查找、下載、安裝、升級依賴包。
在Kali Linux中Python setuptools默認已經被安裝,其餘Linux系統中使用apt-get或者yum均可以安裝。
apt-get 安裝命令爲:
sudo apt-get install python-setuptools複製代碼
yum 安裝命令爲:
yum install setuptool複製代碼
考慮到windows,這裏再介紹一個通用的方法,適合全部操做系統。
首先下載ez_setup.py (bootstrap.pypa.io/ez_setup.py…
python ez_setup.py複製代碼
下面咱們使用easy_install 來安裝Python的一個模塊,能夠用來對dpf進行解析和安全測試的pyPdf。
easy_install pyPdf複製代碼
easy_install固然也提供了卸載模塊/包的功能。可是必需要注意的是,該模塊/包必需要在 easy-install.pth 有相關信息,換句話說,也就是要使用easy_install安裝的,纔可進行卸載。好比命令:
easy_install -m redis複製代碼
這樣就會將Python中的redis模塊卸載。
其餘命令參數,這裏就不詳細介紹了,請各位同窗自行查看。
好消息是,最新版的Python2.x和3.x都已經集成了python-pip。
下面咱們經過 pip 來安裝github3模塊。
pip install github3.py複製代碼
root@kali:~/python-nmap-0.6.0# pip install github3.py
Downloading/unpacking github3.py
Downloading github3.py-0.9.5-py2.py3-none-any.whl (109kB): 109kB downloaded
Downloading/unpacking uritemplate.py>=0.2.0 (from github3.py)
Downloading uritemplate.py-0.3.0.tar.gz
Running setup.py (path:/tmp/pip-build-LRgVNm/uritemplate.py/setup.py) egg_info for package uritemplate.py
Requirement already satisfied (use --upgrade to upgrade): requests>=2.0 in /usr/lib/python2.7/dist-packages (from github3.py)
Installing collected packages: github3.py, uritemplate.py
Running setup.py install for uritemplate.py
Successfully installed github3.py uritemplate.py
Cleaning up...複製代碼
下面再列舉一些其餘的經常使用功能,一樣的更詳細的用法留給各位同窗自學。
若是要安裝特定版本的package,經過使用==, >=, <=, >, <來指定一個版本號。例如:
pip install 'Markdown<2.0'複製代碼
pip install 'Markdown>2.0,<2.0.3複製代碼
若是有requirement的話,直接pip install -r requirements.txt就能夠安裝全部的了。
卸載軟件,使用uninstall參數:
pip uninstall SomePackage複製代碼
更新軟件:
pip install --upgrade SomePackage複製代碼
顯示已經安裝的文件:
pip show --files SomePackage複製代碼
顯示過時的安裝包:
pip list --outdated複製代碼
本節課程依然簡單,可是是你必需要掌握的。以後的開發課程中,咱們會不厭其煩的使用包管理工具來安裝咱們須要的模塊。
在微信訂閱號(xuanhun521)依次打開「網絡安全」—>」Python黑客編程」,找到對應的本篇文章的1.4節,有具體獲取視頻教程的方法。
因爲教程仍在創做過程當中,在整套教程完結前,感興趣的同窗請關注個人微信訂閱號(xuanhun521,下方二維碼),我會第一時間在訂閱號推送圖文教程和視頻教程。問題討論請加qq羣:Hacking (1羣):303242737 Hacking (2羣):147098303。
關注以後,回覆請回復「Python」,獲取更多內容。
訂閱號雙11(11月10號到12號)將有活動,贈送價值萬元的 圖書,視頻,圖文教程,歡迎關注參與。