《Python網(wǎng)絡(luò)滲透編程》 課件匯 劉開茗 4.3 MD5加解密腳本的編寫 - 6.3DOS攻擊腳本的編寫_第1頁
《Python網(wǎng)絡(luò)滲透編程》 課件匯 劉開茗 4.3 MD5加解密腳本的編寫 - 6.3DOS攻擊腳本的編寫_第2頁
《Python網(wǎng)絡(luò)滲透編程》 課件匯 劉開茗 4.3 MD5加解密腳本的編寫 - 6.3DOS攻擊腳本的編寫_第3頁
《Python網(wǎng)絡(luò)滲透編程》 課件匯 劉開茗 4.3 MD5加解密腳本的編寫 - 6.3DOS攻擊腳本的編寫_第4頁
《Python網(wǎng)絡(luò)滲透編程》 課件匯 劉開茗 4.3 MD5加解密腳本的編寫 - 6.3DOS攻擊腳本的編寫_第5頁
已閱讀5頁,還剩204頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

MD5加密腳本的編寫課堂導(dǎo)入美國密碼學(xué)家羅納德.李維斯特(RonaldLinnRivest)設(shè)計,1992年公開Base64編碼DES加密AES加密MD5算法教學(xué)目標(biāo)掌握MD5加密的原理學(xué)會MD5加密的腳本實(shí)現(xiàn)知識目標(biāo)能力目標(biāo)MD5加密的原理MD5加密的原理一種被廣泛使用的密碼散列函數(shù)能對信息管理系統(tǒng)加密廣泛應(yīng)用于計算機(jī)、數(shù)據(jù)安全傳輸、數(shù)字簽名認(rèn)證等安全領(lǐng)域MD5MessageDigestAlgorithm消息摘要算法明文加密發(fā)送方明文加密接受方網(wǎng)絡(luò)其他不可逆特征安全性加密應(yīng)用MD5加密的原理MessageDigest以512位的分組來處理輸入的信息,每一分組劃分成16個32位的子分組算法的輸出32位分組32位分組32位分組32位分組128位的散列值MD5MD5加密腳本的實(shí)現(xiàn)MD5加密腳本的實(shí)現(xiàn)python實(shí)現(xiàn)MD5加密時用到的是hashlib模塊,可以通過hashlib標(biāo)準(zhǔn)庫使用多種Hash算法SHA1SHA224SHA256SHA384SHA512MD5算法hashlib模塊hashlib標(biāo)準(zhǔn)庫Hash算法MD5加密腳本的實(shí)現(xiàn)返回一個md5對象,如果給出參數(shù),則相當(dāng)于調(diào)用了update(arg)md5.new([arg])用string參數(shù)arg更新md5對象md5.updte(arg)返回16字節(jié)的摘要,由傳給update的string生成,摘要沒有ascii字符md5.digest()以16進(jìn)制的形式返回摘要md5.hexdigest()python的md5模塊包括以下幾個函數(shù):MD5加密腳本的實(shí)現(xiàn)調(diào)用hashlib模塊實(shí)現(xiàn)md5數(shù)據(jù)加密MD5加密腳本的實(shí)現(xiàn)MD5為單向Hiash加密,且不可逆MD5算法所產(chǎn)生的32位輸出所能夠表示的空間大小為1632,即當(dāng)樣本大于1632時就會產(chǎn)生Hash碰撞結(jié)論鴿巢原理MD5加密腳本的實(shí)現(xiàn)生成大量密碼樣本的Hash得到Hash值所對應(yīng)的密碼密碼Hash值反查初始序列128bit一一對應(yīng)MD5加密腳本的實(shí)現(xiàn)初始序列128bit可根據(jù)統(tǒng)計規(guī)律建立簡單密碼所對應(yīng)的MD5值表,從而得到使用簡單密碼的用戶賬戶互聯(lián)網(wǎng)應(yīng)用弱密碼MD5加密腳本的實(shí)現(xiàn)鑒于存在安全性問題,可以在用戶密碼被創(chuàng)建時生成一個隨機(jī)字符串(

Salt)與用戶口令連接在一起,然后再用散列函數(shù)對這個宇符串進(jìn)行MD5加密Salt如:Salt值的數(shù)目足夠大實(shí)際上消除了對常用口令采用的宇典式破解原因:攻擊者不可能在數(shù)據(jù)庫中存儲那么多Salt和用戶密碼組合后的MD5值MD5加密腳本的實(shí)現(xiàn)鑒于存在安全性問題,可以在用戶密碼被創(chuàng)建時生成一個隨機(jī)字符串(

Salt)與用戶口令連接在一起,然后再用散列函數(shù)對這個宇符串進(jìn)行MD5加密Salt

