国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

Ruby實現(xiàn)FTP密碼破解的方法

2020-02-24 15:36:54
字體:
供稿:網(wǎng)友

武林技術頻道小編詳細Ruby實現(xiàn)FTP密碼破解的方法,它記錄了破解程序從思想到最終實現(xiàn)的整個過程,即使用多線程調(diào)用相應的字典進行測試,需要的朋友可以跟著小編的步伐來了解。

何為暴力攻擊?

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

例如我們設置一個如下場景:

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

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

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

構建屬于自己的FTP密碼破解器

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

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

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

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

以下這段代碼將會開始嘗試連接目標服務器,并檢查目標服務器是否可正常通信:

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

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

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

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

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

暴力攻擊測試

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

我們來運行我們的腳本,可以看到這里有一個簡單的使用提示:

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

總結

上述是武林技術頻道小編為大家?guī)淼腞uby實現(xiàn)FTP密碼破解的方法,如果你對Ruby腳本不太了解,并不需要擔心太多哦。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 静宁县| 应城市| 赞皇县| 惠州市| 台东县| 同仁县| 房山区| 城市| 宜宾市| 龙口市| 永丰县| 临澧县| 建平县| 广汉市| 迁西县| 藁城市| 体育| 洛浦县| 尉氏县| 大悟县| 青河县| 门源| 西安市| 禹城市| 灵丘县| 京山县| 织金县| 万宁市| 廊坊市| 新丰县| 刚察县| 武夷山市| 安新县| 穆棱市| 会昌县| 华阴市| 潢川县| 耒阳市| 陵川县| 临汾市| 漠河县|