<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 如何開始寫一個輔助模塊 Metasploit以其免費的開源 exploit- 彈出式shell模塊而聞名。但實際上,滲透測試人員更多依賴于輔助模塊,而且通常可以在不觸發單個漏洞的情況下完成成功的滲透。他們更方便,對失敗的懲罰通常要低得多。專業人員其實更喜歡輔助模塊。 關于輔助模塊的另一個有趣的事實是,其中一些與exploit沒有太大的區別。主要區別在于它是如何在Metasploit中定義的:如果一個模塊彈出一個shell,這是一個漏洞。如果不是,即使它利用了漏洞,它仍然屬于輔助類別。 所以你看,如果你是一個輔助模塊熱愛者,你是來對了。 ### 計劃你的模塊 就像編寫一個軟件一樣,在你開始寫代碼之前,你應該對你的輔助模塊有一個清晰明確的目標。在單個模塊中具有多個功能從來就不是一個好主意。你應該把它分解成多個模塊。 你也應該考慮你的模塊在不同情況下的表現。例如,如果要針對Tomcat服務器進行測試,那么如果使用Nginx,會發生什么情況?它會出錯并留下錯誤回溯?如果是這樣,你應該妥善處理。您的模塊是否需要目標機器的特定設置/條件?如果沒有,會發生什么?它會再次出錯嗎? 最重要的是,確保徹底測試你的模塊。在重要的戰斗中發現問題總是很難堪,這可能會讓你付出代價。 ### 輔助模塊的主要類別 一般來說,輔助模塊是根據他們的行為分類的,但是這有點不一致,所以你只需要用最好的判斷,找出最合適的模塊。以下是一些常見的列表: | 類別 | 描述 | | --- | --- | | admin | 在目標機器上修改,操作或操作某些東西的模塊 | | analyze | 我們最初為需要分析時間的密碼破解模塊創建了這個文件夾。 | | client | 我們最初為了社會工程目的創建了SMTP模塊的這個文件夾。 | | dos | 不言自明 拒絕服務模塊。 | |fuzzers | 如果你的模塊是fuzz,這就是它所屬的地方。確保根據協議將其放置在正確的子目錄中。 | | gather | 從單個目標收集或枚舉數據的模塊。 | | scanner | 使用Msf::Auxiliary::Scanner的模塊幾乎總是在這里。確保根據協議將其放置在的正確的子目錄。 | | server |服務器的模塊| |sniffer| 嗅探器的模塊。| 實際上在輔助目錄中還有幾個目錄,但這就是灰色區域的地方。是非常歡迎你來[看的](https://github.com/rapid7/metasploit-framework/tree/master/modules/auxiliary) ### The Msf::Auxiliary::Scanner mixin 這`Msf::Auxiliary::Scanner`mixin在輔助模塊大量使用。所以我們不妨說說,就在這里。mixin允許你能夠測試一系列主機,而且是多線程的。要使用它,首先你需要在你的`Metasploit3`類的范圍內包含mixin ~~~ include Msf::Auxiliary::Scanner ~~~ 包含這個mixin的時候,一些新的東西會被添加到你的模塊中。您將擁有一個名為“RHOSTS”的新數據存儲選項,該選項允許用戶指定多個主機。有一個新的“THREADS”選項,它允許執行期間運行的線程數量。跟蹤掃描進度的還有“ShowProgress”和“ShowProgressPercent” 通常,輔助模塊的主方法是“def run”。但是當你使`Msf::Auxiliary::Scanenrmixin`時,你需要使用def run_host(ip)。IP參數是目標機器。 ### 模板 這是一個輔助模塊的最基本的例子。我們將更多地解釋需要填充的字段: ~~~ ## # This module requires Metasploit: http://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## require 'msf/core' class MetasploitModule < Msf::Auxiliary def initialize(info = {}) super(update_info(info, 'Name' => 'Module name', 'Description' => %q{ Say something that the user might want to know. }, 'Author' => [ 'Name' ], 'License' => MSF_LICENSE )) end def run # Main function end end ~~~ 該名稱字段可以以供應商的名稱開頭,但是是可選的。然后基本上描述它是什么。例如:“Dolibarr ERP/CRM Login Utility” 在Description字段應該解釋模塊做什么,什么事情要留意,具體要求,多多益善。目標是讓用戶了解他所使用的內容,而不需要實際讀取模塊的源代碼并找出結果。相信我,他們中的大多數人不會。 Author 字段是你的名字。格式應該是“名稱”。如果你想在那里有你的Twitter,留下它作為一個評論,例如:“名稱#handle” 因為`Msf::Auxiliary::Scanner`mixin非常受歡迎,所以我們覺得你也需要一個模板。在這里: ~~~ ## # This module requires Metasploit: http://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## require 'msf/core' class MetasploitModule < Msf::Auxiliary include Msf::Auxiliary::Scanner def initialize(info = {}) super(update_info(info, 'Name' => 'Module name', 'Description' => %q{ Say something that the user might want to know. }, 'Author' => [ 'Name' ], 'License' => MSF_LICENSE )) end def run_host(ip) # Main method end end ~~~ ### 基本的git命令 Metasploit不再使用svn進行源代碼管理,而是使用git,所以了解git的一些技巧會有很長的路要走。 我們不是在這里教你git是多么的棒,我們知道它有一個學習曲線,新的用戶犯錯誤并不奇怪。 每隔一段時間,你的git”怒火"就會踢過來,我們理解。不過,重要的是要利用分支 。 每次創建模塊或對現有代碼進行一些更改時,都不應該在默認主分支上這樣做。為什么?因為當你使用msfupdate更新你的Metasploit倉庫的工具時,它會在合并這些改變之前做一個git reset,你就要和你所有的代碼說再見。 人們傾向于做的另一個錯誤是在提交拉取請求之前對主分支進行了任何更改.這是個壞主意,因為很可能你提交了你不打算改變的其他垃圾,或者你可能會要求我們合并其他不必要的提交歷史.只要一次提交就行了.感謝你提交模塊到社區,但不感謝你提交其他不必要的提交歷史. 所以作為一種習慣,當你想要做出新的東西或者改變某些東西的時候,從最新的主分支分叉一個新的分支開始,首先,先確認你是master分支,如果你使用`git status`,它將會告訴你現在所在分支 ~~~ $ git status # On branch upstream-master nothing to commit, working directory clean ~~~ 好的,接下來`git pull`從metasploit下載最新更改 ~~~ $ git pull Already up-to-date. ~~~ 現在,你準備開始一個新分支了.在這種情況,我們新分支的名字是"my_awesome_branch": ~~~ $ git checkout -b my_awesome_module Switched to a new branch 'my_awesome_module' ~~~ 現在你可以繼續前進 添加一個模塊.確認他在合適的路徑 ~~~ $ git add [module path] ~~~ 當你決定保存更改時,提交(如果只有一個模塊,你也可以這樣做,git commit -a所以你不必輸入模塊路徑,注意-a事實上意味著所有) ~~~ $ git commit [module path] ~~~ 完成后,推送您的更改,將您的代碼上傳到您的遠程分支“my_awesome_branch”。您必須推送您的更改才能提交拉取請求,或與互聯網上的其他人共享。 ~~~ $ git push origin my_awesome_branch ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看