這篇文章我將帶大家利用Ruby,來構建我們自己的FTP密碼破解器。并希望通過這個例子,讓大家明白暴力攻擊的概念及其重要性。好了話不多說,下面讓我們開始吧!
何為暴力攻擊?
暴力攻擊這個詞,其實對于許多安全圈的小伙伴來說都并不陌生,可謂是簡單粗暴。但對于許多攻擊者而言,暴力攻擊卻是不可或缺的一種攻擊手段。在實際應用中,由于暴力攻擊需要消耗大量的時間和資源,因此往往都不會成為攻擊者首選的方案,但它卻會是攻擊者最后的選項。
例如我們設置一個如下場景:
你現在想要訪問你所在公司的FTP(文件傳輸協議)服務器。你幾乎嘗試了所有可能獲取賬號密碼的方法,但由于目標FTP服務器安全性做的非常的好也不存在任何安全漏洞,同時該公司的員工安全意識也非常的強,你也無法進行社會工程學的攻擊。面對這種幾近極端的情況,最終你不得不采取暴力攻擊的方式。
首先,你會需要提前準備一個用于暴力破解的攻擊字典。然后將字典拖放到密碼破解工具的指定位置,密碼破解工具會對字典中的單詞列表進行逐一嘗試并嘗試登陸FTP服務器,直至匹配出正確的FTP服務密碼。
簡單吧?雖然暴力攻擊非常簡單粗暴,但它的威力卻不容小覷。有時它將決定我們滲透測試的成敗與否!下面,讓我們來構建一個屬于我們自己的FTP密碼破解器吧!
構建屬于自己的FTP密碼破解器
這里我們將會使用到Ruby腳本,來構建我們的FTP密碼破解器。如果你不是很了解Ruby腳本,不用擔心,我已經為大家準備了 Ruby的基礎教程 ,該教程涵蓋了本文中所用到的一些Ruby基礎知識,因此我建議大家在閱讀本文之前,先去掌握一些Ruby的基礎知識,以便更好地閱讀本文。下面我們直接進入代碼部分。
就像Python腳本一樣,在代碼起始位置我們需要聲明為Ruby腳本,并引入我們所需的函數庫以及獲取用戶的輸入信息:
這里我們只需要兩個庫文件。我們需要利用 socket 庫與FTP服務器進行通信,以進行暴力破解的嘗試登錄連接操作。而 timeout 庫則用于設置與目標服務器之間的第一次超時時間,如果服務器無法訪問,則會向我們返回超時提示。
接下來我們需要檢查ARGV列表的長度。該列表會在腳本啟動時生成,列表中包含了用戶從命令行順序輸入的所有參數。這里我們使用的unless語句相當于if not,如果這里ARGV接收的參數長度不等于3那么,該腳本將會打印使用規則并退出。
以下這段代碼將會開始嘗試連接目標服務器,并檢查目標服務器是否可正常通信:
新聞熱點
疑難解答