```Msf::Exploit::FILEFORMAT```這個mixin是用來創造文件格式exploit的.這個mixin實際不是很多,但最重要的方法是file_create:
### file_create示例
顧名思義,該`file_create`方法允許您創建一個文件。您應該使用這種方法,因為它不僅僅是將數據寫入磁盤。它所做的一件重要的事情就是將文件創建以這個格式報告到數據庫```#{ltype}.localpath```,,和這個文件將總是被寫入Metasploit的本地目錄,定義在```Msf::Config.local_directory``` (默認是```~/.msf4/local```),這使得文件保持良好和有序。
要使用mixin,首先導入```Msf::Exploit::FILEFORMAT```到你的 ```Metasploit3``` 范圍內
```ruby
include Msf::Exploit::FILEFORMAT
```
下面是一個file_create用來構建一個想象的exploit的例子:
```ruby
# This is my imaginary exploit
buf = ""
buf << "A" * 1024
buf << [0x40201f01].pack("V")
buf << "\x90" * 10
buf << payload.encoded
file_create(buf)
```
### 自定義文件名
這個 ```Msf::Exploit::FILENAME``` 默認情況下注冊一個```FILENAME``` 數據儲存選項.它實際上是可選的,如果沒有文件名提供,這mixin將會用這個格式設置名字```"exploit.fileformat.#{self.shortname}"```, ```self.shortname```意味著這個模塊名的短版本
如果你想設置一個默認的(但仍然可以由用戶更改),那么你只需在模塊中重新注冊它,如下所示:
```ruby
register_options(
[
OptString.new('FILENAME', [true, 'The malicious file name', 'msf.jpg'])
], self.class)
```
### 固定文件名
偶爾,你可能不希望你的用戶改變文件名。一個懶惰的技巧是通過FILENAME在運行時修改數據存儲選項,但是這是非常不推薦的。事實上,如果你這樣做,你將不會通過msftidy。相反,這是如何正確完成的:
1 - 注銷`FILENAME`選項
```
deregister_options('FILENAME')
```
2 - 接下來,重寫該`file_format_filename`方法,并使其返回所需的文件名:
```ruby
def file_format_filename
'something.jpg'
end
```
3 - 最后,請在模塊描述中留下關于此的注釋。
### 參考
https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/exploit/fileformat.rb
https://github.com/rapid7/metasploit-framework/tree/master/modules/exploits/windows/local
- 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模塊