metasploit 是用ruby写的。 所以本质上就是如何把自定义的module放进去。
kali下的默认位置; /usr/share/metasploit-framework/
进来,可以发现有module文件夹,里面都是 各个cve 等漏洞的 exploit
可以放在 ~/.msf4/modules目录下, 也可以放在默认安装路径下。
我们以 cve-2017-7269为例子。
要注意目录结构: (auxiliary encoders evasion exploits nops payloads post )
1. 在 ~/.msf4/modules 目录下,创建exploits 文件夹 -> test文件夹, 放入文件 cve_2017_7269.rb, 内容略。
使用reload_all 命令来重新加载。 (不用重新启动msfconsole)
2. 也可以在msf 的rails目录下,按照上面的方式在增加module文件。
缺点是需要退出msfconsole重新进入。就会自动加载了。
注意:必须放在 exploits 目录下,不能直接扔在 ~/.msf4/modules 目录下,不会识别。
module name命名只能是 字母+数字 + 下划线,
例如 cve_2017_001.rb
增加好module文件之后, 要重启或者reload_all
1. (推荐)重启启动console ,
2. (有时候可以)或者在 console中输如 reload_all
如果无法加载,查看log, 看看是啥原因。
例如,下面有3个.go 语言无法被加载,查看日志发现,是本机没有安装go语言。
msf6 > reload_all 
[*] Reloading modules from all module paths...
[-] WARNING! The following modules could not be loaded!
[-]     /usr/share/metasploit-framework/modules/exploits/my/cve-2017-7269.rb
[-]     /usr/share/metasploit-framework/modules/auxiliary/scanner/msmail/onprem_enum.go
[-]     /usr/share/metasploit-framework/modules/auxiliary/scanner/msmail/exchange_enum.go
[-]     /usr/share/metasploit-framework/modules/auxiliary/scanner/msmail/host_id.go
[-] Please see /root/.msf4/logs/framework.log for details.
 _                                                    _
/ \    /\         __                         _   __  /_/ __                                                                                                                 
| |\  / | _____   \ \           ___   _____ | | /  \ _   \ \                                                                                                                
| | \/| | | ___\ |- -|   /\    / __\ | -__/ | || | || | |- -|                                                                                                               
|_|   | | | _|__  | |_  / -\ __\ \   | |    | | \__/| |  | |_                                                                                                               
      |/  |____/  \___\/ /\ \\___/   \/     \__|    |_\  \___\                                                                                                              
                                                                                                                                                                            
       =[ metasploit v6.0.36-dev                          ]
+ -- --=[ 2108 exploits - 1131 auxiliary - 357 post       ]
+ -- --=[ 592 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 8 evasion                                       ]