主頁 > 知識庫 > 使用Ruby實(shí)現(xiàn)FTP密碼破解

使用Ruby實(shí)現(xiàn)FTP密碼破解

熱門標(biāo)簽:客戶服務(wù) 電話運(yùn)營中心 企業(yè)做大做強(qiáng) 語音系統(tǒng) 百度AI接口 硅谷的囚徒呼叫中心 呼叫中心市場需求 Win7旗艦版

這篇文章我將帶大家利用Ruby,來構(gòu)建我們自己的FTP密碼破解器。并希望通過這個(gè)例子,讓大家明白暴力攻擊的概念及其重要性。好了話不多說,下面讓我們開始吧!

何為暴力攻擊?

暴力攻擊這個(gè)詞,其實(shí)對于許多安全圈的小伙伴來說都并不陌生,可謂是簡單粗暴。但對于許多攻擊者而言,暴力攻擊卻是不可或缺的一種攻擊手段。在實(shí)際應(yīng)用中,由于暴力攻擊需要消耗大量的時(shí)間和資源,因此往往都不會(huì)成為攻擊者首選的方案,但它卻會(huì)是攻擊者最后的選項(xiàng)。

例如我們設(shè)置一個(gè)如下場景:

你現(xiàn)在想要訪問你所在公司的FTP(文件傳輸協(xié)議)服務(wù)器。你幾乎嘗試了所有可能獲取賬號密碼的方法,但由于目標(biāo)FTP服務(wù)器安全性做的非常的好也不存在任何安全漏洞,同時(shí)該公司的員工安全意識也非常的強(qiáng),你也無法進(jìn)行社會(huì)工程學(xué)的攻擊。面對這種幾近極端的情況,最終你不得不采取暴力攻擊的方式。

首先,你會(huì)需要提前準(zhǔn)備一個(gè)用于暴力破解的攻擊字典。然后將字典拖放到密碼破解工具的指定位置,密碼破解工具會(huì)對字典中的單詞列表進(jìn)行逐一嘗試并嘗試登陸FTP服務(wù)器,直至匹配出正確的FTP服務(wù)密碼。

簡單吧?雖然暴力攻擊非常簡單粗暴,但它的威力卻不容小覷。有時(shí)它將決定我們滲透測試的成敗與否!下面,讓我們來構(gòu)建一個(gè)屬于我們自己的FTP密碼破解器吧!

構(gòu)建屬于自己的FTP密碼破解器

這里我們將會(huì)使用到Ruby腳本,來構(gòu)建我們的FTP密碼破解器。如果你不是很了解Ruby腳本,不用擔(dān)心,我已經(jīng)為大家準(zhǔn)備了 Ruby的基礎(chǔ)教程 ,該教程涵蓋了本文中所用到的一些Ruby基礎(chǔ)知識,因此我建議大家在閱讀本文之前,先去掌握一些Ruby的基礎(chǔ)知識,以便更好地閱讀本文。下面我們直接進(jìn)入代碼部分。

就像Python腳本一樣,在代碼起始位置我們需要聲明為Ruby腳本,并引入我們所需的函數(shù)庫以及獲取用戶的輸入信息:

這里我們只需要兩個(gè)庫文件。我們需要利用 socket 庫與FTP服務(wù)器進(jìn)行通信,以進(jìn)行暴力破解的嘗試登錄連接操作。而 timeout 庫則用于設(shè)置與目標(biāo)服務(wù)器之間的第一次超時(shí)時(shí)間,如果服務(wù)器無法訪問,則會(huì)向我們返回超時(shí)提示。

接下來我們需要檢查ARGV列表的長度。該列表會(huì)在腳本啟動(dòng)時(shí)生成,列表中包含了用戶從命令行順序輸入的所有參數(shù)。這里我們使用的unless語句相當(dāng)于if not,如果這里ARGV接收的參數(shù)長度不等于3那么,該腳本將會(huì)打印使用規(guī)則并退出。

以下這段代碼將會(huì)開始嘗試連接目標(biāo)服務(wù)器,并檢查目標(biāo)服務(wù)器是否可正常通信:

