## 載入外部模塊
如果您正在編寫或收集不屬于標準分發版的Metasploit模塊,那么您需要一種方便的方式在Metasploit中加載這些模塊。不要擔心,使用Metasploit的默認本地模塊搜索路徑`$HOME/.msf4/modules`是非常簡單的,而且還有一些注意事項
#### 鏡像真正的Metasploit模塊路徑
您必須首先建立一個符合Metasploit對路徑名稱預期的目錄結構。這通常意味著你應該首先創建一個`exploits`目錄結構,如下所示:
~~~
mkdir -p $HOME/.msf4/modules/exploits
~~~
如果你正在使用`auxiliary`或`post`模塊,或正在寫`payloads`.你將會想要`mkdir`它
#### 創建一個適當的類別
模塊按(有點任意)分類排序。這些可以是你喜歡的任何東西; 我通常使用`test`或`private`,但是如果您正在開發一個模塊,想將它提供給Metasploit發行版,您將需要鏡像真正的模塊路徑。例如
~~~
mkdir -p $ HOME /.msf4/modules/exploits/windows/fileformat
~~~
假設你正在開發Windows文件格式的exploit。
#### 創建模塊
一旦你有一個目錄放置它,隨時下載或開始編寫你的模塊。
### 測試全部
如果您已經運行了msfconsole,請使用reload_all命令來獲取新模塊。如果沒有,只需啟動msfconsole,他們就會自動提取。如果你想測試一些通用的東西,我有一個模塊放出來,在這里 https://gist.github.com/todb-r7/5935519.
所以讓我們試試看
~~~ bash
mkdir -p $HOME/.msf4/modules/exploits/test
curl -Lo ~/.msf4/modules/exploits/test/test_module.rb https://gist.github.com/todb-r7/5935519/raw/17f7e40ab9054051c1f7e0655c6f8c8a1787d4f5/test_module.rb
todb@ubuntu:~$ mkdir -p $HOME/.msf4/modules/exploits/test
todb@ubuntu:~$ curl -Lo ~/.msf4/modules/exploits/test/test_module.rb https://gist.github.com/todb-r7/5935519/raw/6e5d2da61c82b0aa8cec36825363118e9dd5f86b/test_module.rb
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1140 0 1140 0 0 3607 0 --:--:-- --:--:-- --:--:-- 7808
~~~
然后 在我的msfconsole窗口
~~~ bash
msf > reload_all
[*] Reloading modules from all module paths...
IIIIII dTb.dTb _.---._
II 4' v 'B .'"".'/|\`.""'.
II 6. .P : .' / | \ `. :
II 'T;. .;P' '.' / | \ `.'
II 'T; ;P' `. / | \ .'
IIIIII 'YvP' `-.__|__.-'
I love shells --egypt
=[ metasploit v4.6.2-2013052901 [core:4.6 api:1.0]
+ -- --=[ 1122 exploits - 707 auxiliary - 192 post
+ -- --=[ 307 payloads - 30 encoders - 8 nops
msf > use exploit/test/test_module
msf exploit(test_module) > info
Name: Fake Test Module
Module: exploit/test/test_module
Version: 0
Platform: Windows
Privileged: No
License: Metasploit Framework License (BSD)
Rank: Excellent
Provided by:
todb <todb@metasploit.com>
Available targets:
Id Name
-- ----
0 Universal
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
DATA Hello, world! yes The output data
Payload information:
Description:
If this module loads, you know you're doing it right.
References:
http://cvedetails.com/cve/1970-0001/
msf exploit(test_module) > exploit
[*] Started reverse handler on 192.168.145.1:4444
[+] Hello, world!
msf exploit(test_module) >
~~~
### 故障排除
這就是它的全部。人們(包我自己)到的最常見的問題是
* 試圖在 `$HOME/.msf4/modules/`創建一個模塊 這是行不通的.因為你需要指定它是一個exploit還是一個payload或者什么的。檢查`ls /opt/metasploit/apps/pro/msf3/modules/`(或者你安裝Metasploit的地方)
* 試圖在$HOME/.msf4/modules/auxiliary/創建一個模塊 這是行不通的,因為您至少需要一個分類.它可以是新的,像auxiliary/0day/或現有的一樣 像`auxiliary/scanner/scada/`
* 試圖在$HOME/.msf4/modules/exploit 或$HOME/.msf4/posts/創建一個模塊 注意目錄名稱的復數 它們是不同的 Exploits, payloads, encoders, 和 nops 是負數 . auxiliary 和 post 是單數
### Metasploit社區和Pro版本
請注意,Metasploit Community Edition 的$HOME目錄將會是root而不是您自己的用戶目錄.所以如果您希望模塊出現在Metasploit CE (or Express, or Pro) web UIs.您將需要講您的外部模塊放到`/root/.msf4/modules`。當然,這意味著您需要root權限訪問那臺機器,但是,您是Metasploit用戶,所以不應該太難。
另外請注意,如果您的模塊未顯示在Web UI中,則應重新啟動Pro服務。
#### window
對于Windows用戶來說,除了從Web GUI訪問模塊外,以上都是一樣。可悲的是,你有一點點運氣不好,Windows上的模塊加載路徑有一些限制,并且不允許使用外部模塊。但是,基于Console2的Metasploit控制臺(Start > Programs > Metasploit > Metasploit Console)可以很好地工作。
### 新的mixin和協議
任何需要更改核心庫函數的模塊,比如新的協議解析器或其他庫mixin模塊.是不會為你這樣做的.你將會在你的模塊中到處試圖加載這些類。在幾乎所有情況下都可以編寫完全自包含的模塊(感謝Ruby的開放式體系結構),但是之后這些模塊幾乎總是會被重構,以使其他模塊可使用
在這種情況下,最好使用像開發分支這樣合適的GitHub checkout來處理模塊 - [請參閱開發環境設置文檔](安裝metasploit.md),了解更多信息
### 最后的警告
如果你正在加載新的令人興奮的的Metasploit模塊,那么知道這些東西往往可以訪問任何你有權訪問的東西; 如果你使用root,更是如此.
Metasploit模塊是純文本的Ruby,所以你可以閱讀它們 - 但請小心,只添加來自可信來源的外部模塊; 不要只是抓住你在互聯網上看到的任何舊東西,因為你可能會發現自己在短時間內中了后門(或更糟)。
- Home
- 開始使用
- 安裝metasploit開發環境
- 使用metasploit
- 使用git
- 報告一個bug
- 貢獻代碼
- 貢獻給metasploit
- 創建一個loginscans Metasploit模塊
- 接受模塊和增強功能的指導
- 常見的Metasploit模塊代碼錯誤
- 樣式提示
- metasploit提交者
- metasploit開發
- 為什么是ruby
- 樣式提示
- 如何開始寫一個exploit
- 如何開始寫一個輔助模塊
- 如何開始寫一個post模塊
- 如何開始寫一個Meterpreter腳本
- 載入外部模塊
- exploit rank
- Metasploit模塊引用標識符
- 怎么在你的exploit中確認window補丁程序級別
- 如何使用filedropper清理文件
- 如何棄用metasploit模塊
- 如何在模塊開發中報告或儲存數據
- 在metasploit如何使用日志
- 如何在metasploit對JavaScript進行混淆
- 如何解析一個http響應
- 如何使用HTTPClient發送HTTP請求
- 如何使用命令階段
- 如何使用數據儲存選項
- 如何在window后期開發中使用railgun
- 如何在exploit中使用powershell
- 如何使用PhpEXE來利用任意文件上傳漏洞
- 如何使用FILEFORMAT mixin創建一個文件格式exploit
- 如何使用BrowserExploitServer編寫一個瀏覽器exploit
- 如何使用HttpServer編寫瀏覽器exploit
- 如何編寫一個check()方法
- 如何使用Seh mixin來利用異常處理程序
- 如何在Windows上使用WbemExec進行寫入權限攻擊
- 如何使用httpserver和httpclient編寫一個模塊
- payloads如何工作
- 如何免殺
- 如何正確使用metasploit模塊