2025版最新Metasploit工具使用教程,零基础入门到精通,收藏这篇就够了
Metasploit
kali自带的攻击框架
首次进入MSF框架,出现一个banner(横幅)动画,这个动画是随机的。
show options查看选项命令
MSF模块命令
sessions #–h 查看帮助
sessions #-i <ID值> 进入会话
sessions #-k 杀死会话
background #将当前会话放置后台
run #执行已有的模块,输入run后按两下tab,列出已有的脚本
info #查看已有模块信息
getuid #查看权限
getpid #获取当前进程的pid
sysinfo #查看目标机系统信息
ps #查看当前活跃进程
kill #<PID值> 杀死进程
idletime #查看目标机闲置时间
reboot #重启
shutdown #关机
shell #进入目标机CMD窗
show options #显示需要设置的项
show target #显示适用的系统版本
show payloads #显示适用于当前模块的payloads
show advanced #显示其他非必须项
show missing #显示还未设置的必须参数
set RHOST IP #设置目标IP
run/exploit #运行模块(参数:-j表示后台执行)
back #返回上一级
help #调出所有帮助命令
show #展示模块下相关需要设置的参数
常用专业名称
漏洞利用(exploit)
漏洞利用exploit,也就是我们常说的exp,它就是对漏洞进行攻击的代码。
先看看exploit漏洞利用模块路径(这里面有针对不同平台的exploit)
/usr/share/metasploit-framework/modules/exploits
进入Windows平台,在这里会列出针对Windows平台不同服务器的漏洞利用模块
再进入smb服务,这是Windows中经常爆出漏洞的服务,我们要讲的永恒之蓝漏洞就在这里,漏洞利用代码通常是以rb结尾的文件(matasploit是Ruby编写的)。
攻击载荷
payload:payload中包含攻击进入目标主机后需要在远程系统中运行的恶意代码,而Metasploit中的payload是一种特殊的模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了payload在目标中的行为。
shellcode:shellcode是payload中的精髓部分,在渗透攻击时作为攻击载荷运行的一组机器指令。shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供一个命令行shell。
- payload模块路径
/usr/share/metasploit-framework
/modules/payloads
- Metasploit中的payload模块主要类型
Single:是一种完全独立的payload,而且使用起来就像运行calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似netcat这样的非Metasploit处理工具所捕捉到。
Stager:这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接)。
Stage:是Stager Payload下的一种Payload组件,这种payload可以提供更加高级的功能,而且没有大小限制。
在Metasploit中,我们可以通过Payload的名称和使用格式来推断它的类型
# Single Payload的格式为:
<target>/ <single>如:
Windows/powershell_bind_tcp
# Stager/Stage Payload的格式为:
<target>/ <stage> / <stager>
如:Windows/meterpreter/reverse_tcp
当我们在Metasploit中执行 show payloads命令之后,它会给我们显示一个可使用的Payload列表
注意:
在这个列表中,像 windows/powershell_bind_tcp 就是一个Single Payload,它不包含Stage Payload。
而windows/meterpreter/reverse_tcp 则由一个Stage Payload(meterpreter)和 一个Stager Payload(reverse_tcp)组成。
Stager中几种常见的payload
正向连接使用场景
我们的攻击机在内网环境,被攻击机是外网环境,由于被攻击无法主动连接到我们的主机,所以就必须我们主动连接被攻击机了。但是这里经常遇到的问题是,被攻击机上开了防火墙,只允许指定的端口,比如对外开放了80端口。那么,我们就只能设置正向连接80端口了,这里很有可能失败,因为80端口上的流量太多了。
反向连接使用场景
我们的主机和被攻击机都在外网或者都在内网,这样被攻击机就能主动连接到我们的主机了。如果是这种情况,建议使用反向连接,因为反向连接的话,即使被攻击机开了防火墙也没事,防火墙只是阻止进入被攻击机的流量,而不会阻止被攻击机主动向外连接的流量。
反向连接80和443端口使用场景
被攻击机能够主动连接到我们的主机,还有就是被攻击机的防火墙设置的特别严格,就连被攻击机访问外部网络的流量也进行了严格的限制,只允许被攻击机的80端口或443端口与外部通信。
特性/场景 | 正向连接 | 反向连接 | 反向连接80/443 |
---|---|---|---|
攻击者位置 | 内网 | 外网或内网 | 外网或内网 |
目标系统位置 | 外网 | 外网或内网 | 外网或内网 |
防火墙配置 | 仅允许特定端口(如80) | 可能允许或不允许特定端口 | 严格限制,只允许80或443 |
连接方式 | 攻击者尝试连接到目标系统 | 目标系统主动连接到攻击者 | 目标系统通过80或443端口主动连接 |
流量方向 | 进入目标系统 | 从目标系统发出 | 从目标系统发出,通过80或443端口 |
可能的难点 | 高流量端口可能难以建立连接 | 防火墙可能阻止攻击者的连接 | 防火墙严格限制,需要利用常见端口 |
使用场景 | 目标系统无法主动连接 | 目标系统可以主动连接 | 防火墙严格,仅允许特定端口通信 |
安全性考虑 | 需要绕过防火墙规则 | 利用目标系统的主动连接 | 利用常见的Web端口进行隐蔽通信 |
最后
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。
干货主要有:
①1000+CTF历届题库(主流和经典的应该都有了)
②CTF技术文档(最全中文版)
③项目源码(四五十个有趣且经典的练手项目及源码)
④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)
⑤ 网络安全学习路线图(告别不入流的学习)
⑥ CTF/渗透测试工具镜像文件大全
⑦ 2023密码学/隐身术/PWN技术手册大全
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
扫码领取