更安全的做法給每個密碼設(shè)置一個隨機(jī)的Salt值即使通過暴力枚舉破解了一個用戶的密碼,也很難再破解其他用戶的密碼總結(jié)重點(diǎn):md5加密的腳本編寫使用Python編程方式舉例說明Base64編碼DES加密AES加密密碼學(xué)是信息安全的基礎(chǔ)口令破解字典腳本的編寫口令字典生成的原理口令字典設(shè)置有針對性的口令口令字典生成的原理搜集到的信息被攻擊對象設(shè)定口令的規(guī)律和習(xí)慣字典社會工程學(xué)口令字典生成的原理常見的用戶口令和默認(rèn)口令利用管理員信息自動生成的口令社會工程學(xué)口令字典口令字典生成的原理張偉person_information搜索引擎社交網(wǎng)絡(luò)搜集到的信息越多,得到的字典中所包含正確的密碼概率就越大口令字典生成的原理TopPwd網(wǎng)絡(luò)搜索常見的用戶口令和默認(rèn)口令經(jīng)常使用的口令服務(wù)以及軟件的默認(rèn)口令口令字典生成的過程讀取個人信息文件,存入用戶信息列表特殊字符串存入特殊字符列表將常用口令字典文件寫入新生成的字典文件處理個人信息,生成各種組合寫入字典文件口令字典生成的過程處理個人信息,生成各種組合寫入字典文件把個人信息大于等于8位的直接輸出到字典對于小于8位的個人信息利用數(shù)字進(jìn)行補(bǔ)全到8位并輸出到字典把個人信息元素兩兩進(jìn)行相互拼接,大于等于8位的輸出到字典在個人信息元素兩兩拼接后加入特殊字符,大于等于8位就輸出到字典腳本代碼如何編寫Itertools模塊Itertools模塊itertools是Python內(nèi)置的模塊按要求在字符集中生成相應(yīng)的組合用法簡單且功能強(qiáng)大可提供多種函數(shù)Itertools模塊功能:將元素進(jìn)行排列有兩個參數(shù)permutations(iterable,r)第一個參數(shù)是要選擇的字符集第二個參數(shù)是要從字符集中選擇幾個字符進(jìn)行排列如果省略第二個參數(shù),則表示全排列Itertools模塊第一個參數(shù)我們設(shè)置為abc,第二個參數(shù)設(shè)置為2,就意味著在abc中選擇2個進(jìn)行排列permutations(iterable,r)如果第一個參數(shù)不變,而第二個參數(shù)不寫,則對abc進(jìn)行全排列permutations(iterable,r)Itertools模塊Itertools模塊功能:從多個字符集中取元素進(jìn)行組合參數(shù)可以有多個product(p[,q,...,][,repeat=1])前幾個都是字符集最后一個repeat參數(shù)是從各字符集中取元素的個數(shù),默認(rèn)為1個設(shè)置一個字符集abc,所取元素個數(shù)設(shè)置為2product(p[,q,...,][,repeat=1])Itertools模塊permutations(iterable,r)product(p[,q,...,][,repeat=1])Itertools模塊