以上代碼我們簡單的使用了socket庫并丟了個(gè)IP地址,來建立與目標(biāo)服務(wù)器的通信連接。同時(shí),我們使用了timeout庫做了一個(gè)十秒鐘的超時(shí)循環(huán),如果連接在十秒內(nèi)未完成,腳本將會(huì)在客戶端界面提示用戶并關(guān)閉腳本。有了這些基本的功能后,下面我們使用以下函數(shù)來讀取用戶的字典列表文件:

這個(gè)功能函數(shù)的實(shí)現(xiàn)其實(shí)非常簡單。我們將文件路徑作為函數(shù)的一個(gè)參數(shù),并打印讀取的單詞列表。然后我們利用file.open()函數(shù)來打開文件,并讀取文件內(nèi)容。在讀取文件時(shí),我們以每行文本末尾的 ‘\n' 換行符來分割列表中的內(nèi)容,這樣我們就能獲取到我們需要的密碼列表了。隨后我們會(huì)將該列表存儲在全局變量中,并將文件關(guān)閉進(jìn)行下一步的操作。如果文件讀取失敗,腳本將會(huì)在客戶端界面提示用戶,并退出腳本。現(xiàn)在我們已經(jīng)具備了以上兩個(gè)FTP密碼破解器的基本功能函數(shù),接下來我們就可以來實(shí)際構(gòu)建嘗試登錄到服務(wù)器的功能函數(shù)了:

這個(gè)函數(shù)非常重要,因?yàn)樗鼘槲覀冞M(jìn)行實(shí)際的破解操作。這里我們首先創(chuàng)建了一個(gè)新的TCP套接字并將其連接到FTP服務(wù)器,然后我們等待FTP服務(wù)器的banner響應(yīng)。當(dāng)我們成功接收banner響應(yīng)后,我們開始輸入我們的用戶名,并等待密碼輸入提示,接著我們將密碼嘗試發(fā)送到服務(wù)器。這時(shí),我們將從服務(wù)器接收數(shù)據(jù),并將其存儲在一個(gè)變量中。該數(shù)據(jù)將會(huì)包含我們嘗試登錄的結(jié)果。

我們通過字符串“230”來判斷,我們是否成功登陸目標(biāo)FTP服務(wù)器(“230”為FTP成功登錄的響應(yīng)碼)。否則返回false。到此為止,我們的FTP密碼破解器已基本成型,最后我們要做的就是調(diào)用并整合以上的功能函數(shù),開始執(zhí)行我們的暴力攻擊:

以上代碼將調(diào)用我們之前創(chuàng)建的函數(shù),并對目標(biāo)FTP服務(wù)器進(jìn)行檢查以及讀取我們提供的字典列表文件。接著我們將開始對目標(biāo)FTP服務(wù)器進(jìn)行攻擊,這里使用了一個(gè)循環(huán),將對用戶提供的單詞列表進(jìn)行逐一嘗試。如果最終密碼成功匹配,腳本將會(huì)將破解結(jié)果返回給用戶,并關(guān)閉腳本。下面讓我們來測試下我們的成果!

暴力攻擊測試

首先,我將創(chuàng)建一個(gè)字典文件。由于這只是一個(gè)例子,因此我的字典文件非常的簡短。但在實(shí)際環(huán)境中,一般情況下我們都需要使用非常大的字典文件。以下是我創(chuàng)建的單詞列表:

我們來運(yùn)行我們的腳本,可以看到這里有一個(gè)簡單的使用提示:

現(xiàn)在,我們根據(jù)該腳本的使用規(guī)則提供相應(yīng)的參數(shù)值,并執(zhí)行腳本。經(jīng)過一段時(shí)間的等待,我們可以看到FTP服務(wù)器密碼被成功爆破:

總結(jié)

正如我開頭所說的,暴力攻擊雖然簡單粗暴,但對于攻擊者而言它有時(shí)將會(huì)決定我們滲透的成敗與否。因此作為我們安全測試人員,對于深入了解暴力攻擊的過程及原理有著非同尋常的意義。

您可能感興趣的文章:
  • ruby ftp封裝實(shí)例詳解

標(biāo)簽:濟(jì)南 山西 山西 崇左 長沙 安康 海南 喀什

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Ruby實(shí)現(xiàn)FTP密碼破解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266