1.Fuzz測試:
漏洞挖掘有三種方法:白盒代碼審計、灰盒逆向工程、黑盒測試。其中黑盒的Fuzz測試是效率最高的一種,能夠快速驗證大量潛在的安全威脅。
Fuzz測試,也叫做“模糊測試”,是一種挖掘軟件安全漏洞、檢測軟件健壯性的黑盒測試,它通過向軟件輸入非法的字段,觀測被測試軟件是否異常而實現。Fuzz測試的概念非常容易理解,如果我們構造非法的報文並且通過測試工具打入被測設備,那么這就是一個Fuzz測試的測試例執行,大多數測試工程師肯定都嘗試過這種測試手段。
對於網絡協議漏洞挖掘來說,Fuzz測試也就意味着打入各種異常報文,然后觀察設備是否有異常。
2.IDA是什么:IDA是一個反匯編軟件;交互式反匯編器專業版(Interactive Disassembler Professional),人們常稱其為IDA Pro,或簡稱為IDA。
3.代碼審計:顧名思義就是檢查源代碼中的缺點和錯誤信息,分析並找到這些問題引發的安全漏洞,並提供代碼修訂措施和建議;
4.Python入門:安裝第三庫:
**把包下載到本地后解壓:
wget http://***//***//nmap.tar.gz
tar -xzf nmap.tar.gz
**把當前目錄切換到解壓出來的目錄:
cd python-nmap-0.2.4/
**在這個目錄中用python setup.py install命令安裝包:
python setup.py install
5.TCP套接字:
TCP的套接字就是IP號加端口號。其中,IP號是網絡層用來尋找主機的;端口號是運輸層用來找進程的,在網絡層找到主機后就依據端口號找到相應進程,從而實現用戶與服務器的通信。
6.讀取banner:即連接上服務器后,服務器響應的第一句歡迎語句
7.Python變量:
**Python中,變量是指存儲在某個內存地址上的數據,這個內存地址可以存儲不同的值,如整型,實數,布爾值,或列表(list)或詞典這類復雜的數據;
**聲明變量時,Python會為變量保留內存空間,程序員可以不顯式的聲明變量的類型,Python解釋器可以決定變量的類型和為變量保留的多少內存空間;
8.安裝Python的第三方模塊:
**在windows環境下,python配置過環境變量后,最新版本的python自動安裝easy_install命令:
**所以,在cmd下使用easy_install命令安裝第三方模塊就可以:
easy_install python-nmap
easy_install pyPdf python-nmap pygeoip mechanize BeautifulSoup4
9.如果我們使用pip安裝失敗,我們可以直接下載包或模塊的安裝文件,然后手動安裝。
**常用的兩個下載包和模塊安裝文件的網站:PyPI-the Python Package Index和Python Extension Packages。
**在上面右上角紅線框住的search中輸入你要下載的包或模塊名,即可進入下載頁面。下載的是壓縮文件,如何安裝呢?
1)解壓,cmd下直接按:c:就可以進入C盤
2)在命令提示符窗口中,使用cd進入到解壓后的文件的路徑下
3)輸入命令python setup.py install
**這個網站下載的是后綴為.whl的文件,怎么來運行下載的.whl安裝文件呢?
1)在命令提示符窗口中,找到指定路徑(.whl安裝文件的路徑)
2)pip install .whl文件名
10.在windows下,cmd中可以直接使用pip命令:但是需要版本更新:
X:\>pip install python-bluez bluetooth python-obexftp
Collecting python-bluez
Could not find a version that satisfies the requirement python-bluez (from versions: )
No matching distribution found for python-bluez
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
X:\>python -m pip install --upgrade pip
Collecting pip
Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 265kB/s
Installing collected packages: pip
Found existing installation: pip 8.1.1
Uninstalling pip-8.1.1:
Successfully uninstalled pip-8.1.1
Successfully installed pip-9.0.1
11.Python字符串:string模塊提供了一系列非常強壯的處理字符串的方法:
**lower():將字符串轉成小寫形式;
**replace(old,new):用new子串取代old子串
**find():返回子串在字符串中第一次出現時的偏移量;
12.Python的List(列表):list數據結構是在python中存儲對象數組的極好方法,list還內置了執行添加,插入,刪除,出站,索引,計數,排序,反轉等操作方法;
**append()方法:添加元素進入list;
**sort()方法:對list中的元素排序;
**index()方法:對list中指定的元素進行索引;
**remove()方法:刪除list中指定的元素;
13.Python的詞典:Python的詞典數據結構提供了一個可以存儲任意數量的Python對象的哈希表;
**詞典由n對鍵和值的項(item)組成;
**創建詞典時,每個鍵和它的值都是以冒號分隔的,同時用逗號分隔各個項;
**注意:key()方法返回的是詞典中所有鍵的列表,而 .items()方法返回的是詞典中所有項的完整信息的列表;
14.Python的網絡:socket模塊提供了一個用python進行網絡連接的庫;
**導入socket模塊后,實例化一個socket類的新變量;
**用connect()方法建立與指定IP地址與端口的網絡連接;
**連接成功后,就可以通過套接字進行讀/寫操作
**recv(1024)方法將讀取套接字中接下來的1024B數據
15.Python的條件選擇語句:IF語句是對邏輯表達式進行求值,並根據求值結果做出決定;
**要想知道某個指定的FTP服務器中是否存在可以攻擊的漏洞,就需要將服務器的響應結果與一些已知的存在漏洞的FTP服務器版本的信息進行比較;
>>>import socket
>>>socket.setdefaulttimeout(2)
>>>s=socket.socket()
>>>s.connect(("192.168.95.148",21))
>>>ans=s.recv(1024)
>>>if ("FreeFloat Ftp Server (Version 1.00)" in ans):
... print("[+] FreeFloat FTP Server is vulnerable.")
...elif("3Com 3CDaemon FTP Server Version 2.0" in banner):
... print("[+] 3CDaemon FTP Server is vulnerable.")
...elif ("Ability Server 2.34" in banner):
... print("[+] Ability FTP Server is vulnerable.")
..elif ("Sami FTP Server 2.0.2 "in banner):
... print("[+] Sami FTP Server is vulnerable.")
...else:
... print("[-]FTP Server is not vulnerable. ")
16.Python的異常處理:try/except語句進行異常處理:
>>>try:
... print("[+] 1337/0="+str(1337/0))
...except:
... print("[-] Error")
>>>try:
... print("[+] 1337/0="+str(1337/0))
...except Exception,e: //將異常存儲到變量e,同時還要顯式的將變量e轉換為一個字符串
... print("[-] Error="+str(e))