product函數(shù)更多的時候是用于從多個字符表中取repeat個元素進(jìn)行排列。product(p[,q,...,][,repeat=1])Itertools模塊設(shè)置兩個字符表,一個為ab,一個為cd,分別從每個字符表中選一個元素進(jìn)行排列productItertools模塊Itertools模塊功能:elem元素n次或無限次重復(fù)有兩個參數(shù)第一個參數(shù)是字符集第二個參數(shù)是重復(fù)的次數(shù),如果省略則重復(fù)無限次repeat(elem[,n])repeat(elem[,n])Itertools模塊將abc這個字符集重復(fù)輸出兩次口令字典的編寫和運(yùn)行效果課程導(dǎo)入掌握了后臺管理員的口令,就掌握了Web網(wǎng)站的最高權(quán)限破解WEB后臺口令腳本的編寫后臺口令破解思路掌握了后臺管理員的口令,就掌握了Web網(wǎng)站的最高權(quán)限后臺口令破解思路窮舉法后臺口令破解思路窮舉法根據(jù)前期對于后臺管理員的信息收集,形成后臺系統(tǒng)管理員的個人基本信息如何編寫腳本模擬瀏覽器登錄Web網(wǎng)站模擬瀏覽器訪問Web網(wǎng)站請求方法、請求的URI、HTTP版本信息模擬瀏覽器訪問Web網(wǎng)站模擬瀏覽器訪問Web網(wǎng)站請求方法GET方法POST方法用于獲取請求頁面的指定信息要求被請求服務(wù)器接收附在請求后面的數(shù)據(jù),也就是請求正文常用于提交表單模擬瀏覽器訪問Web網(wǎng)站GET方法提交的參數(shù)是在URL中POST方法提交的參數(shù)是在消息體中發(fā)送的區(qū)別:提交參數(shù)在HTTP請求包的位置不同模擬瀏覽器訪問Web網(wǎng)站模擬瀏覽器向Web服務(wù)器發(fā)送HTTP請求,就要將完整的請求行、請求頭和請求正文提交如何編寫腳本模擬瀏覽器呢?Requests庫GET方法POST方法GET函數(shù)Requests庫GET函數(shù)r=requests.get(url,headers,params[,...])Requests庫GET函數(shù)r=requests.get(url,headers,params[,...])要訪問的網(wǎng)站的網(wǎng)址Requests庫GET函數(shù)r=requests.get(url,headers,params[,...])定制的http頭部信息包括“User-Agent”等內(nèi)容Requests庫GET函數(shù)r=requests.get(url,headers,params[,...])指定提交給URL的參數(shù)Requests庫GET函數(shù)r=requests.get(url,headers,params[,...])Requests庫GET函數(shù)r=requests.get(url,headers,params[,...])一般情況下,headers參數(shù)不是必須的如果Web服務(wù)器要求瀏覽器的類型和版本,我們就要使用headers來聲明我們的瀏覽器的信息headers參數(shù)需要使用字典類型定義head={'User-Agent':'Chrome/19.0.1036.7Safari/535.20'}Requests庫Requests庫Requests庫Requests庫Requests庫nameheadersRequestHeadersRequests庫nameheadersRequestHeadersUser-AgentRequests庫GET函數(shù)r=requests.get(url,headers,params[,...])指定提交給URL的參數(shù)當(dāng)訪問一個使用GET方法提交請求的網(wǎng)站時,提交的變量名字和值會跟在URL的末尾Requests庫GET函數(shù)r=requests.get(url,headers,params[,...])指定提交給URL的參數(shù)Requests庫GET函數(shù)r=requests.get(url,headers,params[,...])指定提交給URL的參數(shù)使用python模擬瀏覽器訪問Web網(wǎng)站時,如果遇到需要用戶提交數(shù)據(jù)的情況,就要把URL后面的變量名和變量值以字典的形式列出來Requests庫GET函數(shù)pm={'contents':'abc'}變量名變量值Requests庫GET函數(shù)POST函數(shù)Requests庫POST函數(shù)r=requests.post(url,headers,data[,...])要訪問的網(wǎng)站的網(wǎng)址定制的http頭部信息Requests庫POST函數(shù)r=requests.post(url,headers,data[,...])需要提交給服務(wù)器的數(shù)據(jù)Requests庫POST函數(shù)r=requests.post(url,headers,data[,...])需要提交給服務(wù)器的數(shù)據(jù)post方法在提交數(shù)據(jù)時,變量名和變量值并不在url中顯示Requests庫POST函數(shù)請求行Requests庫POST函數(shù)請求頭Requests庫POST函數(shù)請求內(nèi)容Requests庫POST函數(shù)POST函數(shù)的調(diào)用Requests庫不管是調(diào)用get函數(shù)還是post函數(shù),都會有一個返回值,也就是我們發(fā)送http請求到Web服務(wù)器后得到相應(yīng)的響應(yīng)。!Requests庫Reponse對象屬性含義status_code響應(yīng)狀態(tài)碼,1XX表示成功,請求已被成功接收,需要繼續(xù)處理。2XX表示成功,請求已被成功接收、理解、接受。3XX表示重定向,要完成請求必須進(jìn)行更進(jìn)一步處理。4XX表示客戶端錯誤,請求有語法錯誤或請求無法實(shí)現(xiàn)。5XX表示服務(wù)器端錯誤,服務(wù)器處理請求時出錯。text響應(yīng)內(nèi)容的字符串形式,url對應(yīng)的頁面內(nèi)容。encoding從HTTPheader中的charset猜測的響應(yīng)內(nèi)容編碼方式。contentHTTP響應(yīng)內(nèi)容的二進(jìn)制形式。headershttp響應(yīng)內(nèi)容的頭部內(nèi)容。apparent_encoding從內(nèi)容分析出的響應(yīng)內(nèi)容的編碼方式(備選編碼方式)。編寫腳本實(shí)操課程導(dǎo)入FTP是一種文件傳輸協(xié)議,用戶通過FTP服務(wù)可以從客戶機(jī)向遠(yuǎn)程主機(jī)上傳或下載文件,常用于網(wǎng)站代碼維護(hù)、日常源碼備份等。如果攻擊者通過FTP匿名訪問或者破解弱口令獲取登錄FTP服務(wù)器的權(quán)限,將可直接上傳攻擊腳本來進(jìn)一步滲透提權(quán),直至控制整個網(wǎng)站服務(wù)器。課程導(dǎo)入破解FTP口令腳本的編寫FTP服務(wù)環(huán)境在資源管理器地址欄中輸入“”FTP服務(wù)環(huán)境自動以匿名用戶身份登錄FTP服務(wù)器FTP服務(wù)環(huán)境在空白處右鍵選擇“登錄”,會打開登錄FTP的登錄窗口FTP服務(wù)環(huán)境輸入登錄的用戶名和密碼,也可登錄到FTP服務(wù)器編寫腳本模擬客戶端登錄FTP服務(wù)器的過程FTP口令破解腳本的設(shè)計思路使用之前的用戶名和口令字典登錄登陸成功用戶名和口令正確將用戶名和口令寫入破解結(jié)果文件中FTP口令破解腳本的設(shè)計思路定義了FTP類ftplib模塊其中的函數(shù)可用來實(shí)現(xiàn)簡單的ftp客戶端,用于上傳或下載文件模擬FTP客戶端訪問FTP服務(wù)器FTP類的使用f=ftplib.FTP(host='',user='',passwd='',acct='',timeout=None,source_address=None)模擬FTP客戶端訪問FTP服務(wù)器FTP類的使用f=ftplib.FTP(host='',user='',passwd='',acct='',timeout=None,source_address=None)FTP服務(wù)器的域名或IP地址默認(rèn)情況下,該參數(shù)為空模擬FTP客戶端訪問FTP服務(wù)器FTP類的使用f=ftplib.FTP(host='',user='',passwd='',acct='',timeout=None,source_address=None)登錄FTP服務(wù)器的用戶名和密碼該參數(shù)默認(rèn)為空模擬FTP客戶端訪問FTP服務(wù)器FTP類的使用f=ftplib.FTP(host='',user='',passwd='',acct='',timeout=None,source_address=None)提供記賬信息accountinginformation僅少數(shù)系統(tǒng)實(shí)現(xiàn)了該特性模擬FTP客戶端訪問FTP服務(wù)器FTP類的使用f=ftplib.FTP(host='',user='',passwd='',acct='',timeout=None,source_address=None)指定連接超時的時間模擬FTP客戶端訪問FTP服務(wù)器FTP類的使用f=ftplib.FTP(host='',user='',passwd='',acct='',timeout=None,source_address=None)一個(host,port)元組用來指定客戶端的源地址和源端口這兩項(xiàng)默認(rèn)也為None模擬FTP客戶端訪問FTP服務(wù)器使用FTP類定義創(chuàng)建一個FTP對象使用FTP類中的函數(shù)與FTP服務(wù)器進(jìn)行交互模擬FTP客戶端訪問FTP服務(wù)器函數(shù)參數(shù)說明說明connect(host='',port=0,

timeout=None,source_address=None)host:FTP服務(wù)器地址;port:FTP服務(wù)端口號,默認(rèn)端口為21;timeout:指定連接超時的時間,若不指定則使用全局超時參數(shù);source_address是一個(host,port)元組,用來指定客戶端的源地址和源端口。用于連接FTP服務(wù)器。login(user='anonymous',passwd='',acct='')user:指定登錄的用戶名,若未指定則使用匿名用戶anonymouspasswd:指定登錄的口令acct:記賬信息在連接FTP服務(wù)器時用以驗(yàn)證使用getwelcome()連接成功返回“welcome”信息。sendcmd(cmd)cmd:要發(fā)送的原始命令發(fā)送簡單命令給服務(wù)器,并返回相應(yīng)字符串什么是FTP原始命令?經(jīng)過客戶端程序優(yōu)化后的命令模擬FTP客戶端訪問FTP服務(wù)器客戶端FTP服務(wù)器模擬FTP客戶端訪問FTP服務(wù)器FTP類的函數(shù)名國際標(biāo)準(zhǔn)文件定義了FTP原始命令cmd參數(shù)由FTP函數(shù)名了解函數(shù)的功能在cmd參數(shù)中設(shè)置相應(yīng)的命令模擬FTP客戶端訪問FTP服務(wù)器FTP原始命令命令功能描述CWD<dirpath>改變服務(wù)器上的工作目錄DELE<filename>刪除服務(wù)器上的指定文件LIST<name>如果是文件名列出文件信息,如果是目錄則列出文件列表MKD<directory>在服務(wù)器上建立指定目錄NLST<directory>列出指定目錄內(nèi)容PASS<password>系統(tǒng)登錄密碼PWD顯示當(dāng)前工作目錄QUIT從FTP服務(wù)器上退出登錄RETR<filename>從服務(wù)器上找回(復(fù)制)文件STOR<filename>儲存(復(fù)制)文件到服務(wù)器上USER<username>>系統(tǒng)登錄的用戶名模擬FTP客戶端訪問FTP服務(wù)器FTP的原始命令客戶端FTP服務(wù)器sendcmd(cmd)FTP類函數(shù)函數(shù)參數(shù)說明說明retrbinary(cmd,callback,blocksize=8192,rest=None)cmd:RETR命令callback:獲取的數(shù)據(jù)塊將要調(diào)用的函數(shù)blocksize:數(shù)據(jù)塊的最大尺寸rest:是請求文件中的偏移量(單位為字節(jié)),它告訴服務(wù)器從請求的偏移量開始發(fā)送文件,而不是從文件起始處開始發(fā)送文件以BINARY模式獲取文件retrlines(cmd,callback=None)cmd:RETR命令,callback:獲取的數(shù)據(jù)塊將要調(diào)用的函數(shù),默認(rèn)可以沒有以ASCII模式獲取文件或者文件夾列表storbinary(cmd,fp,blocksize=8192,callback=None,rest=None)cmd:STOR命令;fp:文件對象,以read()方法讀取文件直到EOF,以供存儲;blocksize:數(shù)據(jù)塊大??;callback:對數(shù)據(jù)塊進(jìn)行處理的方法。rest:從該偏移量開始傳輸文件以BINARY模式上傳文件storlines(cmd,fp,callback=None)cmd:STOR命令;fp:文件對象,以read()方法讀取文件直到EOF,以供存儲;callback:對數(shù)據(jù)塊進(jìn)行處理的方法。以ASCII模式上傳文件模擬FTP客戶端訪問FTP服務(wù)器ASCII傳輸模式可以根據(jù)目標(biāo)操作系統(tǒng)的不同對文件進(jìn)行自動調(diào)整,將原始文件的回車換行轉(zhuǎn)換為系統(tǒng)對應(yīng)的回車換行字符CGI腳本和普通HTML文件或其他文本文件可以用ASCII模式傳輸模擬FTP客戶端訪問FTP服務(wù)器BINARY傳輸模式二進(jìn)制傳輸在傳輸中保存文件的位序,以便原始文件和拷貝文件是逐位一一對應(yīng)的,即使目的地機(jī)器上該文件是沒意義的對于一般的可執(zhí)行文件、壓縮文件和圖片等,都可以用BINARY傳輸模式模擬FTP客戶端訪問FTP服務(wù)器函數(shù)參數(shù)說明說明dir(argument[,...])argument:文件夾路徑使用LIST命令獲取某路徑下的文件夾列表,默認(rèn)為當(dāng)前目錄delete(filename)filename:文件名移除服務(wù)器中的某文件,若成功返回響應(yīng)文本,否則返回error_perm(許可錯誤)或error_reply(其他錯誤)quit()向服務(wù)器發(fā)送QUIT命令后,關(guān)閉連接,若服務(wù)器無法識別該命令,會響應(yīng)錯誤FTP類的函數(shù)模擬FTP客戶端訪問FTP服務(wù)器模擬FTP客戶端訪問FTP服務(wù)器破解FTP口令腳本的編寫實(shí)操課程導(dǎo)入SSH(SecureShell)是目前較可靠、專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議,主要用于給遠(yuǎn)程登錄會話數(shù)據(jù)進(jìn)行加密,保證數(shù)據(jù)傳輸?shù)陌踩?。課程導(dǎo)入SSH口令被攻擊者破解可直接登錄系統(tǒng)控制服務(wù)器的所有權(quán)測試SSH弱口令使用Python腳本對SSH弱口令進(jìn)行滲透測試SSH協(xié)議的工作原理SSH協(xié)議的工作原理Telnet遠(yuǎn)程登錄協(xié)議傳輸過程中沒有使用任何加密方式數(shù)據(jù)通過明文方式傳輸不安全SSH協(xié)議的工作原理SSH遠(yuǎn)程登錄協(xié)議傳輸過程中使用了加密技術(shù),可以有效地防止遠(yuǎn)程管理過程中的信息泄露問題首選協(xié)議SSH的安全驗(yàn)證SSH的安全驗(yàn)證只要知道賬戶和密碼就可以登錄到遠(yuǎn)程主機(jī),并且所有傳輸?shù)臄?shù)據(jù)都會被加密如果有別的服務(wù)器冒充真正的服務(wù)器,那么將無法避免“中間人”攻擊如果賬戶密碼被破解,這種安全驗(yàn)證也將失去意義01基于密碼的安全驗(yàn)證SSH的安全驗(yàn)證02基于密鑰的安全驗(yàn)證authorized_keysIP和用戶名①②③隨機(jī)字符串④隨機(jī)字符串⑤驗(yàn)證通過,允許登錄⑥避免“中間人”攻擊避免暴力破解authorized_keys使用Python模擬SSH客戶端登錄SSH服務(wù)器模擬SSH客戶端登錄服務(wù)器Python中的paramiko模塊是一個用SSH實(shí)現(xiàn)遠(yuǎn)程控制的第三方庫模塊。

