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 ]