通過它可以實(shí)現(xiàn)遠(yuǎn)程命令執(zhí)行、文件傳輸、中間SSH代理等功能,輕松地實(shí)現(xiàn)對遠(yuǎn)程服務(wù)器的控制和操作。Paramiko模塊中的函數(shù)模擬SSH客戶端登錄服務(wù)器01創(chuàng)建SSHClinet客戶端對象ssh=paramiko.SSHClinet()模擬SSH客戶端登錄服務(wù)器三種主要的PolicyAutoAddPolicy自動添加RejectPolicy拒絕WarningPolicy警告02設(shè)置連接的遠(yuǎn)程主機(jī)沒有主機(jī)密鑰或HostKeys對象時的策略ssh.set_missing_host_key_policy(policy)模擬SSH客戶端登錄服務(wù)器此密鑰是與主機(jī)之間的信任機(jī)制如果key被破壞或更改,那么客戶端會拒絕連接客戶端與服務(wù)器(host)首次連接模擬SSH客戶端登錄服務(wù)器如果在“known_hosts”中沒有保存相關(guān)的信息,SSHClient默認(rèn)行為是拒絕連接服務(wù)器上的“known_hosts”文件模擬SSH客戶端登錄服務(wù)器在程序中無法輸入“yes”和服務(wù)端進(jìn)行通信,連接就會被拒絕客戶端與服務(wù)器(host)首次連接模擬SSH客戶端登錄服務(wù)器02設(shè)置連接的遠(yuǎn)程主機(jī)沒有主機(jī)密鑰或HostKeys對象時的策略ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())自動添加主機(jī)名及主機(jī)秘鑰到本地HostKeys對象,并將其保存可以不依賴known_hosts文件03連接服務(wù)器ssh.connect(hostname,port=22,username=None,password=None,pkey=None,key_filename=None,timeout=None,...)參數(shù)含義hostname(str類型)連接的目標(biāo)主機(jī)地址port(int類型)連接目標(biāo)主機(jī)的端口,默認(rèn)為22username(str類型)登錄的用戶名(默認(rèn)為當(dāng)前的本地用戶名)password(str類型)登錄的密碼,用于身份校驗(yàn)或解鎖私鑰pkey(Pkey類型)一個文件名或文件名列表,用于私鑰的身份驗(yàn)證key_filename(strorlist(str)類型)私鑰方式用于身份驗(yàn)證timeout(float類型)一個可選的超時時間(以秒為單位)的TCP連接模擬SSH客戶端登錄服務(wù)器04遠(yuǎn)程執(zhí)行命令stdin,stdout,stderr=ssh.exec_command(command,bufsize=-1,timeout=None,get_pty=False,environment=None)參數(shù)含義command(str類型)執(zhí)行的命令串bufsize(int類型)文件緩沖區(qū)大小,默認(rèn)為-1(不限制)返回值是一個包括被執(zhí)行命令的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤的三元組模擬SSH客戶端登錄服務(wù)器05關(guān)閉連接ssh.close()向SSH服務(wù)傳輸文件接收SSH服務(wù)傳輸?shù)奈募鶕?jù)連接服務(wù)器的目的不同,paramiko模塊中還包含許多其他的功能模擬SSH客戶端登錄服務(wù)器編寫腳本模擬SSH客戶端登錄服務(wù)器模擬SSH客戶端登錄服務(wù)器模擬SSH客戶端登錄服務(wù)器模擬SSH客戶端登錄服務(wù)器模擬SSH客戶端登錄服務(wù)器IP地址登錄用戶名口令模擬SSH客戶端登錄服務(wù)器創(chuàng)建SSHClinet對象模擬SSH客戶端登錄服務(wù)器設(shè)置自動添加策略模擬SSH客戶端登錄服務(wù)器連接服務(wù)器模擬SSH客戶端登錄服務(wù)器發(fā)送命令模擬SSH客戶端登錄服務(wù)器輸出結(jié)果模擬SSH客戶端登錄服務(wù)器關(guān)閉連接編寫破解SSH口令的腳本SSH口令破解腳本的設(shè)計思路窮舉法暴力破解使用已經(jīng)生成的用戶名字典和口令字典去登錄SSH服務(wù)器登錄成功,則說明該用戶名和口令正確,可將該用戶名和口令寫入破解結(jié)果文件中登錄失敗,則拋出paramiko.ssh_exception.AuthenticationException異常,可以終止本次登錄,嘗試下一組用戶名和口令具體的代碼和運(yùn)行效果網(wǎng)絡(luò)嗅探腳本的編寫網(wǎng)絡(luò)嗅探的原理安裝各種專業(yè)的安全軟件系統(tǒng)及時更新補(bǔ)丁口令盡可能復(fù)雜在流量攻擊面前,這些防護(hù)就會顯得無能為力網(wǎng)絡(luò)嗅探的原理與其他設(shè)備進(jìn)行通信時就會產(chǎn)生流量當(dāng)這些流量脫離了你的計算機(jī)后,其安全就不能得到有效的保障網(wǎng)絡(luò)嗅探的原理流量嗅探敏感數(shù)據(jù)網(wǎng)絡(luò)嗅探的原理互聯(lián)網(wǎng)中的流量都是以數(shù)據(jù)包的形式傳送的,流量嗅探是對數(shù)據(jù)包中的流量進(jìn)行數(shù)據(jù)分析的一種手段。網(wǎng)絡(luò)嗅探的原理通過現(xiàn)成的網(wǎng)絡(luò)嗅探工具或者自編的網(wǎng)絡(luò)嗅探腳本可以捕獲到目標(biāo)網(wǎng)絡(luò)中的數(shù)據(jù)包只要能夠掌握數(shù)據(jù)包的協(xié)議格式,就能夠分析出這些數(shù)據(jù)所表示的意義網(wǎng)絡(luò)嗅探的原理基本原理讓網(wǎng)卡接收一切所能接收的數(shù)據(jù)網(wǎng)卡的工作原理計算機(jī)A源地址:A目的地址:CData計算機(jī)B計算機(jī)C計算機(jī)D一般網(wǎng)卡工作模式網(wǎng)卡的工作原理計算機(jī)A源地址:A目的地址:CData計算機(jī)B計算機(jī)C計算機(jī)D混雜(Promiscuous)模式混雜模式怎樣使網(wǎng)絡(luò)中的數(shù)據(jù)全部到達(dá)嗅探者的主機(jī)網(wǎng)絡(luò)嗅探的原理計算機(jī)A計算機(jī)B計算機(jī)C嗅探者的計算機(jī)HUB在共享式網(wǎng)絡(luò)中,無須采取特別措施就能在一臺計算機(jī)上嗅探到其他計算機(jī)上的數(shù)據(jù)混雜模式共享式網(wǎng)絡(luò)中的嗅探這種嗅探是被動式的,被嗅探者無法發(fā)現(xiàn)網(wǎng)絡(luò)嗅探的原理交換機(jī)只會把數(shù)據(jù)幀發(fā)往接收者所在的端口交換式網(wǎng)絡(luò)中的嗅探其他端口的主機(jī)都無法接收到數(shù)據(jù),嗅探者也無法實(shí)現(xiàn)嗅探網(wǎng)絡(luò)嗅探的原理計算機(jī)A計算機(jī)B計算機(jī)C嗅探者的計算機(jī)HUB交換機(jī)只會把數(shù)據(jù)幀發(fā)往接收者所在的端口交換式網(wǎng)絡(luò)中的嗅探其他端口的主機(jī)都無法接收到數(shù)據(jù),嗅探者也無法實(shí)現(xiàn)嗅探網(wǎng)絡(luò)嗅探的原理通過MAC泛洪攻擊,使得交換機(jī)像HUB一樣工作,這樣嗅探者就能夠接收到其他端口發(fā)過來的數(shù)據(jù)交換式網(wǎng)絡(luò)中的嗅探網(wǎng)絡(luò)嗅探的原理網(wǎng)絡(luò)嗅探工具編寫網(wǎng)絡(luò)嗅探腳本網(wǎng)絡(luò)嗅探腳本的編寫sniff(count=0,store=1,offline=None,prn=None,filter=None,L2socket=None,timeout=None,opened_socket=None,stop_filter=None,iface=None)sniff()函數(shù)網(wǎng)絡(luò)嗅探腳本的編寫sniff()函數(shù)參數(shù)含義count指定抓取數(shù)據(jù)包的數(shù)量,設(shè)置為0時則一直捕獲store保存抓取的數(shù)據(jù)包或者丟棄,1為保存,0為丟棄offline從pcap文件中讀取數(shù)據(jù)包,而不進(jìn)行嗅探,默認(rèn)為Noneprn為每個數(shù)據(jù)包定義一個回調(diào)函數(shù)filter流量的過濾規(guī)則,使用BPF(BerkeleyPacketFilter,柏克利封包過濾器)的語法L2socket使用給定的L2sockettimeout在給定的時間后停止嗅探,默認(rèn)為Noneopened_socket對指定的對象使用.recv進(jìn)行讀取stop_filter定義一個函數(shù),決定在抓到指定的數(shù)據(jù)之后停止iface指定抓包的網(wǎng)卡,不指定則代表所有網(wǎng)卡在IDLE環(huán)境中試用函數(shù)網(wǎng)絡(luò)嗅探腳本的編寫在IDLE的交互界面輸入這樣一條語句,通過VMnet8這個網(wǎng)卡嗅探目的地址為40的數(shù)據(jù)包在Windows的命令行界面中發(fā)送ping命令,sniff函數(shù)就開始捕獲數(shù)據(jù)包網(wǎng)絡(luò)嗅探腳本的編寫想看到實(shí)時的數(shù)據(jù),我們需要加上prn參數(shù),可以用一個lambda表達(dá)式調(diào)用summary函數(shù)來讀取結(jié)果捕獲結(jié)果使用sniff函數(shù)的注意事項(xiàng)網(wǎng)絡(luò)嗅探腳本的編寫01filter參數(shù)必不可少,否則會得到大量的無用數(shù)據(jù),不利于我們對數(shù)據(jù)的分析網(wǎng)絡(luò)嗅探腳本的編寫02如果你的計算機(jī)上有多個網(wǎng)卡,一定要利用iface參數(shù)指明使用網(wǎng)卡的名字,否則可能什么數(shù)據(jù)也捕獲不到網(wǎng)絡(luò)嗅探腳本的編寫03sniff()捕獲到的數(shù)據(jù)實(shí)際上是scapy.plist.PacketList類的對象,從它的名字可以看出它是一個列表網(wǎng)絡(luò)嗅探腳本的編寫查看列表數(shù)據(jù)包內(nèi)容summary()方法show()方法網(wǎng)絡(luò)嗅探腳本的編寫查看列表數(shù)據(jù)包內(nèi)容查看第1行的數(shù)據(jù)可以使用packet[1].show()方法網(wǎng)絡(luò)嗅探腳本的編寫查看列表數(shù)據(jù)包內(nèi)容訪問每層協(xié)議packet[1][協(xié)議名]訪問每層協(xié)議的各字段packet[1][協(xié)議名].字段名訪問IP層的源地址packet[1][IP].src網(wǎng)絡(luò)嗅探腳本的編寫04如果需要在程序中分析數(shù)據(jù),則會需要更多的代碼來處理數(shù)據(jù),我們可以定義一個回調(diào)函數(shù),然后讓prn參數(shù)調(diào)用即可在捕獲到ping數(shù)據(jù)包后,僅顯示源地址和目的地址網(wǎng)絡(luò)嗅探腳本的編寫04如果需要在程序中分析數(shù)據(jù),則會需要更多的代碼來處理數(shù)據(jù),我們可以定義一個回調(diào)函數(shù),然后讓prn參數(shù)調(diào)用即可在捕獲到ping數(shù)據(jù)包后,僅顯示源地址和目的地址網(wǎng)絡(luò)嗅探腳本的編寫05除了將返回的數(shù)據(jù)包顯示出來,還可以將這些數(shù)據(jù)包保存,用專業(yè)的工具查看、分析這些數(shù)據(jù)包目前最為通用的文件格式為pcap,可用wireshark查看文件使用wrpcap函數(shù)可以保存數(shù)據(jù)包具體代碼和運(yùn)行效果課程延伸設(shè)置filter參數(shù)的過濾條件想要的數(shù)據(jù)包實(shí)現(xiàn)復(fù)雜網(wǎng)絡(luò)嗅探功能對數(shù)據(jù)包的分析不是本節(jié)課需要學(xué)習(xí)的內(nèi)容課堂導(dǎo)入ARP毒化技術(shù)——分析并提取內(nèi)網(wǎng)流量中的敏感信息流量分析APR毒化腳本的編寫ARP毒化的工作原理ARP毒化的工作原理ARP協(xié)議ARP是TCP/IP協(xié)議簇中的一個協(xié)議TCP/IP模型MAC地址IP地址網(wǎng)絡(luò)接口層EthernetFDDIATM網(wǎng)際層IPARPRARPICMP傳輸層應(yīng)用層網(wǎng)卡地址/物理地址以太網(wǎng)協(xié)議協(xié)議負(fù)責(zé)局域網(wǎng)中的數(shù)據(jù)傳輸將IP地址轉(zhuǎn)換為MAC地址ARP協(xié)議的工作原理ARP協(xié)議的工作原理主機(jī)ARP緩存表對應(yīng)的MAC地址是否在緩存表中如ARP緩存表中有這條記錄,就可直接與這臺主機(jī)通信主機(jī)ARP緩存表我是,我的MAC地址是AA:AA:AA:AA:AA:AA,請問:IP地址為的MAC地址是多少?我是,我的MAC地址是CC:CC:CC:CC:CC:CC①②②③④ARP協(xié)議的工作原理網(wǎng)關(guān)的ARP緩存表ARP協(xié)議的缺陷主機(jī)A接收到的ARP應(yīng)答消息不會檢測該消息的真實(shí)性,而直接將該消息中的IP和MAC地址記入ARP緩存表中如果ARP緩存表中有相同的地址項(xiàng),則會對其更新APR協(xié)議是建立在網(wǎng)絡(luò)中各個主機(jī)相互信任的基礎(chǔ)上即使主機(jī)A沒有發(fā)送ARP請求,如果它收到了一個ARP響應(yīng)消息,也會存入自己的ARP緩存表中我是,我的MAC地址是BB:BB:BB:BB:BB:BB我是,我的MAC地址是BB:BB:BB:BB:BB:BB主機(jī)的ARP緩存表ARP毒化ARP毒化攻擊ARP毒化網(wǎng)關(guān)的ARP緩存表主機(jī)的ARP緩存表ARP毒化攻擊ARP毒化攻擊的危害網(wǎng)關(guān)的ARP緩存表網(wǎng)關(guān)的ARP緩存表ARP毒化攻擊ARP毒化攻擊的危害中間人攻擊主機(jī)的ARP緩存表ARP毒化工具實(shí)現(xiàn)ARP毒化的功能黑客工具ARP毒化腳本設(shè)計思路我是,我的MAC地址是B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論